張 帥,儀登利
(遼寧工業(yè)大學(xué) 機(jī)械工程與自動化學(xué)院,遼寧 錦州 121001)
在熱軋鋼卷的生產(chǎn)過程中,為方便生產(chǎn)廠家追蹤產(chǎn)品質(zhì)量,使用戶了解產(chǎn)品的相關(guān)信息,產(chǎn)品出廠前一般在其上打碼標(biāo)明生產(chǎn)代號、產(chǎn)品規(guī)格、材質(zhì)、質(zhì)量、鋼的爐號和生產(chǎn)日期等[1]。傳統(tǒng)的熱軋鋼卷生產(chǎn)線一般采用人工打碼,當(dāng)熱軋鋼卷隨著傳送帶運(yùn)動過來后,由鋼廠員工攜帶打碼器進(jìn)行現(xiàn)場打碼。這種方法不嚴(yán)重影響了熱軋鋼卷的生產(chǎn)效率,而且由于員工的長時間勞動,還會在打碼過程中出現(xiàn)打錯碼、打偏碼甚至更嚴(yán)重的會漏掉對一些鋼卷的打碼,造成該卷產(chǎn)品信息的無法追蹤,這些問題都會對鋼廠造成巨大的經(jīng)濟(jì)損失,由于鋼卷本身具有高溫,造成了現(xiàn)場的工作環(huán)境相當(dāng)惡劣,增加了員工的安全隱患[2]。本文針對此問題,設(shè)計了一套熱軋鋼卷自動激光打碼系統(tǒng),采用機(jī)器人代替人工來完成打碼,實(shí)現(xiàn)整個打碼系統(tǒng)的自動化。
熱軋鋼卷自動激光打碼系統(tǒng)的設(shè)備主要由機(jī)器人、激光打碼機(jī)(帶防護(hù)罩)、安全防護(hù)欄、行程開關(guān)、上位機(jī)等,如圖1 所示。
機(jī)器人是打碼的執(zhí)行機(jī)構(gòu),它的控制系統(tǒng)是機(jī)器人控制柜,其與上位機(jī)和行程開關(guān)相連。激光打碼機(jī)安裝在機(jī)器人前端,并安裝有防護(hù)罩。行程開關(guān)有4 個,安裝在激光打碼機(jī)前端,用于機(jī)器人定位打碼位置。上位機(jī)主要功能是監(jiān)控機(jī)器人與激光打碼機(jī)的運(yùn)行過程和獲取激光打碼機(jī)所需要的碼,其獲取碼的方式有兩種,一種是操作人員在工控機(jī)上人工輸入所要打的碼,另一種是通過TCP/IP 協(xié)議與鋼廠MES 系統(tǒng)通訊,從數(shù)據(jù)庫取得碼。安全防護(hù)欄主要起防護(hù)作用,平時禁止非相關(guān)人員活動。激光打碼工作流程如圖2 所示,首先上位機(jī)接收到鋼廠MES 系統(tǒng)的編碼信息,并將需要打的碼傳遞給激光打碼機(jī),激光打碼機(jī)等待打碼開始信號,待到鋼卷運(yùn)動到指定位置后,傳送帶停止,機(jī)器人對鋼卷打碼位置進(jìn)行定位,然后激光打碼機(jī)進(jìn)行打碼,打碼完成后,機(jī)器人回到原點(diǎn),工控機(jī)與打碼機(jī)清空以完的成碼信息,準(zhǔn)備下一條要打的碼。
圖1 自動打碼系統(tǒng)結(jié)構(gòu)圖
圖2 打碼工作流程圖
本打碼系統(tǒng)的硬件設(shè)計主要包括激光打碼機(jī)、機(jī)器人、上位機(jī)、行程開關(guān)和各種通訊模塊。其硬件結(jié)構(gòu)如圖3 所示。
圖3 通訊結(jié)構(gòu)架構(gòu)圖
上位機(jī)采用性能穩(wěn)定的工業(yè)控制計算機(jī),通過工業(yè)網(wǎng)與機(jī)器人和激光打碼機(jī)建立連接,當(dāng)接收鋼卷到位是指令后,將從鋼廠MES 系統(tǒng)獲取的編碼信息傳送到激光打碼機(jī),同時遠(yuǎn)程控制機(jī)器人進(jìn)行打碼定位的過程。最重要的是,根據(jù)現(xiàn)場要求,設(shè)計了一套加載于上位機(jī)的人機(jī)界面程序,該程序能實(shí)現(xiàn)對機(jī)器人與激光打碼機(jī)的遠(yuǎn)程控制與監(jiān)控,這樣就可以通過上位機(jī)更加方便的執(zhí)行各種操作與監(jiān)視系統(tǒng)運(yùn)行狀態(tài)[3]。
機(jī)器人采用的是ABB公司的IRB-6700-514464,該系列機(jī)器人是ABB 公司新型大功率的機(jī)器人,與之前版本相比更為穩(wěn)健,是150-300 kg 負(fù)載等級中性能最好且總體擁有成本(TCO)最低的機(jī)器人,可應(yīng)用于各種行業(yè)的重物搬運(yùn)作業(yè)。上位機(jī)與其之間通TCP/IP 協(xié)議連接到機(jī)器人控制柜,機(jī)器人本體與控制柜之間過數(shù)據(jù)電纜和動力電纜相連,行程開關(guān)與其之間通過I/O 接口連接,根據(jù)四個行程開關(guān)反饋的信息,來幫助機(jī)器人完成定位。
激光打碼機(jī)采用的是晨皓達(dá)公司的CHD-T30(30 W)光纖打碼機(jī),該打碼機(jī)機(jī)采用進(jìn)口光纖激光器,擁有輸出功率穩(wěn)定、打碼速度快,工作效率高等一系列優(yōu)點(diǎn),并且與上位機(jī)之間只需要USB進(jìn)行數(shù)據(jù)傳輸,傳輸方式簡單快捷。
本打碼系統(tǒng)的軟件設(shè)計主要包括編寫ABB 機(jī)器人的驅(qū)動程序以及用C#語言開發(fā)打碼系統(tǒng)的人機(jī)界面。
機(jī)器人驅(qū)動程序是在 ABB 公司提供的robotstudio 軟件上進(jìn)行編寫,其采用的編程語言為RAPID 語言。該語言具有一般計算機(jī)高級語言的特點(diǎn),擁有很強(qiáng)的可讀性,該語言不僅有許多內(nèi)部函數(shù)可供選擇,還包含了機(jī)器人工作過程的所有狀態(tài),利用該語言可以讓機(jī)器人根據(jù)編好的程序重復(fù)進(jìn)行一些動作[4]。根據(jù)采用定位策略,其控制流程圖如圖4 所示。首先把四個行程開關(guān)按順時針順序進(jìn)行編號并分成兩組,它們的號碼分別是1、2、3、4,對應(yīng)是變量分別為di1、di2、di3、di4,其中1、4 為A組2、3 為B組。在A、B 兩組中如果有一個行程開關(guān)觸發(fā)則該組的位置信號就置位1,其情況如圖3 所示,當(dāng)每個行程開關(guān)一個有接觸時,則該行程開關(guān)信號的置位1。
(1)機(jī)器人控制柜接收到打碼系統(tǒng)上位機(jī)的開始打碼信號后,機(jī)器人程序開始啟動。
(2)調(diào)整激光打碼機(jī)的位置,使之與鋼卷垂直。
(3)器人開始以向前加速運(yùn)動,距離熱軋鋼卷200 mm 處機(jī)器人開始減速繼續(xù)前進(jìn),直到有一個行程開關(guān)觸發(fā)后,機(jī)器人停止。
(4)判斷A、B 兩組信號是否都觸發(fā),如果是,則機(jī)器人停止,并向打碼系統(tǒng)的上位機(jī)發(fā)送到位信號。
(5)如果否,再判斷A組信號是否為1,如果是,則機(jī)器人以1、4 為軸向左轉(zhuǎn),直到B組信號觸發(fā),機(jī)器人停止,如果否,則機(jī)器人以2、3為軸向右轉(zhuǎn),直到A組信號觸發(fā),機(jī)器人停止,
(6)如此循環(huán)到AB 兩組信號都觸發(fā),則機(jī)器人停止,并向打碼系統(tǒng)的上位機(jī)發(fā)送到位信號。
圖4 機(jī)器人程序控制流程圖
該打碼系統(tǒng)的人機(jī)界面主要實(shí)現(xiàn)目標(biāo)的兩個功能,一是打碼系統(tǒng)工作過程的實(shí)時監(jiān)控,二個是編碼信息的獲取與傳遞。
打碼系統(tǒng)工作過程的實(shí)時監(jiān)控包括對ABB 機(jī)器人的連接狀態(tài)、激光打碼機(jī)的連接狀態(tài)以及系統(tǒng)啟停的指示燈顯示,同時還有對顯示機(jī)器人、激光打碼機(jī)和行程開關(guān)的工作狀態(tài)實(shí)時監(jiān)控,以及對機(jī)器人的空間坐標(biāo)和與各設(shè)備通過以太網(wǎng)實(shí)時通訊狀態(tài)進(jìn)行同步顯示。另外對于操作模式的選擇系,統(tǒng)提供了手動和自動兩種操作模式,自動模式是主要模式,一般系統(tǒng)正常運(yùn)行時都是此模式,手動模式是輔助模式,其主要是針對完成一些特殊的打碼要求,增大大打碼系統(tǒng)的使用范圍。當(dāng)打碼系統(tǒng)出現(xiàn)故障時,系統(tǒng)會根據(jù)故障代碼彈出相應(yīng)的報警彈窗顯示報警信息。
對于編碼信息的獲取有兩種方式,一種是手動模式下,有操作人員在上位機(jī)上人工輸入所要打的碼,其中輸入信息包括牌號、規(guī)格、爐號、執(zhí)行標(biāo)準(zhǔn)等,另一種是在自動模式下,上位機(jī)通過TCP/IP協(xié)議與鋼廠數(shù)據(jù)庫相連,從鋼廠數(shù)據(jù)庫中獲得編碼信息。對于編碼信息的傳遞,主要是把接收到上述編碼信息,自動生成的對應(yīng)條形碼和二維碼輸出到激光打碼機(jī)的EZCad 軟件,完成編碼信息的轉(zhuǎn)換與傳遞功能。
本文系統(tǒng)通訊主要分為兩部分,其分別為上位機(jī)與ABB 機(jī)器人的通訊和上位機(jī)與鋼廠的MES 系統(tǒng)數(shù)據(jù)庫的通訊。其中由于ABB 的機(jī)器人、上位機(jī)、鋼廠MES 系統(tǒng)之間的應(yīng)用軟件都相互獨(dú)立,并且他們之間的接口也不相同,沒有一款合適的上位機(jī)編程軟件能同時協(xié)調(diào)好三者之間的通信問題,因此需要針對此問題重新設(shè)計一套完成是打碼系統(tǒng)人機(jī)界面,在其底層程序開發(fā)中,解決好三款系統(tǒng)軟件之間的通信問題,這成為了本設(shè)計的重點(diǎn)與難點(diǎn)。
該系統(tǒng)首先采用 PC SDK(software development kit)在上位機(jī)上設(shè)計 ABB 工業(yè)機(jī)器人的操作界面,實(shí)現(xiàn)本地和遠(yuǎn)程程序的變量同步,然后在以 TCP/IP 協(xié)議與 ABB 機(jī)器人控制柜通信,直接通過以太網(wǎng)對遠(yuǎn)程端的機(jī)器人進(jìn)行控制和管理[5],其結(jié)果如圖5 所示。其設(shè)計方法如下:
(1)獲取或設(shè)置機(jī)器人的robtarget 或path 信息
(2)搭配socket 可以實(shí)現(xiàn)上位機(jī)控制機(jī)器人的手動運(yùn)行
(3)監(jiān)控示教器的所有錯誤狀況
(4)運(yùn)行或停止機(jī)器人task
(5)設(shè)定或獲取機(jī)器人pers 變量的數(shù)據(jù)實(shí)現(xiàn)上位機(jī)與機(jī)器人程序的交互
(6)通過pers 變量修改出發(fā)機(jī)器人程序中斷
(7)修改或讀取機(jī)器人中的數(shù)組數(shù)值
用以上方法設(shè)計上位機(jī)之后,不僅機(jī)器人程序更加簡單,運(yùn)用更加靈活,而且不會降低機(jī)器人使用效率。
圖5 打碼系統(tǒng)上位機(jī)機(jī)器人狀態(tài)顯示圖
該系統(tǒng)是讀取Xml 文件并進(jìn)行上位機(jī)界面的顯示,首先在從鋼廠MES 系統(tǒng)提供的XML 接口獲取編碼信息,然后保存到本地文件夾中,再利用XmlReader 從本地文件夾進(jìn)行XML 文件數(shù)據(jù)訪問,采用這種方法不僅易于Xml 文件讀取,而且讀取速度非??靃6]。
XmlReader 是一種相對簡潔的解析Xml 文件的方法,其主要是通過識別文檔中的關(guān)鍵元素來完成數(shù)據(jù)解析[7]。它的讀取方式是從文件頂部開始讀取數(shù)據(jù)的,每次讀取一個節(jié)點(diǎn),讀取Xml 文件的步驟如下。
(1)加載本地獲取的Xml 文件,其程序如下:
(2)建立一個可重復(fù)調(diào)用的循環(huán)。然后從該文件頂部開始逐次讀取數(shù)據(jù)的節(jié)點(diǎn),其程序如下:
(3)當(dāng)程序運(yùn)行,需要不斷的獲取當(dāng)前節(jié)點(diǎn)的信息,如果當(dāng)前節(jié)點(diǎn)可讀,則返回True,如果到達(dá)文件最后時,則返回False。其程序如下:
(4)界面顯示,最后把讀取到的數(shù)據(jù)庫編碼信息按照要求顯示到用C#做好的窗體中,其結(jié)果如圖6 所示。
圖6 打碼系統(tǒng)上位機(jī)編碼信息顯示圖
本系統(tǒng)設(shè)計完成后,經(jīng)過多月的現(xiàn)場調(diào)試,目前運(yùn)行狀況良好。對每卷熱軋鋼的打碼時間不超過30 s,并且所打的條形碼與二維碼能夠被準(zhǔn)確實(shí)別,完全滿足設(shè)計需求。