您现在的位置是:首页 > PLC技术 > PLC技术

S7-1500 PLC的转换操作指令

来源:艾特贸易2017-10-24

简介转换操作指令主要实现操作数在不同数据类型间的转换或比例缩放等功能,所包含的指令如图 5-113 所示,有转换值、取整、浮点数向上取整、浮点数向下取整、截尾取整、标定、标准化

    转换操作指令主要实现操作数在不同数据类型间的转换或比例缩放等功能,所包含的指令如图5-113所示,有转换值、取整、浮点数向上取整、浮点数向下取整、截尾取整、标定、标准化、标定和取消缩放指令。相对于经典STEP 7,指令数量大大减少,但功能基本不变。

    “转换值”指令(CONVERT)的梯形图形式如图5-114所示。该指令读取参数IN的内容,并根据指令框中选择的数据类型对其进行转换,转换的值发送到输出OUT中。“转换值”指令框内左侧“???”设置待转换的数据类型,右侧“???”设置转换后的数据类型。当参与数学运算或其他数据处理的操作数的数据类型不一致时,通常需要使用“转换值”指令进行转换。

转换操作指令集

    5-113    转换操作指令集

CONVERT指令

    5-114    CONVERT指令

    例如,自动灌装生产线控制系统中,在D032模块空余的16点上增加4个数码管(带译码电路)的接线,并在数码管上显示自动运行模式下的成品数量,相应的程序段如图5-115所示。

数码显示成品数量(满瓶数量)

    5-115    数码显示成品数量(满瓶数量)

    “标准化”指令(NORM_X)如图5-116所示。当使能输入EN的信号状态为“1”时,执行“标准化”指令,该指令将输入VALUE中变量的值按线性标尺从[MINMAX]区域转换至[0.01.0]区域的浮点数(如图5-117所示)。鼠标单击指令框内部左上方的“???”,可从下拉列表中选择设置VALUE变的数据类型(可以是各种整数类型或浮点数类型),单击指令框内部右上方的“???”,可从下拉列表中选择设置转换结果的数据类型(RealLReal)。参数MINMAX定义输入VALUE中变量值范围的限值,输出OUT存储转换结果(用计算公式可表示为OUT=(VALUE - MIN)/( MAX - MIN))

NORM_X指令

    5-116    NORM_X指令

 “标准化”示意

    5-117    “标准化”示意

    当执行“标准化”指令时,如果输入MIN的值大于或等于输入MAX的值,或指定的浮点数的值超出了标准的数范围(根据IEEE 754标准),或输人VALUE的值为NaN(无效算术运算的结果),则转换出错,使能输出ENO的信号状态将变为“0”。

    “标定”指令(SCALE_X)如图5-118所示,该指令与“标准化”指令(NORM_X)正好相反,当执行“缩放”指令时,输入VALUE的浮点值按线性标尺从[0.01.0]区域转换至[ MINMAX]区域的整数或浮点数值(如图5-119所示),结果存储在OUT输出中(用计算公式可表示为OUT=[VALUE*(MAX - MIN)]+MIN)。鼠标单击指令框内部左上方的“???”,可从下拉列表中选择设置VALUE变量的数据类型(RealLReal),单击指令框内部右上方的“???”,可从下拉列表中选择设置转换结果的数据类型(各种整数类型或浮点数类型)。

SCALE_X指令

    5-118    SCALE_X指令

“标定”示意

    5-119    “标定”示意

    当执行“标定”指令(SCALE_X)时,如果输入MIN的值大于或等于输入MAX的值,或指定的浮点数的值超出了标准的数范围(根据IEEE 754标准),或输入VALUE的值为NaN(非数字=无效算术运算的结果),或溢出,则转换出错,使能输出ENO的信号状态将变为“0”。

    “标准化”指令(NORM_X)和“标定”指令(SCALE_X)在数据处理中应用非常广泛,也可以配合使用实现模拟量的标度变换及反变换。

    “缩放”指令(SCALE)和“取消缩放”指令(UNSCALE)如图5-120和图5-121所示,其指令外观及功能分别同经典STEP 7的标准库中TI - S7 Converting BlocksFC105( SCALE)FC106(UNSCALE)。“缩放”指令(SCALE)主要用于模拟量的标度变换,“取消缩放”指令( UNSCALE)主要用于模拟量的反变换。

SCALE指令

    5-120    SCALE指令

UNSCALE指令

    5-121    UNSCALE指令

    “缩放”指令(SCALE)NORM_X功能类似,也是将参数INInt数据类型)转换成浮点数(Real数据类型)。但该指令待转换区域不由变量指定,而是固定的,如果参数BIPOLAR为“0”,则待转换区域为[027648];如果参数BIPOLAR为“1”,则待转换区域为[ - 2764827648]。转换后的区域由参数指定,为[LO_LIMHI_LIM],转换结果在参数OUT中输出。参数RET_VAL存储转换错误代码,其数值代表转换无错误或错误信息。

    参数BIPOLAR用来设置极性,BIPOLAR=0时为单极性,只对非负值进行转换;BIPO-LAR =1时为双极性,对正负值均可以进行转换。如果参数IN的值大于输入上限值( 27648),则将指令的结果设置为输出上限值(HI_LIM)并输出一个错误。如果参数IN的值小于输入上限值(0- 27648,取决于BIPOLAR参数的极性设置),则将指令的结果设置为下限值(LO_LIM)并输出一个错误。如果指定的下限值大于上限值(LO_LIM>HI_LIM),则结果将对输入值进行反向缩放。

    “取消缩放”指令(UNSCALE)功能与“缩放”指令(SCALE)相反,实现将参数IN输入的浮点数(Real数据类型)从[LO_LIMHI_LIM]区域转换为整数(Irit数据类型)。如果参数BIPOLAR为“0”,则转换后的区域为[027648];如果参数BIPOLAR为“1”,则转换后的区域为[ - 2764827648]。指令的结果在参数OUT中输出。参数RET_VAL同样存储转换错误代码,其数值代表转换无错误或错误信息。

    如果参数IN的值大于输入上限值(HI_LIM),则将指令的结果设置为输出上限值(27648)并输出一个错误。如果参数IN的值小于输入上限值(LO_LIM),则将指令的结果设置为下限值(0- 27648,取决于BIPOLAR参数的值)并输出一个错误。