简述
算术指令功能块可以计算由用户定义的运算数和运算符构成的方程式的 AQ 值。
|
连接 |
描述 |
|
输入 En |
如果输入 En 处产生一个上升沿,则算术指令功能块启动。 |
|
参数 |
V1:值 1:第一个操作数 V2:值 2:第二个操作数 V3:值 3:第三个操作数 V4:值 4:第四个操作数 数值范围:-32768 至 32767 运算符 1:第一个运算符 运算符 2:第二个运算符 运算符 3:第三个运算符 优先级 1:第一项操作的优先级 优先级 2:第二项操作的优先级 优先级 3:第三项操作的优先级 p:小数位数 可能的设置:0、1、2、3 |
|
输出 AQ |
输出 AQ 是由运算数值和运算符构成的方程式的结果。如果除数为 0 或发生上溢会将 AQ 置位为 32767,如果发生负向溢出(下溢)会将 AQ 置位为 -32768。 |
|
|
0BA1 到 0BA5: 在 0BA6 之前,不存在算术指令功能块。 |
参数 V1、V2、V3 和 V4
V1、V2、V3 和 V4 的值可以由其它已编程功能的实际值提供:
模拟量比较器:Ax - Ay
模拟量阈值触发器:Ax
模拟量放大器:Ax
模拟量多路复用器:AQ
模拟量斜坡函数发生器:AQ
算术指令:AQ
比例积分控制器:AQ
增/减计数器:Cnt
在 0BA7 及以上版本上,您还可以使用以下已编程功能的实际值:
接通延迟:Ta
断开延迟:Ta
接通/断开延迟:Ta
有掉电保持的接通延迟:Ta
脉宽触发继电器(单脉冲输出):Ta
边缘触发的脉冲继电器:Ta
异步脉冲发生器:Ta
楼梯照明开关:Ta
多功能开关:Ta
秒表:AQ
模拟量滤波器:AQ
平均值:AQ
最大值/最小值:AQ
阈值触发器:Fre
您可以通过块编号选择所需的功能。
参数 p(小数位数)
参数 p 适用于在消息文本中显示 V1、V2、V3、V4 和 AQ。
功能说明
算术指令功能将四个操作数和三个运算符组合在一起构成一个方程式。运算符可以是以下四个标准运算符中的任意一个:+、-、* 或 /。对于每个运算符,必须设置高(“H”)、中(“M”)或低(“L”)中的一个唯一优先级。将先执行高优先级的运算,然后执行中等优先级的运算,最后执行低优先级的运算。每项运算只能对应一个优先级。运算数值可以参考其它为提供该值而预定义的功能。算术指令功能将结果化为最近的整数值。
操作数值的个数固定为 4,运算符的个数固定为 3。如果需要使用的操作数更少,请使用“ + 0”或“ * 1”等构造结构补充剩余的参数。
您还可以配置启用参数“En”=0 时该功能的行为。该功能块要么保留其最后的值,要么置位为 0。
可能的错误: 除数为零或溢出
如果算术指令功能块执行结果为除数为零或溢出,则它将置位表示发生的错误类型的内部位。可以在您的电路程序中编写算术指令错误检测功能块来检测这些错误,并根据需要控制程序行为。您可以编写一个引用某一特定算术指令功能块的算术指令错误检测功能块。
示例
下表显示了一些简单的示例,说明了算术指令功能块参数以及产生的方程式和输出值:
|
V1 |
运算符 1(优先级 1) |
V2 |
运算符 2(优先级 2) |
V3 |
运算符 3(优先级 3) |
V4 |
|
12 |
+ (M) |
6 |
/(H) |
3 |
- (L) |
1 |
方程式:(12 + (6 / 3)) - 1
结果:13
|
V1 |
运算符 1(优先级 1) |
V2 |
运算符 2(优先级 2) |
V3 |
运算符 3(优先级 3) |
V4 |
|
2 |
+ (L) |
3 |
* (M) |
1 |
+ (H) |
4 |
方程式:2 + (3 * (1 + 4))
结果:17
|
V1 |
运算符 1(优先级 1) |
V2 |
运算符 2(优先级 2) |
V3 |
运算符 3(优先级 3) |
V4 |
|
100 |
- (H) |
25 |
/(L) |
2 |
+ (M) |
1 |
方程式:(100 - 25) / (2 + 1)
结果:25