S7-200 SMART MODBUS TCP作为server如何把数据传出去?

我需要把V寄存器中数据类型为带符号的SHORT的数据共100个和数据类型为BIT的100个数据给客户端的PLC读取,目前正在编写作为服务器端的PLC的程序,看了一下MODBUS TCP的介绍还是没完全搞懂。。。。
假设我的数据寄存在VW0 VW2 VW4 VW6…VW198以及V200.0 V201.0 V202.0….V299.0,那么对应MODBUS TCP SERVER指令的每个参数应该怎么设置啊?如何跟那些地址0xxxx 1xxxx 3xxxx 4xxxx对应起来呢?
顺便又问一句了,客户端又该怎样去读呢?

小弟从来没用过,希望有高手能回答一下啊~~~~谢谢谢谢!!

最佳答案

调用Modbus TCP 服务器指令 MBUS_SERVER
指令参数MaxIQ对应数字量输入/输出点(对应Modbus 地址参数0xxxx或者1xxxx)
指令参数HoldStart指向 V 存储器中保持寄存器起始位置的指针
指令参数MaxHold用于 Modbus 地址 4xxxx 或 4yyyyy 的 V 存储器中的字保持寄存器数
S7-200 SMART 的 I 离散输入和映象寄存器可用范围I0.0 ~ I31.7
可以把数据类型为BIT的100个数据移到未分配给模块的  I 存储区供客户端读取
对于数据类型为带符号的SHORT的数据,把HoldStart设置为&VB0,MaxHold设置为100
Modbus TCP 指令使用参考:
西门子 S7-200 SMART PLUS V2.3 技术参考
https://support.industry.siemens.com/cs/cn/zh/view/76488152

提问者对于答案的评价:
感谢你的回答,另外想继续了解一下:
指令参数MaxIQ对应数字量输入/输出点(对应Modbus 地址参数0xxxx或者1xxxx)
输入点对应的是0xxxx,输出点对应的是1xxxx,对吗?
S7-200 SMART 的 I 离散输入和映象寄存器可用范围I0.0 ~ I31.7
可以把数据类型为BIT的100个数据移到未分配给模块的  I 存储区供客户端读取
我把离散输入给到I10.0~I20.0,那么0xxxx是如何对应每一个离散量的呢?比如I10.0是00101?
谢谢!!

最佳答案作者回复:
反了,输入点对应的是1xxxx,输出点对应的是0xxxx
I0.0 ~ I31.7对应10001~10256

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc279756.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月30日 下午6:14
下一篇 2020年10月30日 下午6:14

相关推荐

发表回复

登录后才能评论