找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
1.我做服务端,可以读跟写吗?没有模式可选,引脚怎么填写?
服务器端,MB_SERVER 指令,它是等客户端来读写的,客户端读它就响应读请求,客户端要写,它就响应写请求。
https://support.industry.siemens.com/cs/document/109743545
按最后面链接例程中,各管脚的说明写就可以了,MB_HOLD_REG 这个管脚是向客户机组织的数据,这部分数据组织是要在 PLC 中写程序组织的。
其它的 I、Q、IW 也是对应好的。看链接中的表2
http://www.ad.siemens.com.cn/productportal/Prods/S7-1200_PLC_EASY_PLUS/11-Comm/01-Ethernet/04-Modbus_TCP/02-Modbus_TCP_old/02-Server.htm
2.我怎么同时跟两个客户端通讯,需要轮询吗
首先不需要轮询。
在PLC 侧调用两次MB_SERVER,并使用不同的背景数据块;
CONNECT 指向连接描述结构的指针。TCON_IP_v4(S7-1200),在连接结构中定义不同的连接 ID、上位机的IP,以及服务器测的本地端口号
这样就建立了两个服务器连接,分别供两台上位机使用。
3、400001 是保持寄存器区的第一个地址,它最小的寻址单位是字,所以占两个字节
4、 参考资料
http://www.ad.siemens.com.cn/productportal/Prods/S7-1200_PLC_EASY_PLUS/SmartSMS/024.html
补充:
其实链接已给出,先理解角色。
https://support.industry.siemens.com/cs/document/109743545
向上位机写,其实是上位机读,即上位机发出读命令;
把 MB0 到 MB7 共8个字节,传送到MB_HOLD_REG 脚指令的区域,这个区域必须是非优化的数据块,比如说是DB2;
如将 MW0 传到DB2.DBW0 上位读的 40001 就是从站 1200 侧的 MW0
如将 MW2 传到DB2.DBW2 上位读的 40002 就是从站 1200 侧的 MW2
如将 MW4 传到DB2.DBW4 上位读的 40003 就是从站 1200 侧的 MW4
如将 MW6 传到DB2.DBW6 上位读的 40004 就是从站 1200 侧的 MW6
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!