1 引言
主要用于石油管路鋪設(shè)的φ1100mm大口徑鋼管由板材經(jīng)焊接后,其它輔助工藝與設(shè)備包括管內(nèi)清渣機(jī)用于管內(nèi)焊接后殘留的焊渣的清理;鋼管內(nèi)壁除塵機(jī)、外焊清渣機(jī)等。本系統(tǒng)是最后一道工序,主要是對(duì)鋼管的總重量的測(cè)量以及長(zhǎng)度的測(cè)量,并形成數(shù)據(jù)存貯起來(lái)。
2 原理設(shè)計(jì)
2.1 工藝概述
測(cè)量系統(tǒng)首先由橫移車將鋼管放到輸送輥道,然后由檢測(cè)開(kāi)關(guān)發(fā)出鋼管到位信號(hào)傳送給本系統(tǒng),由稱重裝置進(jìn)行重量檢測(cè),稱重裝置位于鋼管的底部,由液壓油缸頂起稱重裝置,這樣鋼管的重量完全由稱重裝置來(lái)承擔(dān),左、右兩側(cè)各安裝一個(gè)稱重傳感器,通過(guò)rs232串行口與工控機(jī)通訊,將重量值傳給上位機(jī)。稱重完成后測(cè)量長(zhǎng)度小車分別由兩側(cè)起始點(diǎn)同時(shí)啟動(dòng)且相向而行,當(dāng)快接近鋼管端面時(shí)(由接近開(kāi)關(guān)發(fā)信號(hào))小車減速運(yùn)行,當(dāng)行至鋼管端面時(shí),小車停止運(yùn)行,同時(shí)將鋼管長(zhǎng)度計(jì)算出來(lái)傳至上位機(jī)。
2.2 系統(tǒng)組成
控制系統(tǒng)由接近開(kāi)關(guān)采集現(xiàn)場(chǎng)信號(hào)送入西門子plcs7-216內(nèi),完成邏輯關(guān)系的運(yùn)算,其結(jié)果輸出到安川sgdm-04ada驅(qū)動(dòng)控制器,由sgmah-04a電機(jī)經(jīng)齒輪、齒條傳動(dòng)驅(qū)動(dòng)測(cè)量小車,驅(qū)動(dòng)系統(tǒng)由兩套組成,分別位于鋼管的兩側(cè),工作時(shí)小車相向而行。液壓系統(tǒng)驅(qū)動(dòng)稱重裝置,plc和稱重裝置分別與上位機(jī)組成串行通訊,上位機(jī)軟件采用visualbasic編制,通過(guò)編制的畫(huà)面發(fā)出指令并時(shí)實(shí)顯示鋼管重量及測(cè)量長(zhǎng)度。系統(tǒng)硬件由西門子plc6es7216-2bd22-0xb0,通訊模塊6es7277-0aa22-0xba,擴(kuò)展模塊6es7223-1hf22-0xa0組成。
2.3工作方式
控制系統(tǒng)具有手動(dòng)/半自動(dòng)/自動(dòng)三種工作方式。手動(dòng)工作方式下,可以分別對(duì)測(cè)量小車、稱重裝置進(jìn)行單獨(dú)調(diào)整;半自動(dòng)工作方式可以對(duì)鋼管進(jìn)行單循環(huán)測(cè)量,即按啟動(dòng)則開(kāi)始稱重與測(cè)量,結(jié)束后等待下一啟動(dòng)指令;自動(dòng)工作方式則對(duì)鋼管連續(xù)測(cè)量,直到按下自動(dòng)停止按鈕,方可停止。
3 系統(tǒng)實(shí)現(xiàn)
3.1 傳感器通訊編程
稱重傳感器采用的是美國(guó)zemic公司bm8h-5t,它通過(guò)信號(hào)分配器gm-jx-v與深圳市杰曼科技有限公司稱重管理器gm8803a連接,gm8803a最終與上位機(jī)進(jìn)行rs232串通訊,其通訊協(xié)議尊循使用說(shuō)明書(shū)中規(guī)定波率為9600kbty,奇偶校驗(yàn)位為奇校驗(yàn),數(shù)據(jù)位為8位,站地址為2,停止位為1。按此規(guī)定用vb編寫(xiě)上位機(jī)部分通訊協(xié)議程序如下:
dim rcvlenth
dim rcv() as bbte 定義模塊級(jí)變量
private lub form-load() 定義接收字符的動(dòng)態(tài)數(shù)組
with mscomml
comport=2 選擇串口2
settings=”9600,n,8,1” ?。梗叮埃発bit/s, 奇校驗(yàn),8位數(shù)據(jù)位,1位停止位
injputmode = cominputmodebinary 以二進(jìn)制格格式讀取接收緩沖區(qū)
rthershold=1 接收的字符數(shù)大于等于1就會(huì)產(chǎn)生接收事件
inputlen=0 讀接收緩沖區(qū)內(nèi)容
outbuffercount =0 清空發(fā)送緩沖區(qū)
inbuffercornt=0 清空接收緩沖區(qū)
end with
if not mscomm1.portopen then
mscomm2.portopen=ture 打開(kāi)串口2
end if
end sub
3.2 信號(hào)調(diào)理
小車行走的距離通過(guò)旋轉(zhuǎn)編碼器反饋回來(lái)的脈沖接入plc的高數(shù)計(jì)數(shù)端子,通過(guò)計(jì)數(shù)值可以知道小車行走的長(zhǎng)度,計(jì)算精度可達(dá)0.01mm。由于項(xiàng)目所用的高數(shù)計(jì)數(shù)器是ab正交輸入方式,只需將a+、b+及公共端接入plc即可,而伺服控制器脈沖輸出為a+a- b+ b- z+ z-,在調(diào)試中發(fā)現(xiàn),plc的高數(shù)計(jì)數(shù)值不穩(wěn)定,誤差很大,感覺(jué)有干擾存在,經(jīng)分析認(rèn)為是a- b-是干擾源,因此我們采用以上電路(如圖1所示),用比較器將a+a-進(jìn)行比較后經(jīng)三極管開(kāi)關(guān)接入plc,問(wèn)題得了解決,則即提升了電壓又抑制了干擾,取得了良好的效果:
3.3 編碼設(shè)計(jì)
伺服電機(jī)后端的旋轉(zhuǎn)編碼器的分辯率為13比特,即2048脈沖/轉(zhuǎn),而電機(jī)轉(zhuǎn)速為3000r/min,plc最大捕捉頻率為20khz,為達(dá)到匹配,將驅(qū)動(dòng)器的參數(shù)pn201分頻比設(shè)定為400,即達(dá)到400脈沖/轉(zhuǎn),為進(jìn)一步提高精度在plc中采用4倍分辨率,即為1600脈沖/轉(zhuǎn),由此根據(jù)電機(jī)驅(qū)動(dòng)齒輪、齒條轉(zhuǎn)一圈所走的距離計(jì)算出每個(gè)脈沖所走的距離,得出位移值。伺服系統(tǒng)采用多段速控制方式,p-son、n-cn、p-cl三端組合且設(shè)置以下參數(shù):
pn000.1 設(shè)為3 設(shè)為多段速控制方式
pn201 設(shè)為400 設(shè)置倍頻
pn50c 設(shè)為8fea ?。矗倍俗铀俣龋保唬矗刀俗铀俣龋?;46端子速度3
pn50a 設(shè)為2801 cn140端子輸入on;p-con無(wú)效;cn142端子禁止正轉(zhuǎn)
p n 50b 設(shè)為8843 cn143端子禁止反轉(zhuǎn);cn144端子警報(bào)解除;p-cl\p-nl為無(wú)效;
pn50e 設(shè)為0000 對(duì)應(yīng)端子無(wú)效
pn 50f 設(shè)為0001 ?。玻?、26端子為扭矩限制檢測(cè)
3.4 plc通訊編程
plc與上位機(jī)通訊方式設(shè)為自由口方式,初始化程序設(shè)置sm30為05意義為:每個(gè)字符為8位,無(wú)校驗(yàn),波特率為19200,自由口方式。通訊協(xié)議規(guī)定為:
所有的發(fā)送數(shù)據(jù)格式為:
00h,總字節(jié)數(shù),(數(shù)據(jù)),校驗(yàn)碼,ffh
其中總字節(jié)數(shù)是包括00h到ffh在內(nèi)的總數(shù),占一個(gè)字節(jié),校驗(yàn)碼是包括00h和總字節(jié)數(shù)在內(nèi)的校驗(yàn)碼之前的所有數(shù)據(jù)的異或值,占一個(gè)字節(jié)。以下只對(duì)數(shù)據(jù)位格式進(jìn)行說(shuō)明。
數(shù)據(jù)位所占字節(jié)數(shù)不確定,格式如下:
a,(發(fā)送數(shù))
其中a是對(duì)數(shù)據(jù)的說(shuō)明,如果是命令,則a=07h,如果是數(shù)據(jù),則a=15h,a占一個(gè)字節(jié)。
當(dāng)a=07h時(shí),發(fā)送數(shù)占一個(gè)字節(jié),發(fā)送數(shù)的數(shù)據(jù)說(shuō)明如下:
01h——與電腦連機(jī)
設(shè)備啟動(dòng)后,在工作過(guò)程中,每次測(cè)量前向電腦發(fā)送一次此命令,電腦發(fā)回的回復(fù)信息與plc發(fā)出的數(shù)據(jù)相同,即:
00h,06h,07h,01h,00h,ffh
plc發(fā)送此命令后,如果在2秒內(nèi)不能收到回復(fù)信息,再發(fā)送一次,如果2秒內(nèi)還不能收到回復(fù)信息,則plc自動(dòng)轉(zhuǎn)為自存儲(chǔ)方式,把本次測(cè)量的長(zhǎng)度順序記錄在plc內(nèi)存中,并不再發(fā)送稱重命令。如果在5秒內(nèi)收到回復(fù)信息,plc首先把內(nèi)存中的記錄發(fā)送給電腦,然后再正常工作,(即plc不再自存儲(chǔ),直接把長(zhǎng)度數(shù)據(jù)發(fā)送到電腦,并在每次工作都發(fā)送稱重命令);
02h——稱重命令#p#分頁(yè)標(biāo)題#e#
電腦發(fā)回的回復(fù)信息與plc發(fā)出的數(shù)據(jù)相同,如果發(fā)出此命令后2秒內(nèi)收不到回復(fù)信息,再 發(fā)送一次,如果2秒內(nèi)還不能收到回復(fù)信息,則放棄。
03h——通知來(lái)料
無(wú)回復(fù)信息
當(dāng)a=15h時(shí),發(fā)送數(shù)占字節(jié)數(shù)未定,發(fā)送數(shù)的數(shù)據(jù)說(shuō)明如下:
b,(bd1,bd2,bd3,…)
其中bd1,bd2,bd3,…為bcd碼,即每個(gè)字節(jié)都為0~9的數(shù)字,高位在前。
b說(shuō)明如圖2所示。
回復(fù)信息:
00h,06h,15h,04h,17h,ffh
如果發(fā)出此數(shù)據(jù)后2秒內(nèi)收不到回復(fù)信息,再發(fā)送一次,如果2秒內(nèi)還不能收到回復(fù)信息,則放棄。
西門子s7-200自由口部分編碼通訊plc程序如下:
sbr1 子程序1 將接收到的字符依次放入接收緩沖區(qū)
network 1 網(wǎng)絡(luò)1
ld sm0.0
incb vb100 接收字節(jié)數(shù)加1
incd vd86 接收緩沖區(qū)指針加1
movb smb2, *vd86 將接收到的字符存入vd86指向的地址
int 0
network 1
ldb《》 smb2, 0 若不是起始字符0
creti 中斷返回
network 2
ld sm0.0 movb 0, vb100 將接收字節(jié) 計(jì)數(shù)器vb100清零
movd &vb100, vd86 指針vd86指向接收緩沖區(qū)首地址vb100
call sbr1 將起始字符存入接收緩存區(qū)的vb101
atch int1, 8 接收字符中斷連到int-1
int1
network 1
ld sm0.0
call sbr1 存放接收到的報(bào)文數(shù)據(jù)區(qū)字節(jié)數(shù)
movb smb2, vb99 將報(bào)文數(shù)據(jù)區(qū)字節(jié)數(shù)存于vb99
movb vb99, vb90 校驗(yàn)碼字節(jié)vb90初始化
atch int2, 8 字符中斷事件連接以中斷程序2
int 2 接收數(shù)據(jù)區(qū)數(shù)據(jù)的中斷程序2
network 1
ld sm0.0
call sbr1 將收到的數(shù)據(jù)存入接收緩沖區(qū)
xorb smb2, vb90 將數(shù)據(jù)區(qū)的數(shù)據(jù)逐字節(jié)異或,計(jì)算校驗(yàn)碼
decb vb99 數(shù)據(jù)字節(jié)計(jì)數(shù)器減1
network 2
ld sm1.0 零標(biāo)志sm1.0=1,表示vb99=0,接收已完成
atch int3, 8 字符中斷事件連接到中斷程序3
int 3
network 1
ldb《》 vb90, smb2 如果校驗(yàn)錯(cuò)誤
atch int0, 8 重新啟動(dòng)接收
creti 中斷返回
not 報(bào)文結(jié)束且校驗(yàn) 正確
call sbr1
call sbr6
4 結(jié)束語(yǔ)
本項(xiàng)目采用plc與visualbasic工具設(shè)計(jì)和開(kāi)發(fā)了大口徑鋼管的稱重與測(cè)量系統(tǒng),系統(tǒng)穩(wěn)定可靠,稱重準(zhǔn)確度高,測(cè)長(zhǎng)精度可達(dá)0.01mm,完全滿足工藝要求,使系統(tǒng)即有控制又有完整的人機(jī)界面,在使用過(guò)程受到了用戶的認(rèn)可,且受到好評(píng)。
轉(zhuǎn)載請(qǐng)注明出處。