biezheyang
表是conch电流表,想读取内部电压值,上方是三菱标准地址位。
电压值分别有上述两种,读空重时,比如电压值为2233,读取出来为22337,会多一位
读砝码重时就完全读不出
读表头显示值可以准确读取
跪求大佬解惑
友情提示:打赏的积分将从您的工控网积分账号扣除
楼主最近还看过
关育谋
40086为地址,寄存器数量为2或者为4啊
回复本条
发表回复
不会做上位机
具体要看仪表modbus报文和寄存器地址
例如:名称 (电压)寄存器地址(2000H )数据类型是(Float)数据长度word 为2;那么200smart 里地址为40001/30001➕ (2000)的十进制数;手动MSG指令需要读取两个连续的地址放入指针&XXX,利用传送指令MOV_R去采集浮点数或者其他数据类型即可。如果是仪表INT或者其他就读取40001/30001➕仪表寄存器地址的十进制,读取一个整型地址,传送出来,日系仪表可能用到缩放去采集数据。
有没有可能用mov-r读取VD区是223.37V,而砝码检查地址是否错误,不连续的地址有没有写轮询读其他地址呢,监控之下看看有无错误代码
ac米兰
modscan之类的软件连接看看数据
剑圣打下
建议好好看下西门子modbus通讯例程。
hfhewei
可以问下电流表厂家
虽然还是没搞太明白为什么读取会多出一位,但是问题解决了,从vd300下发会存储在vb302的起始地址,一直以为是vb300,初学者的尴尬,这个怎么结不了帖话说
救命,原来是在这回复的嘛
枫轻扬
怎么又到VD302了 , 你不是写的VB200
卖艺不卖萌
估计是字节顺序的问题,PLC会有这种区别;西门子的32位字节顺序是ABCD,一些仪表的32位字节顺序是CDAB,如果实际值只有16位,按32位地址操作,高低字就需要调换。也有叫大小端的,其实是一个问题,不同厂家的略有区别。
不是的,我只是打个比方。
噢噢噢,这样的嘛,我之前查资料的时候也看到过这个,但是试过好像不对,可能是我数据转换没搞好
写入的时候表的地址读取也只读前面一部分,比如写入12345,写过去就是1234,然后导致想写一个小值,但是要多写一位,就会超过65535,应该是65535,然后就写不进去,已经失去了所有的力气和手段哈哈
为啥不能结帖
灵匣
你电表的要读取的电压地址,和modbus寄存器的地址,对应是否正确。若你要读的电压地址是16进制,你得换算成10进制+1,因为寄存器的地址是从1开始,有的第三方设备是从0开始的。
tonyjiee
你可以先用串口助手连接读取一下,等数据都对上了,再来用PLC
xinfeiyang0599
用串口调试工具是个好办法,先把数据正常读取
Hu工
堂清华001
感谢分享原创推荐 原创推荐 原创推荐 原创推荐 原创推荐 原创推荐 原创推荐 原创推荐 原创推荐 原创推荐 原创推荐 原创推荐 原创推荐感谢分享原创推荐 原创推荐 原创推荐 原创推荐 原创推荐 原创推荐 原创推荐 原创推荐 原创推荐 原创推荐 原创推荐 原创推荐 原创推荐