文丨柯建芳
近年來,隨著科學(xué)技術(shù)的發(fā)展,中波廣播發(fā)射機(jī)也從過去的電子管板調(diào)機(jī)發(fā)展為全新的全固態(tài)機(jī),為實現(xiàn)自動化控制奠定了基礎(chǔ)。中波廣播自動化控制系統(tǒng)常采用可編程序控制器(PLC)做為前端控制器,通過PLC的輸入、輸出模塊對發(fā)射機(jī)進(jìn)行現(xiàn)場接入控制。但對于那些提供通信端口的發(fā)射機(jī)或設(shè)備,其內(nèi)部已經(jīng)配置了微控制器和采樣控制回路,如果還是采用現(xiàn)場接入控制,不僅功能重復(fù),而且有的時候難于實現(xiàn),例如Thomcast的M2W型中波發(fā)射機(jī),電路板集成度高,對接入?yún)?shù)非常敏感。對于這種類型的設(shè)備,只能是通過其串行口,利用其通信協(xié)議來實現(xiàn)工作狀態(tài)的數(shù)據(jù)監(jiān)測和控制。如果使用把監(jiān)測控制軟件放在服務(wù)器上運行的方式,那么當(dāng)網(wǎng)絡(luò)有故障時設(shè)備將失控,因此安全性不夠,最好把監(jiān)測控制軟件放在其上位機(jī)的PLC中。過去只包含I/O模塊的PLC是無法實現(xiàn)串行通信功能的,而PLC通信協(xié)議宏的出現(xiàn)解決了這個問題。以下著重介紹使用協(xié)議宏來解決Thomcast的M2W型中波廣播發(fā)射機(jī)的自動化控制問題。
廈門廣電集團(tuán)發(fā)射中心202臺中波發(fā)射自動化控制系統(tǒng)主要由受控系統(tǒng)、前端監(jiān)控器、網(wǎng)絡(luò)和系統(tǒng)服務(wù)器等四部分組成。網(wǎng)絡(luò)結(jié)構(gòu)的拓?fù)浣Y(jié)構(gòu)如圖1。
圖1
總體采用現(xiàn)場分布式結(jié)構(gòu),每個受控系統(tǒng)都有自己獨立的前端監(jiān)控器,并在其監(jiān)控下工作。受控系統(tǒng)由主/備發(fā)射機(jī)、同軸開關(guān)、假負(fù)載、音頻矩陣及溫控器等組成。
前端控制器采用OMRON公司生產(chǎn)的CS1H-CPU63型可編程序控制器,它是實時監(jiān)控系統(tǒng)中最基本、最核心的單元,在整個系統(tǒng)中起著承上啟下的作用。它能夠脫離上位軟件和網(wǎng)絡(luò)連接而獨立完成對受控系統(tǒng)的監(jiān)測和控制,對受控系統(tǒng)各種異常狀態(tài)用不同的方式發(fā)出告警信號,并能夠存儲開關(guān)機(jī)時間表等日常管理流程數(shù)據(jù)。
自動化控制系統(tǒng)的主要功能分為:①基本控制功能(遠(yuǎn)程控制及自動開關(guān)機(jī)等);②開關(guān)量、模擬量的監(jiān)測;③開關(guān)機(jī)時間表的設(shè)定;④與用戶系統(tǒng)及服務(wù)系統(tǒng)的通信功能。其中前兩項功能通過PLC通信協(xié)議宏來實現(xiàn)。
M2W發(fā)射機(jī)的標(biāo)準(zhǔn)通信協(xié)議幀的格式分為:寫控制幀(控制量)和讀控制幀(狀態(tài)量)。如下表,我們把常用的一些常用的操作指令列出來。
序號 操作指令 備注(N1)1 高功率開機(jī) 置高功率開機(jī)位為1,再置開機(jī)位為12 中功率開機(jī) 置中功率開機(jī)位為1,再置開機(jī)位為13 低功率開機(jī) 置低功率開機(jī)位為1,再置開機(jī)位為14 開機(jī) 置開機(jī)位為1,將以默認(rèn)功率開機(jī)5 待機(jī)(準(zhǔn)備) 置待機(jī)位為16 關(guān)機(jī) 置關(guān)機(jī)位為17 升功率 置升功率位為18 降功率 置降功率位為19 告警復(fù)位 置告警復(fù)位位為110 滿功率開機(jī) 置滿功率位為1
特別說明:在M2W發(fā)射機(jī)內(nèi)部PLC是采用文件的格式存儲機(jī)器信息的,其中:N1——遙控連接的直接命令輸入;N2——本地連接的直接命令輸入(發(fā)射機(jī)觸摸屏);N3——發(fā)射機(jī)實際數(shù)據(jù)。N1文件在指令寫入時發(fā)射機(jī)將做出反應(yīng),從N3文件則可讀取機(jī)器的實際數(shù)據(jù)進(jìn)行監(jiān)測,通過對這兩個文件的修改和讀取來實現(xiàn)發(fā)射機(jī)的控制。
OMRON通信協(xié)議宏的簡介與應(yīng)用設(shè)計
序號 操作指令 讀取內(nèi)容 備注(N2)1當(dāng)前預(yù)設(shè)功率 ×0.1 如6400=100=10KW 2高功率預(yù)設(shè)值 ×0.1 如6400=100=10KW 3中功率預(yù)設(shè)值 ×0.1 如4600=70=7KW 4低功率預(yù)設(shè)值 ×0.1 如2800=40=4KW 5入射功率 ×0.1 如6400=100=10KW 6反射功率 ×0.01 如0A 00=100=0.1KW 7相位偏移 具體值 單位:度8射頻電壓 具體值 單位:伏特9射頻電流 具體值 單位:安培10空氣溫度 具體值 單位:℃11控制電壓 ×0.1 如3200=50=5V單位:伏特…… …20射頻級循環(huán)測試test stage rot ok=1,表關(guān)閉=2,表等待=3,表打開21信號處理測試test SP running=1,表關(guān)閉=2,表等待/打開22相位測試Phasing test=1,表關(guān)閉=2,表等待/打開
通信協(xié)議宏是PLC具有的一種通信控制功能,用于為符合具有串行通信端口的通用外部設(shè)備的通信規(guī)范的通信協(xié)議創(chuàng)建宏。支持與幾乎所有具有RS-232C或RS-422A/485端口外部通用設(shè)備的通信,通過編制通信協(xié)議指令實現(xiàn)對外部通信設(shè)備的相應(yīng)數(shù)據(jù)采集和控制。
CX-Protocol是創(chuàng)建協(xié)議宏應(yīng)用軟件。協(xié)議宏由通信指令系列組成,支持硬件是PMSU(串行通信單元)。CXProtocol將協(xié)議宏傳送至PMSU、通過CPU單元上的PMCR指令來指定協(xié)議宏的序號并執(zhí)行通信序列。一個通信指令序列由若干步組成,每個步由發(fā)送、接收或者發(fā)送與接收指令組成;可允許用戶根據(jù)處理結(jié)果來重復(fù)、結(jié)束這些步或者對這些步生成分支。
根據(jù)上面的表格,我們先將這些常用操作指令轉(zhuǎn)換成發(fā)射機(jī)通信協(xié)議的指令幀(即協(xié)議宏的通信報文),通信報文分為發(fā)送報文和接收報文,包含有:報頭、地址、長度、數(shù)據(jù)、錯誤檢驗碼和終止符,但每個字段不是必需的,在發(fā)送報文中,可以僅有數(shù)據(jù)字段(實際上數(shù)據(jù)字段就已經(jīng)包含有報頭、地址、錯誤檢驗碼和終止符);在接收報文中,存在終止符時,報頭、地址、長度、錯誤檢驗碼也可以不存在,如果數(shù)據(jù)長度固定,則終止符也可以不存在。
根據(jù)M2W發(fā)射機(jī)的協(xié)議說明,無論在寫或讀操作,發(fā)送完成后發(fā)射機(jī)均會返回一個響應(yīng)幀,如果出錯則要求重發(fā),正確則發(fā)送“1006”確認(rèn)該操作。
發(fā)送命令:
++
返回:響應(yīng)++,可這數(shù)據(jù)字體,為寫入N1中相應(yīng)操作位的數(shù)據(jù)
以發(fā)送“開機(jī)”操作指令為例:100201090F008803AA020F89020001001003208d將N1中的“開機(jī)位”置“1”,返回:1006100209014F00880310030dc4,則再發(fā)送“1006”確定執(zhí)行開機(jī)操作。如果返回“1005”或“1015”則重發(fā)操作指令。
發(fā)送命令:
+給出功能碼和讀取的范圍和文件類型,其它字段與寫控制的相同。返回時,字段為讀取的機(jī)器狀態(tài)數(shù)據(jù),可用W()指令寫入DM數(shù)據(jù)存儲區(qū)。
由于讀取范圍要求不超過240字節(jié),機(jī)器的狀態(tài)數(shù)據(jù)需要分三次才能全部讀出,如發(fā)送:100201090F000101A2EE118900001003e00f則返回1006100209014F0001++0010032864,這樣我們可以讀取到0~240字節(jié)的數(shù)據(jù),其它數(shù)據(jù)讀取修改范圍即可。
協(xié)議宏的一個序列由最多16個步組成,一個步包含一條命令操作,該命令分為:“發(fā)送”、“接收”、“發(fā)送與接收”、“打開”、“關(guān)閉”、“刷出”或“等待”,通過步中的“下一個過程/出錯過程”來指定執(zhí)行下一步。協(xié)議宏就是通過“步”發(fā)送和接收處理通信報文,完成指令操作的執(zhí)行,所以創(chuàng)建協(xié)議宏可分兩步完成。(1)首先,將“開機(jī)”操作指令按寫控制幀格式轉(zhuǎn)換成協(xié)議宏的發(fā)送報文(SendMessage),SendMessage為:++
圖2
圖3
(1)創(chuàng)建各報文:打開CXProtocol軟件,從“File”(文件)菜單中選擇“NEW”(新增)創(chuàng)建一個項目,創(chuàng)建項目后從PLC菜單中選擇“EditPC-PLCCommsSettings”(編輯PC-PLC通信設(shè)定);在項目文件下創(chuàng)建協(xié)議列表(NewProtocollist),右鍵點擊“Create/Protocol”(創(chuàng)建/協(xié)議),指定下列項:協(xié)議名稱、序列起始號、序列結(jié)束號和目標(biāo);右鍵點擊“Create/Sequence”編制協(xié)議序列,指定下列項:鏈接字、傳送控制參數(shù)、響應(yīng)類型和監(jiān)測時間(Tr、Tfr、Tfs),一個協(xié)議序列對應(yīng)一條M2W發(fā)射機(jī)操作命令;在通信序列中右鍵點擊“Create/Step”(創(chuàng)建/步),指定下列項:重復(fù)計數(shù)器、命令、重試計數(shù)、發(fā)送等待時間、發(fā)送報文、接收報文、有/無響應(yīng)寫入、下一個過程和出錯過程,每一步就是一條協(xié)議指令。右鍵點擊步列表中的“SendMessage”(發(fā)送報文)或“ReceiveMessage”(接收報文)字段,然后從彈出菜單中選擇“NewMessage”(新報文),將全部使用到的協(xié)議指令輸入為通信報文,必要時做好注釋,便于讀懂程序。(2)創(chuàng)建矩陣:如果要根據(jù)不同的響應(yīng)報文決定下一步執(zhí)行的步(Step),就需要創(chuàng)建矩陣來完成。右鍵點擊“Create/Matrix”(創(chuàng)建/矩陣)和“Create/MartrixCase”(創(chuàng)建/矩陣實例),預(yù)先設(shè)定可能返回的響應(yīng)報文數(shù)據(jù),改變各響應(yīng)報文的下一個控制步,一個矩陣中允許最多設(shè)定15種報文。如圖4,寫控制指令時,可將“接收B“設(shè)為”1006,下一步為發(fā)送“1006”確認(rèn);“接收C”為“1005”和“接收C”為“1015”,下一步為重新發(fā)寫指令。(3)傳送項目:選中項目名稱,點擊菜單Protocol-DownloadProtocol,將以上創(chuàng)建的項目傳送至PMSU(從個人計算機(jī)到PMSU)。
圖4
圖5
梯形圖程序主要有按時間表自動試機(jī)、開關(guān)機(jī)程序和故障處理等程序。梯形圖程序段較長,這里主要介紹在梯形圖中如何調(diào)用協(xié)議宏指令。在梯形圖中通過使用PMCR命令來調(diào)用協(xié)議宏指令,首先為PMCR指令分配一條功能代碼,然后執(zhí)行PMCR指令。
如圖5所示:控制字1為#02E1,其中0為通信端口(內(nèi)部邏輯端口號0);2為端口2;E1為內(nèi)插板(串行通信板);控制字2為#2,表示執(zhí)行02號通信序列。第一個發(fā)送字為100,發(fā)送數(shù)據(jù)首字(DM100)
第一個接收字為200,接收數(shù)據(jù)存儲首字(DM200)。當(dāng)“T機(jī)開機(jī)”位1213.14置ON并將協(xié)議宏執(zhí)行標(biāo)志(1919.15:端口2)置OFF時,將調(diào)用PMSU上注冊的02號通信序列,從而在通信端口允許標(biāo)志(A202.00:使用0號通信端口的內(nèi)部邏輯端口)為ON的情況下經(jīng)由PMSU的端口2發(fā)送和接收數(shù)據(jù)。
4.1.1 電腦CX-Protocol軟件與PLC的編程連接
首先,必須先用編程電纜將電腦CX-Protocol軟件連接到PLC的CPU外設(shè)口或內(nèi)置RS-232C口上,然后,設(shè)置PLC“設(shè)備類型”、和“網(wǎng)絡(luò)類型”。
4.1.2 PLC通信板(CS1W-SCB41-V1)與受控通信設(shè)備的通信連接
(1)將串行通信板(CS1WSCB41-V1)插入CS1的CPU模塊中,設(shè)置終端電阻ON/OFF開關(guān)為“ON”及線制開關(guān)2線/4線撥到“4”的位置。將通信板(CS1W-SCB41-V1)上的端口2(RS-422A/485)與M2W發(fā)射機(jī)的RS-485端口連接。(2)制作通信板與發(fā)射機(jī)的數(shù)據(jù)連接線,并連接好兩端通信口。(3)根據(jù)M2W的通信協(xié)議參數(shù)設(shè)定為:協(xié)議:全雙工;和檢驗:CRC;COM口:RS422;波特率:19200;每字位數(shù):8;奇偶Parity:偶數(shù);停止位Stopbits:1。
CX-Protocol提供了數(shù)據(jù)跟蹤和監(jiān)測功能,當(dāng)執(zhí)行數(shù)據(jù)跟蹤操作時,從該點開始,串行通信板對發(fā)送/接收報文中按時間順序排列的數(shù)據(jù)執(zhí)行跟蹤記錄,通過跟蹤發(fā)送或接收數(shù)據(jù)和信號,可根據(jù)步來檢查發(fā)送或接收和各條報文的內(nèi)容并將其與預(yù)設(shè)的序列進(jìn)行對比,查找程序的出錯原因。筆者在調(diào)試中體會到在使用通信協(xié)議宏時,必須注意下面幾個問題,否則可能會造成通信失敗。(1)執(zhí)行PMCR指令時,最好使用上升沿微分觸發(fā)PMCR指令,否則可能引起各條指令間的沖突。(2)根據(jù)實際測試發(fā)射機(jī)的接收和反饋時間,設(shè)置發(fā)送完成監(jiān)測時間Tfs為0.2S、接收等待監(jiān)測時間Tr為0.2S和接收完成監(jiān)測時間Tfr為0.4S,既能保證指令的完整發(fā)送,又節(jié)省等待時間,并可以防止協(xié)議宏進(jìn)入死鎖狀態(tài)。(可參考操作手冊中監(jiān)測時間的計算方法)。
PLC設(shè)置有特殊輔助區(qū),存儲PLC運行狀態(tài),協(xié)議宏在發(fā)生以下任一錯誤時,根據(jù)設(shè)定的重試計數(shù)自動重復(fù)執(zhí)行同一個步(最多3次):①監(jiān)測時間(Tfs、Tr、Tfr)已過。②發(fā)生了接收通信錯誤。③接收報文不正確。④校驗碼存在錯誤。
類型 名稱 分配區(qū) 內(nèi)容協(xié)議宏 協(xié)議宏執(zhí)行標(biāo)志(各端口) 端口1:CIO1909位:15端口2:CIO1919位:151:協(xié)議宏(序列)執(zhí)行0:協(xié)議宏(序列)異常執(zhí)行通信端口 通信端口允許標(biāo)志 A202,位:0 0:允許1:不允許傳送錯誤生成狀態(tài) 正常 端口1:CIO1908位15端口2:CIO1918位151:通信錯誤0:正常中止強(qiáng)制中止開關(guān)(各端口) 端口1:CIO1900位03端口2:CIO1900位11 對于強(qiáng)制中止,設(shè)定為從0到1強(qiáng)制中止產(chǎn)生標(biāo)志 端口1:CIO1909位13端口2:CIO1919位131:強(qiáng)制中止已執(zhí)行0所有其它時間
發(fā)生異常時,可通過這些狀態(tài)了解異常情況,并可應(yīng)用這些狀態(tài)位進(jìn)行程序保護(hù)。以CS1為例常用的有:
通信協(xié)議宏不單可以實現(xiàn)對中波發(fā)射機(jī)房M2W發(fā)射機(jī)的自動化控制,而且還可以應(yīng)用在各種具有串行通信端口的設(shè)備上;如果采用RS-422A/485串行通信端口,還可以實現(xiàn)1:N控制(最多32部)外部通信設(shè)備。此應(yīng)用系統(tǒng)在我臺投入運行以來,能安全、穩(wěn)定、可靠地工作,整個控制系統(tǒng)靈活、方便、一體化控制,大大提高了廣播播出系統(tǒng)自動化、網(wǎng)絡(luò)化的管理水平,具有很好的實用性和行業(yè)中的推廣價值。
[1] OMRON.SYSMACCXProtocol1.9版CXONE-AL@@C-V4/AL@@D-V4操作手冊,2010(2).
[2] OMRONCORPOTAION.SYS MACCSSeriesProgrammableControllers ProgrammingManmal,2003.
[3] Thomcast.M2W中波發(fā)射機(jī)技術(shù)手冊,1998(4).
[4] 張丕灶.數(shù)字式調(diào)幅中波發(fā)射機(jī).廈門大學(xué)出版社,2002(5).