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