打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
高效操作 | PMC功能指令详解(八)代码转换指令二

FANUC数控技术的各位朋友们,在上个月我们为大家推出了系统常见问题排查的系列,是不是很有帮助呢?本月起,我们要推出一个新主题——常用PMC功能指令介绍。希望学习PMC编程或者正为梯形图所困的你,一定可以通过这一系列的介绍有所收获!


代码转换指令: 

序号

指令名称

功能号

功能

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指令可处理124字节长度的二进制格式数据,而且转换表的容量最大可控制至256


指令格式:

 

控制条件:

(a)   复位(RST)

RST=0:不复位。

RST=1:将错误输出W1复位。

(b)   工作指令(ACT)

ACT=0:不执行CODB指令

ACT=1:执行CODB指令

 

参数:

(a)   格式指定

指定转换表中二进制数据长度。

11个字节的二进制;

22个字节的二进制;

44个字节的二进制。

(b)   数量表容量

指定转换表容量,最大可指定2560255)个字节。

(c)   转换数据输入地址

转换表中的数据可通过指定表号取出,指定表号的地址称为转换数据输入地址,该地址需要1字节的存储空间。

(d)   转换数据输出地址

存储表中输出的数据的地址称为转换数据输出地址。

以指定地址开始在格式规格中指定的存储器的字节数。

 

错误输出(W1)

如果转换输入数值超出了CODB指令转换数据表范围,输出W1=1

注意:

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

指令示例:


如图所示,BCD码格式的R1000设定为3,数据表容量设定为6,当K2.7置一时,可以将表中第三位的16读取到R1100中。


5DCNVB(扩展型数据转换:SUB31)


该指令将124字节长的二进制代码转换为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)   格式指定

指定数据长度(124字节),在参数的第一位指定字节长度。

11字节长;

22字节长;

44字节长。

(b)   输入数据地址

指定输入数据的地址

(c)   转换结果输出地址

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

错误输出(W1)

W1=0:转换正确。

W1=1:转换异常。

转换数据指定为BCD码却输入了二进制数据,或者将二进制数据转换为BCD码时超过了指定字节长度(产生溢出),W=1

注意:

此指令后的WRTNOTSET、和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可译码124字节的二进制代码数据。当指定的8个连续数据之一与代码数据相同时,对应的输出数据位为1,没有相同的数据时,输出数据为0

此指令用于MT功能的数据译码。

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的指定范围为299,当设定nn 0001时,其仅可译码8个数据。

(b)   代码数据地址

指定被译码数据的地址。

(c)   译码指定值

指定将被译码的第一个数据值。

(d)   译码结果输出地址

指定译码结果输出地址。

输出地址需要占用1字节存储空间。当执行指令扩展格式时,需要占用的存储空间为nn个字节。

 

指令示例:


如图所示,指定R100012,从8开始计数八个数据,分别为89101112131415,则R100012数值一致,于是R10034位置1(从0开始算,第4位为第5个数),则BCD格式的R1003显示为10

 

更多系统高效操作,请点击

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


高效操作 | PMC功能指令详解(七)位操作指令


高效操作 | PMC功能指令详解(六)比较指令二


高效操作 | PMC功能指令详解(五)比较指令一


高效操作 | PMC功能指令详解(四)数据传送之二


高效操作 | PMC功能指令详解(三)数据传送之一


高效操作 | PMC功能指令详解(二)计数器篇


高效操作 | PMC功能指令详解(一)定时器篇


 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
FANUC 什么是BCD译码指令DEC
【精品博文】BCD译码的实现_移位加3算法
【细心看】容易让人糊涂的BCD码和十六进制数
S7-200系统中的数据及其格式
BCD码写的最大十进制数是9999最大十六进制数也是9999
5.7功能指令-代码变化指令
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服