首頁 > 新聞係統 > PLC > PLC案例分析 正文 > 論壇 返回 打印

嵌入式PLC――Embedded Type PLC

    摘要:本文通過對經典控製器的分析,提出了嵌入式PLC的概念,重點以EASYV1.00嵌入式PLC軟件內核結構作基本分析,以引導工控設計人員建立一種新的嵌入式係統設計理念。

    關鍵詞:嵌入式PLC內核CAN總線

    Abstract:Bytheanalysisoftheclassicalcontroller,theconceptionofembeddedPLCisproposed.TheemphasesistoleadthedesignersofthecontrollingengineeringtobuildanewnotionofthedesignofembeddedsystembythebasicanalysisofthekernelconfigurationoftheEASYV1.00embeddedPLCsoftware.

    Keyword:EmbededPLCKernelCANbus

    [中圖分類號]TP23[文獻標識碼]A文章編號1606-5123(2005)11-00

    1引言:嵌入式PLC概念

    嵌入式PLC是指在特定的控製裝置中實現PLC(ProgramableLogicController)梯形圖編程語言的解釋、執行,使特定裝置在自身專用功能基礎上具有PLC的基本功能。

    梯形圖是一種麵向工廠自動化工程師的圖形化PLC編程語言。梯形圖具有簡潔、直觀,麵向工藝流程等許多優點。PLC編程語言的出現使控製裝置中的硬件管和麵向控製流程分離,PLC製造商專注於硬件及硬件管理,工廠自動化人員借助梯形圖語言作二次開發,使同一種PLC適用於不同的控製係統中,形成了可編程邏輯控製器(PLC)這種平台級產品。

    但控製產品的設計已發展到一個追求個性化、差異化設計的階段。常規PLC無法進入的市場,通常麵臨更多的是個性化、差異化的壓力。如成本控製、特殊功能等。出現了工控機(IPC)、單片機、嵌入板等更貼近個性化需求的控製產品。IPC在互連、表達、算法等方麵優勢明顯,單片機係統在成本控製上更加靈活。IPC由於加載了操作係統(如NT)其實時性、穩定性難以滿足連續控製的苛刻要求,通常用於監控。低層通常用PLC。單片機係統將硬件管理和用戶工藝流程控製混在一起,製約了它的標準化,並最終失去成本競爭優勢。

    嵌入式PLC正是麵向IPC和單片機係統開發的,它保留了PLC(借助梯形圖語言)硬件管理和工藝控製分離的優勢,結合IPC和單片機提供的更個性化、差異化的設計方法,形成一種新的控製器設計理念。當我們在IPC中嵌入PLC的功能時,我們稱之為基於PCBase的嵌入式PLC,當我們在單片機中嵌入PLC功能時,我們稱它為基於AllONOne的嵌入式PLC(片級嵌入PLC)。未特別說明時,嵌入式PLC指片級嵌入式PLC,也就是本文提出的嵌入式PLC。以下描述以8位單片機C8051F040為硬件的以科威公司EASYV1.00版嵌入式PLC軟件架構。

    目前,關於專用PLC有軟PLC和客製式PLC兩種。軟PLC指高端嵌入的含通用實時操作係統的PLC軟件,客製式PLC是指根據用戶需求定向設計的PLC。相關技術在德國、台灣、南韓均有突破,屬於嵌入式PLC的範疇。

    2嵌入式PLC軟件架構

    2.1總體結構

    EASYV1.00嵌入式PLC是一種實時性很強的操作係統軟件,總體結構包括三個層麵,如圖1所示。

    (1)嵌入式PLC內核它完成實時任務調度,梯形圖語言解釋、執行、通訊等基本功能,並提供二次開發驅動接口;

    (2)二次開發程序通過內核提供的外掛任務,使用內核開發各種麵向具體對象個性化差異化的驅動程序;

    (3)終端應用程序指麵向工藝流程控製的梯形圖語言編程;

    圖1EASYV1.00總體結構

    對於二次開發人員開發麵向個性化對象的驅動程序,必須了解嵌入式PLC內核結構,尤其是驅動接口設計方法,下麵分塊介紹內核的各塊功能。

    2.2實時OS

    麵向小型單片機,一般的實時操作係統無法加載,OS/Ⅱ占用了過多的資源,EASYV1.00內核根據任務的類別、實時要求、定製了一款專用實時OS,它無文件係統和內存管理兩部分。

    (1)硬實時狀態下的搶占式並發任務管理

    EASYV1.00內核提供2.5ms基準時基,它作為一種不可剝奪的任務循環執行用於各類任務的監控管理。

    對於工控應用中的異步事件采用並發式任務管理,通過各類中斷搶占任務的掛起、執行,每類異步任務執行前,在2.5ms任務中注冊,執行後注銷,通過2.5ms時基監控並發任務的流量及阻塞狀況並報字到上一級任務調度。

    (2)EASYV1.00中異步任務

    ・通信數據鏈絡層的字節流

    ・梯形圖語言中的定時器

    ・二次開發驅動程序中的實時異步任務

    並發任務管理是EASYV1.00中最低層的任務管理,達到ms級實時效果,單位時間內(1ms)占用CPU機時峰值為:

    T並=

    Ni――1ms內任務的最大執行次數,ti――任務的一次執行最大時間。

    EASYV1.00並發任務實時數據見表1、表2。

    表1EASYV1.00並發任務實時數據

    任務類別不可剝奪任務通信字節流任務梯形圖定時器驅動並發任務

    2.5ms時基串口0串口1CAN

    執行次數(N1)11111ND

    執行時間(T)10μs+ΔT25μs25μs50μs40μstD

    表2EASYV1.00並發任務實時數據

    任務類別梯形圖通訊函數調用用戶軟中斷

    任務個數131m4

    任務時間1-20μs1-10μs1-5μst4

    T片=3-45μs+t4

    t4為用戶軟中斷任務占用時間和。

    “掃描周期”指解釋、執行所有梯形圖指令並執行掃描結束處理所占用的時間,由於這期間有並發任務產生,“掃描周期”應包括並發任務占用時間。

    並發任務占用比:

    X=T並/1ms=(150μs+ΔT+)/1000μs=15%-100%

    設用戶梯形圖含M條指令

    T掃=(M•T片+ΔTend)/X

    ΔTend為掃描結束處理占用時間。

    2.3內存管理

    ESAYV1.00的運行數據空間包括64K外部RAM+256字節CPURAM,將其分解為係統占用區、PLC資源區、用戶嵌入數據區三部分。

    (1)係統占用區

    係統占用區是EASYV1.00運行時,進行數據緩存、狀態保持、係

    統堆棧等不對PLC及用戶開設的域區。這部分數據區的初始化運行中的監視都由實時OS管理,PLC及用戶嵌入程序不得非法侵入。

    (2)PLC資源區

    梯形圖語言管理的數據區包括位區、字區兩部分。通常以元件形式體現。

    ・輸入繼電器X:X0-X177128點位型

    ・輸出繼電器Y:Y0-Y177128點位型

    ・中間繼電器M:M0-M15351536點位型

    ・專用中間繼電器M8000-M8255256點位型

    ・狀態繼電器S:S0-S9991000點位型

    ・時間繼電器T:T0-T255256點位型+字型

    ・計數器C:C0-C255256點位型+字型

    ・通用數據寄存器D:D0-D79998000個字型

    ・專用數據寄存器D:D8000-D8255256個字節

    所有PLC資源是梯形圖運行時進行數據存取的區域,是終端應用層可視化區域,用戶嵌入的驅動程序,可使用對應元件的絕對地址進行存取,實現了嵌入程序與PLC梯形圖之間的數據交換。

    (3)用戶嵌入數據區

    當用戶以EASYV1.00內核設計各種嵌入係統時,需針對具體硬件做必要的驅動程序,該部分程序的私有數據存放於用戶嵌入數據區,公有數據存放於PLC的資源區,用戶嵌入數據區分配如下:

    CPU內部:位區(bitRAM):20H-23H4bytes

    字節區(DRAM):58H-67H16bytes

    外部數據存取器:字節區(XRAM):3600H-3FFFH2560bytes

    2.4梯形圖語言

    EASYV1.00梯形圖語言是一種解釋性語言,每一條梯形圖語句對應一個固定的函數調用,逐句掃描直至END為一個掃描周期,EASYV1.00支持86條梯形圖指令。

    (1)基本指令(27條)

    助記符名稱助記符名稱

    LD讀取常開點LDF讀取下降沿

    LDI讀取常閉點ANDP串接上升沿

    AND串入常開點ANDF串接下降沿

    ANDI串入常閉點ORP並接上升沿

    OR並入常開點ORF並接下降沿

    ORI並入常閉點INV運算觸點取反

    ANB電路塊串聯MPS運算觸點壓棧

    ORB電路塊並聯MRD讀出壓棧觸點

    OUT線圈輸出MPP彈出壓棧觸點

    SET線圈輸出保持MC主控

    RST清除線圈輸出MCR主控結束

    PLS上升沿輸出脈衝NOP空操作

    PLF下降沿輸出脈衝END程序結束

    LDP讀取上升沿

    (2)步進順控指令(2條)

    助記符名稱助記符名稱

    STL步進梯形圖開始RET步進梯形圖結束

    注:步序狀態轉移隻能用SET,當用OUT時視作普通繼電器。

    (3)功能指令(56條)

    助記符名稱助記符名稱

    程序流程CJ條件跳轉浮點數運算ECMP2進製浮點數比較

    CALL子程序調用EZCP2進製浮點數區域比較

    SRET子程序返回EBCD2進製浮點數轉10進製浮點數

    FEND主程序結束EBIN10進製浮點數轉2進製浮點數

    FOR循環範圍開始EADD2進製浮點數加法

    NEXT循環範圍結束ESUB2進製浮點數減法

    傳送與比較CMP比較EMUL2進製浮點數乘法

    ZCP區域比較EDIV2進製浮點數除法

    MOV傳送ESQR2進製浮點數開方

    CML取反傳送INT2進製浮點數轉BIN整數

    BCDBCD轉換FLTBIN整數轉2進製浮點數

    BINBIN轉換接點運算LD=讀取“等於比較節點”

    四則邏輯運算ADDBIN加法LD>讀取“大於比較節點”

    SUBBIN減法LD<讀取“小於比較節點”

    MULBIN乘法LD<>讀取“不等於比較節點”

    DIVBIN除法LD

http://www.autooo.net/autooo/PLC/PLC-Case/2007-10-20/18833.html