请问:西门子200作为主站,与下位三个只能仪表通讯。读取仪表数据。采用modbus协议。
问题1:硬件如何连接,200与仪表之间怎么连接,需要什么硬件。
问题2:仪表中读寄存器命令格式为:地址,起始寄存器高位,低位,终止寄存器高位,终止寄存器低位,CRC.
仪表应答为:地址,字节计数*2,寄存器数据1----寄存器数据M,CRC.
这在程序里怎么实现读仪表数据?
谢谢大家了
问题补充:
与下位仪表硬件连接,需要西门子总线连接器吗?连接线普通双绞线可以吗?
最佳答案
利用DP网络接头进行连接,西门子200通讯口的A,B与仪表通讯口的A,B分别连接,连接线用西门子紫色DP电缆。
程序可直接调用西门子200modbus通讯库。
STEP 7-Micro/WIN指令库通过包括专门设计用于modbus设备的预配置子程序和中断例行程序的方法,使与modbus主站通讯更加简便。您可以利用modbus协议指令配置S7-200,将其用作modbus 从站或主设备。
可以在STEP 7-Micro/WIN指令树的“库”文件夹中找到这些指令。当您在程序中加入一条USS modbus指令时,项目中会自动增加一个或多个相关子程序。
modbus从站协议指令可以配置S7-200,将其用作modbus RTU从站,与modbus主设备通讯。
modbus主设备协议指令可以配置S7-200,将其用作modbus RTU主设备,与一个或多个modbus从站通讯。
modbus指令安装在STEP 7朚icro/WIN指令树的"协议库"文件夹中。有了这些新指令, 您可以将S7-200用作modbus设备。当您在程序中加入modbus指令时,会在项目中自动增加一个或多个相关子程序。
modbus主设备协议库有两个版本。一个版本使用CPU的端口0,另一个则使用CPU的端口1。端口1协议库的POU名中带有"_P1"(MBUS_CTRL_P1),表示POU使用CPU上的端口1。在其它方面,这两个modbus主设备协议库完全一致。
modbus从站协议库仅支持端口0通讯。
提问者对于答案的评价:
谢谢
专家置评
建议楼主参考阿鸣和莘莘学子的链接,编程实现因情况不同而不同,只要清楚Modbus通信数据格式、地址对应关系的话,各种问题将迎刃而解。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc312287.html