陳德海
身份證號(hào)碼:21088119890912373X
基于CAN總線的多PLC通信控制研究
陳德海
身份證號(hào)碼:21088119890912373X
PLC由于簡(jiǎn)單易懂、操作方便、可靠性高,在各個(gè)行業(yè)的自動(dòng)化控制領(lǐng)域得到了廣泛的使用。特別是小型PLC,隨著自動(dòng)化程度的不斷提高,應(yīng)用領(lǐng)域比以前更為廣泛。隨著應(yīng)用技術(shù)的發(fā)展,經(jīng)常會(huì)出現(xiàn)一些應(yīng)用場(chǎng)合,在面積較大的范圍內(nèi),需要多臺(tái)PLC協(xié)同完成一個(gè)系統(tǒng)的綜合控制。PLC之間的通信格式不兼容,給企業(yè)內(nèi)部的系統(tǒng)集成、集中管理和升級(jí)帶來了極大的困難。因此,研究一種統(tǒng)一的通信協(xié)議,以使不同品牌的PLC可以統(tǒng)一監(jiān)控和互相自由通信具有重要的現(xiàn)實(shí)意義。基于此本文分析了基于CAN總線的多PLC通信控制研究。
CAN總線;PLC;通信控制
CAN總線屬于總線式串行通信網(wǎng)絡(luò),CAN總線的數(shù)據(jù)通信具有突出的可靠性、實(shí)時(shí)性和靈活性,其主要具有以下特點(diǎn):
(1) CAN總線的通信方式非常靈活,既可以為點(diǎn)對(duì)點(diǎn)的方式也可以為廣播方式,可以是單主方式也可以是多主方式。利用這個(gè)特點(diǎn)能夠容易地構(gòu)成多機(jī)冗余系統(tǒng),以提高系統(tǒng)的可靠性。(2)網(wǎng)絡(luò)節(jié)點(diǎn)信息分成不同的優(yōu)先級(jí),可滿足不同的實(shí)時(shí)要求。(3)CAN協(xié)議不采用傳統(tǒng)的站地址編碼方式,而代之以對(duì)通信數(shù)據(jù)塊進(jìn)行編碼,用一個(gè)11位或29位二進(jìn)制數(shù)組成的標(biāo)志符來區(qū)分不同的數(shù)據(jù)塊。這種編碼方式使得系統(tǒng)設(shè)置非常靈活,無需站地址等節(jié)點(diǎn)信息。(4)CAN的數(shù)據(jù)幀采用短幀結(jié)構(gòu),傳輸時(shí)間短,受干擾概率低,具有極好的檢錯(cuò)效果。數(shù)據(jù)段的最大長(zhǎng)度為8個(gè)字節(jié),這樣不但能夠滿足工業(yè)控制領(lǐng)域中傳送控制命令、工作狀態(tài)和測(cè)量數(shù)據(jù)的一般要求,而且保證了通信的實(shí)時(shí)性。(5)每幀信息都有CRC校驗(yàn)及其它檢錯(cuò)措施,保證了數(shù)據(jù)出錯(cuò)率極低。
現(xiàn)場(chǎng)總線是應(yīng)用在生產(chǎn)現(xiàn)場(chǎng)、在微機(jī)化測(cè)量控制設(shè)備之間的雙向串行多節(jié)點(diǎn)的數(shù)字通信系統(tǒng),也被稱為開放式、數(shù)字化、多點(diǎn)通信的底層控制網(wǎng)絡(luò)。
提出一種基于CAN總線的PLC網(wǎng)絡(luò)方案,如圖1所示。該方案上位機(jī)通過CAN總線與PLC進(jìn)行鏈接后執(zhí)行上下位機(jī)的數(shù)據(jù)傳輸、命令傳輸,在上下位機(jī)中通過不同的協(xié)議轉(zhuǎn)換器進(jìn)行協(xié)議轉(zhuǎn)換。這樣能夠?qū)Χ嗯_(tái)聯(lián)網(wǎng)的PLC實(shí)現(xiàn)遠(yuǎn)程配置、數(shù)據(jù)通信,并能夠在投入較低硬件成本的基礎(chǔ)上,實(shí)現(xiàn)良好的系統(tǒng)運(yùn)行性能。這個(gè)方案也充分發(fā)揮了現(xiàn)場(chǎng)總線CAN-bus的實(shí)時(shí)、可靠、高速、遠(yuǎn)距離、易維護(hù)等特點(diǎn)。通過單片機(jī)將PLC的通訊協(xié)議轉(zhuǎn)化為CAN協(xié)議,并組成CAN總線網(wǎng)絡(luò),以實(shí)現(xiàn)各PLC之間的相互訪問,同時(shí)可使用上位機(jī)檢測(cè)各PLC的工作和通信狀況。這種方式組建的PLC網(wǎng)絡(luò),與選擇集成CAN通訊功能的PLC設(shè)備相比,具有更加靈活的系統(tǒng)擴(kuò)展能力,也能夠獲得更好的性價(jià)比。
3.1 CAN應(yīng)用層設(shè)計(jì)
在設(shè)計(jì)CAN應(yīng)用層協(xié)議時(shí)應(yīng)當(dāng)要考慮的項(xiàng)目如下:信息標(biāo)識(shí)符分配系統(tǒng)、過程數(shù)據(jù)交換的方法、點(diǎn)對(duì)點(diǎn)通訊信道、建立過程數(shù)據(jù)信息連接的方法、網(wǎng)絡(luò)管理。
3.2 轉(zhuǎn)換程序
圖1 采用CAN網(wǎng)絡(luò)的PLC通信和監(jiān)控系統(tǒng)
本文研究的主要功能由DP-51中協(xié)議轉(zhuǎn)化程序完成,其中各文件的主要功能為:
(1) m.c:主程序,主要用來完成子程序控制、CAN中斷處理、串口中斷處理和節(jié)點(diǎn)優(yōu)先級(jí)的調(diào)整。
(2) f_canini.c:CAN通信初始化程序,初始化驗(yàn)收代碼寄存器、驗(yàn)收屏蔽寄存器和總線時(shí)序寄存器等。
(3) f_serialini.c:串口初始化程序,初始化串口控制寄存器SCON、工作方式寄存器和定時(shí)器1的初值。
(4) config.h:配置程序,定義其它程序中通用的系統(tǒng)變量。
(5) f_serial_1.c和f_can_1.c:實(shí)現(xiàn)歐姆龍通信協(xié)議和CAN協(xié)議的互相轉(zhuǎn)換。
(6) f_serial_2.c和f_can_2.c:實(shí)現(xiàn)三菱SC-09通信協(xié)議和CAN協(xié)議的互相轉(zhuǎn)換。
(7) f_serial_3.c和f_can_3.c:實(shí)現(xiàn)ModbusRTU通信協(xié)議和CAN協(xié)議的互相轉(zhuǎn)換。程序運(yùn)行的主要流程如圖2所示。
圖2 轉(zhuǎn)換程序流程圖
3.3 上位機(jī)監(jiān)控
本文設(shè)計(jì)了上位機(jī)監(jiān)控軟件,以圖形化的界面監(jiān)控網(wǎng)絡(luò)中各PLC的運(yùn)行狀態(tài)。上位機(jī)地址設(shè)置為0xFF,具有最低的優(yōu)先級(jí),以免監(jiān)控命令影響網(wǎng)絡(luò)中其它PLC的正常通信。
如圖3所示,點(diǎn)擊開始監(jiān)控后,與上位機(jī)連接的USB-CAN雙路智能CAN接口將首先向網(wǎng)絡(luò)中發(fā)送測(cè)試命令,用以判斷網(wǎng)絡(luò)中存在哪些節(jié)點(diǎn),以及各節(jié)點(diǎn)的PLC類型。監(jiān)控主界面上顯示了網(wǎng)絡(luò)中的部分PLC的型號(hào)以及輸入輸出點(diǎn)狀態(tài),未在主界面上顯示的PLC以及更多的輸入輸出點(diǎn)狀態(tài)可以通過點(diǎn)擊右側(cè)的PLC詳細(xì)狀態(tài)看到。
圖3 監(jiān)控軟件主界面
點(diǎn)擊主界面上的PLC或者詳細(xì)狀態(tài)按鈕,即可顯示如圖4所示窗口,其中當(dāng)前PLC選擇框可選擇當(dāng)前網(wǎng)絡(luò)中的任一PLC,選擇相應(yīng)的輸入點(diǎn)和輸出點(diǎn)可以觀察到當(dāng)前的狀態(tài)。點(diǎn)擊輸出點(diǎn)可使其在開關(guān)狀態(tài)間切換,點(diǎn)下方的設(shè)置當(dāng)前輸出點(diǎn)狀態(tài)后,上位機(jī)將通過寫輸出點(diǎn)命令設(shè)置相應(yīng)PLC的輸出點(diǎn)狀態(tài)。
圖4 PLC詳細(xì)狀態(tài)
點(diǎn)擊主界面上的參數(shù)設(shè)置,通過設(shè)置網(wǎng)絡(luò)檢測(cè)間隔,可設(shè)置上位機(jī)每隔多少毫秒發(fā)出一次網(wǎng)絡(luò)監(jiān)控命令,可根據(jù)網(wǎng)絡(luò)中PLC通信的繁忙程度,適當(dāng)設(shè)置此參數(shù),以免影響正常的通信命令。
總之,基于CAN總線的多PLC通信控制研究具有非常重要的意義,本文分析了基于CAN總線的多PLC通信控制相關(guān)方面,以期提供一些借鑒。
[1]仝曉梅,鞏瑞春.CAN總線的PLC通信網(wǎng)絡(luò)的研究[J].信息與電腦(理論版),2014.
[2]徐杰,金海,魯文其.基于CAN總線通信的雙電機(jī)速度聯(lián)動(dòng)控制系統(tǒng)設(shè)計(jì)[J].浙江理工大學(xué)學(xué)報(bào),2015.