趙 晴
葫蘆島市教育局,遼寧葫蘆島 125000
可編程序控制器(PLC)專門用于工業控制,它的核心是以微處理器的結構為基礎,在硬件結構上和普通的計算機基本一致。它在基本的計算機結構當中,加入了傳統的繼電器控制系統,使其具有了高度的可靠性,更好的適應工業現場的環境,而且具備了強大的聯網處理功能,廣泛地應用在工業控制生產過程中。
微軟的Visual Basic提供了MSComm控件,通過硬件的串行端口傳送和接收數據,實現了PC機與PLC之間的通信,為可視化程序對PLC的控制提供了可能。
本文基于西門子公司生產的S7-200型PLC,應用MSComm控件,編寫了計算機與PLC通訊程序,包括了上位機和下位機相應的程序代碼。提出了應用編程語言實現PC/PLC網絡之間數據通信的軟件解決方案,實現了用PC機對PLC的監控及控制。
S7-200型PLC可以連接編程器、人機接口設備,甚至連接其他的PLC或PC機,組成PLC網絡,可以實現PC與PLC、PLC與PLC的各種通信功能。同時可以應用PC的管理功能實現對PLC的編程、監控和聯網的功能。S7-200系列PLC具有9針的RS-485接口,可以通過PC/PPI電纜與計算機連接,PLC之間可以通過SINEC-L2接口連接成PLC網絡。
S7-200系列PLC主要有兩種通信模式:一種為點對點(PPI)通信協議模式,用在PLC與編程器或人機接口產品之間通訊;另一種是自由口通訊模式,此模式對用戶完全開放,用戶可以自行設定通訊協議,使用程序控制串行通訊接口。
其中PPI通信模式需要在PLC的停止方式(STOP)下通信;自由口通訊模式要在PLC運行方式(RUN)下通訊。本文選用靈活性更高的自由口模式。在此模式下,可以通過發送中斷、接收中斷、發送指令和接收指令等命令控制串行通訊口的工作,用戶可以自行設置通訊控制協議。把SMB30(端口0)和SMB130(端口1)的協議選擇區置1,允許自由端口模式,通過SMB30和SMB130設置波特率與奇偶校驗位。
通過S7-200系列PLC的可編程通訊端口模式可以實現很多復雜的通信功能。即可以組建成PLC網絡進行PLC的多機通信,也可以組建成PC和多PLC的PLC監控通信網絡,以及利用電信網絡建立PC和多PLC的遠程通信網絡。
PLC存儲器中的數據通過中斷方式發送到上位PC機,下面是相應的程序:
LD SM0.1
MOVB 16# 09,SMB30 ;首次掃描時為PLC初始化自由端口,數據格式為9600波特率,8位數據位,無校驗
MOVB 100,SMB34;采用定時器中斷0
MOVB 1,VB100 ;發送字節數為1
ENI;允許進行中斷
ATCH INT 0, 10;
以下為部分中斷程序:
LD SM0.0
MOVB 120,VB101;PC機發送的數據
XMT VB100,0;向PC機發送數據,用0號端口,采用定時中斷。
在PC機上,編寫程序實現PC與PLC的通訊。本文采用Visual Basic語言編寫PLC與計算機間通訊程序的程序界面,控制程序部分應用MSComm控件,程序中通過設置控件的屬性值和檢查控件的事件來完成數據的發送和接收工作。
MSComm控件采用檢測方法和事件驅動方法處理事件:程序檢測方法可以在需要時通過檢查CommEvent屬性的值來檢測事件和通訊錯誤,這種方法常用作非實時環境中,用來檢測設備的某些響應情況。如果處于實時性要求高的場合,這種方法會占用CPU的運行時間,達不到實時控制的要求;事件驅動方法通過對OnComm控件事件的捕獲處理通信事件,當接收到新的數據或者檢測到通訊端口的狀態發生了改變就會引發OnComm事件,應用程序捕獲到這個事件并對其進行相應的處理,OnComm事件也可以用來捕獲和處理通信中的錯誤。
PLC與計算機的通訊程序分為三個部分:初始化程序、發送程序和接收程序。
初始化程序設置通訊端口,可以選擇串口1或串口2等等;設置發送和接收的波特率、有無校驗位、設置數據位和停止位,一般情況下波特率選擇9.6k或19.2k,無校驗,8位數據位和1位停止位;將MSComm的InputMode置1,使得接收類型為二進制數據;將RThreshold屬性置1,控件接收到一個字節數據就會觸發OnComm()事件;清空發送緩沖區和接收緩沖區。
發送程序的數據格式:起始字符為0,結束字符為十六進制數&HFF,無校驗。
接收程序通過MSComm控件的OnComm事件觸發運行。由于PLC只有接收到PC機發送的信息后才開始發送數據,PC機在發送完成后如果OnComm事件被觸發,就把接收到的第一個字節數據作為接收報文的開始,一直到串口再沒有接收事件作為報文的結束。
運行PLC和PC機的程序,計算機和PLC能夠互相發送和接收數據,實現了PC和PLC之間的串行通訊功能。
本文應用VB語言的MSComm控件,通過可視化編程語言在PC機與PLC網絡中實現了PC與PLC之間的數據通信,達到了應用PC機對工業自動化現場中PLC設備的監控和管理,在對PLC控制系統的調試過程中,縮短了調試周期,提高了工作效率。
此通信技術對西門子S7-200系列PLC及其他西門子工業控制產品的應用有著普遍的意義。
[1]范逸之.Visual Basic與分布式監控系統-RS232/485串行通信[M].北京:清華大學出版社,2002.
[2]Gofton P W.精通串行通信[M].北京:電子工業出版社,1995.
[3]蔣學潤.基于VB的數據采集智能模塊與上位機串行通信的實現[J].自動化與儀表,2003(6):61.