使用java实现类似nc的功能_在FANUC机器人中使用后台运行逻辑实现PLC功能
后臺邏輯概念
PLC是工業(yè)自動化領(lǐng)域常用的一種邏輯控制產(chǎn)品,以其性能穩(wěn)定、兼容性好、可擴(kuò)展性強(qiáng)、體積小、性價比高而被廣泛應(yīng)用。在機(jī)器人產(chǎn)品中,為了降低系統(tǒng)集成的難度,很多機(jī)器人產(chǎn)品自身也會在控制系統(tǒng)中嵌入一款小型的PLC系統(tǒng),FANUC機(jī)器人也不例外,只是在機(jī)器人中它不在被稱為PLC,而是被稱為后臺邏輯功能。
顧名思義,后臺邏輯就是機(jī)器人前臺運(yùn)動程序運(yùn)行過程中,同時后臺也在運(yùn)行的一種用于處理信號邏輯關(guān)系的控制程序,二者在運(yùn)行關(guān)系上相互獨(dú)立。后臺邏輯程序可以監(jiān)視前臺的運(yùn)行狀態(tài),同時也可以向前臺發(fā)送控制信號。當(dāng)然后臺邏輯也可以通過I/O通信,與外部設(shè)備連接對機(jī)器人周邊設(shè)備進(jìn)行運(yùn)行監(jiān)視與控制。
后臺邏輯功能特點(diǎn)
FANUC機(jī)器人后臺邏輯功能具有以下特點(diǎn):
- 使用后臺邏輯時,可以在后臺執(zhí)行只包含對應(yīng)后臺邏輯指令的TP程序,程序從頭至尾周而復(fù)始的循環(huán)掃描,這一點(diǎn)與PLC的運(yùn)行模式一致的。
- 后臺邏輯執(zhí)行過程中不受急停、暫停、報警的影響。
- 可同時執(zhí)行8個TP程序作為后臺邏輯,優(yōu)先運(yùn)行模式下,程序數(shù)目超過最大值時,程序停止執(zhí)行,并發(fā)出錯誤報警。
- 在后臺邏輯程序執(zhí)行期間,不能編輯該程序,不能作為通常的任務(wù)來執(zhí)行。尚未開啟后臺運(yùn)行的程序,可以將該程序作為通常的任務(wù)來執(zhí)行。
- 在后臺執(zhí)行程序時,不能通過改寫相同名稱的程序來加載。
- 電源切斷后,在下次通電時,后臺邏輯程序?qū)⒁韵嗤膱?zhí)行模式被自動執(zhí)行。
后臺邏輯運(yùn)行模式與掃描時間
FANUC機(jī)器人后臺邏輯功能具有兩種運(yùn)行模式:通常運(yùn)行模式與優(yōu)先運(yùn)行模式。
通常運(yùn)行模式下,可以在后臺邏輯程序中執(zhí)行所有復(fù)合運(yùn)算指令。對每一個ITP(機(jī)器人掃描周期,通常為8ms),可掃描600個程序數(shù)據(jù)或者邏輯運(yùn)算符。數(shù)目超過600時,掃描時間延長。比如,一個具有1600個操作邏輯,處理時間大約需要24ms。但是,如果優(yōu)先運(yùn)行模式的程序已經(jīng)在后臺執(zhí)行時,每個ITP中執(zhí)行的邏輯操作數(shù)量是:600 -優(yōu)先運(yùn)行模式的邏輯操作數(shù)的合計。
優(yōu)先運(yùn)行模式下,可以在后臺執(zhí)行所有復(fù)合運(yùn)算指令。在優(yōu)先運(yùn)行模式下,可以保證每個機(jī)器人ITP內(nèi)后臺邏輯程序都可以被執(zhí)行一次。優(yōu)先模式下的最大邏輯操作數(shù)為540個。對需要高周期執(zhí)行的指令,其將分割為若干個通常模式的后臺邏輯,然后在優(yōu)先運(yùn)行模式下執(zhí)行。
后臺邏輯程序可運(yùn)行指令
機(jī)器人后臺邏輯程序?qū)χ噶钆c數(shù)據(jù)有一定的要求,與普通的TP程序不同,其不能控制任何運(yùn)動軸。因此在編程時不能含有任何機(jī)器人軸運(yùn)動指令,比如Joint、Linear、Circular等指令。后臺邏輯程序中可運(yùn)行的指令與數(shù)據(jù)如下表所示。
后臺邏輯程序在使用這些指令與數(shù)據(jù)時,應(yīng)注意以下幾點(diǎn)要求:
- 不能將數(shù)據(jù)M[]指定為后臺邏輯賦值語句等號左邊部分。
- 程序中包含有可運(yùn)行的指令以外的指令時,在執(zhí)行時會發(fā)生錯誤報警。
- 在后臺邏輯程序中不能使用脈沖指令,這點(diǎn)和PLC指令有所不同。
- 后臺邏輯,可以執(zhí)行具有條件表達(dá)式的賦值語句,條件表達(dá)式為OFF的情況下,賦值語句不予執(zhí)行。如指令I(lǐng)F(DI[1]),DO[1]=(DI[2]),程序被執(zhí)行時,當(dāng)Dl[l]為ON時,DI[2]被賦值給DO[1];當(dāng)DI[1]為OFF時,DO[1]不會改變。
- 使用JMP、 LBL指令時,請指定比JMP指令更后面行的LBL,指定前面行的LBL時,程序執(zhí)行時系統(tǒng)會發(fā)生錯誤報警。
- 執(zhí)行包含JMP指令的程序時,由于程序具有分支,因此掃描時間會有變動。
- 編寫的條件表達(dá)式務(wù)必要用括弧圈起來,沒有用括弧圈起來的將不被執(zhí)行。例如普通TP程序中的條件表達(dá)式IF DI[1] =ON,JMP LBL[I],在后臺邏輯程序中要修改為IF (DI[1]=ON,JMP LBL[1],才能被執(zhí)行。
- 對于在后臺邏輯程序中使用RUN指令執(zhí)行的程序,要求其暫停時,該程序不會暫停而結(jié)束。
- 后臺邏輯中執(zhí)行了用戶報警指令時,后臺邏輯的程序不會停止。
后臺邏輯實(shí)現(xiàn)方法
FANUC機(jī)器人后臺邏輯功能的實(shí)現(xiàn)還是比較簡單的,首先創(chuàng)建一個TP程序,名稱可隨意命名,如這里使用EXIO1。然后在程序詳細(xì)信息中,將程序的組掩碼全部設(shè)置為“*”,即在后臺邏輯程序中將機(jī)器人運(yùn)動軸(運(yùn)動指令)全部屏蔽,只保留邏輯控制功能,這是使用后臺邏輯的基本條件。
在創(chuàng)建的TP程序中添加需要的后臺運(yùn)行指令,如下圖所示的指令。指令含義:如果后臺掃描到信號DO[1]為ON,那么數(shù)值寄存器R[1]執(zhí)行累加1;當(dāng)DO[1]為OFF程序停止執(zhí)行。如果掃描到DO[1]為ON時,那么數(shù)值寄存器R[1]被重置為0。
后臺程序編寫完成后,示教器的操作面板中按“MENU”按鈕,然后依此選擇“6 設(shè)置”→“1 后臺邏輯”。
在打開的后臺邏輯界面中,程序列下使用“[選擇]”鍵選擇需要后臺運(yùn)行的TP程序,如EXIO1。然后按“[運(yùn)行]”鍵,將后臺運(yùn)行程序激活運(yùn)行。
示教器界面中依次打開I/O數(shù)字輸出窗口與數(shù)值寄存器窗口,在I/O數(shù)字輸出窗口中使用“ON”、“OFF”鍵分別置位與復(fù)位數(shù)字量輸出信號DO[1]、DO[2],可以看到數(shù)字寄存器R[1]進(jìn)行累加1操作、停止累加操作、被重置為0。
返回后臺邏輯界面,重新將后臺運(yùn)行程序EXIO1置為停止?fàn)顟B(tài)。再次切換到I/O數(shù)字輸出窗口與數(shù)值寄存器窗口,重復(fù)上述步驟,可以發(fā)現(xiàn),數(shù)值寄存器R[1]不在發(fā)生變化。
綜上,可以看出,機(jī)器人后臺運(yùn)行邏輯功能非常類似于獨(dú)立運(yùn)行在機(jī)器人外部設(shè)備中的PLC,只要機(jī)器人處于開機(jī)狀態(tài),運(yùn)行狀態(tài)中的后臺邏輯程序就會自動循環(huán)運(yùn)行,來完成一些簡單的信號監(jiān)視與控制之類的邏輯功能。
The End
上一篇:Roboguide軟件:基于I/O信號的機(jī)器人行走軸添加與配置
總結(jié)
以上是生活随笔為你收集整理的使用java实现类似nc的功能_在FANUC机器人中使用后台运行逻辑实现PLC功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: h5 先加载小图_【3dmax】小图渲大
- 下一篇: ddr4 lpddr4区别_iFixit