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