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