当前位置: 首页 > 资讯

高效操作 | PMC功能指令详解(八)代码转换指令一

FANUC数控技术       2017-07-04

代码转换指令:

高效操作 | PMC功能指令详解(八)代码转换指令一

1.COD(代码转换:SUB 7)

转换BCD代码为任意的2或4位BCD数值,如图所示,进行代码转换必须输入数据输入地址、转换表和转换数据输出地址。

在“转换输入数据地址”中以两位BCD代码形式指定一表内地址,根据该地址从转换表中取出转换数据。转换表以2位数或4位数形式依次输入。按转换输入数据地址“取出的数据”输出到“转换数据输出地址”中。如图所示,当2输入到输入数据地址中,在转换表第三位上的数据137被输出到转换数据输出地址中。

高效操作 | PMC功能指令详解(八)代码转换指令一

指令格式:

高效操作 | PMC功能指令详解(八)代码转换指令一

控制条件:

(a) 确定数据形式**(BYT)**

BYT=0:指定转换表中数据为2位BCD码。

BYT=1:指定转换表中数据为4位BCD码。

(b) 错误输出复位**(RST)**

RST=0:取消复位。

RST=1:将错误输出W1置为0(复位)。

(c) 执行命令**(ACT)**

ACT=0:COD指令未执行,W1未改变。

ACT=1:执行。

参数:

(a) 数据表容量

数据转换表地址指定范围为0到99。当表内地址最后一位为n时,则数据表容量为n+1。

(b) 转换数据输入地址

“转换数据输入地址”内含有转换数据的表地址。转换表中的数据可通过该地址查到,然后输出。

“转换数据输入地址”中需要指定1字节(2位BCD码)数据。

(c) 转换数据输出地址

“转换数据输出地址”是存储由数据表输出数据的地址。

2位BCD码的转换数据,在转换数据输出地址中需要1字节的存储空间。4位BCD码的转换数据需要2个字节的存储空间。

输出**(W1**):

在执行COD指令时,如果转换输入地址出现错误,W1=1。

例如:若在顺序程序中转换输入数据地址指定了超过数据表容量的数据,则W1=1。当W1=1时,顺序程序应执行适当的互锁:如使机床操作面板上的出错灯闪亮或停止伺服轴进给。

注意:

此指令后的WRT、NOT、SET、和RST指令不能使用多线圈输出,在此指令的输出线圈中仅可指定一个。

指令示例:

将BCD格式的R1000指定为3,则表示要读取下面表格中第三个数值,第三个数值为76,因此R1100被赋值76。

高效操作 | PMC功能指令详解(八)代码转换指令一

2.DCNV(数据转换:SUB14)

将二进制代码转换为BCD代码或将BCD代码转换为二进制代码。

指令格式:

高效操作 | PMC功能指令详解(八)代码转换指令一

控制条件:

(a) 确定数据大小**(BYT)**

BYT=0:处理数据长度为1字节(8位)。

BYT=1:处理数据长度为2字节(16位)。

(b) 指定数据转换类型**(CNV)**

CNV=0:将二进制代码转换为BCD码。

CNV=1:将BCD码转换为二进制代码。

(c) 复位**(RST)**

RST=0:不复位。

RST=1:复位错误输出线圈W1,即当W1=1时将RST置1,从而使得W1=0。

(d) 执行指令**(ACT)**

ACT=0:数据未转变,W1不变。

ACT=1:执行数据转换。

参数:

(a) 输入数据地址

指定输入数据的地址。

(b) 转换后数据的输出地址

指定转换为BCD码或者二进制后的数据的输出地址。

输出**(W1**):

W1=0:转换正常。

W1=1:转换错误。

被转换数据应为BCD码而实际是二进制码时,或者二进制码转换为BCD码时超过预先指定的数据大小(字节长度)时,W1=1。

注意:

此指令后的WRT、NOT、SET、和RST指令不能使用多线圈输出,在此指令的输出线圈中仅可指定一个。

指令示例:

高效操作 | PMC功能指令详解(八)代码转换指令一

如图所示,指定R1000为00001011,则为1加2加8得数字11,其中高位为1,低位为1,,则对应BCD码高位为1,低位为1,即为00010001。R1000经DCNV指令转换为BCD码为00010001,对应数值17。

3.DEC(BCD译码:SUB4)

当2位BCD码等于指定数据时输出1,当不等于时输出0。此指令主要用于M或T指令的译码,此指令数据类型为BCD码。

指令格式:

高效操作 | PMC功能指令详解(八)代码转换指令一

控制条件:

ACT=0:关闭译码结果输出(W1)。

ACT=1:执行译码。

当指定的数据等于译码信号时,W1=1;不相等时,W1=0。

参数:

(a) 代码信号地址

指定两位BCD码信号地址

(b) 译码格式

包括2部分,译码数值和译码位数。

高效操作 | PMC功能指令详解(八)代码转换指令一

(**i**)译码数值

指定译码数值,必须以两位进行指定。

(**ii**)译码位数

01:只译低位数,高位数为0;

10:只译高位数,低位数为0;

11:高低位均译码。

W1**(译码结果输出)**

当指定地址的译码信号等于指定数值时,W1为1,否则为0。W1的地址可自行设定。

指令示例:

高效操作 | PMC功能指令详解(八)代码转换指令一

如图所示,当指令0201时,前面的02表示数值2,后面的01表示只进行低位比较,当R1000被赋值2时,输出E0.0为1,表示满足两者相等的条件。