CA168首页 > 自动化信息 > 综合信息 > 信息详情

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

发布日期:2016-01-07 来源:《S7-300/400系列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应用设计指南》

TAG: PLC 西门子
[信息搜索] [] [告诉好友] [打印本文] [关闭窗口] [返回顶部]

上一篇:山东装备博览会创新宣传策略,启动“百会推介”模式

下一篇:2016广州国际光伏展,助你开拓广东省屋顶分布式光伏市场

免责申明

       本文仅代表作者个人观点,与中自网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容!来源网络如有误有侵权则删。

视觉焦点