發布日期:2022-04-22 點擊率:60 品牌:EMB
1引言:嵌入式PLC概念
嵌入式PLC是指在特定的控制裝置中實現PLC(Programable Logic Controller)梯形圖編程語言的解釋、執行,使特定裝置在自身專用功能基礎上具有PLC的基本功能。
梯形圖是一種面向工廠自動化工程師的圖形化PLC編程語言。梯形圖具有簡潔、直觀,面向工藝流程等許多優點。PLC編程語言的出現使控制裝置中的硬件管和面向控制流程分離,PLC制造商專注于硬件及硬件管理,工廠自動化人員借助梯形圖語言作二次開發,使同一種PLC適用于不同的控制系統中,形成了可編程邏輯控制器(PLC)這種平臺級產品。
但控制產品的設計已發展到一個追求個性化、差異化設計的階段。常規PLC無法進入的市場,通常面臨更多的是個性化、差異化的壓力。如成本控制、特殊功能等。出現了工控機(IPC)、單片機、嵌入板等更貼近個性化需求的控制產品。IPC在互連、表達、算法等方面優勢明顯,單片機系統在成本控制上更加靈活。IPC由于加載了操作系統(如NT)其實時性、穩定性難以滿足連續控制的苛刻要求,通常用于監控。低層通常用PLC。單片機系統將硬件管理和用戶工藝流程控制混在一起,制約了它的標準化,并最終失去成本競爭優勢。
嵌入式PLC正是面向IPC和單片機系統開發的,它保留了PLC(借助梯形圖語言)硬件管理和工藝控制分離的優勢,結合IPC和單片機提供的更個性化、差異化的設計方法,形成一種新的控制器設計理念。當我們在IPC中嵌入PLC的功能時,我們稱之為基于PC Base的嵌入式PLC,當我們在單片機中嵌入PLC功能時,我們稱它為基于All ON One的嵌入式PLC(片級嵌入PLC)。未特別說明時,嵌入式PLC指片級嵌入式PLC,也就是本文提出的嵌入式PLC。以下描述以8位單片機C8051F040為硬件的以科威公司EASYV1.00版嵌入式PLC軟件架構。
目前,關于專用PLC有軟PLC和客制式PLC兩種。軟PLC指高端嵌入的含通用實時操作系統的PLC軟件,客制式PLC是指根據用戶需求定向設計的PLC。相關技術在德國、臺灣、南韓均有突破,屬于嵌入式PLC的范疇。
2 嵌入式PLC軟件架構
2.1 總體結構
EASY V1.00嵌入式PLC是一種實時性很強的操作系統軟件,總體結構包括三個層面,如圖1所示。
(1)嵌入式PLC內核 它完成實時任務調度,梯形圖語言解釋、執行、通訊等基本功能,并提供二次開發驅動接口;
(2)二次開發程序 通過內核提供的外掛任務,使用內核開發各種面向具體對象個性化差異化的驅動程序;
(3)終端應用程序 指面向工藝流程控制的梯形圖語言編程;
圖1 EASY V1.00總體結構
對于二次開發人員開發面向個性化對象的驅動程序,必須了解嵌入式PLC內核結構,尤其是驅動接口設計方法,下面分塊介紹內核的各塊功能。
2.2 實時OS
面向小型單片機,一般的實時操作系統無法加載,OS/Ⅱ 占用了過多的資源,EASY V1.00內核根據任務的類別、實時要求、定制了一款專用實時OS,它無文件系統和內存管理兩部分。
(1)硬實時狀態下的搶占式并發任務管理
EASY V1.00內核提供2.5ms基準時基,它作為一種不可剝奪的任務循環執行用于各類任務的監控管理。
對于工控應用中的異步事件采用并發式任務管理,通過各類中斷搶占任務的掛起、執行,每類異步任務執行前,在2.5ms任務中注冊,執行后注銷,通過2.5ms時基監控并發任務的流量及阻塞狀況并報字到上一級任務調度。
(2)EASY V1.00中異步任務
· 通信數據鏈絡層的字節流
· 梯形圖語言中的定時器
· 二次開發驅動程序中的實時異步任務
并發任務管理是EASY V1.00中最低層的任務管理,達到ms級實時效果,單位時間內(1ms)占用CPU機時峰值為:
T并=
Ni——1ms內任務的最大執行次數,ti——任務的一次執行最大時間。
EASY V1.00并發任務實時數據見表1、表2。
表1 EASY V1.00并發任務實時數據
任務類別 不可剝奪任務 通信字節流任務 梯形圖定時器 驅動并發任務
2.5ms時基 串口0 串口1 CAN
執行次數(N1) 1 1 1 1 1 ND
執行時間(T) 10μs+ΔT 25μs 25μs 50μs 40μs tD
表2 EASY V1.00并發任務實時數據
任務類別 梯形圖 通訊 函數調用 用戶軟中斷
任務個數 1 3 1 m4
任務時間 1-20μs 1-10μs 1-5μs t4
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-X177 128點位型
·輸出繼電器Y:Y0-Y177 128點位型
·中間繼電器M:M0-M1535 1536點位型
·專用中間繼電器M8000-M8255 256點位型
·狀態繼電器S:S0-S999 1000點位型
·時間繼電器T:T0-T255 256點位型+字型
·計數器C:C0-C255 256點位型+字型
·通用數據寄存器D:D0-D7999 8000個字型
·專用數據寄存器D:D8000-D8255 256個字節
所有PLC資源是梯形圖運行時進行數據存取的區域,是終端應用層可視化區域,用戶嵌入的驅動程序,可使用對應元件的絕對地址進行存取,實現了嵌入程序與PLC梯形圖之間的數據交換。
(3)用戶嵌入數據區
當用戶以EASYV1.00內核設計各種嵌入系統時,需針對具體硬件做必要的驅動程序,該部分程序的私有數據存放于用戶嵌入數據區,公有數據存放于PLC的資源區,用戶嵌入數據區分配如下:
CPU內部:位區(bitRAM):20H-23H 4bytes
字節區(DRAM):58H-67H 16bytes
外部數據存取器:字節區(XRAM):3600H-3FFFH 2560bytes
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 條件跳轉 浮點數運算 ECMP 2進制浮點數比較
CALL 子程序調用 EZCP 2進制浮點數區域比較
SRET 子程序返回 EBCD 2進制浮點數轉10進制浮點數
FEND 主程序結束 EBIN 10進制浮點數轉2進制浮點數
FOR 循環范圍開始 EADD 2進制浮點數加法
NEXT 循環范圍結束 ESUB 2進制浮點數減法
傳送與比較 CMP 比較 EMUL 2進制浮點數乘法
ZCP 區域比較 EDIV 2進制浮點數除法
MOV 傳送 ESQR 2進制浮點數開方
CML 取反傳送 INT 2進制浮點數轉BIN整數
BCD BCD轉換 FLT BIN整數轉2進制浮點數
BIN BIN轉換 接點運算 LD= 讀取“等于比較節點”
四則邏輯運算 ADD BIN加法 LD> 讀取“大于比較節點”
SUB BIN減法 LD< 讀取“小于比較節點”
MUL BIN乘法 LD<> 讀取“不等于比較節點”
DIV BIN除法 LD≦ 讀取“小于等于比較節點”
INC BIN加1 LD≧ 讀取“大于等于比較節點”
DEC BIN減1 AND= 串聯“等于比較節點”
WAND 邏輯字與 AND> 串聯“大于比較節點”
WOR 邏輯字或 AND< 串聯“小于比較節點”
WXOR 邏輯字異或 AND<> 串聯“不等于比較節點”
NEG 求補碼 AND≦ 串聯“小于等于比較節點”
SQR BIN開方 AND≧ 串聯“大于等于比較節點”
循環與移位 ROR 循環右移 OR= 并聯“等于比較節點”
ROL 循環左移 OR> 并聯“大于比較節點”
RCR 帶進位循環右移 OR< 并聯“小于比較節點”
RCL 帶進位循環左移 OR<> 并聯“不等于比較節點”
OR≦ 并聯“小于等于比較節點”
OR≧ 并聯“大于等于比較節點”
(4)專家指令(1條)
助記符 名稱
PID 專家算法
2.5 EASYV1.00通信
EASYV1.00內核包括串口0、串口1、CANbus三個通信接口,每個接口均定制了相應的通信協議,適用于不同的應用場合。
(1)串口0
l 用戶嵌入程序下載
在編程狀態下,通過串口0下載用戶嵌入程序.
嵌入程序下載軟件為科威公司軟件Downhex.
l 梯形圖下載
在設置狀態下,通過串口0下載梯形圖程序.
下載工具軟件為科威公司軟件EasyWin或三菱公司軟件FXGP_WIN-C.
l 梯形圖程序監控
在運行狀態下,通過串口0連接人機界面(如HITECH,EVIEW,DELTA,三菱等)和計算機,對梯形圖程序和控制參數進行監控.
(2)串口1
l 下載CAN網絡配置內容
在設置(SET)狀態下,下載CAN網絡配置內容.
編輯下載CAN網絡配置軟件為科威公司軟件CANSET.
l RS485網絡連接端口
在運行(RUN)狀態下,作為RS485主從式網絡的數據交換接口.
該接口網絡通信協議由內核自動加載,遵循該協議的子節點可自動連入該網絡.如運動控制器的擴展鍵盤連接.
(3)CANbus通信
EASYV1.00內核含CANbus現場總線通信協議,在CAN2.0B基礎上,加載了專用的主從式結構的高層協議,借助梯形圖語言,對CANbus占用的PLC資源進行管理(CANbus文件寄存器)即可實現CANbus互連。
2.6 函數調用
EASYV1.00系統提供嵌入驅動程序函數調用,為嵌入程序設計系統提供了EASYCORE.LIB函數庫,用戶在嵌入時,只要包含該文件(include EASYCORE.LIB)即可調用系統提供的各類應用函數,如整數、浮點數運算,數據變換等函數。
2.7 用戶中斷系統
EASYV1.00運行在C8051F040CPU上時,給用戶提供了13種中斷,如事件中斷、SPI、IIC、A/D、D/A、比較、捕獲等。
系統中斷入口地址重定向為E000H開始的區域
ADR=ADR0+E000H
ADR0---F040中斷入口地址
3 結束語
嵌入式PLC提出了一種以過程控制語言(梯形圖語言)核心的新型嵌入系統設計理念。既可以作為PLC產品的開發平臺,也可以作為常規單片機系統的設計。以嵌入式PLC方式進行控制器設計提高了開發速度,更適應貼近客戶需求的個性化、差異化設計要求。面對工控市場日益細分的完備體系,嵌入式PLC在DCS、IPC、PLC、單片機的交叉市場中具有廣闊的應用前景。
下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV