羅蓋仙 发表于 2013-7-19 17:02:04

如果#2只能輸入0.或1.,如何檢驗?

本帖最后由 羅蓋仙 于 2013-7-19 17:10 编辑

我寫某程序有用到,我是寫來玩的,我個人在那某程序中把B(#2)當成附加功能
我的目的是輸入0是關閉附加功能;輸入1是打開附加功能

如果限制#2只能輸入0.或1.,其他的數值禁止的話,如何檢驗?
我的方法1:(老套的方法,比較嚴格)
IF[[#2NE0.]AND[#2NE1.]]THEN#3000=1.

方法2:
IF[#2 OR 1. NE 1.]THEN#3000=1.
例子a:如果#2=-1.
#1=#2OR1.   #1=-1
例子b:如果#2=0.5
#1=#2OR1.   此時#2會變成1.   #1=1.
例子c:如果#2=1.5
#1=#2OR1.   此時#2會變成2.   #1=3.
方法2可能不太穩

我再改良方法2:前面加入FIX
#2=FIX[#2]
IF[[#2 OR 1. NE 1.]]THEN#3000=1.

請高手指點其他的方法:)

空气中的小鱼 发表于 2013-7-19 17:28:47

IF NE 1]GO 3001

空气中的小鱼 发表于 2013-7-19 21:47:04

IF[[#2NE0.]AND[#2NE1.]]THEN#3000=1.
对于三菱不会有问题,
对于FANUC,要根据参数设置,才能识别逻辑判断
而且对于FANUC逻辑运算比如对于小数型的,在逻辑运算前首先会对数据进行四舍五入取整操作后才进行逻辑运算,所以会出问题,而对于OKUMA,对于有小数的逻辑判断前,系统先对数值进行FIX取整,这点和FANUC不同,所以,往往在逻辑判断,当数值是小数型的时候,会出现不可预期的后果,正如楼主说的不稳定是相同一个意思。

wslaoa 发表于 2013-7-19 23:52:40

呵呵 ,小鱼老师的经验之谈,获益匪浅

羅蓋仙 发表于 2013-7-20 07:03:41

回复 3# 空气中的小鱼

我想吃鮮魚:loveliness:

lengyuewutong 发表于 2013-7-22 21:11:12

其他类型就不执行,无视之
IF[#2EQ0]GOTO100
IF[#2EQ1]GOTO200
M99
页: [1]
查看完整版本: 如果#2只能輸入0.或1.,如何檢驗?