求助smart200 点击:424 | 回复:24



biezheyang

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 0回
  • 年度积分:500
  • 历史总积分:550
  • 注册:2023年11月15日
发表于:2025-01-15 10:30:41
楼主
求助帖200分-已结帖

image.pngimage.png

表是conch电流表,想读取内部电压值,上方是三菱标准地址位。

电压值分别有上述两种,读空重时,比如电压值为2233,读取出来为22337,会多一位

读砝码重时就完全读不出

读表头显示值可以准确读取

跪求大佬解惑

1分不嫌少!


楼主最近还看过

关育谋

  • [版主]
  • 精华:5帖
  • 求助:23帖
  • 帖子:794帖 | 5791回
  • 年度积分:83
  • 历史总积分:98225
  • 注册:2004年5月28日
发表于:2025-01-15 18:02:48
0楼

40086为地址,寄存器数量为2或者为4啊

回复本条

    

不会做上位机

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 0回
  • 年度积分:49
  • 历史总积分:99
  • 注册:2024年11月09日
发表于:2025-01-15 23:37:30
0楼

具体要看仪表modbus报文和寄存器地址

例如:名称 (电压)寄存器地址(2000H )数据类型是(Float)数据长度word 为2;那么200smart 里地址为40001/30001➕ (2000)的十进制数;手动MSG指令需要读取两个连续的地址放入指针&XXX,利用传送指令MOV_R去采集浮点数或者其他数据类型即可。如果是仪表INT或者其他就读取40001/30001➕仪表寄存器地址的十进制,读取一个整型地址,传送出来,日系仪表可能用到缩放去采集数据。

回复本条

    

不会做上位机

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:50
  • 历史总积分:100
  • 注册:2024年11月09日
发表于:2025-01-15 23:41:10
0楼

有没有可能用mov-r读取VD区是223.37V,而砝码检查地址是否错误,不连续的地址有没有写轮询读其他地址呢,监控之下看看有无错误代码

回复本条

    

ac米兰

  • 精华:4帖
  • 求助:0帖
  • 帖子:262帖 | 13294回
  • 年度积分:329
  • 历史总积分:47980
  • 注册:2004年4月26日
发表于:2025-01-16 06:58:20
0楼

modscan之类的软件连接看看数据

回复本条

    

剑圣打下

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 39回
  • 年度积分:0
  • 历史总积分:54
  • 注册:2018年5月19日
发表于:2025-01-16 11:26:37
0楼

建议好好看下西门子modbus通讯例程。

回复本条

    

hfhewei

  • 精华:0帖
  • 求助:65帖
  • 帖子:68帖 | 170回
  • 年度积分:248
  • 历史总积分:517
  • 注册:2009年8月26日
发表于:2025-01-17 14:27:03
0楼

可以问下电流表厂家

回复本条

    

biezheyang

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 5回
  • 年度积分:309
  • 历史总积分:359
  • 注册:2023年11月15日
发表于:2025-01-20 11:44:20
0楼

虽然还是没搞太明白为什么读取会多出一位,但是问题解决了,从vd300下发会存储在vb302的起始地址,一直以为是vb300,初学者的尴尬,这个怎么结不了帖话说

回复本条

    

biezheyang

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 6回
  • 年度积分:309
  • 历史总积分:359
  • 注册:2023年11月15日
发表于:2025-01-20 11:44:44
0楼

救命,原来是在这回复的嘛


回复本条

    

枫轻扬

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 46回
  • 年度积分:1
  • 历史总积分:517
  • 注册:2019年6月14日
发表于:2025-01-20 14:24:21
0楼

怎么又到VD302了 ,  你不是写的VB200   

回复本条

    

卖艺不卖萌

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 43回
  • 年度积分:12
  • 历史总积分:370
  • 注册:2012年12月13日
发表于:2025-01-21 08:47:32
0楼

估计是字节顺序的问题,PLC会有这种区别;西门子的32位字节顺序是ABCD,一些仪表的32位字节顺序是CDAB,如果实际值只有16位,按32位地址操作,高低字就需要调换。也有叫大小端的,其实是一个问题,不同厂家的略有区别。

回复本条

    

biezheyang

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 7回
  • 年度积分:311
  • 历史总积分:361
  • 注册:2023年11月15日
发表于:2025-01-21 11:18:40
0楼

image.png不是的,我只是打个比方。

image.png

噢噢噢,这样的嘛,我之前查资料的时候也看到过这个,但是试过好像不对,可能是我数据转换没搞好

写入的时候表的地址读取也只读前面一部分,比如写入12345,写过去就是1234,然后导致想写一个小值,但是要多写一位,就会超过65535,应该是65535,然后就写不进去,已经失去了所有的力气和手段哈哈

回复本条

    

biezheyang

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 8回
  • 年度积分:311
  • 历史总积分:361
  • 注册:2023年11月15日
发表于:2025-01-21 11:28:16
0楼

image.png为啥不能结帖

回复本条

    

灵匣

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 0回
  • 年度积分:2
  • 历史总积分:52
  • 注册:2021年8月13日
发表于:2025-01-21 11:43:39
0楼

你电表的要读取的电压地址,和modbus寄存器的地址,对应是否正确。若你要读的电压地址是16进制,你得换算成10进制+1,因为寄存器的地址是从1开始,有的第三方设备是从0开始的。

回复本条

    

tonyjiee

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 24回
  • 年度积分:4
  • 历史总积分:1777
  • 注册:2010年2月21日
发表于:2025-01-23 11:33:30
0楼

你可以先用串口助手连接读取一下,等数据都对上了,再来用PLC

回复本条

    

xinfeiyang0599

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:21
  • 历史总积分:21
  • 注册:2012年10月11日
发表于:2025-01-25 09:00:57
15楼

用串口调试工具是个好办法,先把数据正常读取

回复本条

    

Hu工

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 59回
  • 年度积分:1
  • 历史总积分:1527
  • 注册:2013年7月17日
发表于:2025-02-05 16:14:57
16楼

你可以先用串口助手连接读取一下,等数据都对上了,再来用PLC

回复本条

    

堂清华001

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 717回
  • 年度积分:2
  • 历史总积分:737
  • 注册:2024年12月16日

堂清华001

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 838回
  • 年度积分:115
  • 历史总积分:850
  • 注册:2024年12月16日

热门招聘
相关主题

官方公众号

智造工程师