中國電子科技集團 四十五研究所 曹穎杰
串口通信在電鍍設(shè)備上的應(yīng)用
中國電子科技集團 四十五研究所 曹穎杰
在工業(yè)控制中,串口是控制器與外部串行設(shè)備之間的數(shù)據(jù)傳輸通道。串口通信具有穩(wěn)定可靠、成本低廉、軟件易實現(xiàn)等優(yōu)點,是在當(dāng)前工業(yè)控制領(lǐng)域中應(yīng)用比較廣泛的通信方式。本文,筆者以半導(dǎo)體行業(yè)中的電鍍設(shè)備為例,介紹一種簡單、實用的工業(yè)控制模型。該模型使用PLC(可編程控制器)為主控制器,以串口通信為工業(yè)控制的媒介,采用CX–PROTOCOL作為開發(fā)工具,以實現(xiàn)串行通信協(xié)議宏控制軟件的開發(fā)。
該模型由主控單元和受控單元組成。主控單元為可編程控制器,配置了4個串口;各受控單元配置了相應(yīng)的RS485接口。主控單元通過總線向受控單元發(fā)送控制指令,受控單元根據(jù)不同指令執(zhí)行不同的動作。受控單元由不同功能的子模塊組成,這些子模塊多由不同的廠商提供,其串口通信協(xié)議往往不同。主控單元與受控單元的連接方式如圖1所示。
圖1 主控單元和受控單元連接方式
在軟件實現(xiàn)過程中,先利用CX–PROTOCOL軟件開發(fā)串行通信協(xié)議宏的序列,協(xié)議包含設(shè)備的狀態(tài)查詢和實時控制等;再利用PLC程序調(diào)用協(xié)議,進而實現(xiàn)PLC對不同廠商智能儀器的分時循環(huán)通信,實現(xiàn)對設(shè)備的實時控制。
1.通信協(xié)議宏組態(tài)及PLC編程。協(xié)議宏是一種通信協(xié)議,其功能主要是控制各種通信設(shè)備和裝有RS232、RS485通信端口的通信器件的數(shù)據(jù)傳送。先利用OMRON的CX–PROTO-COL軟件創(chuàng)建不同的通信協(xié)議序列,再編寫PLC控制程序,使用PMCR指令循環(huán)執(zhí)行存儲在通信單元中的通信序列??刂葡到y(tǒng)的各個模塊由不同廠商提供的,用來完成不同的任務(wù),在開發(fā)控制軟件時,需根據(jù)各個模塊的具體通信協(xié)議編寫出符合不同要求的通信序列。
(1)數(shù)據(jù)格式。由1位起始位、8位數(shù)據(jù)位、1位偶校驗位和1位停止位組成,波特率為9 600 bps,字符為ASCII碼。數(shù)據(jù)格式見表1。
表1 數(shù)據(jù)格式
(2)通信命令。通信命令包括讀命令和寫命令兩方面的內(nèi)容。通信命令的代碼及功能見表2。
表2 通信命令代碼及功能
(3)通信控制字符。采用面向字符的傳輸規(guī)程,并采用通信控制字符控制。通信控制字符見表3。
表3 通信控制字符
當(dāng)PLC對電源發(fā)來的ENQ不理解時,用NAK回答。
(4)報文格式。向PLC發(fā)送的報文格式見表4.
表4 向PLC發(fā)送的報文格式
STX為開始標志(02H),EXT為結(jié)束標志(03H),CMD為命令的ASCII碼,BCC為校驗碼(用于檢測通訊錯誤,采用循環(huán)冗余碼CRC16)。
(5)傳輸過程。PLC機與電源之間采用應(yīng)答方式通信,若傳輸出錯則組織重發(fā)。其傳輸過程如圖2所示。
圖2 PLC機與電源之間的信號傳輸過程
2.關(guān)鍵代碼編寫。根據(jù)上述通訊幀格式,在CX–PROTOCOL軟件中創(chuàng)建新項目,在其下開始創(chuàng)建各個受控單元的通信序列,每個通信序列中可以創(chuàng)建99步,在每一步中包含了步號、指令類型、發(fā)送信息、接受信息和響應(yīng)等內(nèi)容。關(guān)鍵代碼如下:
00步中發(fā)送信息SD–1的數(shù)據(jù)格式如下:
STX+ “ 00,F(xiàn)E”+&(R(1),2)+“00”+&(R(2),4)+ &(R(3),4)+ETX+<C>。
00步中接受信息RV–1的數(shù)據(jù)格式如下:
STX+&(W(1),2) +&(W(2),66)+ETX+<C>。
其中,&(R(1),2)表示數(shù)據(jù)形式為變量,該發(fā)送數(shù)據(jù)需從PLC程序中PMCR指令中的第2個操作數(shù)的第1個字中讀取。&(W(1),2) 表示數(shù)據(jù)形式為變量,該接收數(shù)據(jù)將從PLC程序中PMCR指令中的第3個操作數(shù)的第2個字開始依次寫入。
將協(xié)議宏下載到PLC的通信單元后,編寫PLC控制程序來執(zhí)行該協(xié)議。在編程前,需要設(shè)置PLC通信單元的通信參數(shù),如啟動位、數(shù)據(jù)長度、停止位、奇偶校驗位、波特率等 ,通信參數(shù)必須與廠商提供的參數(shù)相一致。
當(dāng)A/D模塊由OFF變成ON時,系統(tǒng)啟動。A/D模塊轉(zhuǎn)換結(jié)束標志為ON,且對1#電鍍電源的通信標志A202.00和輸入條件標志1909.15滿足條件時,以1 s為周期執(zhí)行協(xié)議宏指令PMCR。該指令中的第1個控制字“#113”,其中第1個1代表物理端口號,13為通信單元的地址,而控制字2“#A”表示執(zhí)行的通訊序列編號。
當(dāng)執(zhí)行PMCR指令時,RS–485端口標志位207為ON,協(xié)議宏執(zhí)行結(jié)束后207為OFF。此時1#電鍍電源的00序列執(zhí)行完1次。由于內(nèi)部繼電器W 5.01在執(zhí)行的同時復(fù)位,W 5.02置位,將啟動執(zhí)行另一個電鍍電源的001序列,即進行2#電鍍電源的狀態(tài)讀入。通過定時器及PCMR指令完成該過程,實現(xiàn)了PLC分時循環(huán)通信,能夠?qū)崟r監(jiān)控多臺智能儀器。由于不同廠商的通信協(xié)議往往是不同的,利用協(xié)議宏編寫或修改通信協(xié)議,只需對PLC程序做少量修改,軟件維護十分方便。