modbus slave如何使用_电气工程师专业概述modbus通讯,系列17

1、概述

自由口需要讲的内容已经给大家全部讲完了,RS485通讯中的基础知识也全部给大家梳理了一遍,那么从本篇文章开始我就具体和大家把RS485通讯中的modbus RTU协议和大家具体讲解一下。

首先大家要明确一点,目前为止modbus RTU协议是在工业控制中RS485硬件层面最常用的协议之一,我这里的目标主要有两点,第一帮助大家掌握S7-200modbus库的使用,第二帮助大家搞清楚modbus RTU协议的报文格式。

2、modbus RTU协议特点

我们首先熟悉一下modbusRTU 协议的特点。

1) modbus RTU是一种主从、半双工通讯方式协议,整个网络中只能有一个主站存在,主站在modbusRTU网络中没有地址,从站的实际地址范围是1~247

2) modbus RTU协议的报文长度是不固定的,报文与报文之间最小间隔是3.5个字符传输时间长度。

3) modbus RTU协议的校验方式是crc校验。

3 、modbus库介绍

3.1 主站指令

7c35e7a4680151c9f63658e903051a2a.png

图3-1

MBUS_CTRL指令:

EN:使能,要保证每一周期都使能(sm0.0)。

Mode:模式选择,1 = modbus协议,0 = PPI协议

Baud:波特率设定。

Parity:字符校验,0 = 无校验;1 = 奇校验;2 = 偶校验

Timeout:超时。主站等待从站响应的时间,以毫秒为单位,允许设置范围为1~32767.

Done:初始化完成标志位,初始化完成此位自动置1。

Error:如果初始化错误,存放错误代码。

bd3c465eba221e7e281b9fe444474472.png

图3-2

MBUS_MSG指令:

EN:使能,同一时刻只能有一个读写功能。

First:读写请求,要使用沿触发。

Slave:从站地址,范围1 ~247

RW:读写操作,0 = 读,1 = 写。

Addr:读写从站的数据地址。

Count:数据个数(位或者字的个数)。注意最大数据量为120个字。

DataPtr:数据缓冲区首地址(指针类型)。如果是读指令,读回的数据放到这个数据区中;如果是写指令,要写出的数据放到这个数据区中。

Done:读写功能完成位。功能完成此为置1。

Error:读写功能错误代码。Done位为1时有效。

3.2 从站指令

3e71747de54eb8f1a48556f79117b241.png

图3-3

MBUS_INIT指令:

EN:初始化,首次扫描执行一次(SM0.1)

Mode:模式,0 = PPI,1 = Modbus

Addr:从站地址,取值1 ~247。

Baud:波特率。

Parity:奇偶校验。

Delay:附加字符间延时。

MaxAIQ:参与通信的最大I/O点数,S7-200的I/O映像区为128/128缺省值为128。

MaxAI:参与通信的最大AI通道数。

MaxHold:参与通信的V存储区字节(VW)。

HoldStart:保持寄存器区起始地址(指针形式)。

Done:初始化完成标志位。

Error:如果初始化错误存放错误代码。

86ca551cb1309f6091bbe392bf161fd7.png

图3-4

MBUS_SLAVE指令:

EN:使能。每次扫描执行(sm0.0)

Done:通讯中时置1,不处于通讯过程中时为0。

Error:存放错误代码, 0 = 无错误。

作者:马乐,版权为技成所有,未经同意盗取必究!

往期优秀文章回顾:

「RS485」如何把crc校验加入到程序里?系列16

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值