找plc产品、学plc技术、看plc新闻-尽在PLC行业网!

PLC行业网-三菱plc编程入门,plc视频教程,plc学习,plc教程,plc编程实例

当前位置: PLC行业网 > plc教材 > 第5章 >

5.1.4 plc的转换指令

时间:2012-03-29 20:55来源:未知 作者:www.plcs.cn 点击:

5.1.4 PLC转换指令

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

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

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

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

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

LAD

STL

BTI  IN,OUT

ITB  IN,OUT

操作数及数据类型

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  字整数与双字整数之间的转换指令

LAD

STL

ITD  IN,OUT

DTI  IN,OUT

操作数及数据类型

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  双字整数与实数之间的转换指令

LAD

STL

DTR  IN,OUT

ROUND  IN,OUT

TRUNC  IN,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-10  BCD码与整数之间的转换的指令

LAD

STL

BCDI  OUT

IBCD  OUT

操作数及数据类型

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(十六进制)0000 0000 0000 0000~1001 1001 1001 1001(BCD码)。

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

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

                                             BCDI  OUT                            

5. 译码和编码指令

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

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

LAD

STL

DECO IN,OUT

ENCO IN,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#0000 0000 0000 0100;若(AC3)=2#0000 0000 0000 0100,执行编码指令,则输出字节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七段显示译码指令

LAD

STL

功能及操作数

SEG IN,OUT

功能:将输入字节(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所示。

LD     I0.1

SEG    0, AC1

 

图5-13  例5-9题图

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

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

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

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

LAD

STL

ATH IN,OUT,LEN

HTA IN,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所示。

LD     I1.0

ATH    VB10, VB20, 3

 

 

图5-14 例5-10题图

程序运行结果如下:

 

 

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

顶一下
(2)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
栏目列表
推荐内容
  • 5.4 习题

    1.已知VB10=18,VB20=30,VB21=33,VB32=98。将VB10,VB30,VB31,VB32中的数据分别送...

  • 5.3.4 字填充指令

    字填充指令。 字填充(FILL)指令用输入IN存储器中的字值写入输出OUT开始N个连续的字...

  • 5.3.3 表查找指令

    表查找指令。 表格查找(TBL-FIND)指令在表格(TBL)中搜索符合条件的数据在表中的位...

  • 5.3.2 表取数指令

    表取数指令 从数据表中取数有先进先出(FIFO)和后进先出(LIFO)两种。执行表取数指...

  • 5.3.1 填表指令

    填表指令 表填表(ATT)指令:向表格(TBL)中增加一个字(DATA)。如图5-25所示。 说...

  • 5.3 表功能指令

    表功能指令 数据表是用来存放字型数据的表格,如图5-23所示。表格的第一个字地址即首...