威纶通官方论坛

执行一个宏时候的奇怪问题,请帮忙看看

[复制链接]
发表于 2011-2-12 16:14:43 | 显示全部楼层 |阅读模式
定义了一个宏,功能为把3个温度数值由摄氏转换成华氏

宏如下:

Sub int c2f( int i )
float j
int k
j=i/100
j=j*9/5+32
j=j*100
k=j
Return k
End Sub

Macro_Command main()

int tc,tf,hc,hf,rc,rf

//GetData(tc ,LW_Binplc ,0,1)  
//tf=c2f(tc)
//SetData(tf ,LW_Binplc ,7,1)  

//GetData(hc ,
 楼主| 发表于 2011-2-14 21:32:15 | 显示全部楼层
刚才我把它分成3个独立的宏,用同一个触发条件来执行就没有问题
但是还是非常难以理解为什么会这样
 楼主| 发表于 2011-2-14 21:32:15 | 显示全部楼层
还有一个问题:
以上宏执行结果:
LW0输入3750,LW7输出9860,正确
      输入3760,      输出还是9860
      输入3780,      输出还是9860

是在是很奇怪啊........
 楼主| 发表于 2011-2-14 21:32:15 | 显示全部楼层
技术人员路过帮个忙看看啊...
 楼主| 发表于 2011-2-14 21:32:15 | 显示全部楼层
难道是软件的一个BUG?

那3楼的问题是为什么呢
浮点运算有问题吗?
 楼主| 发表于 2011-2-14 21:32:15 | 显示全部楼层
bug...
发表于 2011-2-14 21:32:15 | 显示全部楼层
我们的屏500的系列在宏运算上不支持;short 和INT 型的数据类型;所以在运算的时候会出错或造成死机;建议你用short int;来运算;或者你把这个称许用我们6000/8000的软件平台运行是可以的。
发表于 2011-2-14 21:32:15 | 显示全部楼层
请教宏指令等方面的问题,高手可以加下我吗? 63130065
您需要登录后才可以发帖 登录 | 注册

本版积分规则

回复帖子

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

GMT+8, 2024-12-23 16:08

Powered by Discuz! X3.4

© 2001-2023 Comsenz Inc.

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