促進(jìn)管控融合是工業(yè)互聯(lián)網(wǎng)平臺(tái)的重要作用之一,平臺(tái)上的APP往往用于實(shí)時(shí)管控。開發(fā)這類實(shí)時(shí)管控APP時(shí),不僅要重視工業(yè)知識(shí)和算法,還要重視軟件開發(fā)過(guò)程。事實(shí)上,這類實(shí)時(shí)管控APP開發(fā)的難點(diǎn)往往體現(xiàn)在對(duì)實(shí)時(shí)、安全、穩(wěn)定、可靠性要求上,對(duì)軟件開發(fā)的要求很高。
實(shí)時(shí)管控APP往往幫助人們處理實(shí)時(shí)發(fā)生的事件,從而體現(xiàn)出智能的特征。這樣的軟件,平時(shí)往往處于休眠狀態(tài)。相關(guān)事件發(fā)生后,計(jì)算機(jī)會(huì)啟動(dòng)這個(gè)實(shí)時(shí)管控APP、響應(yīng)特定的事件。在日本企業(yè)里,這些事件被稱作做啟動(dòng)要因。當(dāng)然,時(shí)間本身可能就是一個(gè)啟動(dòng)要因,這樣就可以定時(shí)啟動(dòng)APP的運(yùn)行。定時(shí)啟動(dòng)的時(shí)間周期可以短至秒級(jí)、毫秒級(jí),體現(xiàn)了APP的實(shí)時(shí)性。如下圖所示。
啟動(dòng)要因發(fā)生,往往意味著生產(chǎn)狀態(tài)發(fā)生了改變。如生產(chǎn)事件發(fā)生、工藝參數(shù)異常、產(chǎn)品種類變化等。這些事件往往是需要進(jìn)行管理的。管理的方法就是改變控制邏輯或參數(shù),比如調(diào)整工藝參數(shù)目標(biāo)值。啟動(dòng)要因觸發(fā)實(shí)時(shí)管控APP后,往往要重新讀取一些與事件相關(guān)的工藝參數(shù)、計(jì)算參數(shù)。例如,產(chǎn)品發(fā)生變化時(shí),要讀取與這個(gè)產(chǎn)品相關(guān)的控制標(biāo)準(zhǔn)。而這些數(shù)據(jù)往往來(lái)自管理系統(tǒng)和模型參數(shù)庫(kù)。另外,在實(shí)時(shí)管控APP的運(yùn)行過(guò)程中,往往完成實(shí)時(shí)控制功能,需要采集實(shí)時(shí)數(shù)據(jù)。這些實(shí)時(shí)數(shù)據(jù)往往來(lái)自設(shè)備或自動(dòng)化系統(tǒng)。由此可見,實(shí)時(shí)管控APP的運(yùn)行往往要以數(shù)據(jù)集成為前提。運(yùn)行APP的平臺(tái),既需要讀取設(shè)備實(shí)時(shí)數(shù)據(jù),又需要讀取管理系統(tǒng)的數(shù)據(jù)。
開發(fā)實(shí)時(shí)控管APP可能會(huì)遇到兩種典型的麻煩。
首先是有實(shí)時(shí)性要求的底線。實(shí)時(shí)管控APP往往需要實(shí)時(shí)地給出計(jì)算結(jié)果,計(jì)算量大時(shí)就會(huì)影響管控的實(shí)時(shí)性。開發(fā)相關(guān)算法時(shí),既要降低計(jì)算量又要提高精度。為此,對(duì)軟件開發(fā)者的數(shù)學(xué)和算法素養(yǎng)要求較高。但幸運(yùn)的是:隨著計(jì)算機(jī)性能的提升,這個(gè)麻煩逐漸消失了。其次是數(shù)據(jù)質(zhì)量經(jīng)常出現(xiàn)問(wèn)題。典型問(wèn)題包括誤差大、通信不暢、時(shí)序混亂、人為干預(yù)等。在可以預(yù)見的未來(lái),這些問(wèn)題是難以徹底消除的,是APP開發(fā)的常見困難。
用于實(shí)時(shí)管控的工業(yè)APP大體有兩類應(yīng)用方式:一種是自動(dòng)控制的、一種是操作指導(dǎo)的。前者是APP直接輸出控制指令。后者輸出供操作工參考的數(shù)據(jù),最終的控制指令是人下達(dá)的。
自動(dòng)控制APP需要自動(dòng)識(shí)別、處置數(shù)據(jù)質(zhì)量問(wèn)題。無(wú)論現(xiàn)場(chǎng)出現(xiàn)任何問(wèn)題、輸入信息出現(xiàn)何種錯(cuò)誤,都不允許出現(xiàn)嚴(yán)重的計(jì)算錯(cuò)誤。這樣,軟件開發(fā)時(shí)的防錯(cuò)機(jī)制往往非常復(fù)雜。開發(fā)自動(dòng)控制APP時(shí),調(diào)試的困難大、現(xiàn)場(chǎng)測(cè)試的風(fēng)險(xiǎn)也大,對(duì)開發(fā)者的軟件開發(fā)水平要求高。開發(fā)者往往需要反復(fù)地思考:系統(tǒng)運(yùn)行時(shí),可能出現(xiàn)哪些意外、錯(cuò)誤、異常、歧義?如何識(shí)別這些問(wèn)題、識(shí)別方法本身有沒有問(wèn)題?如何處置這些問(wèn)題、處置方法有沒有問(wèn)題?
考慮上述問(wèn)題時(shí),必須要考慮到處理方法對(duì)最終結(jié)果的影響。一般來(lái)說(shuō),開發(fā)者首先要滿足安全、穩(wěn)定、可靠性要求,在這個(gè)基礎(chǔ)上才會(huì)考慮優(yōu)化APP的性能。相比之下,操作指導(dǎo)模型的開發(fā)要簡(jiǎn)單許多,因?yàn)椴僮鞴樽罱K的結(jié)果負(fù)責(zé),軟件系統(tǒng)承擔(dān)的風(fēng)險(xiǎn)往往要小。
作者:郭朝暉