陸寅
(寧波通誠電氣有限公司,浙江 寧波 710032)
可編程控制器(PLC)以其運行可靠、易學易用、抗干擾性強等特點,在冷彎生產線得到廣泛應用。在絕大多數場合,其僅作為控制流水線加工動作的時序控制。當產品參數改變時,需要人工將大量的加工參數手工輸入,造成效率下降,易出現(xiàn)錄入錯誤的問題。而母線槽恰恰是一個多變產品,一個工程就會有幾十種的產品規(guī)格出現(xiàn)。因此利用計算機的圖形識別和分析,將設計文件直接分析和轉化為加工信息,并傳送到PLC 上,為自動化加工提供了應用條件。
本文介紹在一條冷彎自動生產線上,使用計算機自動圖形分析和數據錄入的應用,該系統(tǒng)在公司得到很好的應用。
本系統(tǒng)采用編程軟件VB 編寫而成,具有應用DXF 圖形讀入、圖形識別分析和PLC 串口通信的功能,以期最大限度提高工作效率。作為一個完整的軟件,應用到生產中,包括輸入、處理和輸出幾個部分。具體流程框圖如圖1。
圖1 系統(tǒng)流程框圖
DXF 的文件結構,在許多文獻中有詳細介紹,這里不再贅述。本文僅對圖形讀取有用的部分做簡單介紹。
DXF 文件的圖元文件存放在Entites 段,本軟件分析需要使用的圖元是直線、圓弧、多邊形。
Entites 段:段的識別特征,是有字符串”ENTITIES”直線連續(xù)兩行的特征是:
第一行字符是“0”,第二行”LINE”;
直線坐標 起點 連續(xù)兩行:第一行是”10”第二行就是X 坐標值,
連續(xù)兩行:第一行是”20”第二行就是Y 坐標值
終點 連續(xù)兩行:第一行是”11”第二行就是X 坐標值,
連續(xù)兩行:第一行是”21”第二行就是Y 坐標值
圓形連續(xù)兩行特征:
第一行字符是“0”,第二行”CIRCLE”
中心點:連續(xù)兩行:第一行是”10”第二行就是X 坐標值,
連續(xù)兩行:第一行是”20”第二行就是Y 坐標值
半徑: 連續(xù)兩行:第一行是”40”第二行就是半徑值
圓弧連續(xù)兩行的特征是:
第一行字符是“0”,第二行”ARC”
弧的中心坐標 連續(xù)兩行:第一行是”10”第二行就是X 坐標值,
連續(xù)兩行:第一行是”20”第二行就是Y 坐標值
半徑 連續(xù)兩行:第一行是”40”第二行就是半徑值,
角度1 連續(xù)兩行:第一行是”50”第二行就是角度值
角度2 連續(xù)兩行:第一行是”51”第二行就是角度值
多邊形連續(xù)兩行的特征是:
第一行字符是“0”,第二行”LWPOLYLINE”
頂點: 連續(xù)兩行第一行是”90”第二行是頂點的序號
多邊形是否閉合 連續(xù)兩行第一行是”70”第二行是閉合值
頂點的坐標 連續(xù)兩行:第一行是”10”第二行就是X 坐標值,
連續(xù)兩行:第一行是”20”第二行就是Y 坐標值
圖2 為讀取DXF 中實體圖元的流程圖。
圖2 讀取DXF 中實體圖元的流程圖
具體實現(xiàn)的VB 代碼主要部分如下:
DXF 讀取及存儲(可支持圖元:線/ 弧/ 圓/ 橢圓/多段線/塊)
ImportDXF(MFP,MyDXF) *打開DXF 文件*
StorePoint()*存儲圖元信息到數組****存儲圖元信息函數StorePoint()***
圖3 是一個典型的母線槽蓋板孔位圖。由于蓋板的寬度相對固定,而各孔位數量,品種,間距和板長因產品需要隨機變化。因此加工前要換算出各孔位數量,品種和相對于板材加工起始點橫向距離。
圖3 典型的母線槽蓋板孔位圖
工程師在設計產品完成并出圖后,各孔位相對于板材加工起始點橫向距離已經確立。多數情況下設計的加工文件,夾雜著許冗余圖元和非封閉圖元,這是由于設計人員畫圖時多次拷貝、打斷、刪除等操作造成的。這些冗余圖元和非封閉圖元,對出圖沒有任何影響,但對于軟件的圖形識別分析,有嚴重影響。但要在計算機上人工清除這些圖元,也非常困難和耗時。因此軟件在對圖形分析前,要對這些圖元進行有選擇的篩選、刪除和封閉化。
圖4 為圖元預處理和圖形分析模塊的流程圖。
圖4 圖元預處理和圖形分析模塊的流程圖
在程序設計時,每個功能單元作為一個獨立的處理單元,每個處理單元采用遞歸遍歷算法,然后將各功能單元順序執(zhí)行,最終輸出孔位加工數據。
由于實際程序太長,節(jié)選處理單元處理功能函數的流程進行說明:
***模具參數存儲和讀取圖元***
Public Sub StoreIni()*存儲模具參數*
Function GetShape() *讀取存儲的圖元*
***重合圖元信息處理***
Function SimplifyShape()*重合圖元單一化*
***構建封閉圖元***
(1)**弧與線處理函數塊**
Function DompareAL() * 弧與線雙向查找遞歸函數*
Function DistanceAL() * 判斷弧與線是否有重合點*
Function CellAL() *弧與線找到重合點時執(zhí)行*
(2)**線與線圖形判斷函數塊**
Function CompareLL() * 線與線雙向查找遞歸函數*
Function DistPLL()*判斷線與線是否有重合點*
Function CellLL() *線與線找到重合點時執(zhí)行*
(3)**去除非封閉圖形**
Function RemoveUnclose()*去除非封閉圖圖元****判斷閉合及形狀,然后判斷并取出外框函數塊***
Function JudgeLargeShape() *判斷最大圖元*
Function RemoveOut() *篩除框外圖元*
***判斷圖形對稱函數塊***
Function JudgeSym() *判斷對稱性*
***判斷圖形模具的匹配函數***
Function MatchMolde()*判斷與模具匹配性*
***排序圖元***
Function Sortshape() *排序合格的圖元*
***輸出加工信息***
Function ExportDate() *輸出加工信息*
工廠原有的母線槽冷彎生產線采用的PLC,是三菱FX1N 系列。故在PC 機與PLC 通信之前,必須對RS232 通訊端口進行初始化,同時保證通訊時符合三菱FX1N 系列PLC 的格式通訊。通訊時要初始化PC機RS232 端口參數:波特率、起始位、數據位、停止位和奇偶校驗等。FX1N 的通訊口默認設置為9600bps、8個數據位、1個停止位、偶校驗。傳輸數據用到的三菱FX1N 型PLC 編程口通信協(xié)議如下:
命令命令字控制元件備注
讀元件0 X,Y,M,S,T,C,D
寫元件1 X,Y,M,S,T,C,D
通信格式:
起始符命令字首地址數據區(qū)結束符和校驗
確定了通訊參數后,我們用VB6.0 提供串口通信控件MSComm 來進行通信編程。在本系統(tǒng)中,我們采用通信命令響應模式,由PC 機對PLC 發(fā)送命令幀,等到PLC 返回響應幀確認通信正常,才繼續(xù)發(fā)下一幀命令。整個通信過程就是PC 機和PLC 以“命令—響應—命令”的模式循環(huán)進行的。
具體實現(xiàn)的VB 代碼如下:
軟件的界面設計,主要是方便人機交互,由于工廠自用,突出操作的方便性和直觀性,具體界面設計如圖5 所示。
圖5 人機界面設計
計算機圖形識別和處理技術,在很多方面有著廣泛的應用。通過在母線槽冷彎生產線的應用,解決了生產線加工數據錄入效率低下、易出現(xiàn)錄入錯誤的問題,同時推動了無紙化生產。本系統(tǒng)的開發(fā)中,充分利用現(xiàn)有的計算機和PLC 的資源,在幾乎不增加設備開支的情況下,成功地實現(xiàn)了圖紙到加工數據轉換,快速地導入了加工設備。
[1] 美國微軟公司. M icrosoft Visual Basic 6.0 Controls Reference控件參考手冊(上,下) [K]. 北京:北京希望電腦公司、北京希望電子出版社,1999.
[2] 譚浩強. Visual Basic 簡明教程[M]. 北京:電子科技出版社,2000.
[3] 李 阜,陳小歐. Windows 環(huán)境下串口異步通信程序設計[J].電子技術應用,1997, 23(2): 37-40.
[4]李芳珍,許倫輝.DXF 文件格式及其外部接口的研究[J].兵工自動化,2008,27(7):83-85.
[5] 劉傳亮,陸建德.AutoCAD DXF 文件格式與二次開發(fā)圖形軟件編程[J].微機發(fā)展,2004,14(9):101-104.