代码转换指令:
序号 |
指令名称 |
功能号 |
功能 |
1 |
COD |
7 |
代码转换 |
2 |
DCNV |
14 |
数据转换 |
3 |
DEC |
4 |
译码 |
4 |
CODB |
27 |
二进制代码转换 |
5 |
DCNVB |
31 |
扩展数据转换 |
6 |
DECB |
25 |
二进制译码 |
4CODB(二进制代码转换:SUB27)
此指令将二进制格式的数据转换为1字节、2字节或4字节格式的二进制数据。
如图所示:转换数据地址、转换表、转换数据输出地址对于数据转换指令是必需的。
与COD指令相比,CODB指令可处理1、2或4字节长度的二进制格式数据,而且转换表的容量最大可控制至256。
指令格式:
控制条件:
(a) 复位(RST)
RST=0:不复位。
RST=1:将错误输出W1复位。
(b) 工作指令(ACT)
ACT=0:不执行CODB指令
ACT=1:执行CODB指令
参数:
(a) 格式指定
指定转换表中二进制数据长度。
1:1个字节的二进制;
2:2个字节的二进制;
4:4个字节的二进制。
(b) 数量表容量
指定转换表容量,最大可指定256(0到255)个字节。
(c) 转换数据输入地址
转换表中的数据可通过指定表号取出,指定表号的地址称为转换数据输入地址,该地址需要1字节的存储空间。
(d) 转换数据输出地址
存储表中输出的数据的地址称为转换数据输出地址。
以指定地址开始在格式规格中指定的存储器的字节数。
错误输出(W1)
如果转换输入数值超出了CODB指令转换数据表范围,输出W1=1
注意:
此指令后的WRT、NOT、SET、和RST指令不能使用多线圈输出,在此指令的输出线圈中仅可指定一个。
指令示例:
如图所示,BCD码格式的R1000设定为3,数据表容量设定为6,当K2.7置一时,可以将表中第三位的16读取到R1100中。
5DCNVB(扩展型数据转换:SUB31)
该指令将1、2、4字节长的二进制代码转换为BCD代码或相反的转换。为了执行本指令,必须给转换结果输出数据指定足够字节数的存储区域。
指令格式:
控制条件:
(a) 被转换数据的符号(SIN)
SIN只在将BCD代码数据转换为二进制代码数据时有意义,表示BCD代码数据的符号。尽管它在将二进制数据转换为BCD数据时无意义,但不能省略。
SIN=0:输入数据(BCD代码)为正。
SIN=1:输入数据(BCD代码)为负。
(b) 指定数据转换类型(CNV)
CNV=0:将二进制数据转换为BCD码。
CNV=1:将BCD码转换为二进制数据。
(c) 复位(RST)
RST=0:不复位。
RST=1:复位错误输出W1,即将W1置零。
(d) 执行命令(ACT)
ACT=0:数据未转变,W1未改变。
ACT=1:进行数据转变。
参数
(a) 格式指定
指定数据长度(1、2或4字节),在参数的第一位指定字节长度。
1:1字节长;
2:2字节长;
4:4字节长。
(b) 输入数据地址
指定输入数据的地址
(c) 转换结果输出地址
指定转换为BCD码或者二进制数据后的输出地址
错误输出(W1)
W1=0:转换正确。
W1=1:转换异常。
转换数据指定为BCD码却输入了二进制数据,或者将二进制数据转换为BCD码时超过了指定字节长度(产生溢出),W=1。
注意:
此指令后的WRT、NOT、SET、和RST指令不能使用多线圈输出,在此指令的输出线圈中仅可指定一个。
运算结果寄存器(R9000)
此寄存器在数据运算时被设定,如果寄存器被置1,如下所示。
当二进制数转换为BCD码时,正负号参见R9000。
指令示例:
如图所示,指定R1000为00001011,则为1加2加8得数字11,其中高位为1,低位为1,,则对应BCD码高位为1,低位为1,即为00010001。R1000经DCNV指令转换为BCD码为00010001,对应数值17。
6DECB(二进制译码:SUB25)
DECB可译码1、2或4字节的二进制代码数据。当指定的8个连续数据之一与代码数据相同时,对应的输出数据位为1,没有相同的数据时,输出数据为0。
此指令用于M或T功能的数据译码。
DECB指令有基本格式和扩展格式两种,扩展格式可以一次译码8的倍数个连续的数值,下面的内容将对格式参数的设定进行详细描述。
指令格式:
(a) DECB功能指令(基本格式)
(b) DECB功能指令(扩展格式)
控制条件:
(a) 执行命令(ACT)
ACT=0:复位所有的输出数据。
ACT=1:执行数据译码。
参数:
(a) 格式指定
参数第一位设定译码数据长度。
0001:译码数据为1字节二进制代码数据;
0002:译码数据为2字节二进制代码数据;
0004:译码数据为4字节二进制代码数据。
当设定为扩展格式时,DECB可以一次译码多个(8n)字节。
0nn1:译码8n个数据,译码数据为1字节二进制格式;
0nn2:译码8n个数据,译码数据为2字节二进制格式;
0nn4:译码8n个数据,译码数据为4字节二进制格式。
数据nn的指定范围为2到99,当设定nn为 00或01时,其仅可译码8个数据。
(b) 代码数据地址
指定被译码数据的地址。
(c) 译码指定值
指定将被译码的第一个数据值。
(d) 译码结果输出地址
指定译码结果输出地址。
输出地址需要占用1字节存储空间。当执行指令扩展格式时,需要占用的存储空间为nn个字节。
指令示例:
如图所示,指定R1000为12,从8开始计数八个数据,分别为8、9、10、11、12、13、14、15,则R1000与12数值一致,于是R1003第4位置1(从0开始算,第4位为第5个数),则BCD格式的R1003显示为10。
本文转自:FANUC数控技术
相关链接:
问答社区 发起问答 报警查询 技术文章 维修服务 资料下载 加交流群 申请 VIP
本文转载来自【北京FANUC】,仅供大家学习交流,如侵权请联系站长删文。
评论列表(1条)