版权声明:本文为博主原创文章,未经博主允许不得转载。 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上。
我们看看实际运行结果
精度在我们范围以内,达到我们测试要求。
谢谢大家~~~