時間:2008-08-14 10:15:00來源:ronggang
圖1 主程序流程圖
圖2 校驗子程序流程圖[/align]
3.4讀、寫數據子程序
這2個子程序的任務是把PLC存儲區中的數據發給上位機或把上位機傳來的數據寫入PLC存儲區。二者的流程相似,只是數據流向不同。進入子程序后,先停止接收,然后完成數據傳輸,最后發送應答報文。不同之處就是應答報文中的狀態字節:讀操作時是1、寫操作時是2。
3.5接收、發送完成中斷服務程序
當PLC接收到結束字符后產生中斷(事件號9)或數據發送結束后產生中斷(事件號23),這兩個服務程序被執行。接收完,先把接收完標志置1,然后再次啟動接收。發送完,先清除校驗正確標志,再把接收緩沖區中的結束字符和計算出的接收BCC結果清零,最后再次啟動接收。
由于是半雙工通信,因此PLC無論是發送和接收完數據后,都必須將通信口設置成接收狀態。否則,PLC就接收不到任何數據了。
4.上位機的通信編程
上位機通過RS232口與PLC進行通信,Windows環境串口通信程序利用VC6編寫。VC6編寫串口通信程序通常有MSCOMM控件和通信API兩種方法。二者各有優缺點。MSCOMM控件封裝了微機串口通信的基本功能,使用者只需設置一些基本參數,就可以通過串口收發數據了。這種方法簡單,易于編程人員使用,現在已有很多例子供參考。用通信API編寫串口程序相對復雜一些。開發者要直接使用Windows提供的一組API函數來完成上述控件封裝好的功能。所以使用API編程比使用控件更復雜,但同時也更靈活。通信控件已經封裝好的功能是無法改變的,而使用API就能針對通信協議編寫效率更高的代碼。
在飛剪控制系統的上位機程序中,使用通信API編寫了串口讀寫的模塊。接收時,程序要查找起始字符‘g’,以確定1幀數據的開始;再根據下一個狀態字節判斷通信的正確性;最后,把長度為23字節的數據幀接收好,并準備接收下一幀。發送過程不用判斷數據內容,執行發送函數即可。需要注意的是:由于PLC通信口是半雙工的,所以在PLC向上位機上傳數據時,上位機要等1幀數據接收完畢,再執行發送操作,以避免收發沖突。
[align=center]
圖3 上位機串口通信流程圖[/align]
5.結束語
本系統取PC機和PLC各自的特點,實現了對飛剪系統的實時監控。通過利用PLC(下位機 )的自由口通信協議和上位機的VC開發工具,可以方便地開發出PC機和PLC通信應用軟件。這種方法節省投資,對小規模的系統極具現實意義。系統具有實時性好、速度快、可靠性高、操作方便等優點,達到了預期的效果。經現場調試及運行表明,該系統適合于飛剪系統的實時監控。
參考文獻
[1].SIEMENS SIMATIC S7-200 可編程控制器手冊[M]. 2000
[2]. 許毅.基于PC與S7-200實現自由通信協議的研究[J].武漢理工大學學報,2002(4):512-515
[3]. 龍偉. S7-200系列PLC和PC機實時通信的實現方法[J].南昌大學學報,2002(2):81-83
[4].廖常初.PLC編程及應用[M].機械工業出版社,2002.9
標簽:
上一篇:一種計算機實時控制系統的分...
傳動網版權與免責聲明:凡本網注明[來源:傳動網]的所有文字、圖片、音視和視頻文件,版權均為傳動網(m.cdcst56.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“傳動網”,違反者本網將追究其法律責任。
本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
產品新聞
更多>2025-09-08
華為昇騰Atlas800iA2 910B服務器Deepsee...
2025-09-04
2025-08-06
2025-07-08
2025-06-30
2025-06-16