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