<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > EASYV1.00嵌入式PLC的基本原理(二)

          EASYV1.00嵌入式PLC的基本原理(二)

          作者: 時(shí)間:2018-08-30 來源:網(wǎng)絡(luò) 收藏

          內(nèi)存管理

          本文引用地址:http://www.ex-cimer.com/article/201808/388039.htm

          ESAYV1.00的運(yùn)行數(shù)據(jù)空間包括64K外部RAM+256字節(jié)CPURAM,將其分解為系統(tǒng)占用區(qū)、PLC資源區(qū)、用戶嵌入數(shù)據(jù)區(qū)三部分。

          ① 系統(tǒng)占用區(qū)

          系統(tǒng)占用區(qū)是EASYV1.00運(yùn)行時(shí),進(jìn)行數(shù)據(jù)緩存、狀態(tài)保持、系

          統(tǒng)堆棧等不對(duì)PLC及用戶開設(shè)的域區(qū)。這部分?jǐn)?shù)據(jù)區(qū)的初始化運(yùn)行中的監(jiān)視都由實(shí)時(shí)OS管理,PLC及用戶嵌入程序不得非法侵入。

          ②PLC資源區(qū)

          梯形圖語言管理的數(shù)據(jù)區(qū)包括位區(qū)、字區(qū)兩部分。通常以元件形式體現(xiàn)。

          輸入繼電器X:X0-X177 128點(diǎn)位型

          輸出繼電器Y:Y0-Y177 128點(diǎn)位型

          中間繼電器M:M0-M1535 1536點(diǎn)位型

          專用中間繼電器M8000-M8255 256點(diǎn)位型

          狀態(tài)繼電器S:S0-S999 1000點(diǎn)位型

          時(shí)間繼電器T:T0-T255 256點(diǎn)位型+字型

          計(jì)數(shù)器C:C0-C255 256點(diǎn)位型+字型

          通用數(shù)據(jù)寄存器D:D0-D7999 8000個(gè)字型

          專用數(shù)據(jù)寄存器D:D8000-D8255 256個(gè)字節(jié)

          所有PLC資源是梯形圖運(yùn)行時(shí)進(jìn)行數(shù)據(jù)存取的區(qū)域,是終端應(yīng)用層可視化區(qū)域,用戶嵌入的驅(qū)動(dòng)程序,可使用對(duì)應(yīng)元件的絕對(duì)地址進(jìn)行存取,實(shí)現(xiàn)了嵌入程序與PLC梯形圖之間的數(shù)據(jù)交換。

          ③用戶嵌入數(shù)據(jù)區(qū)

          當(dāng)用戶以EASYV1.00內(nèi)核設(shè)計(jì)各種嵌入系統(tǒng)時(shí),需針對(duì)具體硬件做必要的驅(qū)動(dòng)程序,該部分程序的私有數(shù)據(jù)存放于用戶嵌入數(shù)據(jù)區(qū),公有數(shù)據(jù)存放于PLC的資源區(qū),用戶嵌入數(shù)據(jù)區(qū)分配如下:

          CPU內(nèi)部:位區(qū)(bitRAM):20H-23H 4bytes

          字節(jié)區(qū)(DRAM):58H-67H 16bytes

          外部數(shù)據(jù)存取器:字節(jié)區(qū)(XRAM):3600H-3FFFH 2560bytes

          4、梯形圖語言

          EASYV1.00梯形圖語言是一種解釋性語言,每一條梯形圖語句對(duì)應(yīng)一個(gè)固定的函數(shù)調(diào)用,逐句掃描直至END為一個(gè)掃描周期,EASYV1.00支持86條梯形圖指令。

          5、EASYV1.00通信

          EASYV1.00內(nèi)核包括串口0、串口1、CANbus三個(gè)通信接口,每個(gè)接口均定制了相應(yīng)的通信協(xié)議,適用于不同的應(yīng)用場合。

          ①串口0

          l 用戶嵌入程序下載

          在編程狀態(tài)下,通過串口0下載用戶嵌入程序.

          嵌入程序下載軟件為科威公司軟件Downhex.

          l 梯形圖下載

          在設(shè)置狀態(tài)下,通過串口0下載梯形圖程序.

          下載工具軟件為科威公司軟件EasyWin或三菱公司軟件FXGP_WIN-C.

          l 梯形圖程序監(jiān)控

          在運(yùn)行狀態(tài)下,通過串口0連接人機(jī)界面(如HITECH,EVIEW,DELTA,三菱等)和計(jì)算機(jī),對(duì)梯形圖程序和參數(shù)進(jìn)行監(jiān)控.

          ②串口1

          l 下載CAN網(wǎng)絡(luò)配置內(nèi)容

          在設(shè)置(SET)狀態(tài)下,下載CAN網(wǎng)絡(luò)配置內(nèi)容.

          編輯下載CAN網(wǎng)絡(luò)配置軟件為科威公司軟件CANSET.

          l RS485網(wǎng)絡(luò)連接端口

          在運(yùn)行(RUN)狀態(tài)下,作為RS485主從式網(wǎng)絡(luò)的數(shù)據(jù)交換接口.

          該接口網(wǎng)絡(luò)通信協(xié)議由內(nèi)核自動(dòng)加載,遵循該協(xié)議的子節(jié)點(diǎn)可自動(dòng)連入該網(wǎng)絡(luò).如運(yùn)動(dòng)器的擴(kuò)展鍵盤連接.

          ③CANbus通信

          EASYV1.00內(nèi)核含CANbus現(xiàn)場總線通信協(xié)議,在CAN2.0B基礎(chǔ)上,加載了專用的主從式結(jié)構(gòu)的高層協(xié)議,借助梯形圖語言,對(duì)CANbus占用的PLC資源進(jìn)行管理(CANbus文件寄存器)即可實(shí)現(xiàn)CANbus互連。(詳見《EASY原理及應(yīng)用》)

          6、函數(shù)調(diào)用

          EASYV1.00系統(tǒng)提供嵌入驅(qū)動(dòng)程序函數(shù)調(diào)用,為嵌入程序設(shè)計(jì)系統(tǒng)提供了EASYCORE.LIB函數(shù)庫,用戶在嵌入時(shí),只要包含該文件(include EASYCORE.LIB)即可調(diào)用系統(tǒng)提供的各類應(yīng)用函數(shù),如整數(shù)、浮點(diǎn)數(shù)運(yùn)算,數(shù)據(jù)變換等函數(shù)。

          7、用戶中斷系統(tǒng)

          EASYV1.00運(yùn)行在C8051F040CPU上時(shí),給用戶提供了13種中斷,如事件中斷、SPI、IIC、A/D、D/A、比較、捕獲等。

          系統(tǒng)中斷入口地址重定向?yàn)镋000H開始的區(qū)域

          ADR=ADR0+E000H

          ADR0---F040中斷入口地址



          關(guān)鍵詞: 控制

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();