本發(fā)明涉及單片機可編程控制方法領域,具體涉及一種基于單片機的控制器的用戶梯形圖語言控制方法。
背景技術:
通?;趩纹瑱C開發(fā)的智能控制器,因內部程序已固化,開發(fā)完成后,其功能基本定型,非開發(fā)人員只能應用于設計時的特定目標,現(xiàn)場如需變更控制方案也非常困難,而在電力變電現(xiàn)場,工作人員對梯形圖語言非常熟悉,我們需要設計一種使用梯形圖語言對基于單片機的控制器進行修改的方法,實現(xiàn)內核驅動與邏輯運算、控制分開,并以簡明梯形圖語言實現(xiàn)控制器的運行邏輯編程,不僅擴展了控制器的應用范圍,而且減輕現(xiàn)場調試難度,控制方案的變動,只需修改梯形圖語言即可解決。
技術實現(xiàn)要素:
本發(fā)明的目的在于針對現(xiàn)有技術的不足,現(xiàn)提供一種能夠使用梯形圖語言實現(xiàn)運行邏輯編程、減輕現(xiàn)場調試難度的基于單片機的控制器的用戶梯形圖語言控制方法。
為解決上述技術問題,本發(fā)明采用的技術方案為:一種基于單片機的控制器的用戶梯形圖語言控制方法,其創(chuàng)新點在于:(1)將單片機的存儲器劃分為三個存儲區(qū),包括初始化程序模塊、內核程序模塊和用戶程序模塊,分別用于存儲初始化程序模塊、單片機內核程序和用戶程序;(2)梯形圖編譯:對梯形圖語言所涉及的元器件及邏輯運算進行編譯;按照梯形圖語言掃描算法掃描梯形圖;形成梯形圖編譯文件;(3)將梯形圖編譯文件加載到用戶程序寄存模塊;(4)單片機執(zhí)行梯形圖邏輯掃描:單片機內核程序模塊中建立接口函數(shù),掃描讀取輸入數(shù)據量的內存映射地址,將輸出數(shù)據量內存映射地址輸出到輸出端口;單片機調用梯形圖邏輯掃描函數(shù)實現(xiàn)梯形圖邏輯處理;(5)使用外部設備的梯形圖編輯軟件修改梯形圖,梯形圖編譯文件對修改后的梯形圖進行編譯,定義元器件及邏輯運算內存映射地址,單片機的內核程序周期性掃描外部設備內存映射地址,并調用用戶程序模塊中的邏輯運算,將結果以數(shù)據量及消息量的方式傳輸?shù)皆O備,周期性不間斷掃描,從而用戶使用梯形圖語言實現(xiàn)對基于單片機的控制器的邏輯控制。
進一步的,所述步驟(2)的梯形圖編譯具體包括定義元器件數(shù)據結構,定義節(jié)點數(shù)據結構體的內存映射地址,定義邏輯指令的內存映射地址和梯形圖掃描算法,然后將數(shù)據按“Intel Hex”格式格式化輸出文件,并保存在外部設備的磁硬盤中。
進一步的,所述梯形圖掃描算法包括以下步驟:梯形圖語言描述一個邏輯網絡自左向右的能量潮;元器件的邏輯運算總是與左側的運算進行“與”運算,分支總是與左側結果“或”運算;逐行掃描遇分支節(jié)點時,先將運算結果壓入棧,掃描暫時放棄分支節(jié)點右側元件,進行下一行掃描,如遇分支,繼續(xù)進行壓棧,一直掃描到沒有分支時,將結果與棧頂“或”運算,按照先進先出的原則執(zhí)行出棧;同時判斷站點節(jié)點連接類型,決定下一步是出棧還是掃描,如遇出棧節(jié)點右側有分支,則掃描右側元件,并作邏輯運算,直至掃描至行結束標志節(jié)點,并將運算結果賦值與最后節(jié)點的輸出型元件;如果在掃描過程中,能量潮在開始標志與結束標志中有中斷或能量潮開始標志與結束標志不完整,都視為梯形圖編譯未能通過。
進一步的,所述步驟(4)中接口函數(shù)包括讀取控制器數(shù)據量輸入函數(shù),數(shù)據量輸出函數(shù),中斷處理函數(shù)和梯形圖邏輯掃描函數(shù);讀取控制器數(shù)據量輸入函數(shù)用于將輸入端口的邏輯狀態(tài)讀入內存地址映射區(qū),同時,將通訊控制字和消息輸入通過中斷接口調用中斷處理函數(shù)將數(shù)據存入相應的內存映射地址;梯形圖邏輯掃描函數(shù)用于順序讀取、處理用戶邏輯,并將邏輯運算、比較結果傳遞相應的輸出映射內存地址,數(shù)據量輸出函數(shù)將輸出映射內存地址中的結果輸出控制器的輸出端。
本發(fā)明的有益效果如下:
本發(fā)明實現(xiàn)內核驅動與邏輯運算、控制的分離,并簡明梯形圖語言實現(xiàn)運行邏輯編程,不僅擴展了控制器的應用范圍,而且減輕現(xiàn)場調試的難度,控制方案的變動,只需修改梯形圖語言即可實現(xiàn)邏輯控制基于單片機的控制器。
附圖說明
圖1為本發(fā)明的硬件關系圖。
具體實施方式
以下由特定的具體實施例說明本發(fā)明的實施方式,熟悉此技術的人士可由本說明書所揭露的內容輕易地了解本發(fā)明的其他優(yōu)點及功效。
實施例1
一種基于單片機的控制器的用戶梯形圖語言控制方法,包括以下步驟:
(1)將單片機的存儲器劃分為三個存儲區(qū),包括初始化程序模塊、內核程序模塊和用戶程序模塊,分別用于存儲初始化程序模塊、單片機內核程序和用戶程序;
(2)梯形圖編譯:對梯形圖語言所涉及的元器件及邏輯運算進行編譯;按照梯形圖語言掃描算法掃描梯形圖;形成梯形圖編譯文件,保存到外部設備硬盤中;梯形圖編譯具體包括定義元器件數(shù)據結構,定義節(jié)點數(shù)據結構體的內存映射地址,定義邏輯指令的內存映射地址和梯形圖掃描算法,然后將數(shù)據按“Intel Hex”格式格式化輸出文件,并保存在外部設備的磁硬盤中。梯形圖掃描算法包括以下步驟:梯形圖語言描述一個邏輯網絡自左向右的能量潮;元器件的邏輯運算總是與左側的運算進行“與”運算,分支總是與左側結果“或”運算;逐行掃描遇分支節(jié)點時,先將運算結果壓入棧,掃描暫時放棄分支節(jié)點右側元件,進行下一行掃描,如遇分支,繼續(xù)進行壓棧,一直掃描到沒有分支時,將結果與棧頂“或”運算,按照先進先出的原則執(zhí)行出棧;同時判斷站點節(jié)點連接類型,決定下一步是出棧還是掃描,如遇出棧節(jié)點右側有分支,則掃描右側元件,并作邏輯運算,直至掃描至行結束標志節(jié)點,并將運算結果賦值與最后節(jié)點的輸出型元件;如果在掃描過程中,能量潮在開始標志與結束標志中有中斷或能量潮開始標志與結束標志不完整,都視為梯形圖編譯未能通過。
(3)將梯形圖編譯文件加載到用戶程序寄存模塊;
(4)單片機執(zhí)行梯形圖邏輯掃描:單片機內核程序模塊中建立接口函數(shù),掃描讀取梯形圖語言元器件及邏輯運算的內存映射地址,將數(shù)據量輸出內存映射地址輸出到輸出端口;單片機調用梯形圖邏輯掃描函數(shù)實現(xiàn)梯形圖邏輯處理;接口函數(shù)包括讀取控制器數(shù)據量輸入函數(shù),數(shù)據量輸出函數(shù),中斷處理函數(shù)和梯形圖邏輯掃描函數(shù);讀取控制器數(shù)據量輸入函數(shù)用于將輸入端口的邏輯狀態(tài)讀入內存地址映射區(qū),同時,將通訊控制字和消息輸入通過中斷接口調用中斷處理函數(shù)將數(shù)據存入相應的內存映射地址;梯形圖邏輯掃描函數(shù)用于順序讀取、處理用戶邏輯,并將邏輯運算、比較結果傳遞相應的輸出映射內存地址,數(shù)據量輸出函數(shù)將輸出映射內存地址中的結果輸出控制器的輸出端。
(5)使用外部設備的梯形圖編輯軟件修改梯形圖,梯形圖編譯文件對修改后的梯形圖進行編譯,定義元器件及邏輯運算內存映射地址,單片機的內核程序周期性掃描外部設備內存映射地址,并調用用戶程序模塊中的邏輯運算,將結果以數(shù)據量及消息量的方式傳輸?shù)皆O備,周期性不間斷掃描,從而用戶使用梯形圖語言實現(xiàn)對基于單片機的控制器的邏輯控制。
本發(fā)明實現(xiàn)內核驅動與邏輯運算、控制的分離,并簡明梯形圖語言實現(xiàn)運行邏輯編程,不僅擴展了控制器的應用范圍,而且減輕現(xiàn)場調試的難度,控制方案的變動,只需修改梯形圖語言即可實現(xiàn)邏輯控制基于單片機的控制器。
上述實施例只是本發(fā)明的較佳實施例,并不是對本發(fā)明技術方案的限制,只要是不經過創(chuàng)造性勞動即可在上述實施例的基礎上實現(xiàn)的技術方案,均應視為落入本發(fā)明專利的權利保護范圍內。