耶稣爱子 发表于 2015-6-23 21:55:21

请教,“#101=#1032AND255.0”语句的作用是什么?

本帖最后由 耶稣爱子 于 2015-6-24 06:24 编辑

在#1032等于1至5的情况下,“#101=#1032AND255.0”语句的作用是什么?等效“#101=#1032”吗?

冷月梧桐 发表于 2015-6-23 23:45:10

这个不相等的,属于逻辑运算,一般情况下不建议使用逻辑运算。主要是逻辑运算的返回值是二进制,用不好也不好用

耶稣爱子 发表于 2015-6-24 06:14:41

冷月梧桐 发表于 2015-6-23 23:45 static/image/common/back.gif
这个不相等的,属于逻辑运算,一般情况下不建议使用逻辑运算。主要是逻辑运算的返回值是二进制,用不好也不 ...

望大侠详解,我看就是将#1032的值赋给#101了,看不出两者的差异,

枯藤 发表于 2015-6-24 06:15:42

#1032和225.0的值都是1的情况下,#101=1,其余情况#101=0

耶稣爱子 发表于 2015-6-24 06:21:23

是这样吗?不是二进制一位一位的比较吗?

门童 发表于 2015-6-24 07:15:19

本帖最后由 门童 于 2015-6-24 07:31 编辑

这个不等效的,前者把低8位(一个字节)的值赋给#101,后者把全部值赋给#101,如果#1032的值总是小于等于255,则两者等效,若大于则不等效,前者可以认为是#1032对256求余,后者楼主你懂的;从逻辑运算的角度看,”位与”255(11111111),则不管#1032高于8位的数是1还是0,结果都是0,从低8位看,由于255都是1,所以位与结果#1032的低8位相应的值是什么就是什么!举个例子#1032=256(1 0000 0000)&255(0 1111 1111)=0
#1032=7(0000 0111)&255(1111 1111)=7(111)
#1032=258(1 0000 0010)&255(0 1111 1111)=2(10)

虚缈 发表于 2015-8-12 20:25:41

其实这是个标准化的机床宏程序语句,#1032在FUNUC系统是读取机床当前的系统宏状态,一般用在读取当前的刀号,语言是2进制的,现在机床系统有的是8位有的是16位甚至有的是32位,机床的刀具数量一般是几十把,当#1032的值和255作逻辑运算时,大于256的数都舍去只留下小于255的余数,结果也是这个余数,用255是看刀库刀具数量,如果少于60把时用255和用63结果一样,用255说明机床是8位的16位的一般用511。
页: [1]
查看完整版本: 请教,“#101=#1032AND255.0”语句的作用是什么?