【TRIO-Basic从入门到精通教程十四】Trio实现单位置轴多色标捕捉

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/guimotion/article/details/79094841

大家好,相信很多朋友都用过或听过色标功能。Trio物理轴简单配置就能实现双色标功能。

TRIO使用的色标捕捉命令如下图所示:

REGIST(20, channel, source, edge, window [,quantity, table_start]) 

我们使用A、B两个通道就能捕捉到双色标。如果想实现多轴色标功能,那么就需要特殊方法去处理:

方法如下:将所需要捕捉轴位置叠加给虚轴,我们对虚轴位置去捕捉。

注意:因为使用了虚轴,硬件捕捉速度小于实体轴速度。

接下来:我们直接看代码实例

'clear axis(3) motion buffer
BASE(3)
UNITS=1
CANCEL(2)
WAIT IDLE
WA(100)
DEFPOS(0)
WAIT UNTIL OFFPOS=0
WA(10)

BASE(4)
UNITS=1
DEFPOS(DPOS AXIS(3))
WAIT UNTIL OFFPOS=0
ADDAX(3)

BASE(3)
UNITS=1000
SPEED=1
DECEL=10
ACCEL=10
REG_INPUTS=$21

BASE(4)
UNITS=1000
SPEED=1
DECEL=10
ACCEL=10

WDOG=1

FORWARD AXIS(3)

'input in 1
REGIST(20, 0, 0, 0, 0) AXIS(3)
'input in 2
REGIST(20, 1, 0, 0, 0) AXIS(3)
'input in 3
REGIST(20, 3, 4, 0, 0) AXIS(4)

WHILE TRUE
    IF MARK AXIS(3) THEN
        PRINT "MarkA pos=",REG_POS AXIS(3)
        WA(200)
        REGIST(20, 0, 0, 0, 0) AXIS(3)
    ENDIF
    IF MARKB AXIS(3) THEN
        PRINT "MarkB pos=",REG_POSB AXIS(3)
        WA(200)
        REGIST(20, 1, 0, 0, 0) AXIS(3)
    ENDIF
    IF MARK AXIS(4) THEN
        PRINT "MarkC pos=",REG_POS AXIS(4)
        WA(200)
        REGIST(20, 3, 4, 0, 0) AXIS(4)
    ENDIF

WEND
测试方案:IO输入1,2,3短接在一起,办证色标同时触发。IN1-2接在本体实体轴3上,IN3接在虚拟轴4上。

我们看看实际运行结果


精度在我们范围以内,达到我们测试要求。

谢谢大家~~~

猜你喜欢

转载自blog.csdn.net/guimotion/article/details/79094841