S7-1212 PLC MODBUS/TCP MB-SERVER 指令

请教:使用S7-1212 PLC 进行对一台温度终端进行监控,这台温度终端是按MODBUS/TCP进行通讯,它的地址:0X0040~0044,数据类型:1 WORD, 功能码:0X04. 现在针对这个温度终端进行MODBUS/TCP通讯,但在"STATUS"的状态码是"7002", PLC寄存器的地址是否是从40065开始?需要如何在MB-SERVER 中增加这个40065地址,请教一下各位,这程序在什么地方有问题?如何修正?谢谢大家

问题补充:
谢谢回复,还有一个问题:在功能码0X04,温度终端地址:0x00~0044,其第一个寄存器地址是30065,计算出的1212PLC第一个对应地址是DBW32
A) 请问也是DB2.DBW32吗?
B) 在ARRAY数组时的偏移量是:10.0、12.0、14.0、16.0、18.0, 是否下个地址是DB2.DBW34(偏移量是12.0)、DBW36(偏移量是14.0)、如此类推?
C) 在进行ARRAY[0..4]数组中定义是“WORD”,但在每个元素的数据类型如何定义,温度终端所发来的是“16位的 WORD”的数据类型?

图片说明:

S7-1212 PLC MODBUS/TCP MB-SERVER 指令    S7-1212 PLC MODBUS/TCP MB-SERVER 指令    S7-1212 PLC MODBUS/TCP MB-SERVER 指令   

最佳答案

请参考以下三点:
1、1212访问温度终端,通常这种连接,1212应该是client,温度终端是server;也就是说1212里应该调用MB_CLIENT才对。
2、功能码:0X04,对于的modbus 地址应该是30001+16#0040=30065.
3、在MB_CLIENT的引脚MB_DATA_ADDR填写30065。

提问者对于答案的评价:
谢谢

最佳答案作者回复:
A)你调用的是MB_SERVER, 30001对应的地址是IW0,这个地址对应,麻烦你看看指令的在线帮助,里面有个表格;
B)类推正确;
C)如果想写成整数INT格式,则在数据类型那儿写成 “ARRAY[0..4]  INT”。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年7月25日 下午10:49
下一篇 2017年7月25日 下午10:49

相关推荐