研选课堂
HOME
研选课堂
正文内容
plc编程中转换指令 S7-1200 PLC的转换操作指令,你能说出几个?
发布时间 : 2025-03-15
作者 : 小编
访问数量 : 23
扫码分享至微信

S7-1200 PLC的转换操作指令,你能说出几个?

前面给大家介绍了移动操作指令,接下来就接着介绍一下转换操作指令吧,S7-1200 PLC的转换操作指令也包括有数据类型的转换指令、实数转整数指令、以及用于缩放和标准化指令。

在我们S7-1200 PLC中,转换指令就是CONVERT,我们可以在指令中更改数据类型,相当于所有的转换指令都集合在这个CONVERT指令中,而对于S7-200/200 SMART PLC的转换指令是比较多的,我们需要哪个类型的转换指令就调用哪个指令,不能更改指令的类型,大家在学习的时候可以对比着学习,下面我们就介绍一下S7-1200 PLC常用的移动指令吧。

1、转换指令CONVERT

转换指令是将一种数据类型转换成另一种数据类型的,使用的时候单击指令“???”的位置,然后在下拉列表中选择输入数据类型和输出数据类型。

CONVERT指令支持的数据类型包括有整数、双整数、实数、无符号短整型、无符号整型、无符号双整型、短整型、长实数、字、双字、字节、BCD32等,比如INT TO DINT就是表示把整数转换成双整数。

IN管脚是输入要转换的数据,OUT管脚是转换后的数据,在管脚输入数据类型的时候注意要跟设置的数据类型一致哦。

2、浮点数转整数指令

S7-1200 PLC的浮点数转换指令包括有四舍五入取整指令ROUND、向上取整指令CEIL、向下取整指令FLOOR和截取尾数部分取整指令TRUNC这四个,而S7-200/200 SMART PLC的浮点数转换指令只有ROUND和TRUNC,那么S7-1200 PLC的CEIL和FLOOR指令大家可以着重了解一下,对比着学习效率更高哦。

这里还要提一下的是,前面所说的CONVERT转换指令也是可以实现浮点数转整数的功能的哦,具体想使用哪个指令就看你怎么选择了。

上图的程序中ROUND是对13.7四舍五入输出14,TRUNC是将12.5的尾数部分截取掉,取12进行输出,FLOOR是15.8向下取整变成15,CEIL是将12.4向上取整变成13。

3、缩放SCALE_X和标准化NORM_X指令

缩放和标准化指令通常配合使用来实现模拟量输入和输出的转换,模拟量的转换是有个对应的公式的,这两个指令其实也是根据如下这个公式而来的。

缩放指令SCALE_X用于按照参数MIN和MAX所指定的数据类型和值范围对标准化实参VALUE进行标定,OUT=VALUE*(MAX-MIN)+MIN,其中0.0<=VALUE<=1.0。

标准化指令NARM_X用于通过参数MIN和MAX指定的范围内的参数VALUE,把其标定在0%~100%范围内。OUT=(VALUE-MIN)/(MAX-MIN),其中0.0<=OUT<=1.0。

以上这两个指令主要是在模拟量控制中会有应用,如果是入门的学习可以先简单了解就可以,等之后学习到模拟量控制部分再来详细学习。

以上这些就是转换操作指令的介绍,转换指令在我们做一些运算处理的时候是会应用到的,除了缩放和标准化指令可以简单了解,其他的转换指令都是需要掌握的哦,大家记住了吗?

( 技成培训网原创,作者:蔡慧荥,未经授权不得转载,违者必究 )

更多了解,点↓

(收藏!)举例子详解:PLC转换指令

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

转换指令是一种转换不同类型数据的指令。转换指令可分为标准转换指令、ASCII码转换指令、字符串转换指令和编码与解码指令。

标准转换指令

标准转换指令可分为数字转换指令、四舍五入取整指令和段译码指令。

1.数字转换指令

数字转换指令有字节与整数间的转换指令、整数与双整数间的转换指令、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。

1)指令说明

数字转换指令说明如表6-29所示。

表6-29 数字转换指令说明

2)指令使用举例

数字转换指令的使用如图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码被转换成整数0000000001111110。

图6-14 数字转换指令的使用

2.四舍五入取整指令

1)指令说明

四舍五入取整指令说明如表6-30所示。

表6-30 四舍五入取整指令说明

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

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

图6-16 七段数码显示器

表6-31 十进制数、二进制数、七段码及显示字符的对应关系

2)指令说明段译码指令说明如表6-32所示。表6-32 段译码指令说明

3)指令使用举例

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

ASCII码转换指令

ASCII码转换指令包括整数、双整数、实数转ASCII码指令和十六进制数与ASCII码转换指令。 1.关于ASCII码知识

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

表6-33 ASCII编码表

2.整数转ASCII码指令

1)指令说明

整数转ASCII码指令说明如表6-34所示。

表6-34 整数转ASCII码指令说明

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

2)指令使用举例

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

图6-18 整数转ASCII码指令的使用

例如,VW10中整数为12,VB0中的数据为3(即00000011),执行ITA指令后,VB12~VB19单元中存储的ASCII码字符串为“0.012”,各单元具体存储的ASCII码见表6-35,其中VB19单元存储“2”的ASCII码“00110010”。

输出存储区的ASCII码字符串格式有以下规律:

①正数值写入输出存储区时没有符号位。

②负数值写入输出存储区时以负号(-)开头。

③除小数点左侧最靠近的0外,其他左侧0去掉。

④输出存储区中的数值是右对齐的。

表6-35 FMT单元取不同值时存储区中ASCII码的存储形式

3.双整数转ASCII码指令

1)指令说明

双整数转ASCII码指令说明如表6-36所示。

表6-36 双整数转ASCII码指令说明

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

2)指令使用举例

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

图6-19 双整数转ASCII码指令的使用

例如,VD10中双整数为3456789,VB0中的数据为3(即00000011),执行DTA指令后,VB14~VB21中存储的ASCII码字符串为“3456.789”。

输出存储区的ASCII码字符串格式有以下规律。

①正数值写入输出存储区时没有符号位。

②负数值写入输出存储区时以负号(-)开头。

③除小数点左侧最靠近的0外,其他左侧0去掉。

④输出存储区中的数值是右对齐的。

4.实数转ASCII码指令

1)指令说明

实数转ASCII码指令说明如表6-37所示。

表6-37 实数转ASCII码指令说明

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

2)指令使用举例

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

图6-20 实数转ASCII码指令的使用

例如,VD10中实数为1234.5,VB0中的数据为97(即01100001),执行RTA指指令后,VB14~VB19中存储的ASCII码字符串为“1234.5”。FMT单元取不同值时存储区中ASCII码的存储格式见表6-38。

表6-38 FMT单元取不同值时存储区中ASCII码的存储格式

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

5.ASCII码转十六进制数指令

1)指令说明

ASCII码转十六进制数指令说明如表6-39所示。

表6-39 ASCII码转十六进制数指令说明

2)指令使用举例

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

图6-21 ASCII码转十六进制数指令的使用

例如,VB30、VB31、VB32单元中的ASCII码字符分别是3(00110011)、E(01000101)、A(01000001),执行ATH指令后,VB30~VB32中的ASCII码转换成十六进制数,并存入VB40、VB41单元,其中VB40存放十六进制数3E(即00111110),VB41存放Ax(即1010xxxx),x表示VB41原先的数值不变。

6.十六进制数转ASCII码指令

1)指令说明

十六进制数转ASCII码指令说明如表6-40所示。

表6-40 十六进制数转ASCII码指令说明

2)指令使用举例十六进制数转ASCII码指令的使用如图6-22所示,当I1.0触点闭合时,执行HTA指令,将IN端VB30为首地址的连续2个(LEN端指定)字节单元(VB30、VB31)中的十六进制数转换成ASCII码字符,保存在OUT端VB40为首地址的连续字节单元中。例如,VB30、VB31单元中的十六进制数分别是3E(0011 1110)、1A(00011010),执行HTA指令后,VB30、VB31中的十六进制数转换成ASCII码,并存入VB40~VB43单元中,其中VB40存放3的ASCII码(00110011),VB41存放E的ASCII码,VB42存放1的ASCII码,VB43存放A的ASCII码。在ATH、HTA指令中,有效的ASCII码字符为0~9、A~F,用二进制数表示为00110011~00111001、01000001~01000110,用十六进制数表示为33~39、41~46。另外,ATH、HTA指令可转换的ASCII码和十六进制数的最大个数为255个。

图6-22 十六进制数转ASCII码指令的使用

字符串转换指令

字符串转换指令包括整数、双整数、实数转字符串指令和字符串转整数、双整数、实数指令。 1. 整数、双整数、实数转字符串指令 1)指令说明整数、双整数、实数转字符串指令说明如表6-41所示。

表6-41 整数、双整数、实数转字符串指令说明

整数、双整数、实数转字符串指令中FMT的定义与整数、双整数、实数转ASCII码指令基本相同,两者的区别在于:字符串转换指令中OUT端指定的首地址单元用来存放字符串的长度,其后单元才存入转换后的字符串。对于整数、双整数转字符串指令,OUT首地址单元的字符串长度值分别固定为8、12;对于实数转字符串指令,OUT首地址单元的字符串长度值由FMT的高4位来决定。2)指令使用举例图6-23为实数转字符串指令的使用,当I0.0触点闭合时,执行R_S指令,将IN端VD10中的实数转换成ASCII码字符串,保存在OUT端指定首地址的存储区中,存储区的长度由FMT端VB0单元中的数据高4位规定,ASCII码字符串在存储区的存放形式由FMT端VB0单元中的低4位数据规定。

图6-23 实数转字符串指令的使用例如,VD10中实数为1234.5,VB0中的数据为97(即01100001),执行R_S指令后,VB14~VB20中存储的ASCII码字符串为“61234.5”。FMT单元取不同值时存储区中ASCII码字符串的存储形式见表6-42。表6-42 FMT单元取不同值时存储区中ASCII码字符串的存储形式

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

2. 字符串转整数、双整数、实数指令

1)指令说明

字符串转整数、双整数、实数指令说明如表6-43所示。

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

表6-43 字符串转整数、双整数、实数指令说明

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

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

2)指令使用举例

字符串转整数、双整数、实数指令的使用如图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单元中。

图6-24 字符串转整数、双整数、实数指令的使用

如果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。

编码与解码指令

1.指令说明

编码与解码指令说明如表6-44所示。

表6-44 编码与解码指令说明

2.指令使用举例

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

图6-25 编码与解码指令的使用

转发是最大的鼓励!谢谢您的支持!

小贴士

PLC专属资料: 含有从入门到高级所有PLC学习资料(三菱/西门子/欧姆龙) ,电气经典18本大全书,历年电气考试真题、电气必备实训仿真软件、电气自动化行业各类型技术手册!

免责声明:本文转自网络,版权归原作者所有,如涉及作品版权问题,请及时与我们联系删除,谢谢!

如何获取 电气热门资料?

操作指引如下!

相关问答

plc交替输出指令?

用X0作为交替输出指令的执行条件,在左母线右侧输入LDX0。在X0的触点后双击鼠标,在梯形图输入窗口中输入ALTPY0。这里使用的脉冲执行指令,含义为当X0接通一...

plc五种编程语言?

plc编程语言如下1、梯形图语言(LD)梯形图语言是PLC程序设计中最常用的编程语言。它是与继电器线路类似的一种编程语言。由于电气设计人员对继电器控制较为熟...

三菱PLC里十六进制数转化为十进制数用什么指令?

在三菱PLC中,将十六进制数转化为十进制数可以使用MOV指令或者数值转换指令。以下是两种指令的使用方法:1.MOV指令MOV指令可以将十六进制数转换为十进制数,...

PLC中整数和浮点数如何转化?

三菱plc里面将浮点数转换成整数用INT指令。该指令把二进制整数转化为二进制浮点数;常数K、H在各浮点运算指令中自动转换,在FLT指令中不处理。使用printf输出...

欧姆龙PLC现在是十六进制,怎么转换十进制显示?

2种方法:1.你可以自己通过计算机进行十六进制到十进制地转换;2.也可以通过程序里面对应的转换指令进行转换。2种方法:1.你可以自己通过计算机进行十六进制...

plc中co指令的用法?

回答如下:PLC中的CO指令是用于将输出位的状态从一个逻辑状态转换为另一个逻辑状态。该指令可以用于控制输出位的开关状态。CO指令的用法如下:1.首先,确定要...

PLC控制里的定时器指令TOF和TON怎么转换?

AB的吗?TON是延时导通计时器,TOF是延时断开计时器。如果你要改得话双击就可以了。或者右键点击ChangeInstructionType用法一样的你还可以改DN。AB的吗?TON...

西门子S7200PLC编程中I_S转换指令的FMT是怎么写的?

I_S指令将整数字IN转换为长度为8个字符的ASCII字符串。格式(FMT)指定小数点右面的转换精度,无论小数点是显示为逗号还是句点。结果字符串写入从OUT开始的9个连...

zrst指令怎么写?

plc中ZRST指令用法1.打开相关的软件主页,通过梯形图输入在左母线右侧确定LDX0。2.下一步,继续通过梯形图输入在X0触点后面确定ZRSTD0D5。3.这个时候...

plc编程怎么输入指令?

PLC编程是通过编程软件来输入指令的,一般来说,PLC编程软件会提供以下界面和功能:1.编程软件界面:编程软件提供一个编程界面,开发人员可以在该界面中进行编...

 g线上的魔王  徐苑 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部