mubaixd
级别: 正式会员
精华主题: 0
发帖数量: 16 个
工控威望: 62 点
下载积分: 372 分
在线时间: 9(小时)
注册时间: 2024-08-01
最后登录: 2025-01-13
查看mubaixd的 主题 / 回贴
楼主  发表于: 8天前
图片:
图片:
图片:
在C#内可以读写PLC内的VW类型数据,但是读不到v,VD,VB类型的数据  跪求各位大佬来指点  已经研究好久了
13821917697
承接电气自动化项目、电气接线图设计、IO点表、电气元器件选型
级别: 工控侠客
精华主题: 0
发帖数量: 761 个
工控威望: 3149 点
下载积分: 13480 分
在线时间: 1122(小时)
注册时间: 2019-12-26
最后登录: 2025-01-18
查看13821917697的 主题 / 回贴
1楼  发表于: 8天前
VW你都能读到了 你在写个方法 把字整合处理一下不就有VD VB了吗
mubaixd
级别: 正式会员
精华主题: 0
发帖数量: 16 个
工控威望: 62 点
下载积分: 372 分
在线时间: 9(小时)
注册时间: 2024-08-01
最后登录: 2025-01-13
查看mubaixd的 主题 / 回贴
2楼  发表于: 7天前
引用
引用第1楼13821917697于2025-01-11 20:42发表的  :
VW你都能读到了 你在写个方法 把字整合处理一下不就有VD VB了吗

就是不知道要怎么写   我看这个easymodbus库里有读取线圈啥的指令  但是就不好用
liuweiplc
级别: 论坛先锋
精华主题: 0
发帖数量: 9 个
工控威望: 1364 点
下载积分: 689 分
在线时间: 6(小时)
注册时间: 2021-07-13
最后登录: 2025-01-18
查看liuweiplc的 主题 / 回贴
3楼  发表于: 6天前
方法一:如果需要VD可以将二个VW拆分成byte,然后将四个字节合并获取到VD,上代码:
                int[] RM = rtuMc.ReadHoldingRegisters(0,12);                                      //读保持寄存器
                byte[] bytes1 = BitConverter.GetBytes(RM[0]);
                byte[] bytes2 = BitConverter.GetBytes(RM[1]);
                byte[] Data0 = new byte[] { bytes2[0], bytes2[1], bytes1[0], bytes1[1] };  
                float Float0 = BitConverter.ToSingle(Data0, 0);  //输出浮点数;
mubaixd
级别: 正式会员
精华主题: 0
发帖数量: 16 个
工控威望: 62 点
下载积分: 372 分
在线时间: 9(小时)
注册时间: 2024-08-01
最后登录: 2025-01-13
查看mubaixd的 主题 / 回贴
4楼  发表于: 6天前
引用
引用第3楼liuweiplc于2025-01-13 07:17发表的  :
方法一:如果需要VD可以将二个VW拆分成byte,然后将四个字节合并获取到VD,上代码:
                int[] RM = rtuMc.ReadHoldingRegisters(0,12);                                      //读保持寄存器
                byte[] bytes1 = BitConverter.GetBytes(RM[0]);
                byte[] bytes2 = BitConverter.GetBytes(RM[1]);
                byte[] Data0 = new byte[] { bytes2[0], bytes2[1], bytes1[0], bytes1[1] };  
.......

十分感谢