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