【正文】
基于嵌入式芯片組的16路PLC的開發(fā)華中科技大學(xué) 孫兆沛內(nèi) 容 摘 要這里介紹了一種新型軟PLC——嵌入式PLC的開發(fā)過程。它基于EASY CORE 嵌入式芯片組,通過軟件來實現(xiàn)所有傳統(tǒng)硬件PLC的控制功能,嵌入式PLC的硬件體系結(jié)構(gòu)不再封閉,用戶可以自己選擇合適的硬件組成滿足要求的PLC。本文介紹的是最基本的16路數(shù)字量輸入輸出通用PLC的開發(fā)。關(guān)鍵詞:嵌入式PLC芯片組 實時內(nèi)核 用戶驅(qū)動接口ABSTRACTHere introduces a new development of SoftPLC——Development of Embedded PLC. It is based on the Easy Core embedded chipset,which achieves all the traditional hardware PLC control functions by hardware system structure of embedded PLC is not can choose the appropriate hardware to constitute the PLC that meet the requirements .This article describes the development of the most basic 16channel digital input and output mon PLC.KEY WORDS:Embedded PLC chipset Realtime kernel Userdriven interfaces 前言如今工業(yè)控制產(chǎn)品已發(fā)展到一個追求個性化、差異化的階段。傳統(tǒng)的PLC產(chǎn)品已經(jīng)無法滿足更加細(xì)分化的市場需求,究其本質(zhì)原因,不是梯形圖語言,而是PLC的硬件不夠靈活。為了滿足這種需求,嵌入式PLC產(chǎn)品應(yīng)運而生。它以PLC梯形圖語言為內(nèi)核,強化過程控制的運算能力,提供開放式擴展結(jié)構(gòu),增加網(wǎng)絡(luò)互連功能。它融合嵌入板的特殊要求,發(fā)揚PLC梯形圖語言優(yōu)勢,為特定對象控制問題的解決提供了一個通用開發(fā)平臺。 基本原理嵌入式PLC是將PLC系統(tǒng)軟件構(gòu)建于控制器內(nèi),根據(jù)用戶控制需要定制硬件,以PLC的應(yīng)用方式解決對象控制問題的PLC。它由兩部分組成:嵌入式PLC內(nèi)核和嵌入式PLC芯片組。 嵌入式PLC系統(tǒng)軟件嵌入式PLC系統(tǒng)軟件以PLC梯形圖語言為內(nèi)核,強化過程控制的運算能力,提供開放式擴展結(jié)構(gòu),增加網(wǎng)絡(luò)互連功能。它融合嵌入板的特殊要求,發(fā)揚PLC梯形圖語言優(yōu)勢,為特定對象控制問題的解決提供了一個通用開發(fā)平臺。該系統(tǒng)軟件具有以下特點:,添加了中斷管理系統(tǒng),能實現(xiàn)PLC無法實現(xiàn)的硬實時操作。,增加了CANBUS函數(shù)庫、浮點數(shù)庫、專家自整定PID、嵌入式WEB等,豐富了PLC的功能。,支持第三方開發(fā)擴展單元的接線。,在遠(yuǎn)程端加載專用瀏覽器后,即可實現(xiàn)遠(yuǎn)程監(jiān)控。系統(tǒng)軟件包括三個部分。 嵌入式PLC內(nèi)核它完成實時任務(wù)調(diào)度、梯形圖語言解釋、執(zhí)行、通訊等基本功能,并提供二次開發(fā)驅(qū)動接口; 二次開發(fā)驅(qū)動程序 通過系統(tǒng)軟件提供的外掛任務(wù),使用內(nèi)核開發(fā)各種面向具體對象個性化、差異化的驅(qū)動程序;用戶驅(qū)動接口是為滿足用戶DI/DO、AI/AO處理及用戶專用功能(如高速對象)設(shè)計而準(zhǔn)備的用戶程序嵌入接口,包括七個基本嵌入接口及多個中斷入口。七個基本嵌入接口如下: 用戶I/O口配置程序:根據(jù)設(shè)計的輸入輸出功能配置相應(yīng)的端口,用戶不可配置的I/、PPP7及UART0。內(nèi)核程序中已對串口1和CAN口(有CAN時)配置,內(nèi)核中串口1配置為OC輸出,當(dāng)需要SPI功能或配置串口1為電平輸出方式時,必須對串口1重新配置,此程序在內(nèi)核重新上電后調(diào)用一次。 用戶上電初始化程序:用戶嵌入程序中用到的輸入輸出變量,中間變量,指針變量,位變量等以及IO、AD、DA,定時、計數(shù),SPI,SMBUS,高速計數(shù),高速輸出,外部中斷等外設(shè)功能在重新上電后必需進(jìn)行初始化處理,此程序在內(nèi)核重新上電后調(diào)用一次。 用戶運行初始化程序:內(nèi)核重新上電后第一次運行梯型圖或內(nèi)核從下載梯型圖狀態(tài)進(jìn)入梯型圖運行狀態(tài)時調(diào)用此程序一次,此程序必須使用戶嵌入程序中用到的變量及CPU(C8051F040/020/120)外設(shè)處于所需要的狀態(tài)。 用戶設(shè)置初始化程序:內(nèi)核重新上電后進(jìn)入梯型圖下載狀態(tài)或內(nèi)核從梯型圖運型狀態(tài)進(jìn)入梯型圖下載狀態(tài)時調(diào)用此程序一次,此程序必須使用戶嵌入程序中用到的CPU(C8051F040/020/120)外設(shè)處于所需要的狀態(tài)。 用戶每步執(zhí)行程序:梯形圖每執(zhí)行一步,即調(diào)用此程序一次。需要快速執(zhí)行的事件可在此程序或用戶中斷程序中完成,內(nèi)核周期性地調(diào)用此程序。 :需要定時采樣的流程可放在此程序中完成,但該段程序代碼執(zhí)行時間必須小于50 US。數(shù)據(jù)處理程序不宜放在此段程序中執(zhí)行。 用戶演算周期掃描程序:所有梯形圖執(zhí)行完后,即調(diào)用該程序,調(diào)用周期為梯型圖演算周期,一般的數(shù)據(jù)處理、開關(guān)量輸入/輸出的刷新及代碼執(zhí)行時間較長的程序均放在此程序中執(zhí)行。 中斷入口:。其中系統(tǒng)中斷是用戶不可干預(yù)的,用戶中斷則是用戶通過中斷完成與系統(tǒng)實時上異步的各類事件處理。USERCONFIG、USERSTART、USERSETINIT、USERRUNINIT為四個非實時部分嵌入的程序,而USERSTEP、USERSCAN、USERTMS則直接影響系統(tǒng)的實時性,用戶另行嵌入的中斷在異步狀態(tài)下占用CPU時間,其調(diào)度上建議如下:① USER_STEP: 處理100us級軟實時任務(wù)② USER_SCAN: 處理I/O、AI/AO③ USER_TMS: 處理硬實時任務(wù),程序占用時間應(yīng)小于40us④ 用戶中斷