徐春鵬,王 海(通訊作者),邸寒旭
(沈陽(yáng)理工大學(xué) 遼寧 沈陽(yáng) 110159)
S7-1200在以太網(wǎng)及PROFINET方面和編程的靈活性等方面的優(yōu)點(diǎn),正在取代S7-200。學(xué)校的教材及實(shí)驗(yàn)內(nèi)容及時(shí)調(diào)整,引進(jìn)了S7-1200。在用S7-1200的程序替代原S7-200中的程序,看似簡(jiǎn)單的移植工作,出現(xiàn)問(wèn)題,程序出現(xiàn)了異常,這無(wú)法解釋。程序涉及的指令并不多,主要是定時(shí)器,問(wèn)題應(yīng)該出現(xiàn)在對(duì)定時(shí)器特性的認(rèn)識(shí)。為使問(wèn)題簡(jiǎn)化,將程序提煉如圖1所示,自復(fù)位定時(shí)器產(chǎn)生脈沖程序[1]。
圖1 S7-200中的原程序
M10.0為啟動(dòng)信號(hào),閉合后定時(shí)器開(kāi)始計(jì)時(shí),當(dāng)計(jì)時(shí)到設(shè)定值5s后執(zhí)行記數(shù)器加1,在下一個(gè)掃描周期T37線圈斷電,重新計(jì)時(shí)。即5s發(fā)1個(gè)脈沖給計(jì)數(shù)器。移植后的程序如圖2所示,定時(shí)器時(shí)間到后,觀察較長(zhǎng)時(shí)間并不計(jì)數(shù)。
S7 PLC的定時(shí)器在什么時(shí)刻更新是問(wèn)題所在。首先,明確S7-200的更新過(guò)程,S7-200中10 ms分辨率的定時(shí)器按以下規(guī)律刷新:定時(shí)器位和當(dāng)前值在每個(gè)程序掃描周期的開(kāi)始刷新。定時(shí)器位和當(dāng)前值在整個(gè)掃描周期過(guò)程中為常數(shù)。在每個(gè)掃描周期的開(kāi)始會(huì)將一個(gè)掃描累計(jì)的時(shí)間間隔加到定時(shí)器的當(dāng)前值上[2]。
根據(jù)實(shí)際情況分析,對(duì)定時(shí)器的更新沒(méi)有發(fā)生在由程序1到程序2的中間階段。不妨將兩句程序互換位置,如圖2所示,長(zhǎng)時(shí)間反復(fù)觀察,計(jì)數(shù)器計(jì)數(shù)正常無(wú)誤。為說(shuō)明清楚問(wèn)題,如圖3所示,將PLC的掃描過(guò)程分為如下四個(gè)階段:A是在程序段1之前和程序段2之后的時(shí)間片,這里包括了可能的I/O刷新和通訊處理等;B階段為處理程序段1的時(shí)間;C為程序段1和程序段2之間的時(shí)間片,由于之間沒(méi)有內(nèi)容,這里暫時(shí)無(wú);D處理程序段2的時(shí)間。一個(gè)掃描周期由A、B、C、D四段組成。
此例說(shuō)明定時(shí)器的狀態(tài)是在AUB階段,而不是CUD階段(當(dāng)前程序行處理時(shí))更新的。否則先復(fù)位定時(shí)器,不能計(jì)數(shù)。
為觀測(cè)清楚更新是否相對(duì)于掃描階段是隨機(jī)的,加大兩句程序的執(zhí)行間隔,即在C階段插入盡量大的運(yùn)算時(shí)間[3],定義為FC,如果定時(shí)器是隨機(jī)更新,一定會(huì)有正在執(zhí)行兩句程序之間(C階段)觸發(fā)定時(shí)器的時(shí)候,即計(jì)數(shù)值會(huì)缺少。
圖2 S7-1200中的實(shí)驗(yàn)程序
圖3 程序執(zhí)行的階段
將上述的FC塊,插入在兩句程序之間,目的是增加圖中C階段的時(shí)間片比例。經(jīng)過(guò)長(zhǎng)時(shí)間觀察,發(fā)現(xiàn)計(jì)數(shù)器的值有明顯的丟失,說(shuō)明有在C階段更新的可能。
問(wèn)題很清楚,定時(shí)器是獨(dú)立于用戶程序,獨(dú)自更新的。T.Q被隨時(shí)改寫(xiě)。重復(fù)出現(xiàn)T.Q則引起程序的不確定性。為了安全必須使用統(tǒng)一規(guī)范,提出處理方法T.Q接到輸出上,如圖4所示。獨(dú)立于用戶程序的異步功能,以線圈的輸出為標(biāo)志,將其關(guān)聯(lián)到掃描周期,再使用其觸點(diǎn)觸發(fā)計(jì)數(shù)器。
圖4 改進(jìn)的處理
S7-1200定時(shí)器的使用存在陷阱,當(dāng)兩次訪問(wèn)觸點(diǎn)時(shí),會(huì)出現(xiàn)不確定性,必須接輸出,才可達(dá)到與S7-200相同的效果和可靠執(zhí)行。在此例中,PLCSIM與連接實(shí)際PLC的結(jié)果不符合,由其忽略了自診斷通信等時(shí)間(階段A)造成的,提醒讀者注意。相信該工作為工程技術(shù)人員在實(shí)際工作中遇到的奇怪異常情況提供解釋,避免錯(cuò)誤的發(fā)生。