威纶通官方论坛

用宏运算寄存器值的问题

[复制链接]
发表于 2013-12-13 14:26:44 | 显示全部楼层 |阅读模式
小弟刚刚接触到宏,有很多不懂希望大家指导。正题,我想用modbus 读取寄存器里的值。在通过一些计算得到我想要的值。数显元件设置的float型,这个以设好的了的,没得问题,但就是没得反应,下面是我宏,大家帮我看看。   
        macro_command main()
           short a[2]
           float b[2]
           a[0]=1023
           a[1]=20
           GetData(b[0], "MODBUS RTU", 4x, 6, 1)
           b[1]=a[1]*b[0]/a[0]
           SetData(b[1], "Local HMI", LW, 12, 1)
           end macro_command
发表于 2013-12-13 15:34:23 | 显示全部楼层
short是短整数,FLOAT是浮点数,两个数据类型都不一样是不能进行运算的。你看这样行不行。
FLOAT a[2]
a[0]=1023.0
a[1]=20.0
将A改为两个浮点数。
 楼主| 发表于 2013-12-13 21:07:05 | 显示全部楼层
回复 2# ljclwyf


    short  和  float  它们是可以进行一起运算的,我试过。我把通过modbus读取的数据设为 short,然后把 20 或者1023 设为浮数 float,这样可以显示,但是不知道我上面原先的宏有什么问题。
发表于 2013-12-15 16:41:00 | 显示全部楼层
你从Modbus取回来的float型的值对不对
您需要登录后才可以发帖 登录 | 注册

本版积分规则

回复帖子

Archiver|小黑屋|威纶通官网 ( 粤ICP备06054553号 )

GMT+8, 2024-5-19 23:53

Powered by Discuz! X3.4

© 2001-2023 Comsenz Inc.

快速回复 返回顶部 返回列表