精易论坛

标题: FX3U PLC求助 D寄存有32位浮点怎样才能读出 [打印本页]

作者: nywl2008    时间: 2021-1-25 22:48
标题: FX3U PLC求助 D寄存有32位浮点怎样才能读出
FX3U PLC求助 D寄存有32位浮点怎样才能读出。
我用的是TCP连接,读出来是字节集。请问师兄们怎么才能正确读出并换算成10进制的。

下面是写入32位浮点地址和我写出的功能的,麻烦问下怎样才能返回读出来

AMX-FX3U带网口.e (134.32 KB, 下载次数: 27)



.版本 2
.子程序 XF3U写入浮点, 字节集, 公开, 支持D
.参数 元件, 文本型, , 支持D
.参数 数据, 小数型
.局部变量 存储器类型, 文本型
.局部变量 地址, 文本型
.局部变量 临时数据, 文本型
.局部变量 取出数据, 整数型
.局部变量 i, 整数型
.局部变量 临时写出, 文本型
.局部变量 取出文本, 文本型
.局部变量 转换数据, 文本型
.局部变量 写出数据, 字节集
存储器类型 = 到大写 (取文本左边 (元件, 1))
地址 = 取文本右边 (“0000” + 取文本右边 (元件, 取文本长度 (元件) - 1), 4)
.如果 (到整数 (地址) < 8000 且 存储器类型 = “D”)
    转换数据 = 字节集到十六进制文本 (数值到字节集 (数据))
    临时数据 = “E10” + 取文本右边 (“0000” + 取十六进制文本 (16384 + 到整数 (地址) × 2), 4) + “04” + 转换数据 + 字符 (3)
.否则
    返回 ({  })
.如果结束

.计次循环首 (18, i)
    取出数据 = 取出数据 + 取代码 (临时数据, i)
.计次循环尾 ()
取出文本 = 取文本右边 (“00” + 取十六进制文本 (取出数据), 2)
临时写出 = 字符 (2) + 临时数据 + 取出文本
写出数据 = 到字节集 (临时写出)
返回 (写出数据)


作者: nywl2008    时间: 2021-1-26 23:44
已经解决。转换位单精度就ol了

作者: zhplei    时间: 2021-7-31 23:28
学习一下,又不懂的再请教
作者: 刀子嘴豆腐心    时间: 2022-3-6 12:06
大佬,tcp了解用哪个模块啊?
作者: 刀子嘴豆腐心    时间: 2022-3-6 12:07
谢谢分享,感谢楼主,学习了。
作者: nywl2008    时间: 2022-3-21 14:07
刀子嘴豆腐心 发表于 2022-3-6 12:06
大佬,tcp了解用哪个模块啊?

没有用模块,上面不是有开源吗
作者: 欸嘿    时间: 2022-5-10 11:37
学习一下,又不懂的再请教
作者: zhaode2888    时间: 2022-11-13 16:02
谢谢分享
作者: wis98    时间: 2023-1-29 18:59

谢谢分享
作者: unhujun    时间: 2025-1-9 15:03
谢谢分享,下载学习




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4