a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 消費電子 > 設計應用 > PC與PLC通信軟件的設計開發

PC與PLC通信軟件的設計開發

作者: 時間:2001-11-09 來源: 收藏

為了便于對工業設備的運作進行統一監控,生產上經常需要通過一臺PC與多臺PLCProgrammable Logic Controller)進行數據交換,特別是通過PLC將現場設備的一些關鍵參數傳輸到PC上并顯示出來。為了迎合顧客的這個需求,各大PLC生產廠家都花大力氣開發出了一系列以各類協議為基準的功能強大的管理監控軟件,譬如Siemens公司開發的WINCC應用軟件,其功能就令人眼花繚亂。

本文引用地址:http://www.j9360.com/article/2810.htm

但同時應該指出的是,這些軟件大都價格昂貴,而且其繁多的功能在許多小規模的生產場合或是教學使用中也并不十分必要,種種實際因素的限制使得購買這些軟件對于很大一部分用戶來說是不合算的。在這樣一個背景下,開發一個簡易實用的通信程序就體現出一定的價值。

本設計的主要目的是要滿足中小用戶及教學中利用PCPLC進行監控的需要。在實現通信的過程中,PLC被設置為Freeport自由口通信模式,所以用戶只需要使用普通的PCPLC,以PC/PPI電纜外加雙絞線將其依次連接就可以了。另外本設計中用到的PC至少要有一個串行通信口,PLC方面則主要是以帶DP口的Siemens S7 200 系列PLC為例進行說明。

本軟件在功能上主要包括PLC>PCPC>PLC兩部分,在實際編寫時PCPLC兩方面均須編程。其中PC程序用Visual Basic6.0編寫,以其自帶的MSComm通信控件作主要的通信控制,PLC程序則在STEP7 MicroWIN環境中編寫。同時假定一臺PC與七臺PLC進行通信。

整個軟件實現的基本功能就是當用戶需要讀取數據時,在控制界面(如圖1)上選擇某臺PLC并點擊接收數據按鈕后,相應PLC將會把存儲在發送區的數據發送過來,發送結束后,數據接收框顯示數據接收完;當用戶需要發送數據給某臺PLC時,也先選擇需要的PLC,再在數據發送框中填入要發送的數據,點擊發送數據按鈕,PC就會將用戶填入的數據送到PLC中接收數據區,PLC同時還會把接收到的這個數據顯示出來。并且整個程序可以很方便地進行功能擴展。

下面就分別從PCPLC兩個方面具體說明通信的實現過程。

這里,PC程序是占主導地位的,其流程圖示于圖2。由PC程序來傳達用戶究竟是要進行讀還是寫操作,以及具體對哪臺PLC進行操作。這幾項命令在軟件中由一個控制字來表達,其定義如圖3

PC方面程序開始運行后,MSComm控件將把串口初始化,而后程序等待用戶選擇要進行操作的PLC并點擊發送數據接收數據按鈕。根據用戶的操作,程序會自動生成一個相應的控制字,并將其傳送給PLC。如果此時用戶是要讀取某臺PLC的數據,則PC在發送完控制字后會停下來等待相應PLC將數據發送過來。一旦接收到數據,PC會首先判斷是否結束幀,如不是,就將此數據裝入數據接收區,然后發送確認幀給PLC,并把接收到的數據在控制界面上的接收數據框中顯示出來提供給用戶。如果是結束幀,PC就會顯示在數據接收框中顯示出數據接收完,而后程序停止運行直至用戶再次進行操作。

如果用戶是要向某臺PLC發送數據,PC將會在發送完相應控制字后打開一個定時器,時間到后便讀取PLC已經送來的EOF文件結束字符(ASCII碼為26)。讀取這個字符可以觸發MSComm的OnComm事件,并使其CommEvent屬性值為comEvEOF。這樣,通過一個以CommEvent為表達式的條件分支語句就可以使程序轉入發送有效數據(即用戶寫入控制界面上發送數據框的數據)的操作。這里設置定時器的目的會在下面介紹PLC方面程序時予以具體說明。PC執行完發送程序段就會暫停下來等待用戶的下一步指示。

PLC在初始化結束之后就根據PC送來的控制字進行相應的操作,其程序流程圖如圖4所示。PLC首先將接收到的控制字拆分,判斷出用戶的具體要求,然后調用相應的子程序。如用戶需要讀取數據,PLC將會把存儲在發送緩沖區的數據依次發送過來。每次發送完一個數據后,PLC就等待PC發一個確認幀過來,只有接收到這個確認幀,PLC才會將下一個數據發送出去,以此保證通信雙方保持同步。并且,PLC在每次發送數據前要檢驗一下這個數據是不是結束幀,由于在預處理PLC的發送表時將其統統裝入了結束幀,而后才從頭依次裝入有效數據,故一旦有效數據發完,PLC必然會發出一個結束幀。當PLC檢測到要發送的是結束幀后將會把這個結束幀發出,然后程序暫停運行直至PC再次送來讀/寫指令。

如果用戶是要進行寫操作,PLC在對控制字進行相應判斷后,將會發送一個EOF給PC,以此觸發PC發送有效數據。前面提到了在PC程序中設置定時器,其目的是要保證PC能夠可靠地讀到PLC發來的EOF,由于程序的運行是需要一定時間的,故PLC不可能在PC發送完控制字后立即回送EOF。根據筆者的測試,設置定時器在2s左右是比較合適的。PLC在接收完數據后就會停下來等待PC發送新的控制字。

由于采用了事件驅動的Visual Basic為編程語言,并且還用到了它自帶的MSComm通信控件進行對數據傳輸的主要控制,整個軟件體系思路清晰,代碼易于編寫,并且在功能上很容易進行擴展。以此設計中軟件為藍本,用戶可以方便地根據自身具體需要開發出更加符合自己要求的軟件,而在硬件方面就根本不需要添加什么設備。■

參考文獻

1鐘肇新.王灝. 可編程控制器入門教程,華南理工大學出版社,1995.5

2宋偉.吳建國. Visual Basic 6.0編程基礎,清華大學出版社,1999.2



關鍵詞:

評論


相關推薦

技術專區

關閉