西门子S7-200SMART模块黑龙江代理商
“多路分用”指令( DEMUX)的梯形图形式如图5-131所示。该指令将输入IN的内容复制到参数K所指定的输出中,其他输出则保持不变。输出参数可以进行扩展。如果参数K的值大于可用输出数,输入IN的内容将赋值给参数ELSE。仅当输入IN和所有输出的变量为相同的数据类型时(参数K除外),才能执行“多路分用”指令。除了使能输入EN的信号状态为“0”时ENO的信号状态变为“O”之外,当参数K的值大于可用输出数或执行该指令期间出错,都将使ENO的信号状态复位为“0”。
图5-131 DEMUX指令
“多路复用”指令( MUX)的梯形图形式如图5-130所示。该指令根据参数K(指定输入IN的编号)将选定输入的内容复制到输出OUT。可以通过鼠标单击指令框中的“*”扩展输入参数,扩展的输入参数会在该框中自动编号,Z多可声明32个输入。如果参数K的值大于可用输人数,则参数ELSE的内容将复制到输出OUT中。需要注意:仅当所有输入和输出OUT中变量的数据类型都相同时(参数K除外),才能执行“多路复用”指令;除了使能输入EN的信号状态为“0”时ENO的信号状态变为“0”之外,参数K的输入超出了可用输入或执行该指令期间出错,都将使ENO的信号状态复位为“0”。
图5-130 MUX指令
“选择”指令(SEL)的梯形图形式如图5-129所示。该指令根据开关(输入G)的情况,选择输入INO或IN1中的一个,并将其内容复制到输出OUT。如果输入G的信号状态为“0”,将输入INO的值复制到输出OUT中;如果输入G的信号状态为“1”,则将输入IN1的值复制到输出OUT中。需要注意的是,只有当所有参数的变量均为同一种数据类型时,才能执行该指令。
图5-129 SEL指令
“与”运算指令( AND)、“或”运算指令(OR)、“异或”运算指令( XOR)的梯形图形式如图5-123~图5-125所示。这三种指令分别实现将输入IN1的值和输入IN2的值按位进行“与”“或”以及“异或”运算,结果存储在输出OUT中。例如,执行“与”运算指令AND时,输入IN1的值的位0和输入IN2的值的位0进行“与”运算,结果存储在输出OUT的位0中,输入IN1的值的位1和输入IN2的值的位1进行“与”运算,结果存储在输出OUT的位1中,依次类推。
图5-123 AND指令
图5-124 OR指令
图5-125 XOR指令
鼠标单击指令框中的“???”,可在下拉列表中选择输入参数IN1和IN2的数据类型(可以是Byte、Word、DWord或LWord)。鼠标单击指令框中的“*”,可以增加输入参数。指令执行时,将对所有可用输入参数的值根据指令类型进行AND、OR或XOR运算,结果存储在输出OUT中。
转换操作指令主要实现操作数在不同数据类型间的转换或比例缩放等功能,所包含的指令如图5-113所示,有转换值、取整、浮点数向上取整、浮点数向下取整、截尾取整、标定、标准化、标定和取消缩放指令。相对于经典STEP 7,指令数量大大减少,但功能基本不变。
“转换值”指令( CONVERT)的梯形图形式如图5-114所示。该指令读取参数IN的内容,并根据指令框中选择的数据类型对其进行转换,转换的值发送到输出OUT中。“转换值”指令框内左侧“???”设置待转换的数据类型,右侧“???”设置转换后的数据类型。当参与数学运算或其他数据处理的操作数的数据类型不一致时,通常需要使用“转换值”指令进行转换。
图5-114 CONVERT指令
例如,自动灌装生产线控制系统中,在D032模块空余的16点上增加4个数码管(带译码电路)的接线,并在数码管上显示自动运行模式下的成品数量,相应的程序段如图5-115所示。
图5-115 数码显示成品数量(满瓶数量)
“标准化”指令( NORM_X)如图5-116所示。当使能输入EN的信号状态为“1”时,执行“标准化”指令,该指令将输入VALUE中变量的值按线性标尺从[MIN,MAX]区域转换至[0.0,1.0]区域的浮点数(如图5-117所示)。鼠标单击指令框内部左上方的“???”,可从下拉列表中选择设置VALUE变的数据类型(可以是各种整数类型或浮点数类型),单击指令框内部右上方的“???”,可从下拉列表中选择设置转换结果的数据类型(Real或LReal)。参数MIN和MAX定义输入VALUE中变量值范围的限值,输出OUT存储转换结果(用计算公式可表示为OUT=(VALUE - MIN)/( MAX - MIN))。
图5-116 NORM_X指令
图5-117 “标准化”示意
当执行“标准化”指令时,如果输入MIN的值大于或等于输入MAX的值,或指定的浮点数的值超出了标准的数范围(根据IEEE 754标准),或输人VALUE的值为NaN(无效算术运算的结果),则转换出错,使能输出ENO的信号状态将变为“0”。
“标定”指令( SCALE_X)如图5-118所示,该指令与“标准化”指令(NORM_X)正好相反,当执行“缩放”指令时,输入VALUE的浮点值按线性标尺从[0.0,1.0]区域转换至[ MIN,MAX]区域的整数或浮点数值(如图5-119所示),结果存储在OUT输出中(用计算公式可表示为OUT=[VALUE*(MAX - MIN)]+MIN)。鼠标单击指令框内部左上方的“???”,可从下拉列表中选择设置VALUE变量的数据类型(Real或LReal),单击指令框内部右上方的“???”,可从下拉列表中选择设置转换结果的数据类型(各种整数类型或浮点数类型)。
图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 Blocks的FC105( SCALE)和FC106 (UNSCALE)。“缩放”指令(SCALE)主要用于模拟量的标度变换,“取消缩放”指令( UNSCALE)主要用于模拟量的反变换。
图5-120 SCALE指令
图5-121 UNSCALE指令
“缩放”指令( SCALE)与NORM_X功能类似,也是将参数IN(Int数据类型)转换成浮点数(Real数据类型)。但该指令待转换区域不由变量指定,而是固定的,如果参数BIPOLAR为“0”,则待转换区域为[0,27648];如果参数BIPOLAR为“1”,则待转换区域为[ - 27648,27648]。转换后的区域由参数指定,为[LO_LIM,HI_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_LIM,HI_LIM]区域转换为整数(Irit数据类型)。如果参数BIPOLAR为“0”,则转换后的区域为[0,27648];如果参数BIPOLAR为“1”,则转换后的区域为[ - 27648,27648]。指令的结果在参数OUT中输出。参数RET_VAL同样存储转换错误代码,其数值代表转换无错误或错误信息。
如果参数IN的值大于输入上限值(HI_LIM),则将指令的结果设置为输出上限值(27648)并输出一个错误。如果参数IN的值小于输入上限值(LO_LIM),则将指令的结果设置为下限值(0或- 27648,取决于BIPOLAR参数的值)并输出一个错误。
西门子S7-200SMART模块黑龙江代理商