閆曉玲,王望龍,范曉志
(1. 北京工商大學(xué) 機(jī)械工程學(xué)院,北京 102488;2. 中國(guó)人民解放軍裝甲兵工程學(xué)院 裝備再制造工程系,北京 100072)
基于Pro fi Bus-DP的物流生產(chǎn)線(xiàn)網(wǎng)絡(luò)監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
閆曉玲1,王望龍2,范曉志1
(1. 北京工商大學(xué) 機(jī)械工程學(xué)院,北京 102488;2. 中國(guó)人民解放軍裝甲兵工程學(xué)院 裝備再制造工程系,北京 100072)
隨著計(jì)算機(jī)技術(shù)、自動(dòng)控制技術(shù)、網(wǎng)絡(luò)通信技術(shù)的發(fā)展,各種分布式控制系統(tǒng)在工業(yè)生產(chǎn)中應(yīng)用越來(lái)越廣泛。本文所介紹的物流生產(chǎn)線(xiàn)(深圳某企業(yè)生產(chǎn)),現(xiàn)場(chǎng)各設(shè)備單機(jī)配有自己的控制系統(tǒng)、相關(guān)的控制卡,終端配有終端協(xié)調(diào)控制機(jī),生產(chǎn)線(xiàn)中相關(guān)的硬件設(shè)備通過(guò)Pro fi Bus通訊模塊連接在Pro fi Bus-DP現(xiàn)場(chǎng)總線(xiàn)上(如圖1所示),所以設(shè)計(jì)相應(yīng)的控制軟件,分別運(yùn)行在終端控制計(jì)算機(jī)和現(xiàn)場(chǎng)設(shè)備控制系統(tǒng)上,就可以實(shí)現(xiàn)對(duì)生產(chǎn)過(guò)程的集中監(jiān)視管理和分散控制。在這個(gè)系統(tǒng)中,現(xiàn)場(chǎng)各設(shè)備控制系統(tǒng)與底層設(shè)備的通信以及終端控制計(jì)算機(jī)與現(xiàn)場(chǎng)各設(shè)備控制系統(tǒng)的通信是至關(guān)重要的環(huán)節(jié),為此,用VB開(kāi)發(fā)了本監(jiān)控系統(tǒng)。
圖1 系統(tǒng)的硬件構(gòu)成
物流系統(tǒng)的硬件構(gòu)成如圖1所示,系統(tǒng)采用Pro fi bus-DP現(xiàn)場(chǎng)總線(xiàn)協(xié)議,Pro fi bus-DP是由西門(mén)子公司推出的一種開(kāi)放式現(xiàn)場(chǎng)總線(xiàn)標(biāo)準(zhǔn),用于現(xiàn)場(chǎng)級(jí)分布式自動(dòng)化外設(shè)之間的高速數(shù)據(jù)傳輸。終端控制計(jì)算機(jī)通過(guò)現(xiàn)場(chǎng)總線(xiàn)網(wǎng)卡CP5613連接在總線(xiàn)上,自動(dòng)化立體倉(cāng)庫(kù)和激光雕刻機(jī)通過(guò)高性能運(yùn)動(dòng)控制器(工控機(jī))+CP5613連接在總線(xiàn)上,混合式流水線(xiàn)通過(guò)S7-200PLC+EM277 PROFIBUSDP模塊的DP端口同CP5613卡通過(guò)屏蔽雙絞線(xiàn)相連,構(gòu)成整個(gè)PROFIBUS-DP現(xiàn)場(chǎng)總線(xiàn)網(wǎng)絡(luò)。機(jī)器人具有RS485通訊接口,經(jīng)過(guò)網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換后就可以?huà)旖拥骄W(wǎng)絡(luò)總線(xiàn)上,形成1:N通信方式。
網(wǎng)絡(luò)監(jiān)控系統(tǒng)分為服務(wù)器端(運(yùn)行在終端控制計(jì)算機(jī)上)和客戶(hù)端(運(yùn)行在控制現(xiàn)場(chǎng)設(shè)備的工控機(jī)上),此監(jiān)控系統(tǒng)中,終端控制計(jì)算機(jī)的主要任務(wù)是獲取生產(chǎn)線(xiàn)上的信息,完成對(duì)生產(chǎn)過(guò)程的實(shí)時(shí)顯示,出現(xiàn)故障時(shí)及時(shí)報(bào)警,并采取應(yīng)急措施控制生產(chǎn)線(xiàn)的運(yùn)行?,F(xiàn)場(chǎng)設(shè)備控制系統(tǒng)的任務(wù)是對(duì)生產(chǎn)過(guò)程進(jìn)行自動(dòng)控制,同時(shí)把設(shè)備的實(shí)時(shí)狀態(tài)通過(guò)網(wǎng)絡(luò)傳給終端控制計(jì)算機(jī),發(fā)生故障時(shí)按上位機(jī)命令執(zhí)行[1]。
在Windows環(huán)境下,編寫(xiě)網(wǎng)絡(luò)通信軟件有多種編程語(yǔ)言可以使用,但用Visual Basic編寫(xiě)通信軟件十分方便,編程工作量小,可視化程度高,尤其是提供了通信控件MSComm和套接字控件WinSock可方便地實(shí)現(xiàn)計(jì)算機(jī)與PLC的數(shù)據(jù)通訊以及不同計(jì)算機(jī)之間的網(wǎng)絡(luò)通信。
服務(wù)器端程要能夠讀取現(xiàn)場(chǎng)設(shè)備的信息和向現(xiàn)場(chǎng)設(shè)備發(fā)送控制命令?,F(xiàn)場(chǎng)設(shè)備可以分成兩大類(lèi),一類(lèi)是由工控機(jī)控制的,一類(lèi)是由PLC控制的,所以服務(wù)器端程序要實(shí)現(xiàn)與客戶(hù)端程序(運(yùn)行在控制現(xiàn)場(chǎng)設(shè)備的工控機(jī)上)的通信,程序設(shè)計(jì)流程圖如圖2所示,因?yàn)槭?:N的通信方式,所以采用動(dòng)態(tài)WinSock控件數(shù)組來(lái)實(shí)現(xiàn)通信。WinSock控件在計(jì)算機(jī)中提供了一個(gè)通信端口,應(yīng)用程序可以通過(guò)這個(gè)端口與任何一個(gè)具有WinSock接口的計(jì)算機(jī)通信。應(yīng)用程序在網(wǎng)絡(luò)上傳輸、接收的信息都通過(guò)這個(gè)WinSock接口來(lái)實(shí)現(xiàn)。另外服務(wù)器端程序還要實(shí)現(xiàn)與PLC的通信,程序設(shè)計(jì)流程如圖3所示,采用MSComm控件實(shí)現(xiàn)通信[2],MSComm控件是Microsoft公司提供的簡(jiǎn)化的Windows下串行通訊編程的ActiveX控件,該通信控件提供了使用RS232開(kāi)發(fā)串行通信軟件的細(xì)則,開(kāi)發(fā)通信軟件只需利用該控件的幾個(gè)重要屬性設(shè)置好通信口(參見(jiàn)3.3程序代碼),按照通信協(xié)議,待PC機(jī)與PLC握手成功后,可按照特定的數(shù)據(jù)格式通過(guò)output屬性和input屬性來(lái)送和接收信息。
圖2 服務(wù)器端與客戶(hù)端通信程序設(shè)計(jì)流程圖
圖3 服務(wù)器端與PLC通信程序設(shè)計(jì)流程
服務(wù)器端程序與PLC的通信實(shí)際上是計(jì)算機(jī)與PLC的通信模塊之間交換命令和響應(yīng),服務(wù)器端程序具有初始傳送優(yōu)先權(quán),所有的通信均由服務(wù)器來(lái)啟動(dòng),PLC始終處于被動(dòng)響應(yīng)狀態(tài)[3]。S7-200PLC支持多種通訊模式,如點(diǎn)點(diǎn)接口(PPI)、MPI(多點(diǎn)接口)等,自由通信方式,在自由口模式下,可由用戶(hù)控制串行通信接口,通信協(xié)議完全由梯形圖程序控制。本文主要討論自由通信方式,其關(guān)鍵指令格式如圖4所示[4]。
圖4 關(guān)鍵指令的格式
XMT 指令將指定存儲(chǔ)區(qū)內(nèi)的數(shù)據(jù)通過(guò)指定端口傳送出去,當(dāng)存儲(chǔ)區(qū)內(nèi)最后一個(gè)字節(jié)傳送完畢,PLC 將產(chǎn)生一個(gè)中斷,命令格式為:XMT TABLE,PORT,其中PORT 指定PLC 用于發(fā)送的通信端口,TABLE 為是數(shù)據(jù)存儲(chǔ)區(qū)地址,其第一個(gè)字節(jié)存放要傳送的字節(jié)數(shù),即數(shù)據(jù)長(zhǎng)度,最大為255。RCV命令從指定的端口讀入數(shù)據(jù)存放在指定的數(shù)據(jù)存儲(chǔ)區(qū)內(nèi),當(dāng)最后一個(gè)字節(jié)接收完畢,PLC也將產(chǎn)生一個(gè)中斷,命令格式為 RCV TABLE,PORT,PLC 通過(guò)PORT 端口接收數(shù)據(jù),并將數(shù)據(jù)存放在TBL數(shù)據(jù)存儲(chǔ)區(qū)內(nèi),TABLE 的第一個(gè)字節(jié)為接收的字節(jié)數(shù)。
1)初始化代碼,指定與客戶(hù)端通信的協(xié)議端口號(hào)并偵聽(tīng)該端口,初始化與PLC的通信端口。
2)向PLC發(fā)送控制命令[5]
3)接收數(shù)據(jù)
PLC只有在接收到上位機(jī)發(fā)送的信息后,才發(fā)送數(shù)據(jù),所以將發(fā)送完成后收到的第一個(gè)字節(jié)作為接收?qǐng)?bào)文的開(kāi)始,直到串口無(wú)接收事件時(shí)認(rèn)為報(bào)文結(jié)束。
客戶(hù)端程序能夠通過(guò)通信端口讀取監(jiān)控對(duì)象的狀態(tài)信息,并且能夠把這些信息發(fā)送給服務(wù)器程序,同時(shí)接收服務(wù)器程序發(fā)送的控制現(xiàn)場(chǎng)設(shè)備的信息。客戶(hù)端程序和服務(wù)器端程序采用TCP/IP通信協(xié)議,TCP協(xié)議是面向連接的可靠的傳輸協(xié)議,可確保物流生產(chǎn)線(xiàn)上數(shù)據(jù)傳送的次序和傳輸?shù)目煽啃?。客?hù)端程序與服務(wù)器端程序通信要處理以下過(guò)程:1)調(diào)用WinSock控件創(chuàng)建一個(gè)客戶(hù)端套節(jié)字,并連接到服務(wù)器端(必須和服務(wù)器端的端口號(hào)一致);2)建立和服務(wù)器的連接;3)發(fā)送和接收信息;4)最后關(guān)閉通信套接字。客戶(hù)端程序與底層設(shè)備通過(guò)串行端口進(jìn)行通信,相應(yīng)的程序設(shè)計(jì)類(lèi)似于服務(wù)器端與PLC的通信程序,所以不再贅述。
為了使服務(wù)器與PLC建立起正確的通信,必須預(yù)先在PLC中設(shè)置下述參數(shù)。
通信方式:在特殊寄存器SM0.7中設(shè)置,SM0.7為0時(shí),模式開(kāi)關(guān)處于TERM位置,SM0.7為1時(shí),模式開(kāi)關(guān)處于RUN位置,而只有模式開(kāi)關(guān)處于RUN位置時(shí),才能進(jìn)行自由口通信。
通信參數(shù):SMB30是自由口模式控制字節(jié),設(shè)置的參數(shù)有數(shù)據(jù)長(zhǎng)度、停止位位數(shù)、波特率、校驗(yàn)形式和協(xié)議方式(要與計(jì)算機(jī)端口的參數(shù)相同)。設(shè)置好通信參數(shù)后,編寫(xiě)PLC通信梯形圖程序即可實(shí)現(xiàn)與服務(wù)器程序的通信。
主程序
分別將服務(wù)器端程序和客戶(hù)端程序運(yùn)行在終端控制機(jī)和現(xiàn)場(chǎng)設(shè)備控制機(jī)上,實(shí)際情況表明,該網(wǎng)絡(luò)監(jiān)控系統(tǒng)能方便地實(shí)現(xiàn)物流生產(chǎn)線(xiàn)上終端控制機(jī)和多臺(tái)現(xiàn)場(chǎng)設(shè)備間的聯(lián)網(wǎng)通信,且運(yùn)行穩(wěn)定可靠,能很好地滿(mǎn)足對(duì)物流生產(chǎn)線(xiàn)進(jìn)行集中監(jiān)視管理和分散控制的要求,具有一定的應(yīng)用推廣價(jià)值。
[1]華路光,方清城. 基于RS485總線(xiàn)的分布式PLC監(jiān)控系統(tǒng)通信設(shè)計(jì)[J].制造業(yè)自動(dòng)化, 2009, 31(8):15.
[2]李長(zhǎng)林.Visual Basic串行口通信技術(shù)與典型實(shí)例[M].北京:清華大學(xué)出版社, 2006.
[3]田娟娟,蔡光起,史家順,王晉生.基于VB的PC機(jī)與S7-200PLC自由口通信的實(shí)現(xiàn)與應(yīng)用[J].機(jī)械設(shè)計(jì)與制造.2006.7:116.
[4]徐慧,盧艷軍,主編. 數(shù)控機(jī)床電氣及PLC控制技術(shù)[M].北京:國(guó)防工業(yè)出版社, 2006.
[5]李斌,趙海濤,王亞杰. S7- 200 與PC.實(shí)時(shí)通信方法的研究[J]. 微計(jì)算機(jī)信息, 2007, 23(8-1):75.
Design and implementation of logistics production line network monitoring system based on Pro fi Bus-DP
YAN Xiao-ling1, WANG Wang-long2, FAN Xiao-zhi1
介紹了由工控機(jī)、PLC、高性能運(yùn)動(dòng)控制器構(gòu)成的基于ProfiBus-DP協(xié)議的分布式網(wǎng)絡(luò)監(jiān)控系統(tǒng),著重闡述了系統(tǒng)的硬件連接、通信協(xié)議和利用VB實(shí)現(xiàn)物流生產(chǎn)線(xiàn)終端控制計(jì)算機(jī)與現(xiàn)場(chǎng)各設(shè)備通信的方法,并給出了詳細(xì)的程序設(shè)計(jì)過(guò)程。該系統(tǒng)對(duì)于用計(jì)算機(jī)實(shí)現(xiàn)集中監(jiān)控多個(gè)現(xiàn)場(chǎng)設(shè)備提供了可靠的手段。
ProfiBus-DP;網(wǎng)絡(luò)監(jiān)控;通信;程序設(shè)計(jì)
閆曉玲 (1974-),女,山西運(yùn)城人,副教授,碩士,研究方向?yàn)橄冗M(jìn)制造技術(shù)及CAD/CAM。
TP273.5
A
1009-0134(2011)1(上)-0011-04
10.3969/j.issn.1009-0134.2011.1(上).03
2010-07-17
北京市自然科學(xué)基金項(xiàng)目(4062011)。