PLC 概念 3
TIME 32 位 存储形式
6.1.7 转换 转换指令转换指令
CONVERT 指令用于将数据元素从一种数据类型转换为另一种数据类 型。 在功能框名称下方单击,然后从下拉列表中选择 IN 数据类型和 OUT 数据类型。
选择(转换源)数据类型之后,(转换目标)下拉列表中将显示可能的转换项列表。 与 BCD16 进行相互转换仅限于 Int 数据类型。与 BCD32 进行转换仅限于 DInt 数据类型。
在功能框名称下方单击,并从下拉菜单中选择数据类型。
参数 数据类型 说明
IN SInt, Int, DInt, USInt, UInt, UDInt, Byte, Word, DWord, Real, LReal, Bcd16, Bcd32
IN 值
OUT SInt, Int, DInt, USInt, UInt, UDInt, Byte, Word, DWord, Real, LReal, Bcd16, Bcd32
转换为新数据类型的 IN 值
ENO 状态 说明 结果 (OUT)
1 无错误 有效结果
0 IN 为 +/- INF 或 +/- NaN +/- INF 或 +/- NaN
0 结果超出 OUT 数据类型的有效范围 OUT 被设置为 IN 的最低有效 字节
长沙工控帮教育科技有限公司整理
取整和截取指令
ROUND 用于将实数转换为整数。 实数的小数部分舍入为最接近的整数 值(IEEE - 舍入为最接近值)。 如果 Real 数刚好是两个连续整数的一 半(例如,10.5),则 Real 数舍入为偶数。 例如,ROUND (10.5) = 10 或 ROUND (11.5) = 12。
TRUNC 用于将实数转换为整数。 实数的小数部分被截成零(IEEE - 取 整为零)。
参数 数据类型 说明
IN Real, LReal 浮点型输入
OUT SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal
取整或截取后的输出
ENO 状态 说明 结果 (OUT)
1 无错误 有效结果
0 IN 为 +/- INF 或 +/- NaN +/- INF 或 +/- NaN
上取整和下取整指令
CEIL 用于将实数转换为大于或等于该实数的最小整数(IEEE - 向正无 穷取整)。
FLOOR 用于将实数转换为小于或等于该实数的最大整数(IEEE - 向负 无穷取整)。
长沙工控帮教育科技有限公司整理
参数 数据类型 说明
IN Real, LReal 浮点型输入
OUT SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal 转换后的输出
ENO 状态 说明 结果 (OUT)
1 无错误 有效结果
0 IN 为 +/- INF 或 +/- NaN +/- INF 或 +/- NaN
6.1.7.1 标定和标准化指令 标定和标准化指令
SCALE_X 用于按参数 MIN 和 MAX 所指定的数据类型和值范围对标准化 的实参数 VALUE(其中,0.0 <= VALUE <= 1.0)进行标定:
OUT = VALUE (MAX - MIN) + MIN
对于 SCALE_X,参数 MIN、MAX 和 OUT 的数据类型必须相同。
NORM_X 用于标准化通过参数 MIN 和 MAX 指定的值范围内的参数 VALUE:
OUT = (VALUE - MIN) / (MAX - MIN),其中,0.0 <= OUT <= 1.0 对于 NORM_X,参数 MIN、VALUE 和 MAX 的数据类型必须相同。
在功能框名称下方单击,并从下拉菜单中选择数据类型。
参数 数据类型 说明
MIN SInt、Int、DInt、USInt、UInt、UDInt、
Real
输入范围的最小值
VALUE SCALE_X:Real
NORM_X: SInt、Int、DInt、USInt、
UInt、UDInt、Real
要标定或标准化的输入值
长沙工控帮教育科技有限公司整理
参数 数据类型 说明 MAX SInt、Int、DInt、USInt、UInt、UDInt、
Real
输入范围的最大值
OUT SCALE_X: SInt、Int、DInt、USInt、
UInt、UDInt、Real
6.1.8 程序控制
跳转和标签指令程序控制指令用于有条件地控制执行顺序:
JMP: 如果有能流通过 JMP 线圈 (LAD),或者 JMP 功能框 的输入为真 (FBD),则程序将从指定标签后的第一条指令继 续执行。
JMPN: 如果没有能流通过 JMP 线圈 (LAD),或者 JMP 功 能框的输入为假 (FBD),则程序将从指定标签后的第一条指 令继续执行。
LAD FBD
标签: JMP 或 JMPN 跳转指令的目标标签。
参数 数据类型 说明
Label_name 标签标识符 跳转指令以及相应跳转目标程序标签的标识符 通过在 LABEL 指令中直接键入来创建标签名称。 可以使用参数助手图标来选择 JMP 和 JMPN 标签名称域可用的标签名称。 也可在 JMP 或 JMPN 指令中直接键入标签名称。
Return_Value (RET) 执行控制指令
LAD FBD
RET 指令用于终止当前块的执行。
参数 数据类型 说明
Return_Value Bool RET 指令的“Return_value”参数被分配给调用块中块调用功 能框的 ENO 输出。
长沙工控帮教育科技有限公司整理
可选的 RET 指令用于终止当前块的执行。 当且仅当有能流通过 RET 线圈 (LAD),或者 当 RET 功能框的输入为真 (FBD) 时,则当前块的程序执行将在该点终止,并且不执行 RET 指令以后的指令。 如果当前块为 OB,则参数“Return_Value”将被忽略。 如果当前 块为 FC 或 FB,则将参数“Return_Value”的值作为被调用功能框的 ENO 值传回到调用例 程。
不要求用户将 RET 指令用作块中的最后一个指令;该操作是自动完成的。 一个块中可以 有多个 RET 指令。
以下是在 FC 代码块中使用 RET 指令的示例步骤:
1. 创建新项目并添加 FC:
2. 编辑该 FC:
– 从指令树添加指令。
– 添加一个 RET 指令,包括参数“Return_Value”的以下值之一:
TRUE、FALSE,或用于指定所需返回值的存储位置。
– 添加更多的指令。
3. 从 MAIN [OB1] 调用 FC。
MAIN 代码块中 FC 功能框的 EN 输入必须为真,才能开始执行 FC。
执行了有能流通过 RET 指令的 FC 后,该 FC 的 RET 指令所指定的值将出现在 MAIN 代 码块中 FC 功能框的 ENO 输出上。
6.1.9 逻辑运算
AND、OR 和 XOR 指令AND: BYTE、WORD 和 DWORD 数据类型的逻辑与运算 OR: BYTE、WORD 和 DWORD 数据类型的逻辑或运算 XOR: BYTE、WORD 和 DWORD 数据类型的逻辑异或运算 在功能框名称下方单击,并从下拉菜单中选择数据类型。
长沙工控帮教育科技有限公司整理
参数 数据类型 说明 IN1、IN2 Byte、Word、DWord 逻辑输入 OUT Byte、Word、DWord 逻辑输出
所选数据类型将 IN1、IN2 和 OUT 设置为相同的数据类型。 IN1 和 IN2 的相应位值相互 组合,在参数 OUT 中生成二进制逻辑结果。 执行这些指令之后,ENO 总是为 TRUE。
取反指令
INV 指令用于获得参数 IN 的二进制反码。通过对参数 IN 各位的值取反 来计算反码(将每个 0 变为 1,每个 1 变为 0)。 执行该指令后,ENO 总是为 TRUE。
在功能框名称下方单击,并从下拉菜单中选择数据类型。
参数 数据类型 说明
IN SInt、Int、DInt、USInt、UInt、UDInt、Byte、
Word、DWord
要取反的数据元素
OUT SInt、Int、DInt、USInt、UInt、UDInt、Byte、
Word、DWord
取反后的输出
编码和解码指令
ENCO 将位序列编码成二进制数。
DECO 将二进制数解码成位序列。
在功能框名称下方单击,并从下拉菜单中选择数据类型。
长沙工控帮教育科技有限公司整理
参数 数据类型 说明 IN ENCO: Byte、Word、DWord
DECO:UInt
ENCO: 要编码的位序列 DECO: 要解码的值 OUT ENCO:Int
DECO: Byte、Word、DWord
ENCO: 编码后的值 DECO:解码后的位序列
ENCO 指令将参数 IN 转换为与参数 IN 的最低有效设置位的位位置对应的二进制数,并 将结果返回给参数 OUT。 如果参数 IN 为 0000 0001 或 0000 0000,则将值 0 返回给 OUT。 如果参数 IN 的值为 0000 0000,则 ENO 被设置为 FALSE。
DECO 指令通过将参数 OUT 中的相应位位置设置为 1(其它所有位设置为 0),从参数 IN 解码二进制数。 执行 DECO 指令之后,ENO 始终为 TRUE。
DECO 参数 OUT 的数据类型选择(Byte、Word 或 DWord)会限制参数 IN 的可用范 围。如果参数 IN 的值超出可用范围,将执行求模运算,如下所示提取最低有效位。
DECO 参数 IN 的范围:
● 3 位(值 0-7)IN 用于设置字节 OUT 中 1 的位位置
● 4 位(值 0-15)IN 用于设置字 OUT 中 1 的位位置
● 5 位(值 0-31)IN 用于设置双字 OUT 中 1 的位位置
DECO IN 值 DECO OUT 值(解码单个位位置)
Byte OUT(8 位):
最小 IN 0 00000001 最大 IN 7 10000000
Word OUT(16 位):
最小 IN 0 0000000000000001 最大 IN 15 1000000000000000
长沙工控帮教育科技有限公司整理
ENO 状态 条件 结果 (OUT)
1 无错误 有效位号
0 IN 为零 OUT 被设置为零
选择 (SEL) 和多路复用 (MUX) 指令
SEL 根据参数 G 的值将两个输入值之一分配给参数 OUT。
MUX 根据参数 K 的值将多个输入值之一分配给参数 OUT。 如果参 数 K 的值超出有效范围,则将参数 ELSE 的值分配给参数 OUT。
在功能框名称下方单击,并从下拉菜单中选择数据类型。
SEL 数据类型 说明
G Bool 选择器开关:
FALSE 表示使用 IN0 的值
TRUE 表示使用 IN1 的值
IN0、IN1 SInt、Int、DInt、USInt、UInt、UDInt、Real,、
Byte、Word、DWord、Time、Char
输入
OUT SInt、Int、DInt、USInt、UInt、UDInt、Real,、
Byte、Word、DWord、Time、Char
输出
长沙工控帮教育科技有限公司整理
MUX 数据类型 说明
ELSE SInt、Int、DInt、USInt、UInt、UDInt、Real,、
Byte、Word、DWord、Time、Char
输入替换值(可选)
OUT SInt、Int、DInt、USInt、UInt、UDInt、Real,、
Byte、Word、DWord、Time、Char