ABB机器人组输入/组输出那些事儿

ABB机器人的组输入/组输出信号是机器人单独的输入/输出的信号的联合体,对于组信号我们最常用的就是通过组信号与外部设备传输整数数字,其实组信号除了可以用来与外部设备传输整数,还有许多其它的用途,这一次我们就一起来看一ABB机器人的组信号少有人知的那些事儿。

提高信号利用率

在通常使用中,一个信号只能有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机器人中配置地址时用英文半角的“,”号将地址的顺序颠倒一下。

文章首发自动化生产之家

(0)

相关推荐