1.概述
现在我们已经介绍了有关Freeport 所需了解的所有内容,并掌握了RS485 通信的所有基础知识,本文将详细介绍用于RS485 通信的Modbus RTU 协议。一度。
首先,我需要跟大家澄清一下。迄今为止,Modbus RTU 协议是工业控制RS485 硬件级别最常用的协议之一。我的目标主要有两个。首先,每个人都可以使用S7-200 Modbus库;其次,每个人都可以理解Modbus RTU协议消息格式。
2.Modbus RTU协议的特点
首先我们来了解一下modbusRTU协议的特点。
1)modbus RTU是一种主/从半双工通信协议。整个网络只有一个主站。主站在modbus RTU 网络中没有地址。从站实际地址范围为1。 247
2)Modbus RTU协议的报文长度不固定,报文之间的最小间隔为传输时间的3.5个字符。
3)Modbus RTU协议的验证方式是CRC验证。
3.Modbus库简介
3.1 主站命令
图3-1
MBUS_CTRL命令:
CN: 启用。确保它在每个周期都启用(sm0.0)。
Mode:模式选择,1=Modbus协议,0=PPI协议
波特率:波特率设置。
奇偶校验:字符奇偶校验,0=无奇偶校验,1=奇奇偶校验,2=偶奇偶校验
超时:超时。主站等待从站响应的时间(以毫秒为单位)。可配置范围为1 至32767。
Done:初始化完成标志位。初始化完成后,该位自动设置为1。
错误:如果发生初始化错误,错误代码将被保存。
图3-2
MBUS_MSG指令:
JP:启用。一次只能使用一种读写功能。
首先,读写请求必须使用边沿触发。
Slave:从机地址,范围1到247
RW:读写操作。 0=读,1=写。
Addr:读/写从站数据地址。
计数:数据数量(位数或字数)。最大数据大小为120 个字。
DataPtr:数据缓冲区的起始地址(指针类型)。对于读指令,读回的数据放在这个数据区,对于写指令,要写入的数据放在这个数据区。
已完成:读写功能的已完成位。当函数完成时,该值设置为1。
错误:读写功能的错误代码。 Done 位为1 时有效。
3.2 从机指令
图3-3
MBUS_INIT指令:
JP:初始化,首次扫描执行一次(SM0.1)
模式:模式,0=PPI,1=Modbus
地址:从机地址,值1-247。
波特率:波特率。
奇偶校验:奇偶校验。
延迟:字符之间的额外延迟。
MaxAIQ:参与通信的最大I/O点数S7-200的I/O映像区为128/128,默认值为128。
MaxAI:参与通信的AI通道的最大数量。
MaxHold:参与通信的V个存储字节(VW)。
HoldStart:保持寄存器区域的起始地址(指针格式)。
Done:初始化完成标志。
错误:如果发生初始化错误,错误代码将被保存。
图3-4
MBUS_SLAVE指令:
JP:启用。每次扫描执行(sm0.0)
完成:如果通信正在进行,则为1;如果没有,则为0。
错误:保存错误代码。 0=没有错误。
作者:马乐,版权归吉成所有,未经同意盗用必究。
过去各期精彩文章的评论:
如何在“RS485”程序中添加CRC校验? 系列16
标题:modbus通讯协议教程,modbus通讯协议功能码
链接:https://www.7kxz.com/news/gl/23295.html
版权:文章转载自网络,如有侵权,请联系删除!