1.初始化設(shè)備參數(shù)
在程序的起始部分需要初始化設(shè)備參數(shù),如本設(shè)備是屬于第幾號(hào)設(shè)備,位于幾號(hào)站點(diǎn),本設(shè)備的定位方式、定位精度要求等,這樣可以對(duì)所有設(shè)備用同一套程序配置不同的參數(shù)。程序模塊標(biāo)準(zhǔn)化有利于堆垛機(jī)的快速調(diào)試,也適用于其他類程序的編寫。
2.讀取輸入和通訊數(shù)據(jù)
讀取輸入和通訊數(shù)據(jù)即處理外部的輸入信號(hào)、PI設(shè)備信號(hào)、操作面板數(shù)據(jù)和接收通訊數(shù)據(jù)。在此要對(duì)易干擾的輸入信號(hào)進(jìn)行抗干擾處理。對(duì)于需處理的PI設(shè)備數(shù)據(jù)、操作面板數(shù)據(jù)和相關(guān)通訊站點(diǎn)數(shù)據(jù),需要從與設(shè)備通訊的數(shù)據(jù)字節(jié)中提取需要的信息,并規(guī)范為程序內(nèi)部數(shù)據(jù)的格式。
3.選擇操作模塊
數(shù)據(jù)處理完畢后,根據(jù)外部的操作意圖來(lái)選擇相應(yīng)的操作模塊?;灸K包括手動(dòng)/維護(hù)、半自動(dòng)、單機(jī)自動(dòng)、聯(lián)機(jī)自動(dòng)模塊。在相關(guān)模塊中,根據(jù)客戶的不同要求,相應(yīng)的操作模塊所實(shí)現(xiàn)的功能也不盡相同。
各模塊中首先要處理的是初始化中間變量。中間變量是各個(gè)操作模塊都需要進(jìn)行寫操作的變量,在相應(yīng)的操作模塊第一次被調(diào)用時(shí),把這些中間變量初始化,可以有效防止在相應(yīng)操作模塊正在執(zhí)行時(shí)外部切換操作模塊造成的設(shè)備意外動(dòng)作。各個(gè)模塊需要根據(jù)已經(jīng)規(guī)范好的外部信息來(lái)決定設(shè)備要執(zhí)行的動(dòng)作,并把設(shè)備要執(zhí)行的動(dòng)作信息寫到相應(yīng)的設(shè)備執(zhí)行意圖數(shù)據(jù)區(qū)域。
4.根據(jù)操作模塊的意圖調(diào)用相關(guān)模塊
在執(zhí)行完相關(guān)操作模塊之后,需要把設(shè)備執(zhí)行意圖數(shù)據(jù)區(qū)域里面的數(shù)據(jù)轉(zhuǎn)換為對(duì)外部設(shè)備規(guī)范的數(shù)據(jù)格式,并根據(jù)相應(yīng)的通訊要求判斷設(shè)備的狀態(tài),把設(shè)備的狀態(tài)、將要進(jìn)行的動(dòng)作意圖等信息傳送給外部通訊設(shè)備(操作觸摸屏、上位管理機(jī)等)。
5.根據(jù)安全要求規(guī)范輸出
接下來(lái)要根據(jù)外部的設(shè)備狀態(tài)和設(shè)備本身對(duì)安全的要求級(jí)別對(duì)輸出數(shù)據(jù)進(jìn)行處理。為設(shè)備的安全要求而編寫的程序都在這里,這種設(shè)計(jì)架構(gòu)可以確保在所有操作方式下都能執(zhí)行完全相同的安全處理程序。
6.寫輸出和通訊數(shù)據(jù)
最后把需要輸出的數(shù)據(jù)直接輸出,并把需要傳送給外部設(shè)備的代碼直接傳送出去。
一個(gè)好的程序架構(gòu)能夠保證在設(shè)備調(diào)試過(guò)程中快速找出問(wèn)題所在,從而加快設(shè)備調(diào)試時(shí)間,節(jié)省工期。