FANUC 什么是BCD译码指令DEC


译码指令DEC

在FANUC梯形图中,“M代码”或者“T代码”经常要使用译码指令进行译码处理;而系统默认“M代码”对应的“F10”以及“T代码”对应的“F26”都是二进制型式,所以在梯形图中对代码进行译码时,经常使用二进制译码指令“DECB”。但在有些PMC程序中,会先将代码由二进制转换为BCD数据后,再使用BCD的译码指令“DEC”进行译码,为什么要绕一圈使用BCD译码而不直接使用二进制译码指令呢?

因为二进制译码指令一次可以连续译出8个连续的数字直接对应单个字节的地址,通过设定还可以一次编译出上百个数字,对于这些数字及地址比较庞大,设计人员在编写PMC程序时可能无法立即知道哪个地址对应哪个译码数据;而使用BCD译码指令,可以很直观看出译码地址,所以有些设计人员在编写PMC程序时,会使用这种方式。

那么BCD译码“DEC”指令中指定的数字是什么含义呢?

图中的“2611”并不是将数字“2611”进行译码,“2611”是个组合数字,分为两部分含义,需要进行拆开解读。

译码数据为“26”是个十位数字,十位数字是“2”对应高位,个位数字是“6”对应低位;图中译码方式为“11”,对高低两位同时译码,译码数据为“26”,当“D800=26”时,数据与译码数据相同,线圈R385.0输出

若将“2611”更改为“2601”,即只对“26”及“D800”的低位(个位)进行译码,高位(十位)忽略,个位数为“6”,即当“D800”个位数为6时,线圈R385.0输出。

同理,若将“2611”更改为“2610”,则只有当“D800”十位数为2时,线圈R385.0才会输出。

DEC指令只可对BCD两位数进行译码,对于超过两位数的BCD代码无法使用!

发表回复

登录... 后才能评论