1 引言
近年來,隨著大規(guī)模集成電路的發(fā)展,可編程控制器得到了迅速的發(fā)展,并廣泛應(yīng)用于各種領(lǐng)域中。由于可編程控制器具有自身的通訊端口和通信協(xié)議,這就使得工業(yè)現(xiàn)場的實時監(jiān)控和控制成為可能。所以在實際的運用中,常常采用plc作為下位控制機實現(xiàn)整個過程的自動控制。而微機在數(shù)據(jù)處理及人機界面方面有得天獨厚的優(yōu)勢,因此采用微機為上位機來進行數(shù)據(jù)的顯示、控制參數(shù)的修改及過程的控制,這樣就不得不解決上位管理機與下位控制機之間的通訊問題。
由于串行通訊具有線路簡單、應(yīng)用靈活、可靠性高等優(yōu)點,并且普通微機上均都帶有串口,便于實現(xiàn),所以微機與plc之間常采用串行異步通訊。vc具有面向?qū)ο蟮脑O(shè)計方法、簡單方便的串行通訊和實用性強等優(yōu)點,無需借用其他語言就可以開發(fā)出優(yōu)秀的控制系統(tǒng)通訊軟件。本文重點就是介紹在bbbbbbs98環(huán)境下如何利用vc來實現(xiàn)pc機與永宏plc之間的串行通訊。并以實際控制系統(tǒng)“半自動化燈檢機”為例加以說明。
2 控制系統(tǒng)簡介
半自動化燈檢機系統(tǒng)的主要工藝流程:供瓶機供瓶→進瓶輸送帶送瓶→氣缸放瓶→主傳動履帶式置瓶棍移送瓶→進入高速旋轉(zhuǎn)工位旋瓶→進入低速旋轉(zhuǎn)工位慢速旋瓶(同時也就進入燈檢工位)→至出瓶輸送帶送瓶→進入剔除工位分瓶(由電磁閥來控制氣缸動作)。下位機主要采用永宏plc完成現(xiàn)場的狀態(tài)檢測與控制。上位機則用一般的微機,通過rs-232與plc通信接受現(xiàn)場狀態(tài)的顯示并加以控制生產(chǎn)過程。
3 永宏plc的通訊格式
整個通訊采用上位機主動發(fā)送和接收的方式,plc內(nèi)部不需要特定的梯形圖編程來做下位機通訊程序。
3.1 通訊格式
計算機與永宏fb系列plc通訊必須遵從fb-plc通訊協(xié)議。無論是上位機發(fā)出的命令信息格式還是下位機發(fā)出的回應(yīng)信息格式均可分為6個資料位,如圖1所示。
(1) 起始字元(stx):ascii碼的起始字元stx對應(yīng)的16進制數(shù)為02h。無論命令信息還是回應(yīng)信息,它們的起始字元均為stx,接收方以此來判知傳輸資料的開始。
(2) 從機站號:為兩位16進制數(shù)。fb-plc的站號是什么,這個值就是多少。因為fb-plc的站號可以為1-255,所以這個值的范圍為01h-ffh。
(3) 命令號碼:為兩位16進制數(shù)。所謂命令號碼是指上位機要求下位機所執(zhí)行的動作類別,例如要求讀取或?qū)懭雴吸c狀態(tài)、寫入或讀取暫存器資料、強制設(shè)定、運行、停止等等。在回應(yīng)信息中,下位機會將從上位機接收到的命令號碼原原本本的隨同其它信息一同發(fā)送給上位機。
(4) 本文資料:可為0(無本文資料)-500個ascii字元。在命令信息中,此信息用于指定命令所要運作或存取的對象及要寫入的數(shù)值。如果通訊正確,那么在回應(yīng)信息中此欄為0(30h)和從上位機接收到的本文資料;如果通訊異常,那么為錯誤碼。
(5) 校驗碼(checksum):校驗碼是將1-4各欄的所有ascii字元的16進制數(shù)值以“l(fā)rc(longitudinal redundancy check)”法計算出1個byte長度(兩個16進制數(shù)值00-ffh)的校驗碼。當(dāng)下位機接收到信息后,用同樣的方法計算出接收信息的校驗碼,如果兩個校驗碼相同,則說明傳送正。
(6) 結(jié)束字元(etx):ascii碼的結(jié)束字元etx對應(yīng)的16進制數(shù)為03h。無論命令信息還是回應(yīng)信息,他們的結(jié)束字元均為etx,接收方以此來判知此次通訊已結(jié)束。










