ST30九针口接的485传感器,SB通讯板想做从站被控制,接收命令码,做主站是CTRL和MSG指令,做从站是不是必须用INITH和slave指令,别人问我给我发什么指令能控制你的电机启停,我不知道,
地址1:发送1启动电机 01 03 00 01 00 01 D5CA
发送2关闭电机 01 03 00 01 00 02 95CB 校验码是我软件计算的,请问我这样回答他可以吗?
最佳答案
1、两个可以同时作为站,也可以一个作为主站一个作为从站,就是不能同时作为从站。
2、
ST30九针口接的485传感器,这个口就是 PORT0,它要做MODBUS RTU 主站,用 MBUS_CTRL 和 MBUS_MSG 指令配合写成轮循的方式读传感器数据。
Modbus RTU 主站 (最下面有MODBUS RTU 轮循实例)
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/communication/serial_port/modbus/Master/Master.htm
3、
SB通讯板想做从站被控制,接收别人作为MODBUS RTU 主站发来的请求帧。使用SM0.1调用 MBUS_INIT进行初始化,使用 SM0.0调用 MBUS_SLAVE。
按你给对方的说明,你要求对方发送 1 启动电机 01 03 00 01 00 01 D5 CA
发送 2 关闭电机 01 03 00 01 00 02 95 CB
你这样说是可以的,那就有要注意,MBUS_INIT的管脚 HoldStart 定义的是保持寄存器区起始地址,以&VBx指定(间接寻址方式)。比如在此管脚你写的是 &VB100,则你的PLC中就要用 VW100 来控制你的电机。当 VW100 为 1 时启动电机,当VW100 为 2 时停止电机,控制逻辑写成这样才能配合你要求对方发来的请求帧控制你的电机。
4、资料
S7-200 SMART Modbus通信常见问题
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-smart-portal/200SmartTop/SmartSMS/020.html
提问者对于答案的评价:
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc347002.html