CS運(yùn)動(dòng)到達(dá)時(shí)提前觸發(fā)信號(hào)
1. 簡(jiǎn)介
EC機(jī)器人在運(yùn)動(dòng)指令中有TRIGGER指令,可以在到達(dá)點(diǎn)位前滿足距離或時(shí)間的條件觸發(fā)IO狀態(tài)。
在CS機(jī)器人指令中就沒(méi)有這個(gè)指令,我們就可通過(guò)本文方式實(shí)現(xiàn)通過(guò)距離判斷提前觸發(fā)IO狀態(tài)
2. 操作流程
1、樹(shù)狀圖中編寫
程序具體實(shí)現(xiàn)如下:
flag_1:標(biāo)志位,是用于控制僅 路點(diǎn)_1到路點(diǎn)_2過(guò)程中滿足條件才觸發(fā),其他位置接近路點(diǎn)_2不觸發(fā)
路點(diǎn)2添加Until的已到達(dá)路點(diǎn)模式會(huì)保證一定準(zhǔn)確到達(dá)路點(diǎn),在到達(dá)路點(diǎn)后添加一個(gè)動(dòng)作,標(biāo)志位置0,保證其他位置不會(huì)觸發(fā)事件
事件:事件中判斷標(biāo)志位為0,判斷兩個(gè)工具之間的距離<設(shè)定的距離,兩個(gè)都為True時(shí)觸發(fā)事件中的程序,設(shè)置IO信號(hào)
point_dist()計(jì)算直線距離,不考慮位姿
也可使用pose_dist(),計(jì)算距離時(shí)考慮位姿
2、腳本編寫方式
腳本如下:
#P:需提前觸發(fā)信號(hào)路點(diǎn)
#L:觸發(fā)距離,單位為m
#O:觸發(fā)輸出,填寫輸出信號(hào)0-15
def trigger(P,L,O):
global flag
if flag==1:
pose1=get_actual_tcp_pose()
l1=point_dist(P,pose1)
if l1<l:< p="" style="box-sizing: border-box;">
set_standard_digital_out(O,False)
flag=0
程序中使用腳本,要現(xiàn)在全局變量中創(chuàng)建一個(gè)變量flag,
在線程中調(diào)用函數(shù),分別填入(標(biāo)志位變量,需提前觸發(fā)路點(diǎn),觸發(fā)距離,觸發(fā)輸出信號(hào)0-15)