<< 点击显示目录 >> 主页 轴控开发使用手册 > 轴控应用 > 18.ACOPOS功能块 > LOGIC FB介绍 |
1.基本信息
编写人 |
穆珊珊 |
审核人 |
(检查,测试,注释) |
|
应用归属 |
运动控制 |
|||
软件信息 |
|
硬件信息 |
||
其他 |
|
|||
版本信息 |
修改内容 |
修改人 |
||
V1.00 |
创建 |
穆珊珊 |
||
|
|
|
2. 简介
LOGIC:逻辑运算
该功能块最多可以连接4个输入进行逻辑运算。逻辑运算的运算形式由模式决定。
3. ParID
ParID名字 |
缩写 |
访问方式 |
数据类型 |
数据范围 |
初始值 |
描述 |
LOGIC_MODE |
m |
RD,WR |
UI2 |
0-65535 |
0 |
功能模式,逻辑运算 |
LOGIC_IN1_PARID |
*x1 |
RD,WR |
UI2 |
<ParID>,0 |
0 |
输入1的ParID(指向输入值1) |
LOGIC_IN2_PARID |
*x2 |
RD,WR |
UI2 |
<ParID>,0 |
0 |
输入2的ParID(指向输入值2) |
LOGIC_IN3_PARID |
*x3 |
RD,WR |
UI2 |
<ParID>,0 |
0 |
输入3的ParID(指向输入值3) |
LOGIC_IN4_PARID |
*x4 |
RD,WR |
UI2 |
<ParID>,0 |
0 |
输入4的ParID(指向输入值4) |
LOGIC _VALUE |
y |
RD,(WR) |
UI1 |
0,1 |
0 |
结果输出 WR:用于设置已定义的输出值 |
4. 功能
输入值x1、x2、x3和x4是逻辑性关联的,即所有的值只要非0就认为是逻辑1。逻辑操作的结果在输出端输出为1或0。模式m决定了逻辑的模式,可以从两种方式理解:
1.作为常量,确定一个基本的逻辑功能(AND, OR, NOT等)
2.以“位编码”的方式作为逻辑操作的真值表。在既定模式下,m的每个位对应于该模式下不同输入时的一个结果值。例如,m=6时,以二进制表示为0110,bit2代表在x2=1,x1=0时在m=6时的结果,即为1。
两输入下的所有功能模式的y的真值表,模式0-15:
bit |
x2 |
x1 |
m=0 y=0 |
m=1 NOR |
m=2 |
m=3 NOTx2 |
m=4 |
m=5 NOTx1 |
m=6 EXOR |
m=7 NAND |
m=8 AND |
m=9 EXNOR |
m=10 y=x1 |
m=11 |
m=12 y=x2 |
m=13 |
m=14 OR |
m=15 y=1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
2 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
3 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
NOR:或非。当输入存在逻辑1时,输出逻辑0。当输入都是逻辑0时,输出逻辑1。
NOT:非。对输入取反。输入为逻辑0时输出逻辑1,输入为逻辑1时输出逻辑0。
EXOR:异或。输入相同时输出为逻辑0,输入相异时输出逻辑1。
NAND:与非。当输入存在逻辑0时,输出逻辑1。当输入都是逻辑1时,输出逻辑0。
AND:与。当输入都为逻辑1时,输出逻辑1。当输入存在逻辑0时,输出逻辑0。
EXNOR:异或非。输入相同时输出为逻辑1,输入相异时输出逻辑0。
4输入下的部分功能模式的y的真值表:
bit |
x4 |
x3 |
x2 |
x1 |
m=1 NOR |
m=0x7FFF NAND |
m=0x8000 AND |
m=0xFFFE OR |
m=0xF888 (x1ANDx2) OR (x3ANDx4) |
m=0xEEE0 (x1OR) AND (x3OR) |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
2 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
3 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
4 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
5 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
6 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
7 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
8 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
9 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
10 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
11 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
12 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
13 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
14 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
15 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
注意:
▪关闭状态下输入强制为0(初始状态)。
▪ParID:CONST_I4_ONE(逻辑1)和CONST_I4_ZERO(逻辑0)也可用作输入。
▪运行中,模式和输入都可以切换。如果切换的话,需要确保当功能块的输入或模式改变时,转换状态能在一个组合逻辑之内完成。
▪当输入关联R4类型参数时,只有当浮点值达到精确的0.0时才认为是逻辑0。所有bit(符号位,指数位,小数位)都必须是0。例如以下的浮点值也会被认为是逻辑1:1.1754943508222875E-38F, -1.1754943508222875E-38F, -0.0, NAN
5. 例子
判断一个状态值的后4位是否都为1。结合之前BIT 功能块一起。