提高信号利用率
在通常使用中,一个信号只能有0或1两种状态,有时可能由于硬件限制的原因比如IO板的IO点数量不够但又不方便新增IO板的情况下可以利用组信号提高信号利用率,比如仅仅使用4个信号就可以通过8421的方式实现16种状态组合方式见下表所示:
状态序号
地址3值
地址2值
地址1值
地址0值
组信号值
1
0
0
0
0
0
2
0
0
0
1
1
3
0
0
1
0
2
4
0
0
1
1
3
5
0
1
0
0
4
6
0
1
0
1
5
7
0
1
1
0
6
8
0
1
1
1
7
9
1
0
0
0
8
10
1
0
0
1
9
11
1
0
1
0
10
12
1
0
1
1
11
13
1
1
0
0
12
14
1
1
0
1
13
15
1
1
1
0
14
16
1
1
1
1
15
有些小伙伴可能对8421码不太熟悉,那么Windows系统中附带的计算器可以帮我们得到对应十进制数的8421码。
机器人同时等待多个信号时提高信号逻辑安全性,简化代码。
比如现在我们需要等待四个输出(输入)信号同时为1的时候机器人再继续执行下方指令我们应该怎么写呢?
方案1
WaitDI di0,1;
WaitDI di1,1;
WaitDI di2,1;
WaitDI di3,1;
方案一有2个问题,一是当信号太多时代码会很长,二是多个信号的处理会存在时间差异,不太安全。比如当程序指针走到di1时di0突然变成0了,机器人还是会继续往下执行的。
方案2
WaitUntil di0=1 AND di1=1 AND di2=1 AND di3=1;
方案2不会出现时间差异的问题,但当信号条件非常多时程序语句会很繁琐,变得非常长。
方案3
如果上述四个信号配置成一个组输入,则我们只需要下面的一条指令就可以了。
WaitGI GI0,15;
那么有的小伙伴会问了,如果我的信号地址不是连续的怎么办?那么下面我们再接着看一下组信号地址配置时的两个小技巧,一是地址不连续的处理,二是组信号与外围设备通讯时高低字节不匹配的问题的处理。
不连续地址的处理
在ABB机器人的组信号配置中,地址连续的信号可以使用英文半角的“-”号将组信号的首地址与末地址连接起来即可,比如组输入GI0所占用的地址为0,1,2,3,4,5,6,7那么地址配置成“0-7”就可以了,如下图所示:
如果组信号的地址是不连续的地址,那么就需要通过使用英文半角的“,”来将不连续的地址依次配置,如下图所示:
组信号的高低字节问题
ABB机器人在与某些外围设备如西门子的PLC进行通讯时会有高低字节不对应的问题,对于这种问题要想通讯正常,就必须有一方设备对信号做处理,在西门子PLC中可以用swap指令进行地址的高低互换,或者在ABB机器人中配置地址时用英文半角的“,”号将地址的顺序颠倒一下。来源 网络
更多详情:ABB机器人