• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于單片機(jī)開發(fā)可編程控制器的研究

      2016-12-26 09:39:14王善紅
      關(guān)鍵詞:梯形圖單片機(jī)

      王善紅

      摘 要:本文設(shè)計(jì)了一種基于單片機(jī)開發(fā)控制器的新方案以實(shí)現(xiàn)內(nèi)核驅(qū)動(dòng)與邏輯運(yùn)算、控制分離。

      關(guān)鍵詞:?jiǎn)纹瑱C(jī);梯形圖;結(jié)構(gòu)化數(shù)據(jù);自編程

      中圖分類號(hào):TP334 文獻(xiàn)標(biāo)識(shí)碼:A

      一、概述

      通?;趩纹瑱C(jī)開發(fā)的智能控制器,因內(nèi)部程序已固化,開發(fā)完成后,其功能基本定型,只能應(yīng)用于設(shè)計(jì)時(shí)的特定目標(biāo),現(xiàn)場(chǎng)如需變更控制方案也非常困難。針對(duì)這一短板,我們?cè)O(shè)計(jì)一種基于單片機(jī)開發(fā)控制器的一種新方案,實(shí)現(xiàn)內(nèi)核驅(qū)動(dòng)與邏輯運(yùn)算、控制分開,并以簡(jiǎn)明梯形圖語(yǔ)言實(shí)現(xiàn)運(yùn)行邏輯編程,不僅擴(kuò)展了控制器的應(yīng)用范圍,而且減輕現(xiàn)場(chǎng)調(diào)試難度,控制方案的變動(dòng),只需修改梯形圖邏輯即可解決。

      二、原理

      單片機(jī)應(yīng)具備的特性:足夠容量的可擦寫flash程序存儲(chǔ)器,支持IAP功能,現(xiàn)在大多單片機(jī)芯片都支持用戶自編程IAP功能,如Atmega128、STM32F3、STM32F4系列皆能滿足要求。首先將單片機(jī)flash存儲(chǔ)器劃分為3塊,一部分存儲(chǔ)實(shí)現(xiàn)IAP功能的Boot Loader程序,一部分存儲(chǔ)單片機(jī)內(nèi)核程序,余下的部分用于存儲(chǔ)用戶程序。內(nèi)核程序主要是硬件驅(qū)動(dòng)及用戶程序間代碼接口與算法。用戶程序即為用梯形圖編輯工具形成順序控制邏輯,比較規(guī)則及數(shù)據(jù)輸出去向等。

      內(nèi)核程序周期性地掃描內(nèi)外部設(shè)備內(nèi)存映射地址,并調(diào)用用戶區(qū)邏輯運(yùn)算,將結(jié)果以數(shù)據(jù)量及消息量的方式輸出到設(shè)備,如此周而復(fù)始,完成用戶邏輯的控制方案。

      三、具體實(shí)現(xiàn)

      單片機(jī)如何實(shí)現(xiàn)硬件驅(qū)動(dòng)及通信不在本議題討論范圍內(nèi),重點(diǎn)論述如何實(shí)現(xiàn)梯形圖編譯工具軟件與單片機(jī)執(zhí)行梯形圖控制邏輯。

      1.用戶程序編輯與編譯(梯形圖編譯工具):

      梯形圖的編輯元器件主要包括常開接點(diǎn)、常閉接點(diǎn)、繼電器等簡(jiǎn)單元件和定時(shí)、比較等功能元器件。為了靈活應(yīng)用和擴(kuò)展編輯元器件,方便編程,將梯形圖元件數(shù)據(jù)結(jié)構(gòu)定義如下:

      type

      Tmdevice=record

      name: string[4]; //元件名稱

      mclass: byte; //元件類型

      memo: string; //元件備注,消息變量為消息變量實(shí)體

      end;

      其中Mclass的取值0:開關(guān)量輸入(DI),1:開關(guān)量輸出(DO),2:定時(shí)器(T),3:計(jì)數(shù)器(C),4:內(nèi)部繼電器(M),5:數(shù)據(jù)寄存器(D),6:消息輸入(MI),7:消息輸出(MO)。

      梯形圖用戶程序我們可以看成是有限個(gè)邏輯節(jié)點(diǎn)構(gòu)成固定列寬,可擴(kuò)展行數(shù)的表,每個(gè)節(jié)點(diǎn)代表元件加邏輯操作構(gòu)成的數(shù)據(jù)結(jié)構(gòu)體,因此首先定義節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu):

      Type

      Tprodata=record

      Opclass: byte; //節(jié)點(diǎn)類型(元件類型+連接類連)

      notop: byte; //操作碼

      Address: byte; //操作數(shù)內(nèi)存地址

      Chadd: word; //比較數(shù)

      end;

      依據(jù)上述約定實(shí)現(xiàn)繪制的梯形圖,如圖1所示。

      2.梯形圖邏輯掃描算法

      梯形圖語(yǔ)言描述一個(gè)邏輯網(wǎng)絡(luò)自左向右的能量潮,元件的邏輯運(yùn)算總是與左側(cè)的運(yùn)算“與”運(yùn)算,分支總是與左側(cè)結(jié)果“或”運(yùn)算,逐行掃描遇分支節(jié)點(diǎn)先將運(yùn)算結(jié)果壓入棧,掃描暫時(shí)放棄分支節(jié)點(diǎn)右側(cè)元件,進(jìn)行下一行掃描,如遇分支,繼續(xù)執(zhí)行壓棧,一直掃描到?jīng)]有分支時(shí),將結(jié)果與棧頂“或”運(yùn)算,執(zhí)行出棧(先進(jìn)先出原則),同時(shí)判斷棧頂節(jié)點(diǎn)連接類型,決定下一步是出棧還是掃描,如遇出棧節(jié)點(diǎn)有右側(cè)分支,則掃描右側(cè)元件,并作邏輯運(yùn)算,直至掃描至行結(jié)束標(biāo)志節(jié)點(diǎn),并將運(yùn)算結(jié)果賦值與最后節(jié)點(diǎn)元件,因此位于結(jié)束標(biāo)志點(diǎn)的元件一定是輸出型元件。如果在掃描過(guò)程中,能量潮在開始標(biāo)志與結(jié)束標(biāo)志中有中斷或能量潮開始與結(jié)束標(biāo)志不完整,都視為梯形圖編譯未能通過(guò)。

      我們將上面元件掃描順序及元件操作類型記錄在一個(gè)順序數(shù)據(jù)組中,這個(gè)順序數(shù)組結(jié)構(gòu)應(yīng)是這樣:

      Type

      Tprodata=record

      Oprate: byte; //數(shù)據(jù)運(yùn)算類型

      selfop: byte; //自身附加運(yùn)算

      Address: byte;//元件內(nèi)存映射地址

      Chadd: word;//比較運(yùn)算值

      end;

      其中Oprate對(duì)應(yīng)的邏輯運(yùn)算,1表示與,2表示異或,4表示賦值,5表示壓棧,6表示出棧,7表示棧更新,8表示定時(shí)器操作,9:定時(shí)器溢出處理,10:計(jì)數(shù)器操作,11:計(jì)算器溢出處理,12:表示位操作,13:寄存器數(shù)值比較。

      然后定義一個(gè)Tprodata類型變長(zhǎng)數(shù)組,將上面梯形圖掃描編譯順序結(jié)果存放在這個(gè)變長(zhǎng)數(shù)組中,最后將這個(gè)數(shù)據(jù)數(shù)據(jù)按Intel Hex格式格式化輸出文件,并保存在磁硬盤中。

      3.下載用戶程序到單片機(jī)用戶程序寄存器

      單片機(jī)具有自編程(IAP)功能,將梯形圖編譯結(jié)果文件(Intel Hex格式)下載到單片機(jī)用戶程序寄存器分區(qū),因用戶程序寄存器分區(qū)是可單獨(dú)通過(guò)IAP擦寫,這樣修改控制器運(yùn)行邏輯,只需修改梯形圖,編譯下載就可實(shí)現(xiàn)控制邏輯與內(nèi)核程序分離。

      4.單片機(jī)執(zhí)行梯形圖邏輯實(shí)現(xiàn)

      5.梯形圖元件在單片機(jī)內(nèi)存映射

      單片機(jī)內(nèi)核程序中首先定義一組元件內(nèi)存映射,數(shù)組的大小與梯形圖中元件數(shù)組大小一致,并保持與梯形圖編輯工具中元件類型對(duì)應(yīng),這里定義為u16 opdate[255]。

      為處理梯形圖用戶邏輯,在單片機(jī)內(nèi)核程序中建立幾個(gè)接口函數(shù),如圖2所示。

      接口函數(shù)實(shí)現(xiàn)方式中已明確了數(shù)據(jù)處理細(xì)節(jié),單片機(jī)內(nèi)核循環(huán)執(zhí)行ReadDI()、checkprodata()、OutDO()函數(shù)。ReadDI()將輸入端口的邏輯狀態(tài)讀入映射區(qū)。通信控制字、消息輸入通過(guò)中斷接口調(diào)用中斷處理函數(shù)將數(shù)據(jù)存入相應(yīng)的內(nèi)存映射地址,checkprodata()順序讀取、處理用戶邏輯,并將邏輯運(yùn)算、比較結(jié)果傳遞相應(yīng)的輸出映射內(nèi)存地址,OutDO()函數(shù)將輸出映射地址中的結(jié)果輸出控制器的輸出端。通過(guò)圖3更清晰彼此間的作用機(jī)制。

      結(jié)論

      本文設(shè)計(jì)基于單片機(jī)開發(fā)智能控制器,實(shí)現(xiàn)內(nèi)核程序與用戶控制邏輯分離,控制邏輯通過(guò)梯形圖編輯工具編譯與下載,控制目標(biāo)的變更,只需修改梯形圖邏輯即可實(shí)現(xiàn)。此設(shè)計(jì)方案成功應(yīng)用在江蘇鹽城供電公司東郊變、安泰變環(huán)境監(jiān)測(cè)與報(bào)警,智能排水不同控制目標(biāo)。

      參考文獻(xiàn)

      [1]杜開初.基于AT89C51單片機(jī)的微型可編程控制器[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2002(1):17-18.

      猜你喜歡
      梯形圖單片機(jī)
      基于單片機(jī)的SPWM控制逆變器的設(shè)計(jì)與實(shí)現(xiàn)
      電子制作(2019年13期)2020-01-14 03:15:28
      基于單片機(jī)的層次漸變暖燈的研究
      電子制作(2019年15期)2019-08-27 01:12:10
      基于單片機(jī)的便捷式LCF測(cè)量?jī)x
      電子制作(2019年9期)2019-05-30 09:42:02
      小議PLC與單片機(jī)之間的串行通信及應(yīng)用
      電子制作(2018年12期)2018-08-01 00:48:04
      基于VC的梯形圖編程軟件開發(fā)技術(shù)
      基于單片機(jī)的平衡控制系統(tǒng)設(shè)計(jì)
      電子制作(2017年19期)2017-02-02 07:08:27
      繼電器電路轉(zhuǎn)為梯形圖教學(xué)經(jīng)驗(yàn)淺談
      電子制作(2016年15期)2017-01-15 13:39:28
      PLC編譯功能的實(shí)現(xiàn)
      一種可編程邏輯控制程序的競(jìng)態(tài)檢測(cè)方法
      PLC梯形圖程序設(shè)計(jì)技巧及應(yīng)用
      弋阳县| 丁青县| 辽宁省| 鞍山市| 湄潭县| 介休市| 西和县| 克什克腾旗| 称多县| 临江市| 镇坪县| 铜山县| 罗山县| 渝北区| 库车县| 苏尼特右旗| 玉林市| 甘肃省| 迁西县| 黄浦区| 佛山市| 大足县| 千阳县| 屏东市| 和平区| 新巴尔虎左旗| 进贤县| 利津县| 屏南县| 惠来县| 通山县| 东莞市| 兰考县| 玉山县| 万州区| 三江| 定日县| 易门县| 资源县| 弋阳县| 黄梅县|