1 、引言
西門子S7-200PLC由于其體積小,可靠性高,通訊功能強大等特點,在工業控制領域得到廣泛的應用,使用S7-200PLC高性價比的自由口通訊協議實現人機界面靈活方便。目前S7-200PLC接收計算機指令數據主要有兩種方法:第一種方法是使用PLC自帶的RCV指令來接收計算機數據;第二種方法采用PLC提供的“接收字符中斷”方式,將SMB2(自由口接收字符緩沖區)定義指針,使用指針接收數據。
使用“RCV"指令接收數據的方法雖然簡單,但在接收大量數據的時候每次都要依次接收,大大降低了數據傳輸效率。在本實驗室的一套機電一體化控制系統中,人機界面設計要求是:界面可以向PLC寫入QB0、QB1、QB2、傳感器采樣周期、一個判斷指令、AQ0、AQ1等不同指令數據。若一次上位機寫指令僅僅是控制QB0.3的啟動,為了寫入QB0則需要將9 B的數據全部發送,由于PLC內接收數據是用“RCV”指令,必須將9 B的數據依次存儲,這樣會造成數據傳輸線路中的時間過長產生延時,降低數據傳輸的效率,甚至導致誤碼出現,顯然這種使用“RCV”接收大量數據的方法不太適合。
使用PLC提供的“接收字符中斷”方式,將SMB2(自由口接收字符緩沖區)定義指針,使用指針接收數據。此方法若僅僅定義一個指針,其效果和“RCV”指令是一樣的。但此方法由于其使用起來比較靈活,故本文設計了一種多地址指針接收數據的方法,即在計算機向PLC寫入數據時,僅寫入指針判別的代號和對應數據就可完成上位機對下位機的寫指令,不同的代號對應不同的地址,與以往使用“RCV”指令相比,有效地減少了寫指令的數據,提高了通訊效率。本文在設計PLC與上位機的串口通訊中設計了此種方案,尚未見其他同類文章使用。
2 、指針判別
在PLC與計算機的自由口通訊中,為消除“RCV”或單指針接收計算機數據帶來的大數據流,本文在計算機每次向PLC發送指令時,第一個字節總是模式的代號,從第二個字節開始才是指令數據的內容。在PLC接收數據時,第一個數據進入“自由口接收字符緩沖區”SMB2時,PLC通過“選擇指針”最先接收的是指針判別的代號,通過接收代號的數值比較來判斷該指令數據對應的是哪種數據,判斷完成后定義一個地址指針接收并存儲這種數據的內容。不同的指針判別代號對應不同的地址指針,因此計算機每次寫入PLC指令時發送的指令數據都是由兩部分構成:第一部分為指針判別代號,第二部分為指令數據的內容。指針判別過程是PLC內接收到判別代號后進行數值比較。指針判別的意義就是通過一個總指針接收模式代號,用不同模式代號再定義多個指針完成不同種類的指令數據的接收與存儲。
3 、具體應用方案
在設計本實驗室的一套電液伺服控制系統中,上位機的人機界面使用VB 6.0編程,下位機的通訊模式為自由口通訊。人機界面設計要求:界面可以向PLC寫入QB0、QB1、QB2、傳感器采樣周期、AQW0、AQW2等不同指令數據,PLC在定時中斷內使用XMT指令周期地向上位機發送變量存儲器VB1~VB21中的待監視數據(包含PLC中的數字量與模擬量)。由于在設計中上位機寫入PLC指令數據種類較多,其中包括定時中斷的時間設置、狀態位值的寫入、模擬量擴展模塊的輸出等,故本文的模式選擇可以將種類不同的指令數據用多個指針接收并存儲。表1是本設計PLC程序的部分地址分配表,以便結合PLC程序來說明多地址指針方案的具體實現方法。
SBR_0子程序初始化:
網絡1:在子程序中定義中斷事件。
INT_0接收字符中斷事件中采用指針判別:
網絡1:指針代號接收存儲于VB22。
網絡2:啟動指針1,接收數據寫入VB24,用于啟動/停止XMT(0啟動,1停止)。
網絡3:啟動指針2,接收數據寫VB26,VB27,VB28,用于寫入QB0,QB1,QB2。
網絡4:啟動指針3,接收數據為寫入定時中斷的時間設置SMB34。
網絡5:啟動指針4,接收數據賦值給PLC模擬量輸出AQW0。
網絡6:啟動指針5,接收數據賦值給PLC模擬量輸出AQW2。
INT_1定時中斷事件中PLC發送監視數據:
網絡1:通過VB24接收的數據控制XMT的“啟/停”動作,進而控制PLC向計算機發送數據。
4 、注意要點
由于在本設計中PLC每次接收數據,第一個字節“指針代號”進入SMB2時,在一次中斷事件內,指針代號的數值也存儲在每個指針對應的第一個存儲地址中,因此每個指針接收數據時從第2個字節起才是指令數據的信息內容,第一個字節都是對應該指針的代號,否則會出現數據傳輸錯誤。在PLC程序設計時需要為每個指針預留第一個存儲地址來存儲該指針的代號。
故上位機每次向PLC寫指令時,第一個數據內容是指針代號,通過上位機程序中直接賦值即可實現;從第2個數據開始為上位機的控制指令。
5 、結 語
本設計方案已在實驗室機電一體化控制系統的人機界面中成功地應用。系統運行穩定,大大減少了與上位機操作指令無關的數據傳輸,可精確高效地將上位機指令數據寫入目標地址,有效解決了串口通訊中出現因大量數據傳輸而造成的延時。
-
plc
+關注
關注
5010文章
13272瀏覽量
463072 -
西門子
+關注
關注
94文章
3034瀏覽量
115788 -
計算機
+關注
關注
19文章
7488瀏覽量
87854
發布評論請先 登錄
相關推薦
評論