5.1.4plc的转换指令

5.1.4PLC转换指令

转换指令是对操作数的类型进行转换,并输出到指定目标地址中去。转换指令包括数据的类型转换、数据的编码和译码指令以及字符串类型转换指令。

不同功能的指令对操作数要求不同。类型转换指令可将固定的一个数据用到不同类型要求的指令中,包括字节与字整数之间的转换,整数与双整数的转换,双字整数与实数之间的转换,BCD码与整数之间的转换等。

1.字节与字整数之间的转换

字节型数据与字整数之间转换的指令格式见表5-7所示。

表5-7字节型数据与字整数之间转换指令

操作数及数据类型

IN:VB,IB,QB,MB,SB,SMB,LB,AC,常量,数据类型:字节

OUT:VW,IW,QW,MW,SW,SMW,LW,T,C,AC,数据类型:整数

IN:VW,IW,QW,MW,SW,SMW,LW,T,C,AIW,AC,常量,数据类型:整数

OUT:VB,IB,QB,MB,SB,SMB,LB,AC,数据类型:字节

功能及

说明

BTI指令将字节数值(IN)转换成整数值,并将结果置入OUT指定的存储单元。因为字节不带符号,所以无符号扩展

ITB指令将字整数(IN)转换成字节,并将结果置入OUT指定的存储单元。输入的字整数0至255被转换。超出部分导致溢出,SM1.1=1。输出不受影响

ENO=0的错误条件

0006间接地址

SM4.3运行时间

0006间接地址

SM1.1溢出或非法数值

SM4.3运行时间

2.字整数与双字整数之间的转换

字整数与双字整数之间的转换格式、功能及说明,如表5-8所示。

3.双整数与实数之间的转换

双整数与实数之间的转换的转换格式、功能及说明,如表5-9所示。

表5-8字整数与双字整数之间的转换指令

操作数及数据类型

IN:VW,IW,QW,MW,SW,SMW,LW,T,C,AIW,AC,常量,数据类型:整数

OUT:VD,ID,QD,MD,SD,SMD,LD,AC,数据类型:双整数

IN:VD,ID,QD,MD,SD,SMD,LD,HC,AC,常量,数据类型:双整数

OUT:VW,IW,QW,MW,SW,SMW,LW,T,C,AC,数据类型:整数

功能及

说明

ITD指令将整数值(IN)转换成双整数值,并将结果置入OUT指定的存储单元。符号被扩展

DTI指令将双整数值(IN)转换成整数值,并将结果置入OUT指定的存储单元。如果转换的数值过大,则无法在输出中表示,产生溢出SM1.1=1,输出不受影响

ENO=0的错误条件

0006间接地址

SM4.3运行时间

0006间接地址

SM1.1溢出或非法数值

SM4.3运行时间

表5-9双字整数与实数之间的转换指令

ROUNDIN,OUT

TRUNCIN,OUT

操作数及数据类型

IN:VD,ID,QD,MD,SD,SMD,LD,HC,AC,常量

数据类型:双整数

OUT:VD,ID,QD,MD,SD,SMD,LD,AC

数据类型:实数

IN:VD,ID,QD,MD,SD,SMD,LD,AC,常量

数据类型:实数

OUT:VD,ID,QD,MD,SD,SMD,LD,AC

数据类型:双整数

IN:VD,ID,QD,MD,SD,SMD,LD,AC,常量

数据类型:实数

OUT:VD,ID,QD,MD,SD,SMD,LD,AC

数据类型:双整数

功能及

说明

DTR指令将32位带符号整数IN转换成32位实数,并将结果置入OUT指定的存储单元

ROUND指令按小数部分四舍五入的原则,将实数(IN)转换成双整数值,并将结果置入OUT指定的存储单元

TRUNC(截位取整)指令按将小数部分直接舍去的原则,将32位实数(IN)转换成32位双整数,并将结果置入OUT指定存储单元

ENO=0的错误条件

0006间接地址

SM4.3运行时间

0006间接地址

SM1.1溢出或非法数值

SM4.3运行时间

0006间接地址

SM1.1溢出或非法数值

SM4.3运行时间

值得注意的是:不论是四舍五入取整,还是截位取整,如果转换的实数数值过大,无法在输出中表示,则产生溢出,即影响溢出标志位,使SM1.1=1,输出不受影响。

4.BCD码与整数的转换

BCD码与整数之间的转换的指令格式、功能及说明,如表5-10所示。

表5-10BCD码与整数之间的转换的指令

操作数及数据类型

IN:VW,IW,QW,MW,SW,SMW,LW,T,C,AIW,AC,常量

OUT:VW,IW,QW,MW,SW,SMW,LW,T,C,AC

IN/OUT数据类型:字

功能及

说明

BCD-I指令将二进制编码的十进制数IN转换成整数,并将结果送入OUT指定的存储单元。IN的有效范围是BCD码0至9999

I-BCD指令将输入整数IN转换成二进制编码的十进制数,并将结果送入OUT指定的存储单元。IN的有效范围是0至9999

ENO=0的错误条件

0006间接地址,SM1.6无效BCD数值,SM4.3运行时间

注意:(1)数据长度为字的BCD格式的有效范围为:0~9999(十进制),0000~9999(十六进制)0000000000000000~1001100110011001(BCD码)。

(2)指令影响特殊标志位SM1.6(无效BCD)。

(3)在表5-10的LAD和STL指令中,IN和OUT的操作数地址相同。若IN和OUT操作数地址不是同一个存储器,对应的语句表指令为:MOVINOUT

5.译码和编码指令

译码和编码指令的格式和功能如表5-11所示。

表5-11译码和编码指令的格式和功能

DECOIN,OUT

ENCOIN,OUT

操作数及数据类型

IN:VB,IB,QB,MB,SMB,LB,SB,AC,常量。数据类型:字节

OUT:VW,IW,QW,MW,SMW,LW,SW,AQW,T,C,AC。数据类型:字

IN:VW,IW,QW,MW,SMW,LW,SW,AIW,T,C,AC,常量。数据类型: 字

OUT:VB,IB,QB,MB,SMB,LB,SB,AC。数据类型:字节

功能及

说明

译码指令根据输入字节(IN)的低4位表示的输出字的位号,将输出字的相对应的位,置位为1,输出字的其他位均置位为0

编码指令将输入字(IN)最低有效位(其值为1)的位号写入输出字节(OUT)的低4位中

ENO=0的错误条件

0006间接地址,SM4.3运行时间

【例5-8】译码编码指令应用举例。如图5-11所示。

若(AC2)=2,执行译码指令,则将输出字VW40的第二位置1,VW40中的二进制数为2#0000000000000100;若(AC3)=2#0000000000000100,执行编码指令,则输出字节VB50中的错误码为2。

6.七段显示译码指令

图5-12与七段显示码对应的代码

七段显示器的abcdefg段分别对应于字节的第0位~第6位,字节的某位为1时,其对应的段亮;输出字节的某位为0时,其对应的段暗。将字节的第7位补0,则构成与七段显示器相对应的8位编码,称为七段显示码。数字0~9、字母A~F与七段显示码的对应如图5-12所示。

七段译码指令SEG将输入字节16#0~F转换成七段显示码。指令格如表5-12所示。

表5-12七段显示译码指令

功能及操作数

功能:将输入字节(IN)的低四位确定的16进制数(16#0~F),产生相应的七段显示码,送入输出字节OUT

IN:VB,IB,QB,MB,SB,SMB,LB,AC,常量。

OUT:VB,IB,QB,MB,SMB,LB,AC。IN/OUT的数据类型:字节

使ENO=0的错误条件:0006间接地址,SM4.3运行时间。

【例5-9】编写显示数字0的七段显示码的程序。程序实现如图5-13所示。

图5-13例5-9题图

程序运行结果为AC1中的值为16#3F(2#00111111)。

7.ASCII码与十六进制数之间的转换指令

ASCII码与十六进制数之间的转换指令指令格式和功能如表5-13所示。

表5-13ASCII码与十六进制数之间转换指令的格式和功能

ATHIN,OUT,LEN

HTAIN,OUT,LEN

操作数及数据类型

IN/OUT: VB,IB,QB,MB,SB,SMB,LB。数据类型:字节

LEN:VB,IB,QB,MB,SB,SMB,LB,AC,常量。数据类型:字节。最大值为255

功能及

说明

ASCII至HEX(ATH)指令将从IN开始的长度为LEN的ASCII字符转换成十六进制数,放入从OUT开始的存储单元

HEX至ASCII(HTA)指令将从输入字节(IN)开始的长度为LEN的十六进制数转换成ASCII字符,放入从OUT开始的存储单元

ENO=0的错误条件

0006间接地址,SM4.3运行时间,0091操作数范围超界

SM1.7非法ASCII数值(仅限ATH)

注意:合法的ASCII码对应的十六进制数包括30H到39H,41H到46H。如果在ATH指令的输入中包含非法的ASCII码,则终止转换操作,特殊内部标志位SM1.7置位为1。

【例5-10】将VB10~VB12中存放的3个ASCII码33、45、41,转换成十六进制数。

梯形图和语句表程序如图5-14所示。

ATHVB10,VB20,3

图5-14例5-10题图

程序运行结果如下:

可见将VB10~VB12中存放的3个ASCII码33、45、41,转换成十六进制数3E和Ax,放在VB20和VB21中,“x”表示VB21的“半字节”即低四位的值未改变。

本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!

相关阅读

添加新评论