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