用S7-1200搭建的 tcp通信,可以正常通信,但是用串口助手接收到的是 动态报文 而我需要通信的服务器端为固定报文才会反馈信息的设备,可以 通过设置MB_client 设置为固定报文吗?如果可以的话该从什么地方设置呢?服务器端只有接收到 46 63开头的报文才会做出回应。第一次使用modbus tcp 可能有些表述的不太清楚的地方,还请多多包涵
最佳答案
不太明白楼主的意思!
对方是最直接的Tcp协议。我们可以建立TCP 连接,西门子的指令
TCON 建立连接
TSEND 发送数据 指令接口可以指定我们发送的报文长度 (数据类型根据设备 建立)
TRCV 接收报文 (接受反馈信息)
对方是 MOdbus tcp
那直接调用 MB_client 与终端设备通讯 ,指令接口有一个MB_DATA_LEN
可以设定我们的报文长度
小提示:
1 如果对方须接受 46 63 这两个数据 你可以在你的报文前两个字节填写默认值 46 63 直接调用
2 我记得去年做1200TCP走字符通讯时,报文地址 是从 DBX0.0 开始的 发送 10个字符。但是 终端设备只接收我定义的字符只有8个 报文开始两个字节是西门子内部的格式数据 无效的, 但是现在手里做了个1500项目,走TCP绝对地址(直接把我的PLC内部数据抛出去,上位机解析地址)没发现这个问题,最近没时间,有时间我再去研究下。
3 ;通讯 参考西门子 S7-1200 Easy Plus
https://support.industry.siemens.com/cs/document/73600209/%E8%A5%BF%E9%97%A8%E5%AD%90-s7-1200-plc-%E6%8A%80%E6%9C%AF%E5%8F%82%E8%80%83-v3-2?dti=0&lc=zh-CN
提问者对于答案的评价:
如何设置 46 63 或者说在那个地方设置?可以举个简单的例子吗?谢谢
最佳答案作者回复:
哦,我说的报文是以DB块形式发出去,在DB块可以直接填写当前数据的默认值的!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc165676.html