周臻陽
摘要:單片機(jī)的PLC編譯程序設(shè)計有助于提高微控制單元的功能性與可靠性,所以,本文以PLC與單片機(jī)的基本使用方法為基礎(chǔ),對單片機(jī)的PLC編譯程序設(shè)計過程展開討論。首先,分析單片機(jī)PLC技術(shù)的編譯程序原理,其次,分析編譯程序代碼與源代碼之間的關(guān)系,明確PLC編譯程序語句的設(shè)計標(biāo)準(zhǔn)。最后,對單片機(jī)的PLC編譯程序框架進(jìn)行設(shè)計,考慮到程序代碼修正問題,引入盲碼修正技術(shù),旨在實(shí)現(xiàn)單片機(jī)的PLC編譯程序抗干擾性、穩(wěn)定性、可靠性提升。
關(guān)鍵詞:單片機(jī);PLC編譯程序;設(shè)計
引言:程序復(fù)雜邏輯控制以及快速編譯設(shè)計,可提高單片機(jī)的綜合應(yīng)用水平。在硬件設(shè)計中,根據(jù)單片與光耦等抗干擾電路的運(yùn)行原理,在軟件中,利用PLC語句編程進(jìn)行程序設(shè)計,可實(shí)現(xiàn)單片PLC技術(shù)的應(yīng)用水平提升。通過單片機(jī)PLC技術(shù),對PLC編譯程序的輸入、子程序初始化設(shè)定、源程序語句與目標(biāo)代碼的對應(yīng)關(guān)系等進(jìn)行分析,可提高單片機(jī)PLC編譯程序的綜合設(shè)計水平??紤]到單片機(jī)PLC編譯程序設(shè)計中的目標(biāo)程序與源程序有直接關(guān)系,所以,對編譯程序初始化進(jìn)行設(shè)置,利用地址矢量,構(gòu)建源程序語句,完成集成系統(tǒng)設(shè)計,滿足信息控制的綜合需求[1]。
1 PLC與單片機(jī)
PLC是安裝在單芯片上的可編程邏輯控制器,在集成電路中有廣泛的應(yīng)用。單片應(yīng)用的PLC屬于典型的功能模塊,計算機(jī)程序設(shè)計中,利用編程語言(C語言),VB命令等被執(zhí)行,可以確認(rèn)被編入單芯片微計算機(jī)。單片設(shè)備具有特定的功能內(nèi)容,結(jié)合計算機(jī)系統(tǒng)的功能需求,可對功能模塊進(jìn)行調(diào)整,滿足系統(tǒng)的綜合應(yīng)用需求。PLC具有高可靠特性,其內(nèi)包含千個控制單元,整合性以及技術(shù)可靠性比較高[2]。PLC在實(shí)踐應(yīng)用中,可通過請求直接控制的相關(guān)程序,實(shí)現(xiàn)編譯程序分析與處理。輸入與輸出模塊可結(jié)合現(xiàn)場信號選擇對應(yīng)模塊,并提高系統(tǒng)的運(yùn)用效率。為進(jìn)一步提高PLC的適用效率、安全性,PLC編程在實(shí)際應(yīng)用中,可以采用序列流法、步進(jìn)雙步控制以及拉達(dá)圖法的圖形方法,也可以采用編輯軟件計劃PLC程序的處理方法,并進(jìn)行模擬與在線調(diào)試。在PLC程序編程設(shè)計的基礎(chǔ)上,完成編程檢驗與功能程序設(shè)計。
單片機(jī)屬于微控制單元,內(nèi)部構(gòu)造相對簡單,集成性能比較高,其中包含中央處理器CPU單元、大容量的RAM、ROM、4個8位的并行口等,提高系統(tǒng)數(shù)據(jù)的集成處理水平。單片機(jī)在使用中,對外部干擾有強(qiáng)烈的適應(yīng)能力,可以保持計算機(jī)系統(tǒng)的穩(wěn)定性。單片機(jī)在實(shí)際使用中,可以檢查程序的漏洞以及將容錯率控制在最小限度內(nèi)。通過物理參數(shù)、資源參數(shù)、過程參數(shù),對信息資源進(jìn)行分析,減少代碼漏電的可能性。單片機(jī)可發(fā)現(xiàn)干擾源并切斷干擾源,在程序設(shè)計中,可通過數(shù)據(jù)語言編譯器來轉(zhuǎn)換程序代碼,提高技術(shù)運(yùn)行的可行性。為保證單片機(jī)的運(yùn)行精度,可對單片機(jī)的防干擾性能進(jìn)行測試,提高單片機(jī)的穩(wěn)定性與抗干擾性[3]。
2單片PLC目標(biāo)程序框架設(shè)計
單片PLC的源程序語句是通過可編程序邏輯控制器進(jìn)行記錄,例如,LD、LDI、AND、OR、PLS、SFT、OUT等。單片PLC編譯程序的功能是通過PLC的源程序語言翻譯為單片機(jī)的目標(biāo)程序,例如,CPU初始化、內(nèi)部硬件定時器設(shè)定、接口的初始化等。結(jié)合單片PLC的特點(diǎn),建立的目標(biāo)代碼模塊是根據(jù)入口地址進(jìn)行設(shè)定,其中包含固定代碼、活動代碼兩大種類。固定代碼的入口地址包含AHAL、DHJDL、CCCC、FHFL、THTL、CHCL等,AHAL的目標(biāo)代碼為地址矢量,DHDL的目標(biāo)代碼為延時20ms子程序,CCCC的目標(biāo)代碼為定時器初始設(shè)定子程序,CHCL為主程序的初始化設(shè)定。固定代碼的裝配比較簡單,可以通過邏輯代碼,突出系統(tǒng)功能。活動代碼是通過源程序語句,與目標(biāo)代碼建立數(shù)據(jù)輸入、輸出關(guān)系?;顒哟a的裝配涉及到源程序語句的識別、糾錯、翻譯等,利用指令代碼,實(shí)現(xiàn)數(shù)據(jù)統(tǒng)計與系統(tǒng)分析。結(jié)合單片PLC的串行通信傳輸需求,可通過串行接口向PLC發(fā)送控制信息,并對數(shù)據(jù)處理與命令執(zhí)行控制等進(jìn)行程序設(shè)計,提高數(shù)據(jù)顯示效率與可靠性。目標(biāo)程序框架設(shè)計要考慮源程序代碼關(guān)系,通過對編譯程序代碼進(jìn)行數(shù)據(jù)整合,可建立控制程序,提高通信數(shù)據(jù)的分析與處理水平。單片PLC編譯程序可實(shí)現(xiàn)數(shù)據(jù)的實(shí)時收集與處理,所以,為滿足信息系統(tǒng)的數(shù)據(jù)共享需求,可通過軟件程序進(jìn)行單片PLC編譯程序設(shè)計,對目標(biāo)程序的編寫序列進(jìn)行完善,根據(jù)通信傳輸要求,確定程序排序關(guān)系,完成目標(biāo)程序的搭建工作。
3數(shù)組技術(shù)在PLC源程序語句中的應(yīng)用標(biāo)準(zhǔn)
定義1:M為集合,在單片PLC編譯程序中,可以通過數(shù)組來表示,mij為數(shù)據(jù)元素,mij為1字節(jié)ASC字符,且有子集Mi∈M。定義關(guān)系如下:
Mi={mi1,mi2,....mik-1,mik}
其中,M為元素集合,StringMi=mi1mi2....mik-1。加入SdtringM的數(shù)值與單片PLC的源程序語句保持一致,并通過ASC值,建立源語句的標(biāo)準(zhǔn)子集。
在分析數(shù)據(jù)集合標(biāo)準(zhǔn)中,M數(shù)組為二維數(shù)組,單片PLC源語句的關(guān)鍵詞不同,M數(shù)組的字符串長短也存在一定的差異。M數(shù)組的行數(shù)與單片PLC語句的條數(shù)保持一致,集合M中的各個子集Mi沒有重復(fù),可實(shí)現(xiàn)PLC源語句的定義與編寫。
定義2:F是集合,fij是元素,fij∈F,按照16進(jìn)制數(shù)進(jìn)行編寫,F(xiàn)i代表子集元素代碼,為單片PLC語句所對應(yīng)的代碼子集。
定義3:在Fi∈F的條件下,F(xiàn)={F1,F(xiàn)2,...,F(xiàn)入},單片PLC的目標(biāo)代碼設(shè)計與目標(biāo)芯片有直接關(guān)系,按照16進(jìn)制代碼,可對目標(biāo)代碼的字節(jié)數(shù)以及源程序語句進(jìn)行計算。
例如,源程序語句LD20,建立目標(biāo)代碼子集中,子集集合如下:
Fi={A2H,20H}
根據(jù)源程序語句與目標(biāo)代碼之間的關(guān)系,單片PLC某個源語句的標(biāo)準(zhǔn)子集,可通過代碼設(shè)計,完成源語句數(shù)據(jù)分析與處理。單片PLC編譯過程中,可省略生成中間代碼,之間獲得目標(biāo)代碼。例如,用戶的某一個PLC源語句可以尋找對應(yīng)的代碼,并在編譯過程中,裝配活動代碼。單片PLC編譯程序設(shè)計,可通過源程序語句,對目標(biāo)程序的語句邏輯關(guān)系進(jìn)行調(diào)整,完善程序語句的排列關(guān)系,提高單片PLC編譯程序設(shè)計合理性。
4單片PLC編譯程序結(jié)構(gòu)設(shè)計
現(xiàn)代編譯器可通過C語言來實(shí)現(xiàn),利用編譯原理,對源程序進(jìn)行兩次掃描。單片PLC的編譯可以簡化掃描過程,通過1-1映射模型,掃描亞UC程序,分析映射關(guān)系,利用源代碼的子集Mi,尋找對應(yīng)的目標(biāo)代碼子集Fi,并完成編譯裝配任務(wù)。為實(shí)現(xiàn)這一目標(biāo),生成源語句標(biāo)準(zhǔn)數(shù)組(M數(shù)組),打開源程序文件,對源程序進(jìn)行查錯處理,如果有錯,生成錯誤信息文件。如果沒有錯誤,裝配固定代碼,生成目標(biāo)數(shù)組(F數(shù)組)。掃描源程序文件后,逐條翻譯裝配活動代碼,以此為依據(jù),修正固定代碼,生成目標(biāo)程序文件后,關(guān)閉所有文件。
在PLC編譯程序設(shè)計中,目標(biāo)代碼中極容易出現(xiàn)未確定內(nèi)容的代碼,這一類代碼被稱為盲碼,對單片PLC編譯程序的穩(wěn)定性與抗干擾性等會產(chǎn)生直接的影響。所以,需要對盲碼進(jìn)行預(yù)先填入與修正處理。第一種,在單片PLC編譯中,固定代碼不完全固定,在修正的情況下,可對固定代碼的定時器初值設(shè)定子程序段,通過盲碼的填入,代替正式代碼。通過掃描源程序文件,對盲碼進(jìn)行逐條翻譯,源程序提供定時器初值后,可利用正式代碼代替現(xiàn)有的盲碼,完成固定代碼的修正。第二種是F數(shù)組只提供了源程序語句對應(yīng)的目標(biāo)代碼模板,在目標(biāo)代碼模板上填入盲碼。例如,裝配活動代碼時,盲碼可以被相應(yīng)參數(shù)值取代。實(shí)際參數(shù)是通過源程序設(shè)計,建立編譯代碼。例如,在PLS09源程序語句中,可建立目標(biāo)代碼子集,并確定盲碼位置后,通過符號變量,對源語句參數(shù)進(jìn)行調(diào)整,獲得完成源程序語句。
結(jié)論:單片PLC編譯程序的應(yīng)用是通過集合源程序代碼以及目標(biāo)代碼,以及建模與數(shù)組構(gòu)建的方式,對單片機(jī)的目標(biāo)程序架構(gòu)進(jìn)行設(shè)計。在此基礎(chǔ)上,單片PLC編譯中采用盲碼預(yù)先填入與修正技術(shù),對標(biāo)準(zhǔn)集合與目標(biāo)代碼集合進(jìn)行分析,形成PLC的翻譯語句,完成源程序的編寫與數(shù)據(jù)分析。單片機(jī)的PLC編譯程序設(shè)計,可對頁面插件進(jìn)行修改,結(jié)合源程序結(jié)構(gòu)的映射規(guī)則,相同的頁面會建立不同的信息集成區(qū)間,提高單片機(jī)PLC編譯程序的可擴(kuò)展性與靈活性。根據(jù)單片的芯片編程規(guī)則制定源代碼程序結(jié)構(gòu),可提高單片機(jī)在計算機(jī)系統(tǒng)中的應(yīng)用水平。
參考文獻(xiàn)
[1]陳潔.用STC單片機(jī)制作板式PLC及其應(yīng)用實(shí)例——MCU板制作[J].電世界,2020,61(12):45-49.
[2]張旭.PLC與單片機(jī)技術(shù)選用的策略[J].辦公自動化,2020,25(21):39-41.
[3]夏同行,鄭超,張仁勇,姚睿.PLC與單片機(jī)之間的串行通信及應(yīng)用探討[J].中國設(shè)備工程,2020(17):137-138.
500783