• 
    

    
    

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

      ?

      簡(jiǎn)易微型控制器的開(kāi)發(fā)

      2011-11-20 03:09:58明,旭,學(xué)
      關(guān)鍵詞:執(zhí)行程序PC機(jī)控件

      許 明, 劉 旭, 王 學(xué) 俊

      (1.大連工業(yè)大學(xué) 機(jī)械工程與自動(dòng)化學(xué)院,遼寧 大連 116034;2.大連港旅順港務(wù)有限公司 工程技術(shù)部,遼寧 大連 116052)

      0 引 言

      目前,在工業(yè)控制領(lǐng)域,PLC 以其強(qiáng)大的功能、完善的指令系統(tǒng)占據(jù)著大規(guī)模、大批量生產(chǎn)的應(yīng)用場(chǎng)合;而在小規(guī)模生產(chǎn)控制場(chǎng)合中,單片機(jī)以其超低的成本價(jià)格被絕大多數(shù)人所認(rèn)可[1]。但在較小規(guī)模自動(dòng)控制應(yīng)用場(chǎng)合中,采用PLC控制會(huì)增加控制成本,如果利用單片機(jī)控制則會(huì)帶來(lái)編程復(fù)雜、延長(zhǎng)設(shè)計(jì)周期等問(wèn)題。針對(duì)上述情況,作者研發(fā)了一種適用于較小規(guī)模自動(dòng)控制場(chǎng)合的微型控制器。

      微型控制器以單片機(jī)為控制核心,通過(guò)數(shù)字量輸入、輸出模塊與外部工業(yè)設(shè)備連接,完成簡(jiǎn)單的開(kāi)關(guān)量的邏輯運(yùn)算、定時(shí)、計(jì)數(shù)、數(shù)字量的采集、輸出等功能,實(shí)現(xiàn)對(duì)外部工業(yè)設(shè)備控制的目的。

      1 系統(tǒng)配置

      微型控制器主要由PC機(jī)軟件、主控模塊及數(shù)字量輸入、輸出模塊組成,其配置圖如圖1所示。

      圖1 微型控制器配置圖Fig.1 Simple controller device's disposition

      微型控制器執(zhí)行程序的處理在PC 機(jī)軟件上完成。該軟件包括執(zhí)行程序編輯模塊、編譯模塊和下載模塊三部分,軟件的3個(gè)模塊分別完成執(zhí)行程序的編輯、編譯及下載工作。執(zhí)行程序利用類PLC指令系統(tǒng)編寫,程序編寫完成后經(jīng)過(guò)編譯軟件的編譯生成二進(jìn)制程序代碼,最后由下載軟件通過(guò)串口發(fā)送給單片機(jī)芯片,實(shí)現(xiàn)執(zhí)行程序在線編輯及下載功能。

      微型控制器主控模塊以SST89E516RD 單片機(jī)為控制核心芯片,利用芯片所特有的IAP操作模式接收 PC 機(jī)發(fā)送的執(zhí)行程序代碼。SST89E516RD 單片機(jī)FLASH 存儲(chǔ)器被分成兩個(gè)獨(dú)立的程序存儲(chǔ)塊,8K字節(jié)的二級(jí)FLASH 塊能被映射到64K字節(jié)低地址空間[2]。將IAP模式應(yīng)用程序存儲(chǔ)在單片機(jī)的Block 1程序存儲(chǔ)區(qū)內(nèi),利用該應(yīng)用程序?qū)⑽⑿涂刂破鲌?zhí)行程序代碼寫入Block 0程序存儲(chǔ)區(qū),然后通過(guò)SFCF[1∶0]位進(jìn)行存儲(chǔ)塊的切換,達(dá)到執(zhí)行程序的執(zhí)行目的[3]。

      微型控制器通過(guò)數(shù)字量輸入、輸出模塊與外部工業(yè)設(shè)備連接。模塊采用可級(jí)聯(lián)的串行數(shù)據(jù)寄存器為核心芯片,方便模塊進(jìn)行擴(kuò)展、升級(jí),以滿足外部開(kāi)關(guān)量的數(shù)量要求。

      2 IAP 下載程序

      微型控制器利用單片機(jī)的IAP 模式操作完成執(zhí)行程序的在線下載。該操作包括:存儲(chǔ)器擦除、字節(jié)編程、字節(jié)校驗(yàn)等[4]。

      微型控制器IAP模式應(yīng)用程序采用查詢方式接收PC機(jī)發(fā)送的命令符,根據(jù)所接收到的命令符執(zhí)行相應(yīng)的IAP操作。程序流程圖如圖2所示。

      下載過(guò)程通常按以下步驟進(jìn)行:首先進(jìn)行塊擦除,其次為字節(jié)寫入,最后進(jìn)行字節(jié)校驗(yàn)。

      3 PC機(jī)軟件

      PC機(jī)軟件利用VB6.0面向?qū)ο笳Z(yǔ)言編制。通過(guò)PC 機(jī)軟件實(shí)現(xiàn)微型控制器執(zhí)行程序的處理,該過(guò)程需要3個(gè)步驟,即:執(zhí)行程序的編輯、編譯、下載。三者的關(guān)系如圖3所示。

      圖2 微型控制器程序流程圖Fig.2 Simple controller device's flow block diagram

      圖3 PC機(jī)軟件流程圖Fig.3 Flow block diagram of PC software

      3.1 程序編輯模塊

      程序編輯模塊采用Rich TextBox控件編制,該控件可用于文本的輸入和編輯,同時(shí)為了更好地實(shí)現(xiàn)執(zhí)行程序的編輯、修改功能,軟件設(shè)置了編輯下拉菜單,可對(duì)Rich TextBox控件內(nèi)的內(nèi)容進(jìn)行剪切、復(fù)制、粘貼、查找和替換等操作。界面如圖4所示。

      圖4 軟件編輯界面Fig.4 Edition contact surface of software

      控制器采用類PLC指令系統(tǒng)進(jìn)行編程,完成簡(jiǎn)單的開(kāi)關(guān)量的邏輯運(yùn)算。該指令系統(tǒng)包含:LD、LDI、AND、ANDI、OR、ORI、OUT、TIM 及CON 等指令,其中TIM 與CON 分別實(shí)現(xiàn)定時(shí)及計(jì)數(shù)功能。執(zhí)行程序編輯模塊可將程序保存為.txt格式文件,方便于執(zhí)行程序的查看及修改。

      3.2 程序編譯模塊

      由于微型控制器執(zhí)行程序采用類PLC 程序指令系統(tǒng)編寫,不能直接被控制器應(yīng)用,因此需要對(duì)執(zhí)行程序進(jìn)行編譯。利用編譯軟件,不僅可以檢查執(zhí)行程序是否有語(yǔ)法錯(cuò)誤,還可以將執(zhí)行程序轉(zhuǎn)換為能夠被微型控制器所執(zhí)行的二進(jìn)制代碼。對(duì)執(zhí)行程序進(jìn)行編譯的過(guò)程分為以下3個(gè)步驟:

      (1)對(duì)執(zhí)行程序進(jìn)行讀取。軟件利用VB 中自帶的Split()函數(shù)對(duì)執(zhí)行程序內(nèi)容進(jìn)行分行讀取。Split()函數(shù)返回一個(gè)下標(biāo)從零開(kāi)始的一維數(shù)組,它包含指定數(shù)目的子字符串[5]。

      (2)對(duì)字符串進(jìn)行規(guī)格化處理。為了便于程序的編譯,并考慮到微型控制器控制指令的規(guī)范性要求,規(guī)定標(biāo)準(zhǔn)程序字段格式為“XXXX 凵XXX”,即“程序命令符+空格+繼電器編碼”。規(guī)格化處理過(guò)程包括:去除字符串中多余的空格,字符的大小寫轉(zhuǎn)換等。例如“凵凵Ld凵x00 凵凵”程序段,化為標(biāo)準(zhǔn)格式為“LD 凵X00”。

      (3)對(duì)已化為規(guī)格化形式的類PLC 程序語(yǔ)句進(jìn)行轉(zhuǎn)換,將類PLC語(yǔ)句轉(zhuǎn)換為單片機(jī)芯片的二進(jìn)制代碼。由于微型控制器只是完成簡(jiǎn)單開(kāi)關(guān)量的邏輯運(yùn)算,彼此之間僅僅是位運(yùn)算,因此選擇進(jìn)位標(biāo)志位C來(lái)進(jìn)行運(yùn)算處理。類PLC 指令與匯編指令對(duì)應(yīng)關(guān)系如表1所示。

      表1 類PLC指令與匯編指令對(duì)應(yīng)表Tab.1 The corresponding of class PLC instruction and assembly instructions

      微型控制器最大可設(shè)有32個(gè)輸入繼電器、32個(gè)輸出繼電器、32個(gè)中間繼電器。繼電器的狀態(tài)均存儲(chǔ)在單片機(jī)中的RAM 位尋址區(qū)且與位地址一一對(duì)應(yīng)。控制器將繼電器的狀態(tài)保存在其對(duì)應(yīng)的位地址寄存器中,通過(guò)對(duì)位寄存器存儲(chǔ)內(nèi)容的改變實(shí)現(xiàn)單片機(jī)對(duì)繼電器的操作。繼電器與單片機(jī)RAM 位地址對(duì)應(yīng)關(guān)系如表2所示。

      表2 繼電器與RAM 位尋址區(qū)位地址映射表Tab.2 The corresponding of relay and RAM position addressing position address

      根據(jù)表1、2可以將類PLC 執(zhí)行程序轉(zhuǎn)換為單片機(jī)對(duì)相應(yīng)位地址的操作,再將單片機(jī)匯編程序轉(zhuǎn)換為二進(jìn)制代碼實(shí)現(xiàn)執(zhí)行程序的編譯。為了提高軟件的執(zhí)行速度和方便下載軟件對(duì)程序代碼的處理,軟件中定義一個(gè)全局?jǐn)?shù)組a(i)存儲(chǔ)執(zhí)行程序編譯生成的二進(jìn)制代碼。

      以下列微型控制器類PLC 執(zhí)行程序片段為例:

      根據(jù)表2 所示,X00 繼電器對(duì)應(yīng)位地址為“00H”,M01繼電器對(duì)應(yīng)位地址為“21H”,Y02繼電器對(duì)應(yīng)位地址為“42H”,同時(shí)查表1 可知:“LD”命令對(duì)應(yīng)匯編語(yǔ)言指令為“MOV C,bit”,“AND”命令對(duì)應(yīng)匯編語(yǔ)言指令為“ANL C,bit”,“OUT”命令對(duì)應(yīng)匯編語(yǔ)言指令為“MOV bit,C”,由此可知。類PLC 程序轉(zhuǎn)換為單片機(jī)匯編語(yǔ)言程序?yàn)椋?/p>

      對(duì)應(yīng)的二進(jìn)制代碼為“A2 00 82 21 92 42”,將代碼依次存入a(i)中,即:

      3.3 程序下載模塊

      經(jīng)過(guò)編譯軟件的編譯,微型控制器執(zhí)行程序轉(zhuǎn)換為二進(jìn)制代碼存儲(chǔ)在數(shù)組a(i)中,為了實(shí)現(xiàn)執(zhí)行程序的運(yùn)行,需要將數(shù)組a(i)發(fā)送給微型控制器主控模塊。

      系統(tǒng)的PC機(jī)與主控模塊利用串口進(jìn)行數(shù)據(jù)通信,通信雙方約定:波特率為4 800B/s;信息格式為8個(gè)數(shù)據(jù)位,1個(gè)停止位,無(wú)校驗(yàn)位;傳送方式為PC機(jī)采用查詢方式接收與發(fā)送數(shù)據(jù)。

      下載模塊利用VB6.0提供的MSComm 控件通過(guò)串口與主控模塊進(jìn)行數(shù)據(jù)交換,完成PC 機(jī)與主控模塊的數(shù)據(jù)通信。該控件提供了標(biāo)準(zhǔn)的事件處理函數(shù)、過(guò)程,并通過(guò)屬性的方法提供了串行通信參數(shù)的設(shè)置,解決了串行通信的問(wèn)題[6]。

      MSComm 通信控件,具有功能完善的串口數(shù)據(jù)的發(fā)送和接收功能,具有兩種處理通信的方式:事件驅(qū)動(dòng)方式和查詢方式。由于查詢方式占用的系統(tǒng)資源較多,所以采用事件驅(qū)動(dòng)方式實(shí)現(xiàn)串行數(shù)據(jù)通信[7]。

      由于需要發(fā)送的數(shù)據(jù)多達(dá)64K 字節(jié),為了提高數(shù)據(jù)傳輸?shù)臏?zhǔn)確性,進(jìn)行分批發(fā)送。軟件每次發(fā)送64字節(jié)數(shù)據(jù),發(fā)送完畢后等待單片機(jī)的應(yīng)答信號(hào)。單片機(jī)處理完畢接收到的64字節(jié)數(shù)據(jù)后,向PC機(jī)返回應(yīng)答信號(hào)“AA”,PC機(jī)根據(jù)接收的應(yīng)答信號(hào)判斷是否發(fā)送下一批次數(shù)據(jù)。如果接收到的信號(hào)為“AA”,則繼續(xù)發(fā)送,否則重新發(fā)送數(shù)據(jù)。

      以下為PC機(jī)與單片機(jī)串行通信的部分代碼:

      4 結(jié) 論

      本文提到的微型控制器已在儀表自動(dòng)車床改造中使用,從應(yīng)用結(jié)果看,機(jī)床運(yùn)行穩(wěn)定,控制簡(jiǎn)單方便,達(dá)到技術(shù)要求??傻贸鲆韵陆Y(jié)論:采用SST89E516RD 單片機(jī)為控制芯片,降低了控制器成本,并利用芯片的IAP 模式,實(shí)現(xiàn)微型控制器執(zhí)行程序的在線編輯與下載,改善了控制器的性能。PC機(jī)軟件利用VB6.0中的Rich textbox控件及MSComm 控件編制,利用類PLC 程序指令完成微型控制器執(zhí)行程序的編寫,達(dá)到簡(jiǎn)化編程的目的,同時(shí)完成執(zhí)行程序的編譯及下載功能,使其更便于用在中小型工業(yè)設(shè)備的控制中。

      [1]張昆,張曉光.一個(gè)微型控制器設(shè)計(jì)中的技巧[J].計(jì)算機(jī)應(yīng)用研究,1994(4):21-23.

      [2]吳錦虹,黃譽(yù),陳凱.SST89E516RD 存儲(chǔ)空間的組織與IAP實(shí)現(xiàn)[J].電子制作,2007(5):60-63.

      [3]吳漢清.用SST89E516RD 自制51 單片機(jī)仿真器[J].無(wú)線電,2007(10):72-74.

      [4]忠梅.單片機(jī)的應(yīng)用程序設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1997.

      [5]李天啟,成昊.Visual Basic 6.0學(xué)習(xí)捷徑[M].北京:清華大學(xué)出版社,1998.

      [6]李江全,張麗.Visual Basic串口通信與測(cè)控應(yīng)用技術(shù)實(shí)戰(zhàn)詳解[M].北京:人民郵電出版社,2007.

      [7]范逸之,陳立元.Visual Basic與RS232 串行通信控制[M].北京:清華大學(xué)出版社,2002.

      猜你喜歡
      執(zhí)行程序PC機(jī)控件
      執(zhí)行程序中的法律問(wèn)題與律師的作用
      法制博覽(2019年27期)2019-12-13 23:37:40
      關(guān)于.net控件數(shù)組的探討
      軟件(2018年7期)2018-08-13 09:44:42
      基于PC機(jī)與單片機(jī)的多機(jī)通信技術(shù)及抗干擾方法
      基于三菱FXPLC的感應(yīng)淬火機(jī)床與PC機(jī)的串行通信實(shí)現(xiàn)
      VC.NET下實(shí)現(xiàn)dsPIC單片機(jī)與PC機(jī)的通信
      電子制作(2017年23期)2017-02-02 07:16:47
      國(guó)有劃撥土地使用權(quán)強(qiáng)制執(zhí)行問(wèn)題研究
      執(zhí)行程序與破產(chǎn)程序銜接機(jī)制若干問(wèn)題分析
      法制博覽(2016年11期)2016-11-14 10:45:46
      淺析執(zhí)行程序中對(duì)法定抵銷權(quán)的審查
      就這樣玩會(huì)VBA中常見(jiàn)的自定義控件
      電腦迷(2012年24期)2012-04-29 00:44:03
      讀編往來(lái)
      庆安县| 延安市| 右玉县| 临澧县| 同江市| 女性| 黄梅县| 临江市| 西吉县| 墨江| 扶余县| 通渭县| 南宫市| 会同县| 西丰县| 江口县| 财经| 滕州市| 韩城市| 镇宁| 灵山县| 鄯善县| 锦州市| 福州市| 佛冈县| 祁连县| 科技| 东丰县| 义乌市| 南丰县| 双牌县| 凭祥市| 安多县| 韩城市| 屏边| 三门县| 巴彦县| 若羌县| 汨罗市| 安仁县| 长沙县|