摘要:本文通过对经典控制器的分析,提出了嵌入式PLC的概念,重点以EASYV1.00嵌入式PLC软件内核结构作基本分析,以引导工控设计人员建立一种新的嵌入式系统设计理念。
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)终端应用程序指面向工艺流程控制的梯形图语言编程;
对于二次开发人员开发面向个性化对象的驱动程序,必须了解嵌入式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为用户软中断任务占用时间和。