
该【Modbus报文详解 】是由【秋江孤影】上传分享,文档一共【8】页,该文档可以免费在线阅读,需要了解更多关于【Modbus报文详解 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。实用标准文案<br/>Modbus<br/>协议概述<br/>Modbus作为在工业设备通讯上使用最多,应用最广的国际标准协议,在应<br/>用层的协议定义上我们对其进行简单的介绍:<br/>类型描述<br/>设备地址对应通讯设备设定的1-255的任意一个数字地址号。<br/>功能码对应读取模拟量一般采用0304号功能码,对于读取开关<br/>量一般采用0102号功能码。<br/>起始地址数据在通讯设备中的寄存器定义,一般由厂家提供点表。<br/>数据格式数据在寄存器中的格式,较多的为16位无符号,因为一个<br/>寄存器就是一个16位的长度。<br/>CRC校验经过CRC校验算法后,添加CRC计算的值在协议传输帧的<br/>最后面,主要是防止串口误码导致数据错误。<br/>举一个最简单的例子,我们在SymLink中查看报文的时候可以看到:<br/>SymLink发送:095CB<br/>01代表设备地址1<br/>03代表读取保持寄存器的值<br/>00代01表采集点对应的寄存器号<br/>00代02表读取2个连续寄存器的值<br/>95为CB010300计算01所得00的CRC02值<br/>SymLink接收:000FA33<br/>01代表设备地址1<br/>03代表读取保持寄存器的值<br/>04代表设备返回的数据个数,字节为单位<br/>0000为数据00返回00的连续2个寄存器的值<br/>FA为计算00所得的00CRC值00<br/>SymLink在判断01、03、04这些反馈信息都合法,并且CRC校验无误的情况下,<br/>就可以对000000所在的数据值进行00规定数据格式的解析。<br/>目前支持Modbus协议的设备越来越多,包括PLC、智能仪表、通讯模块等等,<br/>如果厂家设备支持的通讯协议为标准格式的Modbus协议,那么在选择厂家的时<br/>候就直接选择国际标准的Modbus。<br/>准备工作<br/>序号名称数量备注<br/>1厂家设备任意支持标准的Modbus协议<br/><br/>绞线,长度建议不要超过100米。<br/>以太网通讯为带隔离保护的标准网<br/>线,长度建议不要超过50米。<br/>文档大全<br/>实用标准文案<br/>3Symlink工业智能机1任意型号<br/>4设备说明书和点表1说明书指导设置设备地址、波特率<br/>等通讯参数。点表用来配置采集点<br/>信息。<br/>设备连接<br/>通讯,设备的端子对应连接的端子、设备的端子对应<br/>RS485ASymLinkAB<br/>连接SymLink的B端子,需要注意的是一根线上接多个IED的情况,一个是<br/>设备地址要唯一、波特率和其他串口参数要一致,另外接线的时候需要从一<br/>台IED的AB端子跳接到下一台IED的AB端子,防止并联分散传输信号。<br/>通讯,设备的发送针对应连接的、设备的接收针对应连接<br/>RS232SymLinkRX<br/>SymLink的TX、设备的接地针对应SymLink的GND。<br/>以太网通讯,设备的网口对应连接到同一网段的口,如果含多<br/>SymLinkLAN<br/>台以太网设备通讯,需要加交换机。<br/>设备配置<br/>参考实际的设备说明书:<br/>)选择协议,如果设备支持多种协议,需要在配置里面选择为或<br/>1ModbusRTU<br/>者ModbusAscii协议。<br/>)定义通讯接口参数。串口定义传输波特率,数据位,停止位,奇偶检验。<br/>2<br/>以太网通讯定义IP地址,TCP端口号。<br/>)定义设备地址。<br/>3<br/>)用厂家提供的设备点表和设备面板显示的数据进行简单的对应。<br/>4<br/>)用厂家提供的测试软件,或者第三方测试软件(、等)<br/>5modscanModbusPoll<br/>对设备进行通讯测试。<br/>通讯配置<br/>选中工程下的“采集服务”,点右键后在菜单中选择“新建通道”。<br/>在弹出的界面在定义通道名称,点击规约旁边的浏览按钮选择ModbusRTU驱动。<br/>文档大全<br/>实用标准文案<br/>在左侧的分类中选择国标下的ModbusRTU,点确定按钮完成。<br/>定义端口信息,ModbusRTU多采用串口通讯,在下方的端口参数中定义串口号,<br/>波特率,数据位等通讯参数,定义完成后点击确定按钮完成。<br/>文档大全<br/>实用标准文案<br/>通道的配置只是完成了协议选择及通讯的接口参数。还需要在通道下创建连接的<br/>设备及设备参数后才算完成与具体设备的通讯配置。<br/>选中新建的通道,点击右键,在右键菜单在选择“新建设备”<br/>在设备配置面板中定义设备名称,设备地址(Modbus协议主要依靠设备地址来<br/>识别一条总线上的多个设备)。<br/>文档大全<br/>实用标准文案<br/>点击设备配置界面左下方的+号按钮,可以定义ModbusRTU协议的高级参数。<br/>点击确定按钮就完成了通道及设备的通讯配置。<br/>需要说明一下规约参数中的包最大长度,这里默认是32,代表组织协议的时候<br/>一次最大可读取连续32个寄存器数据,如果点数较多并且通讯条件较好的情况<br/>下,我们最大可以调整到128。<br/><br/>完成Modbus设备和通道的通讯配置后,并未采集到设备中具体的数据。如要对<br/>设备的数据进行逐个的采集,需要在采集服务中的通道下的设备中创建一个一个<br/>的IO点,并配置正确的IO连接参数。<br/>在左侧导航中选择采集服务中的通道下的设备后,右侧视图为IO点的列表视图。<br/>默认没有任何IO采集点。<br/>文档大全<br/>实用标准文案<br/>在空白区域点击右键,在弹出的右键菜单在选择创建IO点。<br/>弹出新建采集点对话框:<br/>文档大全<br/>实用标准文案<br/>点击连接线右侧的浏览按钮,即可进入到具体的协议配置参数。<br/>连接项说明<br/>功能码参考厂家协议说明,一般读取模拟量用0304号命令,<br/>读取开关量用0102号命令。区分是04和02是只读区,<br/>03和01类型的寄存器支持用06和05的命令码回写操<br/>作。<br/>文档大全<br/>实用标准文案<br/>数据地址参考厂家点表,我们SymLink的数据地址从0开始,要<br/>注意厂家的点表是否是从1开始的,如果是可能需要减<br/>1,另外是否是16进制的描述,如果是16进制则需转换<br/>成10进制的进行填写,如010A的十进制是266。<br/>数据类型数据格式选择,一个寄存器代表16位长度的数据,两个<br/>寄存器就能代表32位长度格式的数据。需要注意的是<br/>32位长度的数据格式,有可能需要选择对应的高低位,<br/>默认都是从高到低。<br/>位偏移如果用0304号命令码读取一个寄存器的16位数据,并<br/>且需要取这16位数据中的每一个位,则选择数据类型<br/>位,然后偏移由低到高为0-15。<br/>读写属性根据寄存器类型不同而自动设定。<br/>文档大全
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/159058.html