分享

【新提醒】【玩转485】17.modbus通讯概述【连载17】

 huasum 2022-09-25 发布于江西

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    主站指令
                              
图3-1
MBUS_CTRL指令:
EN:使能,要保证每一周期都使能(sm0.0)。
Mode:模式选择,1 = modbus协议,0 = PPI协议
Baud:波特率设定。
Parity:字符校验,0 = 无校验;1 = 奇校验;2 = 偶校验
Timeout:超时。主站等待从站响应的时间,以毫秒为单位,允许设置范围为1~32767.
Done:初始化完成标志位,初始化完成此位自动置1。
Error:如果初始化错误,存放错误代码。
图3-2
MBUS_MSG指令:
EN:使能,同一时刻只能有一个读写功能。
First:读写请求,要使用沿触发。
Slave:从站地址,范围1 ~247
RW:读写操作,0 = 读,1 = 写。
Addr:读写从站的数据地址。
Count:数据个数(位或者字的个数)。注意最大数据量为120个字。
DataPtr:数据缓冲区首地址(指针类型)。如果是读指令,读回的数据放到这个数据区中;如果是写指令,要写出的数据放到这个数据区中。
Done:读写功能完成位。功能完成此为置1。
Error:读写功能错误代码。Done位为1时有效。

3.2    从站指令
图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:如果初始化错误存放错误代码。

图3-4
MBUS_SLAVE指令:
EN:使能。每次扫描执行(sm0.0)
Done:通讯中时置1,不处于通讯过程中时为0。
Error:存放错误代码, 0 = 无错误。



本帖隐藏的内容

【玩转485】17.modbus通讯概述.pdf (575.83 KB, 下载次数: 184)






    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多