• 沒有找到結果。

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

6.1.10 移位和循环