欢迎来到HB火博APP官网西北工控技术的首选西安plc控制柜价格专业,已累计设计2000多台西安plc配电柜,陕北石油使用西安电控柜技术安全
Product classification

产品中心

contact us

联系我们

一文详解PLC转换指令

发布时间:2024-04-24 08:29:13   来源:HB火博APP官网
产品描述

  的主要数据类型有字节型、整数型、双整数型和实数型,数据的编码类型主要有二进制、十进制、十六进制、BCD码和ASCII码等。在时,指令对操作数类型有一定的要求,如字节型与字型数据不能直接进行相加运算。为了让指令能对不一样数据来进行处理,要先对数据的类型进行转换。 转换指令是一种转换不一样数据的指令。转换指令可分为标准转换指令、ASCII码转换指令、字符串转换指令和编码与解码指令。

  数字转换指令有字节与整数间的转换指令、整数与双整数间的转换指令、BCD码与整数间的转换指令和双整数转实数指令。 BCD码是一种用4位二进制数组合来表示十进制数的编码。BCD码的0000~1001分别对应十进制数的0~9。一位十进制数的二进制编码和BCD码是相同的,例如6的二进制编码为0110,BCD码也为0110;但多位十进制数两种编码是不同的,例如64的8位二进制编码为0100 0000,BCD码则为0110 0100。由于BCD码采用4位二进制数来表示1位十进制数,故16位BCD码能表示十进制数的范围是0000~9999。

  数字转换指令的使用如图6-14所示,当I0.0触点闭合时,执行I_DI指令,将C10中的整数转换成双整数,然后存入AC1中。当I0.1触点闭合时,执行BCD_I指令,将AC0中的BCD码转换成整数。例如,指令执行前AC0中的BCD码为0000 0001 0010 0110(即126),执行BCD_I指令后,AC0中的BCD码被转换成整数0。

  四舍五入取整指令的使用如图6-15所示,当I0.0触点闭合时,执行ROUND指令,将VD8中的实数采用四舍五入取整的方式转换成双整数,然后存入VD12中。

  段译码指令的功能是将IN端指定单元中的低4位数转换成能驱动七段数码显示器显示对应字符的七段码。

  七段数码显示器是一种采用七段发光体来显示十进制数0~9的显示装置,其结构和外形如图6-16所示。当某段加有高电平“1”时,该段发光。例如,要显示十进制数“5”,可让gfedcba=1101101,这里的1101101为七段码,七段码只有七位,通常在最高位补0组成8位(一个字节)。段译码指令IN端指定单元中的低4位其实就是十进制数的二进制编码值,经指令转换后变成七段码存入OUT端指定的单元中。十进制数、二进制数、七段码及显示字符的对应关系见表6-31。

  段译码指令的使用如图6-17所示,当I0.0触点闭合时,执行SEG指令,将VB40中的低4位数转换成七段码,然后存入AC0中。例如,VB40中的数据为00000110,执行SEG指令后,低4位0110转换成七段码01111101,存入AC0中。

  ASCII码转换指令包括整数、双整数、实数转ASCII码指令和十六进制数与ASCII码转换指令。

  1.关于ASCII码知识 ASCII码意为美国标准信息交换码,是一种使用7位或8位二进制数编码的方案,最多可以对256个字符(包括字母、数字、标点符号、控制字符及其他符号)进行编码。ASCII编码表见表6-33。计算机等很多数字设备的字符采用ASCII编码方式,例如,当按下键盘上的“8”键时,键盘盘内的编码电路就将该键编码成011 1000,再送入计算机处理。如果在7位ASCII码最高位加0就是8位ASCII码。

  在ITA指令中,IN端为整数型操作数,FMT端指定字节单元中的数据用来定义ASCII码字符串在OUT存储区的存放格式,OUT存储区是指OUT端指定首地址的8个连续字节单元,又称输出存储区。FMT端单元中的数据定义如下。

  整数转ASCII码指令的使用如图6-18所示,当I0.0触点闭合时,执行ITA指令,将IN端VW10中的整数转换成ASCII码字符串,保存在OUT端指定首地址的8个连续单元(VB12~VB19)构成的存储区中,ASCII码字符串在存储区的存放形式由FMT端VB0单元中的数据低4位规定。

  在DTA指令中,IN端为双整数型操作数,FMT端字节单元中的数据用来指定ASCII码字符串在OUT存储区的存放格式,OUT存储区是指OUT端指定首地址的12个连续字节单元。FMT端单元中的数据定义与整数转ASCII码指令相同。

  双整数转ASCII码指令的使用如图6-19所示,当I0.0触点闭合时,执行DTA指令,将IN端VD10中的双整数转换成ASCII码字符串,保存在OUT端指定首地址的8个连续单元(VB14~VB21)构成的存储区中,ASCII码字符串在存储区的存放形式由VB0单元(FMT端指定)中的低4位数据规定。

  在RTA指令中,IN端为实数型操作数,FMT端指定单元中的数据用来定义OUT存储区的长度和ASCII码字符串在OUT存储区的存放形式。FMT端单元中的数据定义如下。

  实数转ASCII码指令的使用如图6-20所示,当I0.0触点闭合时,执行RTA指令,将IN端VD10中的实数转换成ASCII码字符串,保存在OUT端指定首地址的存储区中,存储区的长度由FMT端VB0单元中的数据高4位规定,ASCII码字符串在存储区的存放形式由FMT端VB0单元中的低4位数据规定。

  输出存储区的ASCII码字符串格式有以下规律。正数值写入输出存储区时没有符号位。负数值写入输出存储区时以负号(-)开头。除小数点左侧最靠近的0外,其他左侧0去掉。若小数点右侧数据超过规定位数,会按四舍五入去掉低位以满足位数要求。输出存储区的大小应至少比小数点右侧的数字位数多3字节。输出存储区中的数值是右对齐的。

  ASCII码转十六进制数指令的使用如图6-21所示,当I1.0触点闭合时,执行ATH指令,将IN端VB30为首地址的连续3个(LEN端指定)字节单元(VB30~VB32)中的ASCII码字符串转换成十六进制数,保存在OUT端VB40为首地址的连续字节单元中。

  十六进制数转ASCII码指令的使用如图6-22所示,当I1.0触点闭合时,执行HTA指令,将IN端VB30为首地址的连续2个(LEN端指定)字节单元(VB30、VB31)中的十六进制数转换成ASCII码字符,保存在OUT端VB40为首地址的连续字节单元中。

  字符串转换指令包括整数、双整数、实数转字符串指令和字符串转整数、双整数、实数指令。

  整数、双整数、实数转字符串指令中FMT的定义与整数、双整数、实数转ASCII码指令基本相同,两者的不同之处在于:字符串转换指令中OUT端指定的首地址单元用来存放字符串的长度,其后单元才存入转换后的字符串。对于整数、双整数转字符串指令,OUT首地址单元的字符串长度值分别固定为8、12;对于实数转字符串指令,OUT首地址单元的字符串长度值由FMT的高4位来决定。

  图6-23为实数转字符串指令的使用,当I0.0触点闭合时,执行R_S指令,将IN端VD10中的实数转换成ASCII码字符串,保存在OUT端指定首地址的存储区中,存储区的长度由FMT端VB0单元中的数据高4位规定,ASCII码字符串在存储区的存放形式由FMT端VB0单元中的低4位数据规定。

  整数、双整数、实数转字符串指令中的输出存储区存放ASCII码字符串格式与整数、双整数、实数转ASCII码指令基本相同,主要不同之处在于前者的输出存储区首地址单元存放字符串长度,其后才存入字符串。

  在字符串转整数、双整数、实数指令中,INDX端用于设置开始转换单元相对首地址的偏移量,通常设置为1,即从首地址单元中的字符串开始转换。INDX也可以被设置为其他值,能够适用于避开转换非法字符(非0~9的字符)。例如,IN端指定首地址为VB10,VB10~VB17单元存储的字符串为“Key:1236”,如果将INDX设为5,则转换从VB14单元开始,VB10~VB13单元中的字符串“Key”不会被转换。

  字符串转实数指令不能用于转换以科学计数法或者指数形式表示实数的字符串,强行转换时,指令不会产生溢出错误(SM1.1=1),但会转换指数之前的字符串,然后停止转换。例如,转换字符串“1.234E6”时,转换后的实数值为1.234,并没错误提示。

  指令在转换时,当到达字符串的结尾或者遇到第一个非法字符时,转换指令结束。当转换产生的整数值过大以致输出值无法表示时,溢出标志(SM1.1)会置位。

  字符串转整数、双整数、实数指令的使用如图6-24所示,当I0.0触点闭合时,依次执行S_I、S_DI、S_R指令。S_I指令将相对VB0偏移量为7的VB6及后续单元中的字符串转换成整数,并保存在VW100单元中;S_DI指令将相对VB0偏移量为7的VB7及后续单元中的字符串转换成双整数,并保存在VD200单元中;S_R指令将相对VB0偏移量为7的VB7及后续单元中的字符串转换成实数,并保存在VD300单元中。

  如果VB0~VB11单元中存储的ASCII码字符串为 “11、T、e、m、p、空格、空格、9、8、.、6、F”,执行S_I、S_DI、S_R指令后,则在VW100单元中得到整数98,在VD200单元中得到双整数98,在VD300单元中得到实数98.6。

  编码与解码指令的使用如图6-25所示,当I0.0触点闭合时,执行ENCO和DECO指令,在执行ENCO(编码)指令时,将AC3中最低有效位1的位号“9”写入VB50单元的低4位;在执行DECO指令时,根据AC2中低半字节表示的位号“3”将VW40中的第3位置1,其他位全部清0。

其他产品
cache
Processed in 0.004138 Second.