解答
STEP 7-Micro/WIN 的标准库函数中不包括对数据值求绝对值(ABS)和求负值(NEG)的函数,但您可以用可集成的附加指令库编程实现此功能。 您可以下载下面的“Sign Operation”符号处理指令库,并添加到STEP 7-Micro/WIN V3.2.4.27 以上版中。
“Sign Operation”指令库说明
“Sign Operation”库包括几个分别对浮点数(实数)、整数和双整数数值求绝对值和求负值的功能块。
图 01: 集成到 STEP 7-Micro/WIN 中“Sign Operation”库
绝对值 (ABS)
求绝对值的功能块 ABS_R,ABS_I 和 ABS_DI 分别用来求 REAL,INTEGER 和 DOUBLE INTEGER 类型数据的绝对值。
公式: y = |x|
图 02:程序块中的 ABS_R,ABS_I 和 ABS_DI 功能块
函数 | 参数 | 数据类型 | 操作数 |
---|---|---|---|
ABS_R | IN | [REAL] | VD, ID, QD, MD, SD, SMD, LD, AC, Constant, *VD, *LD, *AC |
OUT | [REAL] | VD, ID, QD, MD, SD, SMD, LD, AC, *VD, *LD, *AC | |
ABS_I | IN | [INT] | VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, Constant, AC, *VD, *AC, *LD |
OUT | [INT] | VW, T, C, IW, QW, SW, MW, SMW, LW, AC, *VD, *AC, *LD | |
ABS_DI | IN | [DINT] | VD, ID, QD, MD, SD, SMD, LD, AC, HC, Constant, *VD, *LD, *AC |
OUT | [DINT] | VD, ID, QD, MD, SD, SMD, LD, AC, *VD, *LD, *AC |
表 01: ABS_R,ABS_I 和 ABS_DI 函数的配置负值 (NEG)
求负值的功能块 NEG_R,NEG_I 和 NEG_DI 分别用来求 REAL,INTEGER 和 DOUBLE INTEGER 类型数据的负值:
公式: y = - x
图 03: 序块中的 NEG_R,NEG_I 和 NEG_DI 功能块
函数 | 参数 | 数据类型 | 操作数 |
---|---|---|---|
NEG_R | IN | [REAL] | VD, ID, QD, MD, SD, SMD, LD, AC, Constant, *VD, *LD, *AC |
OUT | [REAL] | VD, ID, QD, MD, SD, SMD, LD, AC, *VD, *LD, *AC | |
NEG_I | IN | [INT] | VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, Constant, AC, *VD, *AC, *LD |
OUT | [INT] | VW, T, C, IW, QW, SW, MW, SMW, LW, AC, *VD, *AC, *LD | |
NEG_DI | IN | [DINT] | VD, ID, QD, MD, SD, SMD, LD, AC, HC, Constant, *VD, *LD, *AC |
OUT | [DINT] | VD, ID, QD, MD, SD, SMD, LD, AC, *VD, *LD, *AC |
表 02: NEG_R,NEG_I 和 NEG_DI 函数的配置使能位
二进制位 EN (使能位) 置位时将执行此功能的操作。
输出使能位 ENO
由于数据范围定义的不对称,整型 (INTEGER) 和双整型 (DOUBLE INTEGER) 数的最小边界值(最小负值)不能被转换为正值!
因此为这些函数功能块提供了输出位 ENO (使能输出) 用来给出无错化处理的信息:功能块因 EN 置位而调用并且运算无误是,ENO 位置位(为真);如果发生了错误(例如溢出),则 ENO 不置位(为假),同时输出值不做运算。
ABS_I,ABS_DI,NEG_I 和 NEG_DI 函数功能块的运算结果限制如下:
整型(INTEGER): | -2^15-1 | = -32.767 | <= x | <= 32.767 | = 2^15-1 |
---|---|---|---|---|---|
双整型(DOUBLE INTEGER): | -2^31-1 | = -2.147.483.647 | <= x | <= 2.147.483.647 | = 2^31-1 |
以 ZIP 文件形式保存的 STEP 7-Micro/WIN 库
拷贝“SignOperation.zip”文件到一个单独的文件夹中并解压缩,然后您就可以集成“Sign Operation.mwl”库到 V3.2.4.27 及以上版本的 of STEP 7-Micro/WIN 中,并且在您的 S7-200 项目中使用。
注意
SignOperation.zip ( 3 KB )