科隆流量计的瞬时流量值地址是30002读取该地址的功能码是04,累积流量值的地址是41000.读取该地址的功能码是03。我这样写程序为什么读不上数据。请高手指教
图片说明:
最佳答案
1、EN 使能: 必须保证每一扫描周期都被使能(使用 SM0.0 ) 在调用初始化功能块的时候
2、msg块里的addr 地址不对 应该写入的数值是:30002是16进制还是十进制?
对应的200的modbus通讯地址为40001+转换的十进制
如果是十六进制,那就直接填入你的值是对的
3、前提是你硬件连接正确 ,3 8管教接线正确 距离远单端加120Ω的电阻 ,降低干扰
4、通讯modbus 科隆流量计的地址是否设为1 ,通讯波特率 奇偶校验 数据格式一定设定正确
提问者对于答案的评价:
你好!
这个地址是科隆技术给的,是十六进制,通讯参数反复地确认了。流量计地址为什1、波特率为9600、8位一个停止位、无校验。对于西门子S-200的功能码是否同时支持读03和04。直接写上30002 和41000对吗。谢谢你的回答!
专家置评
1、功能码:
30001 - 39999输入寄存器 读 功能 4
40001 - 49999 保持寄存器 读 功能 3
2、核实伙伴参数,如果是十六进制需要转换成十进制,然后根据功能码+30001或者+40001
3、如果要进行多个操作,需要轮训,可以单独测试读某个参数
4、使用调试助手或者modslave软件测试
5、看程序块错误代码,是3还是6,如果是3,着重检查双方参数及线路,如果是6号错误,着重检查程序轮询及触发
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc132089.html