中自数字移动传媒

您的位置:首页 >> 综合新闻 >> S7-300/400系列PLC高级指令:转换指令

S7-300/400系列PLC高级指令:转换指令

已有82281次阅读2016-01-07标签:PLC 西门子
 转换指令用于读取输入参数IN的数据,并进行转换或更改符号。其结果存储在参数OUT中。

1.BCD码转换为整数指令BCD_I

BCD码转换为整数指令BCD_I用于将参数IN输入的三位BCD码(+/-999)数据转换成整数(16位),转换结果由参数OUT输出。ENO和EN总是具有相同的信号状态。指令格式与参数范围及状态字如表4-3所示。

表4-3  指令格式与参数范围及状态字

梯形图

参数格式

EN

启用输入,布尔型数据,存储区为I、Q、M、L、D

ENO

启用输出,布尔型数据,存储区为I、Q、M、L、D

IN

输入的BCD码,字型数据,存储区为I、Q、M、L、D

OUT

输出的整型值,整型数据,存储区为I、Q、M、L、D

状态字

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

1

-

-

-

-

0

1

1

1

表4-3中,如果输入I0.0为“1”,则读取MW10中的三位BCD代码(+/-999),并转换成一个整数。其结果保存在MW12中。如果不执行转换(ENO=EN=0),则输出Q4.0为“1”。

2.整型转换为BCD码指令I_BCD

整型转换为BCD码指令I_BCD用于读取输入参数IN的整型数据,并将其换成三位BCD码(+/-999)。BCD码结果由参数OUT输出。如果产生溢出,ENO的状态为“0”。指令格式与参数范围及状态字如表4-4所示。

表4-4  指令格式与参数范围及状态字

梯形图

梯形图

参数格式

EN

启用输入,布尔型数据,存储区为I、Q、M、L、D

ENO

启用输出,布尔型数据,存储区为I、Q、M、L、D

IN

输入参数,整型数据,存储区为I、Q、M、L、D

OUT

输出参数,字型BCD码数据,存储区为I、Q、M、L、D

状态字

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

×

-

-

×

×

0

×

×

1

表4-4中,如果I0.0的状态为“1”,则将MW10的内容以整型值读取,并将其转换为三位BCD码数字,转换结果存储在MW12中。如果产生溢出或未执行指令(I0.0=0),则输出Q4.0的状态为“1”。

3.整型转换为长整型指令I_DINT

整型转换为长整型指令I_DINT用于读取输入参数IN的16位整型数据,并将其转换为长整型(32位)。转换结果由参数OUT输出。ENO始终与EN的信号状态相同。指令格式与参数范围及状态字如表4-5所示。

表4-5  指令格式与参数范围及状态字

梯形图

参数格式

EN

启用输入,布尔型数据,存储区为I、Q、M、L、D

ENO

启用输出,布尔型数据,存储区为I、Q、M、L、D

ENO

输入参数,整型数据,存储区为I、Q、M、L、D

IN

输出参数,长整型转换结果,存储区为I、Q、M、L、D

状态字

OUT

CC1

CC0

OV

OS

OR

STA

RLO

/FC

1

-

-

-

-

0

1

1

1

表4-5中,如果I0.0为“1”,则指令读取MW10中的16位整型数,并将其转换为32位长整型数。转换结果存储在MD12中。如果未执行转换(ENO=EN=0),则输出Q4.0的状态为“1”。

4.BCD码转换为长整型指令BCD_DI

BCD码转换为长整型指令BCD_DI用于读取输入参数IN的7位BCD码(+/-9999999)数据,并将其转换为32位长整型数。转换结果由参数OUT输出。ENO始终与EN的信号状态相同。指令格式与参数范围及状态字如表4-6所示。

表4-6中,如果I0.0为“1”,则指令读取MD8中的7位BCD码数,并将其转换为32位长整型数。转换结果存储在MD12中。如果未执行转换(ENO=EN=0),则输出Q4.0的状态为“1”。

表4-6  指令格式与参数范围及状态字

梯形图

参数格式

EN

启用输入,布尔型数据,存储区为I、Q、M、L、D

ENO

启用输出,布尔型数据,存储区为I、Q、M、L、D

IN

输入参数,双字型BCD码数据,存储区为I、Q、M、L、D

OUT

输出参数,长整型转换结果,存储区为I、Q、M、L、D

状态字

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

1

-

-

-

-

0

1

1

1

5.长整型转换为BCD码指令DI_BCD

长整型转换为BCD码指令DI_BCD用于读取输入参数IN的32位长整型数据,并将其转换为7位BCD码数(+/-9999999)。转换结果由参数OUT输出。如果产生溢出,ENO的状态为“0”。指令格式与参数范围及状态字如表4-7所示。

表4-7  指令格式与参数范围及状态字

梯形图

参数格式

EN

启用输入,布尔型数据,存储区为I、Q、M、L、D

ENO

启用输出,布尔型数据,存储区为I、Q、M、L、D

IN

输入参数,双字型长整数,存储区为I、Q、M、L、D

OUT

输出参数,长整数的BCD码转换结果,存储区为I、Q、M、L、D

状态字

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

×

-

-

×

×

0

×

×

1

表4-7中,如果I0.0为“1”,则指令读取MD8中的长整型数,并将其转换为7位BCD码数。转换结果存储在MD12中。如果产生溢出或未执行指令(I0.0=0),则输出Q4.0的状态为“1”。

6.长整型转换为浮点型指令DI_REAL

长整型转换为浮点型指令DI_REAL用于读取输入参数IN的32位长整型数据,并将其转换为浮点数。转换结果由参数OUT输出。ENO始终与EN的信号状态相同。指令格式与参数范围及状态字如表4-8所示。

表4-8  指令格式与参数范围及状态字

梯形图

参数格式

EN

启用输入,布尔型数据,存储区为I、Q、M、L、D

ENO

启用输出,布尔型数据,存储区为I、Q、M、L、D

IN

输入参数,双字型长整数,存储区为I、Q、M、L、D

OUT

输出参数,浮点数转换结果,存储区为I、Q、M、L、D

状态字

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

1

-

-

-

-

0

1

1

1

表4-8中,如果I0.0为“1”,则指令读取MD8中的长整型数,并将其转换为浮点数。转换结果存储在MD12中。如果未执行转换(ENO=EN=0),则输出Q4.0的状态为“1”。

7.整数求反指令INV_I

整数求反指令INV_I用于读取输入参数IN的数据,并使用十六进制掩码W#16#FFFF执行布尔“异或”运算,将每一位变成相反状态。求反结果由参数OUT输出。ENO始终与EN的信号状态相同。指令格式与参数范围及状态字如表4-9所示。

需要注意的是,这里的求反运算与常规的反码不同。

表4-9  指令格式与参数范围及状态字

梯形图

参数格式

EN

启用输入,布尔型数据,存储区为I、Q、M、L、D

ENO

启用输出,布尔型数据,存储区为I、Q、M、L、D

IN

输入参数,整型数,存储区为I、Q、M、L、D

OUT

输出参数,输入参数的二进制取反结果,存储区为I、Q、M、L、D

状态字

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

1

-

-

-

-

0

1

1

1

表4-9中,如果I0.0为“1”,则指令读取MW8中的整型数,并将其每一位都取反。结果存于MW10中。如MW8=0100000110000001,则取反结果为MW10=1011111001111110。如果未执行转换(ENO=EN=0),则输出Q4.0的状态为“1”。

8.长整数求反指令INV_DI

长整数求反指令INV_I用于读取输入参数IN的32位长整型数,并使用十六进制掩码W#16#FFFFFFFF执行布尔“异或”运算,将每一位变成相反状态。求反结果由参数OUT输出。ENO始终与EN的信号状态相同。指令格式与参数范围及状态字如表4-10所示。

表4-10  指令格式与参数范围及状态字

梯形图

参数格式

EN

启用输入,布尔型数据,存储区为I、Q、M、L、D

ENO

启用输出,布尔型数据,存储区为I、Q、M、L、D

IN

输入参数,32位长整型,存储区为I、Q、M、L、D

OUT

输出参数,输入参数的二进制取反结果,存储区为I、Q、M、L、D

状态字

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

1

-

-

-

-

0

1

1

1

表4-10中,如果I0.0为“1”,则指令读取MD8中的整型数,并将其每一位都取反。结果存于MD12中。如MD8=F0FFFFF0,则取反结果为MD12=0F00000F。如果未执行转换(ENO=EN=0),则输出Q4.0的状态为“1”。

9.整数求补指令NEG_I

整数求补指令NEG_I用于读取输入参数IN的16位整型数,并求取对应的二进制补码。求补结果由参数OUT输出。ENO与EN的信号状态相同。如果EN的信号状态为“1”并产生溢出,则ENO的信号状态为“0”。指令格式与参数范围及状态字如表4-11所示。

这里的二进制补码指令仅仅是改变输入参数的符号(如从正值变为负值或相反),与计算机中的补码运算不一样。

表4-11  指令格式与参数范围及状态字

梯形图

参数格式

EN

启用输入,布尔型数据,存储区为I、Q、M、L、D

ENO

启用输出,布尔型数据,存储区为I、Q、M、L、D

IN

输入参数,16位整数,存储区为I、Q、M、L、D

OUT

输出参数,输入参数的二进制补码,存储区为I、Q、M、L、D

状态字

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

×

×

×

×

×

0

×

×

1

表4-11中,如果I0.0为“1”,则指令读取MW8中的16位整型数并求补。求补结果存于MW10中。如MW8=+10,则结果为MW10=-10。如果未执行转换(ENO=EN=0),则输出Q4.0的状态为“1”。如果EN的信号状态为“1”并产生溢出,则ENO的信号状态为“0”。

10.长整数求补指令NEG_DI

长整数求补指令NEG_DI用于读取输入参数IN的32位长整数,并求取对应的二进制补码。求补结果由参数OUT输出。ENO与EN的信号状态相同。如果EN的信号状态为“1”并产生溢出,则ENO的信号状态为“0”。指令格式与参数范围及状态字如表4-12所示。

表4-12  指令格式与参数范围及状态字

梯形图

参数格式

EN

启用输入,布尔型数据,存储区为I、Q、M、L、D

ENO

启用输出,布尔型数据,存储区为I、Q、M、L、D

IN

输入参数,32位长整型数,存储区为I、Q、M、L、D

OUT

输出参数,输入参数的二进制补码,存储区为I、Q、M、L、D

状态字

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

×

×

×

×

×

0

×

×

1

表4-12中,如果I0.0为“1”,则指令读取MD8中的32位长整数并求补。求补结果存于MD12中。如MD8=+1234,则结果为MD12=-1234。如果未执行转换(ENO=EN=0),则输出Q4.0的状态为“1”。

11.浮点数取反指令NEG_R

浮点数取反指令NEG_R用于读取参数IN输入的浮点数并改变其符号。取反结果由参数OUT输出。ENO与EN的信号状态相同。指令格式与参数范围及状态字如表4-13所示。

表4-13中,如果I0.0为“1”,则指令读取MD8中的浮点数,并改变符号。取反结果存于MD12中。如MD8=+4.128,则结果为MD12=-4.128。如果未执行转换(ENO=EN=0),则输出Q4.0的状态为“1”。

表4-13  指令格式与参数范围及状态字

梯形图

参数格式

EN

启用输入,布尔型数据,存储区为I、Q、M、L、D

ENO

启用输出,布尔型数据,存储区为I、Q、M、L、D

IN

输入参数,浮点数,存储区为I、Q、M、L、D

OUT

输出参数,输入参数的浮点取反,存储区为I、Q、M、L、D

状态字

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

×

-

-

-

-

0

×

×

1

12.浮点数取整为长整型指令ROUND

浮点数取整为长整型指令ROUND用于读取输入参数IN的浮点数,并将其取整为32位长整型数。结果为最接近的整数(“取整到最接近值”)。如果浮点数介于两个整数之间,则返回偶数。转换结果由参数OUT输出。如果产生溢出,ENO的状态为“0”。指令格式与参数范围及状态字如表4-14所示。

表4-14  指令格式与参数范围及状态字

梯形图

参数格式

EN

启用输入,布尔型数据,存储区为I、Q、M、L、D

ENO

启用输出,布尔型数据,存储区为I、Q、M、L、D

IN

输入参数,浮点数,存储区为I、Q、M、L、D

OUT

输出参数,双字的长整型数,存储区为I、Q、M、L、D

状态字

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

×

-

-

×

×

0

×

×

1

表4-14中,如果I0.0为“1”,则指令读取MD8中的浮点数,并将其转换为最接近的长整数。转换结果存储在MD12中。如果产生溢出或未执行指令(I0.0=0),则输出Q4.0的状态为“1”。

13.浮点数截断为长整数指令TRUNC

浮点数截断为长整数指令TRUNC用于读取输入参数IN的实型数,并将其转换为32位长整型数(“向零取整模式”)。转换结果由参数OUT输出。如果产生溢出,ENO的状态为“0”。指令格式与参数范围及状态字如表4-15所示。

表4-15  指令格式与参数范围及状态字

梯形图

参数格式

EN

启用输入,布尔型数据,存储区为I、Q、M、L、D

ENO

启用输出,布尔型数据,存储区为I、Q、M、L、D

IN

输入参数,浮点数,存储区为I、Q、M、L、D

OUT

输出参数,输入浮点数截取的长整数,存储区为I、Q、M、L、D

状态字

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

×

-

-

×

×

0

×

×

1

表4-15中,如果I0.0为“1”,则指令读取MD8中的实型数,并将其截取为长整数。转换结果为浮点数的整型部分,结果存储在MD12中。如果产生溢出或未执行指令(I0.0=0),则输出Q4.0的状态为“1”。

14.向上取整指令CEIL

向上取整指令CEIL用于读取参数IN输入的浮点数,并将其转换为32位长整型数。转换结果为大于该浮点数的最小整数(取整到+∞),由参数OUT输出。如果产生溢出,ENO的状态为“0”。指令格式与参数范围及状态字如表4-16所示。

表4-16中,如果I0.0为“1”,则CEIL指令读取MD8中的浮点数,并将其转换为长整数,转换结果存储在MD12中。如果产生溢出或未执行指令(I0.0=0),则输出Q4.0的状态为“1”。

表4-16  指令格式与参数范围及状态字

梯形图

 

参数格式

EN

启用输入,布尔型数据,存储区为I、Q、M、L、D

ENO

启用输出,布尔型数据,存储区为I、Q、M、L、D

IN

输入参数,浮点数,存储区为I、Q、M、L、D

OUT

输出参数,转换得到的长整数,存储区为I、Q、M、L、D

状态字

 

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

EN=1

×

-

-

×

×

0

×

×

1

EN=0

0

-

-

-

-

0

0

0

1

15.向下取整指令FLOOR

向下取整指令FLOOR用于读取输入参数IN的浮点数,并将其转换为32位长整型数。转换结果为小于该浮点数的最大整数部分(取整到-∞),由参数OUT输出。如果产生溢出,ENO的状态为“0”。指令格式与参数范围及状态字如表4-17所示。

表4-17  指令格式与参数范围及状态字

梯形图

参数格式

EN

启用输入,布尔型数据,存储区为I、Q、M、L、D

ENO

启用输出,布尔型数据,存储区为I、Q、M、L、D

IN

输入参数,浮点数,存储区为I、Q、M、L、D

OUT

输出参数,向下取整得到的长整数,存储区为I、Q、M、L、D

状态字

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

×

-

-

×

×

0

×

×

1

表4-17中,如果I0.0为“1”,则FLOOR指令读取MD8中的浮点数,并将其转换为长整数,转换结果存储在MD12中。如果产生溢出或未执行指令(I0.0=0),则输出Q4.0的状态为“1”。

备注:文章摘取自《S7-300/400系列PLC应用设计指南》

分享到:

[ 新闻搜索 ]  [ ]  [ 告诉好友 ]  [ 打印本文 ]  [ 关闭窗口 ]  [ 返回顶部 ]

0条 [查看全部]  网友评论

移动互联

2010年,中国移动互联网用户规模达到3.03亿人2011年,中国移动互联网行业进入了更加快速发展的一年,无论是用户规模还是手机应用下载次数都有了快速的增长。在移动互联网发展的大的趋势下,中自传媒已经开始进行区别于传统互联网的运营模式探索,伴随着产业链和产业格局的变化提供创新的服务

更多>>推荐视频

工业转型升级-中国电器工业协会电力电子分会 秘书长 肖向锋

工业转型升级-中国电器工业协会

在本次2012北京国际工业自动化展上,我们将全面剖析在新...
中国高压变频器产业发展之路——走过十三年 李玉琢

中国高压变频器产业发展之路——

中国高压变频器产业发展之路走过十三年 李玉琢
从企业家角度 谈行业的未来发展——汇川技术股份有限公司

从企业家角度 谈行业的未来发展

从企业家角度 谈行业的未来发展汇川技术股份有限公司
现代能源变换的核心技术——电力电子 李崇坚

现代能源变换的核心技术——电力

中国电工技术学会常务理事---李崇坚,电力电子是先进能源...
打造专业电力电子元器件品牌 助力变频器产业发展

打造专业电力电子元器件品牌 助

联合主办单位深圳市智胜新电子有限公司领导嘉宾致辞 7月...