c1ObjectsInQ

显示当前队列里有多少的点位,当设置c4TrigAutoMode为1时,每次等距离c4TrigAutoDist触发时,会修改c1CntFromEnc,同时c1ObjectsInQ会加1。即使物料已经被抓取,c1ObjectsInQ也不会减1,VRT时,如果c1ObjectsInQ达到某一个数时,会自动从0开始,这个数由公式max dist / Trigger Distance计算得出。当点位超出max dist时,会自动drop掉。例如如果max dist=20000(默认),Trigger Distance为500mm,那么最大的c1ObjectsInQ=20000/500=40。

It is possible to monitor the position of the conveyor and automatically drop any connected objects that move outside the maximum or minimum specified distance. The purpose is to prevent coordination of motion beyond the work area of the robot for both forward and backward operation of the conveyor

只要c1ObjectsInQ大于0,那么队列中的第一个点位,就会自动成为传送带的原点,如果c1ObjectsInQ等于0,那么0会成为传送带的原点,传动带的当前坐标由(c1Counts-原点坐标)计算得出。传送带的原点坐标必须是队列中的点位,因为队列中的点位都是从c1CntFromEnc传过来的,所以传送带的原点位置都是c1CntFromEnc的值的子集。如果需要切换传送带的原点位置,唯一的办法就是删除队列的点位,让希望的点位成为队列中的第一个点位,才能把该点位设置为传送的原点位置。

删除队列的点位有几种方法。

  • 使用c1Rem1PObj删除第一个点位
  • 使用c1RemAllPObj删除所有点位
  • 设置c1CntToEnc为队列中的某一个点位,然后发脉冲信号c1CntToEncStr,删除队列中小于c1CntToEnc位置的所有点位,那么就可以指定和c1CntToEnc相同值的点位为传送带的原点位置,如果c1CntToEnc和队列中的任何一个点位不一致,按照手册,会删除队列中小于该位置的点位,但是测试发现,貌似不会。
  • 当c1Counts比队列中的点位大时,运行WaitWObj指令会重设传送带坐标原点,并删除该点位。

日志文件夹

重新设置传送带坐标系的方法

  • 设置c1CntToEnc为队列中的某一个点位,然后发脉冲信号c1CntToEncStr,此时将把该点位作为传送带原点的位置,同时删除队列中所有比该点位小的点位。
  • c1RemAllPObj,删除所有队列中点位,此时会把当前c1Counts值作为传送带的原点。c1Rem1PObj不会修改传送带的原点,因为这个信号只是简单的把队列中的点位删除而已,队列中的点位和传送带的原点是两个概念。
  • 当c1Counts比队列中的点位大时,运行WaitWObj指令会重设传送带坐标原点,并删除该点位。
  • 当队列中没有点位时,此时新增第一个点位,会导致该点位自动成为传送带的原点。

c1Rem1PObj

删除队列里第一个点位

c1RemAllPObj

删除队列里所有点位,PP在启动和停止时,都会发一个脉冲信号清除点位。

c1NewObjStrobe

手动添加一个点位

c1CntFromEnc

每次c1CntFromEnc变化,都会导致c1ObjectsInQ加1

c1SoftSync

c1SoftSync信号置1会导致c1CntFromEnc=c1Counts, 但是不清楚为什么,下一次编码器的触发信号并不是按这个值+c4TrigAutoDist触发,还是按原有的触发位置触发,可能内部触发的逻辑不受实时c1CntFromEnc的变化影响。

c1CntToEncStr & c1CntToEnc & c1Connected

The use of cxCntToEnc is not meant to add objects to the queue but only to select objects to be picked from the queue. Therefore, cxObjectsInQ is not incremented after a pulse of cxCntToEncStr. If the counter value set using cxCntToEnc does not match any existing object in the queue, the controller will connect to the first available object issuing the internal error Invalid count_to_enc_strobe on cnv x. Therefore, creating new objects at arbitrary counter positions is not supported. On the other hand, if the counter value selected using cxCntToEnc is valid and available for connection, the controller will automatically drop all the objects from the queue which are older than the selected object. To avoid automatic dropping, it is recommended to select the oldest object for onnection and perform the pick/place operations using the relative offset to the connected object.

日志文件夹

c1DropWObj & c1WaitWObj & c1Connected

这三个信号关联WaitWObj和DropWObj这两个指令,代表把队列中一个点位关联到传送带坐标系中。

c1Position

  1. 当传送带激活后,修改c1CntFromEnc会导致c1ObjectsInQ自增,以后再次修改c1Counts会自动更新c1Position。在此过程中,其它信号均无关,保持默认值即可。
  2. 激活传送带后,如果设置c1RemAllPObj为1,c1Position会变0。
  3. 激活传送带后,设置c1NewObjStrobe,会导致c1Position变0,c1CntToEncStr=1,同时c1CntToEnc=c1Counts

c1Rem1PObj c1RemAllPObj

删除队列中点位,但是不会删除已经被关联到传送带跟踪坐标系的点位。即一旦使用WaitWObj标定一个坐标系,就不能通过这两个指令删除了,只能通过DropWObj指令删除。

同步c1CntFromEnc和c1Counts

当修改c1TrigAutoEncNo数值时,会自动同步c1CntFromEnc和c1Counts,使两个信号相同。只有在c1TrigAutoMode为1时,该功能才能使用。在设置c1TrigAutoEncNo时,要注意和c1CntFromEnc所映射的地址保持一致,因为c1CntFromEnc虽然默认映射的是第一个编码器,但是理论上可以映射四个编码器中的任何一个,不能只通过c1TrigAutoEncNo改变编码器的触发信号,还需要改变c1CntFromEnc对映射的对应编码器地址。

日志文件夹
日志文件夹

VRT

如果使用377B板,VRT时,doTrigVis1会自动发出脉冲信号,但是如果使用CTM板,则不会自动发出脉冲信号。

doBlow1 & doVacuum1

Vaccum Activation控制的是提前吸气(真空)时间,这个时间的原点坐标是Pick的接近点。Vacuum Reversion控制的是提前吹气时间,这个时间的原点坐标是放置点,非接近点。Vacuum Off控制的是滞后关气时间,时间的原点坐标是放置点,这里有一个注意点,该值如果为正时,代表滞后关气,因为机器人Trigger的内部事件逻辑是提前为正,滞后为负,所以当把这个参数从PP或OP传给PMRT再传给机器人时,PMRT会把这个参数加个负号取反后再传给机器人。

2021-11-13 10:14:47:WARNING:root:VacActDelay:0.02
2021-11-13 10:14:47:WARNING:root:VacRevDelay:0.02
2021-11-13 10:14:47:WARNING:root:VacOffDelay:-0.02

日志文件夹