欧姆龙PLC怎么实现浮点数比较 点击:8700 | 回复:12



烘七公

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 8回
  • 年度积分:0
  • 历史总积分:36
  • 注册:2007年5月09日
发表于:2007-11-13 10:28:00
楼主
请教各位用过欧姆龙编程软件的高手,在cx-programmer 7.1怎么实现浮点数之间的比较?比如我要设置3.5的值跟现场传回来的模拟量(计算后是浮点数)进行比较。请问用什么指令,怎么转换?



Legoooooooooooooo

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 135回
  • 年度积分:0
  • 历史总积分:922
  • 注册:2006年7月08日
发表于:2007-11-13 14:54:00
1楼
Single:=F、<>F、<F、...
Double:=D、<>D、<D、...

三脚猫

  • 精华:0帖
  • 求助:0帖
  • 帖子:180帖 | 1598回
  • 年度积分:0
  • 历史总积分:1097
  • 注册:2004年7月08日
发表于:2007-11-13 18:10:00
2楼
呵呵,我也在用OMRON做项目
用OMRON PLC的模拟量,用不着浮点数,
因为变送器传回的模拟量是0-4000的整数,
而PV调节也用的是整数计算,
所以就用整数,小数点隐含的方式,
比如:温度的量程刚好是0-400,可以直接用
传回的整数做PV值,隐含一位小数,若传回的是
3501,实际温度就是350.1,显示时也可指定有一
位小数.总之,OMRON PLC设计时,都是按
整数考虑的   

Legoooooooooooooo

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 135回
  • 年度积分:0
  • 历史总积分:922
  • 注册:2006年7月08日
发表于:2007-11-16 00:07:00
3楼
浮点运算比较费时间,假设你需要两位小数的精度,你可以将数据x100,再需要正确显示结果的地方/100就行了,这样程序的扫描速度可以提高n倍!

李超X

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 84回
  • 年度积分:0
  • 历史总积分:101
  • 注册:2006年4月21日
发表于:2007-11-16 08:47:00
4楼
下面引用由天下三分明月夜在 2007-11-13 18:10:00 发表的内容:
  呵呵,我也在用OMRON做项目
用OMRON PLC的模拟量,用不着浮点数,
因为变送器传回的模拟量是0-4…
--------------------------------------------------------------------------------------------

李超X

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 84回
  • 年度积分:0
  • 历史总积分:101
  • 注册:2006年4月21日
发表于:2007-11-16 08:49:00
5楼
你可以考虑一个处理方法,把你需要显示的数据放大10倍或者100倍 在显示屏上加个小数点就可以了.比如当前温度200度,你可以在PLC里把源数放大10倍,那处理结果就成2000度,2000这个数在触摸屏显示的时候,设置整数3位小数1位,那显示值就是200.0度了

烘七公

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 8回
  • 年度积分:0
  • 历史总积分:36
  • 注册:2007年5月09日
发表于:2007-12-01 11:51:00
6楼
谢谢各位

KENOTE

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:17
  • 注册:2005年8月16日
发表于:2007-12-01 20:08:00
7楼
首先你必须确定你进行比较的数据是浮点数据格式,对于OMRON CJ/CS/CP1系列你只需在输入比较符号后面添加F即可,比如
LD 0.00
>F D0 D2
OUT 0.01

李超X

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 84回
  • 年度积分:0
  • 历史总积分:101
  • 注册:2006年4月21日
发表于:2007-12-06 09:48:00
8楼
多次运算可用F点,模拟量处理其实没这个必要

大志

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 144回
  • 年度积分:0
  • 历史总积分:539
  • 注册:2004年4月13日
发表于:2007-12-06 10:47:00
9楼
下面引用由烘七公在 2007-12-1 11:51:00 发表的内容:
  谢谢各位
--------------------------------------------------------------------------------------------

agan43984675

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 6回
  • 年度积分:5
  • 历史总积分:53
  • 注册:2008年11月09日
发表于:2009-02-11 11:37:56
10楼

我也想问个问题,我怎么实现D0和0.3的浮点数据比较。因为0.3好像不能直接写在指令里,望哪位指点下,谢谢

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10208回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2009-02-11 13:09:15
11楼
引用agan43984675 的回复内容:

我也想问个问题,我怎么实现D0和0.3的浮点数据比较。因为0.3好像不能直接写在指令里,望哪位指点下,谢谢



在指令中直接输入带有符号的浮点数就可以了,如+0.3

 

以上

agan43984675

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 6回
  • 年度积分:5
  • 历史总积分:53
  • 注册:2008年11月09日
发表于:2009-02-11 13:15:36
12楼
谢谢11楼,我又学到新的了,呵呵

热门招聘
相关主题

官方公众号

智造工程师