摘 要:根據(jù)AB DF1通訊協(xié)議的特點,在進行點(主站)對多點(從站)通訊時,主站只能通過程序顯式調(diào)用,以輪循掃描的方式,對各個分站進行依次逐個通訊。但隨著通訊分站數(shù)量增加,只能不斷增加MSG指令的數(shù)量,使得程序反應時間和掃描周期同步線性增長,而在這一過程中,由于異步執(zhí)行問題,還存在MSG指令占用隊列,相互影響的情況。針對這一問題,本文通過改變MSG控制字,實現(xiàn)程序復用;并通過隊列(FIFO)的應用,實現(xiàn)系統(tǒng)對通訊操作的自動調(diào)度,實現(xiàn)了縮短系統(tǒng)響應時間的目的。
關(guān)鍵詞:MSG控制字;FIFO;程序調(diào)度
中圖分類號:TP273
在應用單主從網(wǎng)絡(luò)通訊的控制系統(tǒng)中,隨著節(jié)點數(shù)量的增多、導致網(wǎng)絡(luò)通訊負荷同步上升,出現(xiàn)了系統(tǒng)數(shù)據(jù)更新周期延長,無法滿足控制系統(tǒng)的數(shù)據(jù)采集實時性、操作安全性要求的情況。
針對這一問題,本文通過對工程實例中通訊程序的優(yōu)化,實現(xiàn)了對控制系統(tǒng)通訊性能、功能的改進;并且通過對通訊指令的技術(shù)處理,簡化了程序編寫。
1 SLC500通訊指令簡介
MSG指令用于在AB PLC通訊網(wǎng)絡(luò)上的節(jié)點之間傳送數(shù)據(jù)。當該指令備使能時,信息傳遞被掛起。在掃描周期末尾時異步執(zhí)行數(shù)據(jù)傳送。
RSLogix 500的通訊體系結(jié)構(gòu)。RSLogix 500的通訊體系結(jié)構(gòu)由梯形圖掃描(Lader Scan)、通訊緩沖區(qū)(Communications Buffers)、通訊隊列(Communication Queue)三個基本的部分組成,它們決定了處理器傳送消息的動作特征。
RSLogix 500內(nèi)共4個通訊緩沖區(qū)。當在一個通訊指令結(jié)束前,它的信息和數(shù)據(jù)被傳送到其余未用的一個通訊緩沖區(qū)內(nèi)。當四個緩沖區(qū)全滿,第五個通訊指令又要被處理時,通訊信息放在通訊隊列中(注意,不是要傳送的數(shù)據(jù))。通訊隊列是另一個信息存儲空間,存儲了那些還沒有被分配緩沖區(qū)的通訊指令。通訊隊列的操作順序是先進先出(FIFO),它可容納梯形圖中所有的通訊指令。緩沖區(qū)和隊列機制都是完全自動執(zhí)行的。通訊緩沖區(qū)被自動分配和釋放,當緩沖區(qū)滿時,后到請求則自動進入隊列。
因為通訊隊列中不是存儲要傳送的數(shù)據(jù),所以如果一條通訊指令在隊列中移出,處理器實際發(fā)送的數(shù)據(jù)和通訊指令第一次被掃描時可能不同。
2 目標控制系統(tǒng)結(jié)構(gòu)
這里以點對多點的通訊方式構(gòu)建控制系統(tǒng)。中央控制室裝有主CUP(主站),就地設(shè)備分別配置獨立的CPU(從站)。控制系統(tǒng)需完成集中監(jiān)視并控制就地從站的功能。
2.1 網(wǎng)絡(luò)結(jié)構(gòu)圖
圖1
2.2 控制方式。從站CPU采集的數(shù)據(jù)通過MSG指令,傳輸?shù)街髡綜PU,并接收主站CPU操作指令,啟停就地設(shè)備。
2.3 程序分析。如果對每個站都使用前述所示的通訊設(shè)置,每個站按配置最少一個讀MSG和一個寫MSG通訊計算。那么在主站程序中,要出現(xiàn)200個MSG指令。
根據(jù)以上分析,通過聯(lián)機實驗發(fā)現(xiàn):上表中六組控制字,除了Size inElements不能通過賦值語句寫入外,其他控制字均可在程序運行時更改。
根據(jù)分析結(jié)果,在分站程序規(guī)劃時,設(shè)定每個站的情況相同,即上述通訊參數(shù)不變,至此,需要改變的數(shù)據(jù)只剩下分站節(jié)點號Local Node Address。
對于寫MSG參數(shù)設(shè)置,除Data Table Address數(shù)據(jù)填寫與工藝要求相關(guān)外,與上述完全相同。
2.4 程序改進工作。經(jīng)過上面的分析,有可能實現(xiàn)這樣的目標,即:減少MSG指令的重復。使控制系統(tǒng)需要完成的全部通訊功能,通過重復使用的MSG指令,即只用一個讀指令和一個寫指令來完成。同時,通過自動寫入MSG目標地址實現(xiàn)動態(tài)通訊調(diào)度,并實現(xiàn)完善的通訊隊列溢出、故障處理。
為達到這一目的,進行了如下工作。
(1)通訊調(diào)度實現(xiàn)。通過建立操作事件隊列(FIFO),實現(xiàn)對分站通訊動態(tài)調(diào)度,優(yōu)先滿足操作人員監(jiān)視、操作設(shè)備的通訊。如:在操作分站時,優(yōu)先執(zhí)行該站通訊,避免了輪詢通訊時間延時的影響。(2)數(shù)據(jù)的存儲規(guī)劃。通過復用MSG指令,完成對所有站通訊功能。因此需要對各個分站的工藝數(shù)據(jù)存儲進行分配,以使MSG和數(shù)據(jù)傳送程序?qū)崿F(xiàn)復用。(3)通訊故障處理。當從站通訊異常時,為了不影響系統(tǒng)掃描周期,下次掃描時就不再對該站通訊。這要求對從站錯誤信息進行有效的記錄。當需要對這些站進行通訊重試時,通過人工的手動復位來完成。
3 程序編寫
3.1 存儲空間的分配:(1)MSG控制塊地址。根據(jù)前述要求,對MSG控制塊所用數(shù)據(jù)地址進行了統(tǒng)一規(guī)定,以確保不同的通訊動作共用同一組存儲地址,調(diào)用同一MSG控制塊,完成不同的通訊功能。(2)數(shù)據(jù)存儲地址。根據(jù)MSG控制塊地址分配情況,設(shè)計了所有從站的讀、寫數(shù)據(jù)存儲格式和地址分配方案,以實現(xiàn)數(shù)據(jù)傳入、傳出部分程序的復用。(3)通訊故障記錄地址分配。給每個分站分配了1位地址,用來記錄該站的通訊狀態(tài)是否正常。
3.2 程序流程圖:(1)判斷操作。程序判斷HMI操作站是否有操作。如有,HMI操作站會將操作站號寫在指定的存儲空間。并將指針下移一位。PLC通過檢查指針移動,來判斷HMI操作站是否有操作。(2)取操作數(shù)。當PLC判斷為有HMI操作時,取出操作站號,并將指針復位。此段程序?qū)崿F(xiàn)PLC對HMI操作站的快速反應。消除了輪詢通訊的影響。(3)順序取數(shù)。當PLC判斷HMI操作站沒有操作時,則會取順序數(shù)發(fā)生器的數(shù)據(jù),此數(shù)據(jù)是循環(huán)變化的,在沒有HMI操作站操作時,實現(xiàn)對每個站的輪詢通訊。(4)故障判斷。完成上述(2)(3)任一步,即得到通訊站號,將該數(shù)值裝入指針進行查表,即可得到從站健康狀態(tài)。如果正常則繼續(xù)向下,否則走回第一步,忽略故障從站。
圖2 程序流程
(5)MSG站號賦值。此段程序?qū)⑼ㄓ嵞繕说恼咎?、相關(guān)數(shù)據(jù),通過傳送程序,寫入MSG指令的預設(shè)控制字中,實現(xiàn)MSG指令復用。
(6)MSG寫操作判斷。當HMI操作站沒有操作時,無需執(zhí)行寫通訊命令。因此,執(zhí)行完此程序后,要么執(zhí)行寫MSG指令,否則直接跳轉(zhuǎn)至讀MSG指令,使得通訊周期幾乎減半。這也是減少掃描周期的關(guān)鍵所在。
(7)執(zhí)行寫MSG。此段程序只有在HMI操作站操作后執(zhí)行。此段主要完成對HMI操作站操作的立即響應。
(8)執(zhí)行讀MSG。不管從上述兩段程序哪一個跳轉(zhuǎn)過來的,此段是必需執(zhí)行的通訊。完成對從站的狀態(tài)監(jiān)控。
(9)讀數(shù)據(jù)處理。此段主要將從各分站讀取的數(shù)據(jù),根據(jù)從站地址,散轉(zhuǎn)到預先分配的存儲區(qū)域,供其他程序使用。完成此段,程序進入下一循環(huán)。
(10)錯誤記錄。此段主要對不能正常通訊的從站號進行記錄,并進行相應的處理。在下次通訊時直接略過。以去除故障站點的掃描周期,減少故障站點對其他正常站點的影響。
3.3 程序的編寫。有了上述的流程圖,只要對RSLogix 500編程軟件稍有熟悉,即可編寫出此程序,這里不再講訴。
4 結(jié)束語
本文通過對程序流程的合理處理,解決了單主從通訊網(wǎng)絡(luò)的實時性的問題。并且指令運用和存儲規(guī)劃,簡化了通訊程序,增加了通訊超時處理、通訊診斷、故障站點回避等功能。可為控制系統(tǒng)的通訊程序編寫提供參考。
參考文獻:
[1]SLC 500 Instruction Set Reference Manual.
[2]SLC 500 Family of Programmable Controllers.
[3]DF1 Protocol and Command Set.
[4]嚴蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)[M].北京:清華大學出版社,2009.
作者簡介:王福朝(1964.05-),男,本科,高級工程師,主要從事設(shè)備自動化研究,參與過南京汽車西班牙設(shè)備搬遷調(diào)試項目、南汽名爵英國設(shè)備搬遷調(diào)試項目等眾多設(shè)備的調(diào)試、改造升級項目技術(shù)負責人。
作者單位:中國三安建設(shè)有限公司,西安 710043