沈德榮
(浙江嘉化能源化工股份公司,浙江 嘉興 314201)
氯堿行業(yè)整流系統(tǒng)監(jiān)控和配電系統(tǒng)監(jiān)控往往不使用同一現(xiàn)場通訊協(xié)議,而使用2套后臺系統(tǒng)對整流系統(tǒng)和配電系統(tǒng)分別監(jiān)控,同時,單套系統(tǒng)一般不與太多的整流控制系統(tǒng)進(jìn)行監(jiān)控?,F(xiàn)建立并運行1個系統(tǒng)由2臺WINCC 后臺系統(tǒng)同時監(jiān)控20臺整流器及相應(yīng)20臺整流變壓器的保護(hù)裝置及其他動力配電裝置的運行狀態(tài)監(jiān)視及控制整流器。
監(jiān)控網(wǎng)絡(luò)組網(wǎng)圖見圖1。
(1)系統(tǒng)設(shè)置2臺WINCC 監(jiān)控后臺,經(jīng)2路PROFIBUS(通訊速率為500 kbps)與現(xiàn)場通訊PLC分別進(jìn)行通訊,確保在任一后臺系統(tǒng)故障時,另一臺可以繼續(xù)獨立運行。
(2)現(xiàn)場通訊選用的PLC 與整流器控制柜用的PLC 完全相同,即西門子S200的266CPU,其自帶的PORT0口和PORT1口可以作為主口運行,擴(kuò)展模塊EM277與上位機通訊。
(3)現(xiàn)場通訊用PLC 的PORT0口或PORT1口可以以PPI 方式與不超過4個從機通訊,鏈路長路不超過50 m;在此處,有通訊PLC-3的PORT0口與一期整流系統(tǒng)的4臺整流器PLC 進(jìn)行通訊;通訊PLC-4的PORT0口和PORT1口分別與二期整流系統(tǒng)的1~4 4臺PLC 和二期整流系統(tǒng)的5~8 4臺PLC進(jìn)行通訊;通訊PLC-6的PORT0口和PORT1口分別與三期整流系統(tǒng)的1~4 4臺PLC 和三期整流系統(tǒng)的5~8 4臺PLC 進(jìn)行通訊。
圖1 監(jiān)控網(wǎng)絡(luò)系統(tǒng)圖
(4)現(xiàn)場通訊用PLC 的PORT0口或PORT1口可以以自由口方式與多個MODBUS 協(xié)議數(shù)據(jù)收集用的MCU 單片機從機系統(tǒng)進(jìn)行通訊,MCU 單片機系統(tǒng)以較低現(xiàn)場通訊速度與保護(hù)裝置進(jìn)行通訊,收集的數(shù)據(jù)由PLC 握手后,向PLC 傳送并由PLC 在PLC 內(nèi)存中保存與處理供后臺調(diào)用。
(1)通訊PLC 每個PORT 口以PPI 主口方式與最多4個整流器PLC 進(jìn)行通訊,通訊速率為19.2 kbps。
(2)通訊PLC 與每個整流器PLC 在同一時間里僅有1個NETR 或NETW 命令在現(xiàn)用狀態(tài),此時,每個通訊PLC 以2個PPI 主口與整流器通訊時可以確保同一時間內(nèi)激活的NETR 或NETW 命令不超過8條。
(3)通訊PLC 預(yù)留2個VD 變量,供后臺向整流器下達(dá)控制命令,其中一個直接與整流器通訊(以下簡稱命令變量),另一個為后臺同時下達(dá)的2個命令作緩存(以下簡稱命令緩存變量),通訊PLC 在完成命令下達(dá)后,將命令緩存變量的值傳送給命令變量作為新的命令,同時將命令緩存變量清零。
(4)通訊PLC 在每個整流器通訊完成的情況下首先檢查該變量,只要該變量非零,且目標(biāo)地址為該整流器,即發(fā)送解析后的NETW 命令,否則,發(fā)送循環(huán)讀的NETR 命令,讀數(shù)據(jù)的目標(biāo)地址由整流器控制柜的PLC 程序確定,每次讀數(shù)據(jù)最多為16個字節(jié)。
為提高通訊PLC 與整流器PLC 之間在較低的通訊速率下具備單位時間內(nèi)足夠的掃描次數(shù)。在整流器PLC 上需對上傳的數(shù)據(jù)進(jìn)行打包處理,對位信號盡可能組織到32位的四字節(jié)VD 格式,而對于精度稍低的模擬量數(shù)據(jù)及整流變壓器檔位數(shù)據(jù)等盡可能以8位單個字節(jié)的方式向上傳送;總體打包后的數(shù)據(jù)以2組(最多3組)16個字節(jié)完成打包。
同時,為了后臺能夠顯示重要動作的來源,可以安排首出的定義與位信號一起上傳給通訊PLC,由通訊PLC 進(jìn)行解碼及信號復(fù)歸處理。
以株州科瑞提供給浙江嘉代經(jīng)能源化工公司三期離子膜燒堿用整流器為例的數(shù)據(jù)定義表見表1。
2.3.1 后臺對通訊PLC 下達(dá)命令
由于采用2套后臺系統(tǒng)對整個整流器系統(tǒng)進(jìn)行控制,當(dāng)后臺需要對通訊PLC 的2個或以上變量進(jìn)行寫操作時,會對每個變量逐個進(jìn)行寫操作,因此,為避免2臺電腦同時對通訊PLC 進(jìn)行寫入而產(chǎn)生誤解析并對整流器誤控,最簡單的辦法就是采用單個4字節(jié)變量完成每個命令的操作。
命令的高16位包括整流器地址和命令的控制字,命令的低16位為控制的數(shù)據(jù)。如bit31~bit24可以設(shè)置為整流器PLC 地址;bit23~bit16可以設(shè)置為控制字;bit15~0為設(shè)定電流或者對指定地址寫入的調(diào)試數(shù)據(jù)。在實際運用中,為了簡化程序,通訊PLC的2個主口各對應(yīng)的4個整流器使用不重復(fù)的地址,如PORT0口所帶整流器的PLC 地址為2~5,PORT1口所帶整流器的PLC 地址為6~9。
表1 離子膜燒堿用整流器數(shù)據(jù)定義表
實際的二期整流器采用株州科瑞的控制系統(tǒng),在電流設(shè)定時不僅需要設(shè)置主控器的設(shè)定電流,同時,還需要設(shè)置從控制器的設(shè)定電流,這時,系統(tǒng)在通訊PLC 提供了2個VD 變量用于控制,即后臺可以同時發(fā)送A 通道設(shè)定電流和B 通道設(shè)定電流。
2.3.2 通訊PLC 對整流器下達(dá)命令
通訊PLC 與每個整流器通訊完成后檢查命令字,當(dāng)命令變量非零且命令目標(biāo)地址與當(dāng)前整流器PLC 地址相同時,轉(zhuǎn)發(fā)后臺對整流器的操作命令,同時,完成命令緩存變量的移動和清零,否則,對目標(biāo)整流器PLC 進(jìn)行讀操作。
通訊PLC 對整流器下達(dá)命令為對固定的整流器變量區(qū)寫入,整流器根據(jù)數(shù)據(jù)塊中命令字進(jìn)行操作。通訊PLC 對整流器PLC 控制操作只有1個主站在操作。
2.3.3 后臺對通訊PLC 命令字的參考編排
bit31~bit24整流PLC 的地址如POAT0口對應(yīng)2~5;POAT1口對應(yīng)6~9。
bit23~bit16控制字及對應(yīng)bit15~bit0的操作數(shù)定義:
16#5A 整流變壓器升檔降壓操作(操作數(shù)為零);16#3C 整流變壓器降標(biāo)升壓操作(操作數(shù)為零);16#78整流控制器A 電流設(shè)定(操作數(shù)為電流設(shè)定值);16#96整流控制器B 電流設(shè)定(操作數(shù)為電流設(shè)定值);16#87整流器PLC 數(shù)據(jù)查詢地址寫入(操作數(shù)為地址設(shè)定值);16#E1整流器PLC 在當(dāng)前查詢地址寫入數(shù)據(jù)(操作數(shù)為數(shù)據(jù)設(shè)定值,僅當(dāng)整流PLC 允許寫入數(shù)據(jù)的位置方可寫入,調(diào)試用);16#A5整流器PLC 報警復(fù)位(操作數(shù)為零)。
根據(jù)國電南京自動化股份有限公司的PS690系列保護(hù)測控裝置的RS485口MODBUS 通訊協(xié)議的規(guī)定,PS690系列保護(hù)測控裝置不能利用西門子S7-200的MODBUS 庫程序進(jìn)行通訊。為了和動力站配電裝置能夠用1個PLC 進(jìn)行通訊轉(zhuǎn)換,單個PLC 在9.6 kbps 速率下用2個通道與共計37臺裝置進(jìn)行通訊,掃描時間將不能滿足后臺監(jiān)視的要求,同時,單個鏈路的從站數(shù)量較多及電纜長度較長都不利于通訊穩(wěn)定。根據(jù)PS690的通訊情況,單個主站一般不超過10個從站,最多不超過16個從站。因此,系統(tǒng)采用MCU 作為與PS690的接口。
(1)選用ATMEL 的ATmage162單片機作為通訊用單片機,對于本項目,ATmage162內(nèi)置2個獨立的USART 異步串行口,當(dāng)采用7.372 8 MHz 振蕩頻率時,可以使2個USART 分別運行于115.2 kbps 和9.6 kbps。在本項目中USART0以MODBUS 協(xié)議按9.6 kbps 的速率與國電南京自動化股份有限公司的PS690U 系列保護(hù)測控裝置進(jìn)行通訊;USART1與PLC 以自由口方式按115.2 kbps 的速率進(jìn)行通訊。
(2)MCU 板設(shè)置MCU 地址跳線來設(shè)定MCU 板的地址,MCU 根據(jù)MCU 板的地址來響應(yīng)來自通訊PLC 的命令,包括握手與控制命令,在實際系統(tǒng)中,預(yù)留了控制操作命令的通道,但未配置操作命令,僅通過通訊用PLC 配置了裝置時鐘設(shè)定的命令。在PLC 與MCU 板通訊過程中,由通訊PLC 設(shè)置MCU與那些裝置(地址)進(jìn)行通訊,并規(guī)定開關(guān)量采集個數(shù)和模擬量采集個數(shù)。
(3)MCU 板根據(jù)PLC 規(guī)定的通訊地址和開關(guān)量模擬量采集個數(shù)主動進(jìn)行循環(huán)采集,并把采集到的數(shù)據(jù)按采集程序以轉(zhuǎn)發(fā)數(shù)據(jù)包的格式(每個數(shù)據(jù)包包括轉(zhuǎn)存字節(jié)數(shù)和轉(zhuǎn)存地址的相對偏移量和14個字節(jié)數(shù)據(jù)信息)保存在MCU 的存貯區(qū)內(nèi)。根據(jù)PS690U 的通訊協(xié)議和點表,MCU 向PLC 每個裝置每次上傳開關(guān)量為10個字節(jié),模擬量14個字節(jié),每個裝置上傳模擬量最多為28個字節(jié),PLC 一次握手最多轉(zhuǎn)發(fā)24個數(shù)據(jù)包,即按8臺裝置輪詢一周的數(shù)據(jù)即每臺裝置為1個位變量數(shù)據(jù)包和2個模擬量數(shù)據(jù)包。
(4)MCU 根據(jù)PLC 握手命令,向PLC 轉(zhuǎn)發(fā)數(shù)據(jù),并標(biāo)識有無后續(xù)數(shù)據(jù),直到最后一個數(shù)據(jù)包的傳送,PLC 對MCU 發(fā)來的數(shù)據(jù)的偏移地址和轉(zhuǎn)發(fā)字節(jié)數(shù)保存在PLC 的變量區(qū),供后臺讀取,同時,PLC 對最多達(dá)69位的位變量,選取最多不超過32個位變量以32位的雙字格式重新組合供后臺訪問與記錄。同時,PLC 在讀取無后續(xù)標(biāo)志的報文時,在完成本報文處理后,發(fā)下一個PLC 的握手命令,握手命令包含對MCU 板的MODBUS 通訊控制。
3.3.1 PLC 至MCU 報文格式
16#A5規(guī)定初值;
MCU 地址1~8 0為廣播對時報文;
MODBUS 子站地址1~8;bit7為1時,為轉(zhuǎn)發(fā)命令,bit7為0時,通訊握手;
MODBUS 子站讀開關(guān)量數(shù)據(jù)長度;
MODBUS 子站讀模擬量數(shù)據(jù)長度;
空位備用,填充任意值;
8位XOR BCC 校驗值(從第2到第9字節(jié))。
當(dāng)MCU 地址為0時,為廣播對時命令;3~8字節(jié)為時間格式,按年月日時分秒共6個字節(jié),MCU將年調(diào)整為20xx 格式,將秒轉(zhuǎn)為毫秒格式按對時規(guī)約下送。
當(dāng)MODBUS 子站地址的首位為1時,3~8字節(jié)為MODBUS 命令除CRC 外的前6個字節(jié)(其中,MODBUS 地址的首位應(yīng)為0),此功能可以由MCU向保護(hù)裝置轉(zhuǎn)發(fā)遠(yuǎn)方復(fù)歸、遙控合開關(guān)及遙控分開關(guān)命令。
3.3.2 MCU 至PLC 報文格式
16#3CC3規(guī)定初值其中16#3C 由PLC 作為接收控制;
MCU 地址1~8;當(dāng)bit7為1時,有后續(xù)報文;
轉(zhuǎn)發(fā)字節(jié)數(shù),當(dāng)16#7F 時,無轉(zhuǎn)發(fā);
轉(zhuǎn)發(fā)偏移地址指針(需乘以10)及無轉(zhuǎn)發(fā)報文定義;
轉(zhuǎn)發(fā)數(shù)據(jù)1~14;
8位XOR BCC 校驗值(從第3到第19字節(jié));
8位XOR BCC 校驗值(從第2位到第9位)。
當(dāng)MCU 至PLC 傳送為無報文時,第5個字節(jié)定義無報文類型,可由PLC 查詢:16#FF 表示本次無數(shù)據(jù)傳送;16#BC 為MCU 讀得PLC 對本MCU 的握手報文BCC 錯誤;不論何種原因,PLC 均不轉(zhuǎn)發(fā)數(shù)據(jù)并對下一PLC 進(jìn)行握手通訊。
(1)通訊PLC 內(nèi)存由以下幾部分組成:整流器控制PLC 通訊得到數(shù)據(jù)保存的內(nèi)存及為后臺訪問進(jìn)行轉(zhuǎn)換的數(shù)據(jù)保存的內(nèi)存;繼電保護(hù)裝置數(shù)據(jù)保存的內(nèi)存及為后臺訪問將繼電保護(hù)裝置的數(shù)據(jù)進(jìn)行處理的內(nèi)存;PLC 程序所用的內(nèi)存。
(2)為便于繼電保護(hù)裝置采集的數(shù)據(jù)在PLC 中的存貯,按當(dāng)前項目每個通訊PLC 最多僅用1個PLC 口與通訊MCU 板通訊,每個MODBUS 子站在PLC 中安排50個VB 內(nèi)存進(jìn)行分配。同時,在這50個VB 內(nèi)存中通訊讀入內(nèi)存為38個,有12個可以用作處理后數(shù)據(jù)的保存。
(3)整流器數(shù)據(jù)由于通訊變量總體數(shù)量較少,在VB1000以后與繼電保護(hù)裝置采集的數(shù)據(jù)存放位置可以重迭,同時,在同一區(qū)域內(nèi)安排轉(zhuǎn)換后的數(shù)據(jù)。在一期整流站需同時存放8臺保護(hù)裝置數(shù)據(jù)和4臺整流器數(shù)據(jù),在這里,8臺繼電保護(hù)裝置數(shù)據(jù)需存放在VB100~VB845的內(nèi)存中。
(4)用于繼電保護(hù)裝置采集PLC 程序所用內(nèi)存盡可能安排內(nèi)存的高端區(qū)域;用于整流器采集的PLC 程序所用內(nèi)存安排在整充器數(shù)據(jù)區(qū)域。
(1)通訊PLC 與整流PLC 的通訊按照每個PLC從機在任何時候只占用1個NETR 或NETW 指令,并以命令優(yōu)先為基本原則。
a.在任何通訊錯誤時,設(shè)置足夠的延時后再恢復(fù)通訊。
b.在通訊PLC 預(yù)留控制用位,使后臺能夠控制通訊PLC 停止及開啟與整流控制PLC 的通訊,提高后臺與運行整流器的通訊可靠性。
(2)通訊PLC 與通訊MCU 的通訊
a.通訊PLC 與通訊MCU 之間一直采用循環(huán)輪詢的方式進(jìn)行通訊,并采用定幀長的方式握手并以定幀長的方式回答,通訊PLC 向通訊MCU 握手后,為提數(shù)據(jù)上傳的速度,MCU 將連續(xù)將轉(zhuǎn)發(fā)的報文傳送給通訊PLC,直到緩存的數(shù)據(jù)全部送完。此時,最多一次返送24個數(shù)據(jù)幀。
b.通訊PLC 與通訊MCU 握手時,輪流將通訊MCU 的MODBUS 讀取控制值下送給通訊MCU,使通訊MCU 退出再投運時,盡快獲取本MCU 的通訊參數(shù),投入正常通訊(通訊MCU 除設(shè)置通訊MCU地址跳線外,程序是一樣的)。
c.中斷程序?qū)顟B(tài)位的改變,在主程序中,確保僅允許在一處使用,以避免因中斷程序返回位置不同,使程序執(zhí)行錯誤。
d.接收通訊完成后,需檢查有無命令存在,有命令時,以發(fā)送命令優(yōu)先,在運行項目中僅采用對時命令。
(3)通訊PLC 中的數(shù)據(jù)處理程序
a.為了加速數(shù)據(jù)的上傳,在本項目中對整流數(shù)據(jù)上傳時對于VD212 PLC 查詢數(shù)據(jù)與VB212~215有載變壓器檔位、整流器水壓、水溫及有載變壓器上層油溫共用一個數(shù)據(jù)區(qū),在通訊PLC 中,需要根據(jù)整流PLC 中V202.0查詢數(shù)據(jù)位來進(jìn)行解析,對于V203.0~2故障首出表示故障1~7和沒有故障均需要在通訊PLC 中完成解析后由后臺讀取;另一方面,對一些故障需由PLC 對各臺整流器故障進(jìn)行綜合后由后臺讀取和報警,減少報警顯示,突出重要報警。
b.對于每個微機保護(hù)裝置的重要位變量在后臺得到記錄,也需要由通訊PLC 對保護(hù)裝置的位變量進(jìn)行重新組裝后由后臺讀取,由于整流進(jìn)線未配置保護(hù)裝置,為在后臺可以看到每條母線的電流和有功功率,也需要通訊PLC 進(jìn)行加法計算。
c.通訊PLC 同時承擔(dān)部分直接數(shù)據(jù)的采集和上傳。
(1)本文介紹系統(tǒng)目前已帶有三期共20臺整流控制PLC,三期共20臺有載調(diào)壓變壓器的24臺微機保護(hù)裝置的數(shù)據(jù)收集以及動力站37臺微機保護(hù)裝置的數(shù)據(jù)收集。
(2)PROFIBUS 總線187.5 kbps 數(shù)據(jù)收集正常,PROFIBUS 總線實際運行速度為500 kbps,作為PROFIBUS 子站通訊PLC 為6個,小于OPC 允許12子站的規(guī)定。
(3)通訊PLC 的每個PPI 口子站均為4個,通訊速率為19.2 kbps,鏈路長度均在50 m 以內(nèi);通訊PLC 的每個自由口通訊MCU 子站最多為6個,且與通訊PLC 裝在同一控制箱內(nèi),通訊速率為115.2 kbps;通訊MCU 與微機保護(hù)裝置通訊在站內(nèi)進(jìn)行,每個MCU 與最多8個保護(hù)裝置通訊,通訊速率為9.6 kbps。
(4)為了提高輪詢的速度,通訊MCU 不采用協(xié)議轉(zhuǎn)換器的工作方式,而是由通訊MCU 以主設(shè)備直接輪詢的方式與微機保護(hù)裝置通訊,再在通訊PLC 與其握手時,將數(shù)據(jù)傳送給PLC,PLC 再根據(jù)數(shù)據(jù)的規(guī)定保存在相應(yīng)位置,最終由PLC 提供給后臺訪問這些數(shù)據(jù)。
(5)由于將整流器PLC 數(shù)據(jù)和微機保護(hù)裝置數(shù)據(jù)均由西門子S7-266的PLC 作為通訊管理用PLC來收集,由WINCC 組成的后臺僅面向用于通訊控制的西門子的PLC 進(jìn)行通訊,從而使系統(tǒng)運行更穩(wěn)定。
(6)由于采用互為備用的2個后臺對系統(tǒng)進(jìn)行監(jiān)控,同時簡化了操作命令的編排,每班僅需1名中控運行人員便完全可以勝任,同時可在單臺后臺電腦故障時,保證生產(chǎn)正常進(jìn)行。