閆曉玲,王望龍,范曉志
(1. 北京工商大學 機械工程學院,北京 102488;2. 中國人民解放軍裝甲兵工程學院 裝備再制造工程系,北京 100072)
基于Pro fi Bus-DP的物流生產線網絡監控系統設計與實現
閆曉玲1,王望龍2,范曉志1
(1. 北京工商大學 機械工程學院,北京 102488;2. 中國人民解放軍裝甲兵工程學院 裝備再制造工程系,北京 100072)
隨著計算機技術、自動控制技術、網絡通信技術的發展,各種分布式控制系統在工業生產中應用越來越廣泛。本文所介紹的物流生產線(深圳某企業生產),現場各設備單機配有自己的控制系統、相關的控制卡,終端配有終端協調控制機,生產線中相關的硬件設備通過Pro fi Bus通訊模塊連接在Pro fi Bus-DP現場總線上(如圖1所示),所以設計相應的控制軟件,分別運行在終端控制計算機和現場設備控制系統上,就可以實現對生產過程的集中監視管理和分散控制。在這個系統中,現場各設備控制系統與底層設備的通信以及終端控制計算機與現場各設備控制系統的通信是至關重要的環節,為此,用VB開發了本監控系統。

圖1 系統的硬件構成
物流系統的硬件構成如圖1所示,系統采用Pro fi bus-DP現場總線協議,Pro fi bus-DP是由西門子公司推出的一種開放式現場總線標準,用于現場級分布式自動化外設之間的高速數據傳輸。終端控制計算機通過現場總線網卡CP5613連接在總線上,自動化立體倉庫和激光雕刻機通過高性能運動控制器(工控機)+CP5613連接在總線上,混合式流水線通過S7-200PLC+EM277 PROFIBUSDP模塊的DP端口同CP5613卡通過屏蔽雙絞線相連,構成整個PROFIBUS-DP現場總線網絡。機器人具有RS485通訊接口,經過網絡協議轉換后就可以掛接到網絡總線上,形成1:N通信方式。
網絡監控系統分為服務器端(運行在終端控制計算機上)和客戶端(運行在控制現場設備的工控機上),此監控系統中,終端控制計算機的主要任務是獲取生產線上的信息,完成對生產過程的實時顯示,出現故障時及時報警,并采取應急措施控制生產線的運行。現場設備控制系統的任務是對生產過程進行自動控制,同時把設備的實時狀態通過網絡傳給終端控制計算機,發生故障時按上位機命令執行[1]。
在Windows環境下,編寫網絡通信軟件有多種編程語言可以使用,但用Visual Basic編寫通信軟件十分方便,編程工作量小,可視化程度高,尤其是提供了通信控件MSComm和套接字控件WinSock可方便地實現計算機與PLC的數據通訊以及不同計算機之間的網絡通信。
服務器端程要能夠讀取現場設備的信息和向現場設備發送控制命令。現場設備可以分成兩大類,一類是由工控機控制的,一類是由PLC控制的,所以服務器端程序要實現與客戶端程序(運行在控制現場設備的工控機上)的通信,程序設計流程圖如圖2所示,因為是1:N的通信方式,所以采用動態WinSock控件數組來實現通信。WinSock控件在計算機中提供了一個通信端口,應用程序可以通過這個端口與任何一個具有WinSock接口的計算機通信。應用程序在網絡上傳輸、接收的信息都通過這個WinSock接口來實現。另外服務器端程序還要實現與PLC的通信,程序設計流程如圖3所示,采用MSComm控件實現通信[2],MSComm控件是Microsoft公司提供的簡化的Windows下串行通訊編程的ActiveX控件,該通信控件提供了使用RS232開發串行通信軟件的細則,開發通信軟件只需利用該控件的幾個重要屬性設置好通信口(參見3.3程序代碼),按照通信協議,待PC機與PLC握手成功后,可按照特定的數據格式通過output屬性和input屬性來送和接收信息。

圖2 服務器端與客戶端通信程序設計流程圖

圖3 服務器端與PLC通信程序設計流程
服務器端程序與PLC的通信實際上是計算機與PLC的通信模塊之間交換命令和響應,服務器端程序具有初始傳送優先權,所有的通信均由服務器來啟動,PLC始終處于被動響應狀態[3]。S7-200PLC支持多種通訊模式,如點點接口(PPI)、MPI(多點接口)等,自由通信方式,在自由口模式下,可由用戶控制串行通信接口,通信協議完全由梯形圖程序控制。本文主要討論自由通信方式,其關鍵指令格式如圖4所示[4]。

圖4 關鍵指令的格式
XMT 指令將指定存儲區內的數據通過指定端口傳送出去,當存儲區內最后一個字節傳送完畢,PLC 將產生一個中斷,命令格式為:XMT TABLE,PORT,其中PORT 指定PLC 用于發送的通信端口,TABLE 為是數據存儲區地址,其第一個字節存放要傳送的字節數,即數據長度,最大為255。RCV命令從指定的端口讀入數據存放在指定的數據存儲區內,當最后一個字節接收完畢,PLC也將產生一個中斷,命令格式為 RCV TABLE,PORT,PLC 通過PORT 端口接收數據,并將數據存放在TBL數據存儲區內,TABLE 的第一個字節為接收的字節數。
1)初始化代碼,指定與客戶端通信的協議端口號并偵聽該端口,初始化與PLC的通信端口。


2)向PLC發送控制命令[5]

3)接收數據
PLC只有在接收到上位機發送的信息后,才發送數據,所以將發送完成后收到的第一個字節作為接收報文的開始,直到串口無接收事件時認為報文結束。

客戶端程序能夠通過通信端口讀取監控對象的狀態信息,并且能夠把這些信息發送給服務器程序,同時接收服務器程序發送的控制現場設備的信息。客戶端程序和服務器端程序采用TCP/IP通信協議,TCP協議是面向連接的可靠的傳輸協議,可確保物流生產線上數據傳送的次序和傳輸的可靠性。客戶端程序與服務器端程序通信要處理以下過程:1)調用WinSock控件創建一個客戶端套節字,并連接到服務器端(必須和服務器端的端口號一致);2)建立和服務器的連接;3)發送和接收信息;4)最后關閉通信套接字。客戶端程序與底層設備通過串行端口進行通信,相應的程序設計類似于服務器端與PLC的通信程序,所以不再贅述。
為了使服務器與PLC建立起正確的通信,必須預先在PLC中設置下述參數。
通信方式:在特殊寄存器SM0.7中設置,SM0.7為0時,模式開關處于TERM位置,SM0.7為1時,模式開關處于RUN位置,而只有模式開關處于RUN位置時,才能進行自由口通信。
通信參數:SMB30是自由口模式控制字節,設置的參數有數據長度、停止位位數、波特率、校驗形式和協議方式(要與計算機端口的參數相同)。設置好通信參數后,編寫PLC通信梯形圖程序即可實現與服務器程序的通信。
主程序


分別將服務器端程序和客戶端程序運行在終端控制機和現場設備控制機上,實際情況表明,該網絡監控系統能方便地實現物流生產線上終端控制機和多臺現場設備間的聯網通信,且運行穩定可靠,能很好地滿足對物流生產線進行集中監視管理和分散控制的要求,具有一定的應用推廣價值。
[1]華路光,方清城. 基于RS485總線的分布式PLC監控系統通信設計[J].制造業自動化, 2009, 31(8):15.
[2]李長林.Visual Basic串行口通信技術與典型實例[M].北京:清華大學出版社, 2006.
[3]田娟娟,蔡光起,史家順,王晉生.基于VB的PC機與S7-200PLC自由口通信的實現與應用[J].機械設計與制造.2006.7:116.
[4]徐慧,盧艷軍,主編. 數控機床電氣及PLC控制技術[M].北京:國防工業出版社, 2006.
[5]李斌,趙海濤,王亞杰. S7- 200 與PC.實時通信方法的研究[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
介紹了由工控機、PLC、高性能運動控制器構成的基于ProfiBus-DP協議的分布式網絡監控系統,著重闡述了系統的硬件連接、通信協議和利用VB實現物流生產線終端控制計算機與現場各設備通信的方法,并給出了詳細的程序設計過程。該系統對于用計算機實現集中監控多個現場設備提供了可靠的手段。
ProfiBus-DP;網絡監控;通信;程序設計
閆曉玲 (1974-),女,山西運城人,副教授,碩士,研究方向為先進制造技術及CAD/CAM。
TP273.5
A
1009-0134(2011)1(上)-0011-04
10.3969/j.issn.1009-0134.2011.1(上).03
2010-07-17
北京市自然科學基金項目(4062011)。