7
上海西门子模块代理商CPU供应商
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为用户软中断任务占用时间和。
“扫描周期”指解释、执行所有梯形图指令并执行扫描结束处理所占用的时间,由于这期间有并发任务产生,“扫描周期”应包括并发任务占用时间。
并发任务占用比:
X=T并/1ms=(150μs+ΔT+)/1000μs=15%-**
设用户梯形图含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-X177128点位型
·输出继电器Y:Y0-Y177128点位型
·中间继电器M:M0-M15351536点位型
·中间继电器M8000-M8255256点位型
·状态继电器S:S0-S9991000点位型
·时间继电器T:T0-T255256点位型+字型
·计数器C:C0-C255256点位型+字型
·通用数据寄存器D:D0-D79998000个字型
·数据寄存器D:D8000-D8255256个字节
所有PLC资源是梯形图运行时进行数据存取的区域,是终端应用层可视化区域,用户嵌入的驱动程序,可使用对应元件的地址进行存取,实现了嵌入程序与PLC梯形图之间的数据交换。
(3)用户嵌入数据区
当用户以EASYV1.00内核设计各种嵌入系统时,需针对具体硬件做必要的驱动程序,该部分程序的私有数据存放于用户嵌入数据区,公有数据存放于PLC的资源区,用户嵌入数据区分配如下:
CPU内部:位区(bitRAM):20H-23H4bytes
字节区(DRAM):58H-67H16bytes
外部数据存取器:字节区(XRAM):3600H-3FFFH2560bytes
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条件跳转浮点数运算ECMP2进制浮点数比较
CALL子程序调用EZCP2进制浮点数区域比较
SRET子程序返回EBCD2进制浮点数转10进制浮点数
FEND主程序结束EBIN10进制浮点数转2进制浮点数
FOR循环范围开始EADD2进制浮点数加法
NEXT循环范围结束ESUB2进制浮点数减法
传送与比较CMP比较EMUL2进制浮点数乘法
ZCP区域比较EDIV2进制浮点数除法
MOV传送ESQR2进制浮点数开方
CML取反传送INT2进制浮点数转BIN整数
BCDBCD转换FLTBIN整数转2进制浮点数
BINBIN转换接点运算LD=读取“等于比较节点”
四则逻辑运算ADDBIN加法LD>读取“大于比较节点”
SUBBIN减法LD<读取“小于比较节点”
MULBIN乘法LD<>读取“不等于比较节点”
DIVBIN除法LD≦读取“小于等于比较节点”
INCBIN加1LD≧读取“大于等于比较节点”
DECBIN减1AND=串联“等于比较节点”
WAND逻辑字与AND>串联“大于比较节点”
WOR逻辑字或AND<串联“小于比较节点”
WXOR逻辑字异或AND<>串联“不等于比较节点”
NEG求补码AND≦串联“小于等于比较节点”
SQRBIN开方AND≧串联“大于等于比较节点”
循环与移位ROR循环右移OR=并联“等于比较节点”
ROL循环左移OR>并联“大于比较节点”
RCR带进位循环右移OR<并联“小于比较节点”
RCL带进位循环左移OR<>并联“不等于比较节点”
OR≦并联“小于等于比较节点”
OR≧并联“大于等于比较节点”
(4)指令(1条)
助记符名称
PID算法
2.5EASYV1.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.
lRS485网络连接端口
在运行(RUN)状态下,作为RS485主从式网络的数据交换接口.
该接口网络通信协议由内核自动加载,遵循该协议的子节点可自动连入该网络.如运动控制器的扩展键盘连接.
(3)CANbus通信
EASYV1.00内核含CANbus现场总线通信协议,在CAN2.0B基础上,加载了的主从式结构的高层协议,借助梯形图语言,对CANbus占用的PLC资源进行管理(CANbus文件寄存器)即可实现CANbus互连。
2.6函数调用
EASYV1.00系统提供嵌入驱动程序函数调用,为嵌入程序设计系统提供了EASYCORE.LIB函数库,用户在嵌入时,只要包含该文件(includeEASYCORE.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、单片机的交叉市场中具有广阔的应用前景。
1 存在的问题
在水泥生产线上的各个控制环节,PLC作为局部工艺线控制单元的应用已不胜枚举,比如窑、磨的辅助控制,各类高低压电动机的控制、各类除尘设备的控制、各类仪表检测单元的控制等等。但在应用的过程中,不少企业尤其是中小企业经常遇到以下问题:一是控制装置大多是配套供应商开发的成套装置,配套的说明书都比较简陋,操作方面的内容较为详细,但对PLC的配套原始资料和梯形图(时序)则往往不予介绍提供,一旦出现问题 ,企业自身技术人员则往往束手无策;二是所选用的PLC基本上是进口产品,器件出现硬故障后订购周期较长,容易影响生产,而就近所能购置到的又往往不是原来,受自身设备水平限制难以实现自我替换;三是各企业电气维护人员水平参差不齐,中小企业的技术人员大多不具备一定的时序编制基础,没有相当的调试能力,对软故障的处理常无可奈何;四是所用PLC较多,难以配齐手操编程器;五是个别供货商借机敲诈,以站不住脚的“保护知识产权”为由索要数倍的,企业难以承受。其实,从PLC本身而言,只不过是一种在当今电气控制领域运用相当普遍的器件而已,已不再是不可掌握的高技术产品。以下笔者结合自身经历介绍PLC替换的一些经验和具体事例。
2 PLC概述及替换基本原则
工业用PLC的部件是CPU及内存RAM、电源板(DC12/24V)、电池、接口模块、继电器(无触点开关)等,一般还包括发光管/显示屏、I/O输入输出端子、程序模块和PC电缆的接口、键盘等。现在水泥生产线上通常应用的PLC分为两个大类:一是功能较单一、结构简单的小型(基本型)PLC,无I/O扩展能力;二是功能强大、点数较多、带有扩展槽的的中、大型PLC,有I/O扩展能力。在中小型水泥生产线和自动化水平不是很高的自控场合,基本上采用小型PLC,特别是单机除尘器、大风机调速控制、预热器吹堵清灰等控制功能单一的环节,小型PLC的应用十分普遍。从PLC的来看,西门子、三菱、欧姆龙、AB、ABB等用的比较多;从结构性能来讲,大同小异,但互换性存在一定的问题。当确定在用的PLC本体出现故障时,我们要判断出所出故障是硬件受损还是软故障,软故障可采用手操编程器和PC机依照程序(梯形图)进行诊断恢复,硬件受损换受损部件甚至是整台PLC。在整台换过程中要注意几个问题:要考虑选用同一同型号的,PLC不同于一般开关控制电器,需将所需时序通过PLC通讯口输入后方能投入使用,这要配备OP(手操编程器)和PC机方能实现,这是普通维护人员办不到的;其次要考虑在没有同型号的情况下选用功能相近的同一的替代,若没有同一的则选用功能相近的不同的,但要特别注意电源电压等级一致性,I/O口数量不得少于原配PLC,原来应用所编时序可在新换PLC上运行,还有必要的外围电路的相应改造等等。
3 Φ3.5/3m×60m窑窑尾玻纤袋除尘器PLC的替换实例
2001年5月,我厂Φ3.5/3m×60m余热发电窑窑尾玻纤大布袋除尘器控制柜内元件——美国AB公司生产的固定式PLC(SLC5001747-L30C)出现故障,经有关技术人员诊断CPU板损坏,除尘器只能手动操作,经与供货商联系,因国内无、供货周期太长、要价太高而只能作罢。
玻纤袋收尘控制PLC原工作顺序如下:
1)PLC上电自检完毕后,按照卸灰1室→卸灰2→卸灰3室→卸灰4室,依次类推到8室,卸灰基准值为3min,每室工作间隔5s,卸灰完毕后,反吹风机启动,持续30s。
2)进入清灰状态
室排气反吹阀开启,然后零阀开启,反吹基准值为30s,零阀关闭延续1min沉降粉尘,然后室排气反吹阀关闭。
二室排气反吹阀开启……依此类推持续到八室。
3)各室清完灰后进入大间隔30min,而后进行再次循环重复以上工作。
我们在此情况下决定选用就近可以购买得到的三菱PLC替代,重新编程并对外围电路加以局部改造,具体改造方案概述如下:
1)根据AB公司SLC500的结构特点、供电电压(AC120/240V双组)和除尘器控制所用实际I/O口的数量,决定选用三菱公司的MELSECF1-60MR(AC110/220V)取代,其各项指标能够满足要求。
2)重新编制时序(略),并根据车间要求将PLC工作时序加以改动,具体改动如下:卸灰状态在重复4遍后再进入反吹清灰状态,清灰完毕后取消大间隔30min而直接再进入卸灰状态,如此进行工作循环



本文以实现粮油工业榨油厂自动控制为目的。在GE Fanuc自动控制技术平台上进行了系列90-70 PLC及CIMPLICITY程序的开发,其在于PLC程序和上位机程序所用的中间变量有Excel表的宏程序自动生成后,导入编程软件Proficy Logic Developer – Machine Edition和组态软件Proficy HMI/SA - CIMPLICITY中,这样在节省了大量的建立变量的时间的同时也是得建立变量时的错误率降低了很多。同时在PLC程序和上位机程序编制过程中运用了面向对象的编程方式,使同类设备程序开发过程方便很多,节省50%的开发时间,上位机程序开发过程中运用了大量的脚本程序,同时也用到了“类”,比单纯的组态功能加强大方便,且方便用户使用。
本文从榨油厂工艺开始,结合实际施工情况对其工艺过程进行了详细的分析及描述,并在熟悉工艺图的基础上,完成了对所需设备的统计,根据系统的特点选择了GE Fanuc自动化解决方案。其是同类型的设备量很大,所以程序量也很大,如果按普通的编程方式,将会浪费大量的时间在变量的建立以及结构相同的程序上。所以在这里我用带有宏程序Excel表解决了快速变量建立的问题,“类”的应用解决了结构相同的程序的问题。其难点是VB脚本的开发和带有宏程序Excel表的开发。后本系统现场调试成功,且长时间运行稳定,PLC程序和上位机程序可读性、可维护性、可移植性也相应的增强。
关键词PLC;调用子程序;类;上位机;组态; SA
引言 益海集团是由新加坡丰益集团和世界企业——美国ADM公司控股, 旨在全力打造大型综合粮油加工企业,前期成功运作了“福临门和鲁花”两大食用油,目前益海集团已在国内直接控股工厂和贸易公司35家,并参股鲁花等多家国内粮油加工企业,工厂遍布河北、山东、江苏、福建、广东、广西、四川、湖北、湖南、新疆、宁夏、黑龙江等地区,贸易公司及办事处覆盖除西藏和港、澳、台地区外的全国各省。拥有“口福”、“丰苑”、“益海”及“莎妮雅”四大,蛋白和油脂两大产品系列,包括小包装等各类精炼食用油、大豆蛋白、起酥油、人造奶油、脂肪酸以及磷脂等60多个品种的产品,是国内实力的油脂、油料加工企业集团。其榨油技术是由美国ADM公司提供的,以前ADM公司旗下榨油厂的控制部分大都是由荷兰imtech公司所设计,所以在这里我也借鉴了这些成功的案例,沿用了imtech开发的部分PLC程序和上位机程序。整个PLC程序和上位及程序的开发过程在以后几章我们将会详细的讨论。我向大家介绍一下榨油工艺。在榨油系统,主要分为两个车间:一、预榨车间,榨油前对大豆的预处理;二、浸出车间,用溶剂浸出大豆中的油脂成份。
工艺
预榨:
顾名思义就是榨油前对大豆的预先处理,在各个环节对大豆处理的程度对后续工序起着至关重要的意义,主要是对加热温度、湿度的控制以及对压胚质量的控制,在此过程中用到了大量的PID算法,以及其他对模拟量处理的算法,所以对PLC的浮点运算能力要求很高。
用一个直观的图表来描述预榨车间的概况。
预榨工艺
浸出:
,由预榨车间过来的白豆片浸入出器,用浸出溶剂正乙二氨将大豆中的油脂浸出,由浸出器出来的物质分成两种形态,一种是液体,一种是固体。
其中液体是正乙二氨和油的混合物,这些混合物进入蒸发塔进行三次蒸发,这样便把正乙二氨从油脂中分离出来了。
而固体则是混有正乙二氨的大豆蛋白,这些大豆蛋白经过低温脱融或是高温脱融后便成了蛋白含量大约50%的食用蛋白。这则是根据客户的要求来进行处理,如果需要高含量的蛋白,则需要到SPC(酒精浸出)车间进一步加工。
用一个直观的图表来描述浸出车间的概况。
浸出工艺
GE Fanuc的解决方案
由于在整个大豆加工过程中用到了大量的模拟量调节、浮点计算等。我们在比较了Quantum, SLC, SIMATIC S7-400系列,GE Fanuc系列90-70 PLC后,综合考虑到硬件性能及网络和软件方面的功能后,终选定系列90-70 PLC和Proficy Logic Developer-Machine Edition编程软件、Proficy HMI/SA-CIMPLICITY组态软件。我简要讲述以下选择她的理由。
硬件方面:
(1) 结构紧凑单槽的CPU模块,在CPU模块中有两个主要的处理器。一个是inbbb微处理器用于处理一些模拟量或特殊功能控制。另一个是布尔运算协处理器用于执行高速的开关量控制。(在我们的整个系统中用到了大量的PID调节)
(2) 系统机架采用标准的VME总线结构。可安装过300家的三厂VME标准模块。(我们要与Mettler-toledo的大豆称通讯)
(3) 系列90-70PLC I/O容量大为12288点,模拟量8192点。
(4) CPU内存从512K子节到6M字节。
(5) 具有高密度(32点)的AC/DC输入/输出模块。
(6) 简易的模块卡子,可防止促无安装模块。
(7) 具有标准的硬件方式。可响应开关量或模拟量中断输入。可处理64个事故中断和16个时间中断。
(8) 和方便的系统和模块自诊功能,且易故障排除。
(10)在CPU模块内部有电池支持内部时钟和日历。
(11)具有Genius分布式I/O模块子系统和Field Conrol系统配置。(处控制室外,在现场有按钮柜方便的用到了Genius分布式I/O模块子系统)
软件方面:
(1)为了解决本系统中大量同类型的设备,程序量也很大的状况,如果按普通的编程方式,将会浪费大量的时间在变量的建立以及结构相同的程序上,用的Proficy Logic Developer-Machine Edition (简称ME)采用结构化的编程方式,同时中间变量由Excel宏程序自动生成后导入PLC编程软件中,这样为我节省了大量的时间。
(2)Proficy HMI/SA-CIMPLICITY作为上位机程序的开发工具,其功能本人认为西门子的WinCC相似,但是Proficy HMI/SA-CIMPLICITY有它加强大的VB脚本系统,他为“类”的开发奠定了坚固的基础,它是灵活的可伸缩的,可以适合单位的人机界面到网络化的监督控制和数据采集系统。在产品的各层次上都具有互联的功能,这是我们能够获得各个层次的集成而不需要在一个网络中进行重复组态。Proficy HMI/SA-CIMPLICITY是由服务器和浏览站组成的基于客户服务器体系结构的系统,服务器负责数据的采集和分配,浏览站可对采集到的数据进行访问以便观察和控制。服务器和浏览站可以很得通过网络连接在一起的共享数据甚至都不需要从一个点到另一个点复制你的点数据库,例如,数据点只需要组态一次而且只需要在服务器商进行一次组态。屏幕画面也只需在网路中的一个位置上进行开发和储存,而网络上的其它的Proficy HMI/SA-CIMPLICITY显示系统都可以对他访问。