可编程计算机控制器(PCC)作为一个全新的概念是由奥地利B&R在工控界提出的。无论是内部的硬件功能,还是外部的编程、开发环境,PCC都比常规的可编程逻辑控制器(PLC)有较大的增强和提高。
1 PCC的硬件特点
PCC2005采用的是16位MOTOROLA 68000处理器。它得以使PLC演变到PCC的关键是B&R成功地将PLC的标准控制功能,与工业计算机的分时多任务操作系统集成到了单一的CPU模块之中。这就使得用户可以十分灵活地借助操作系统的调度管理,让多个应用程序(任务)在一个CPU之中并行地运行(周期可由用户设定),从而摆脱了常规PLC上单个程序对硬件时钟的依赖。这一技术突破,对于整个技术项目的开发、运行和维护都有十分重要的意义。
几乎所有PCC的硬件结构中都采用了模块式结构。这一特点使真正灵活自由地扩展成为可能。在PCC上,I/O通道和底板被设计成模块式结构,可以任意插拔;应用程序存储器(APM)也实现了模块化,用户可按照其应用程序的复杂程度,在64K到1M的范围内,经济灵活地选型。
安全性对于一个实时控制系统来说是十分重要的要求,PCC为此在以下各环节上提供了保障:
(1)就数据传输而言,PCC数据总线上各模块不仅经过了各种严格标准的检验,而且,PCC的基板总线上还设计了一套完整的局部总线协议,以保证不正确数据无法传输。
(2)为防止模块式硬件安装运行的各种意外情况出现,PCC不仅为用户提供了除电源和CPU模块之外的所有模块的带电拔插功能(硬件无损坏、软件自动处理不死机),而且可以在PCC上电时,按照实际插入底板的模块,实现系统硬件的动态配置和出错处理。
(3)借助于电池和金箔电容的保护,PCC系统RAM中的数据(程序)最长可以确保3年不会丢失。
与当今工业控制器的发展趋势相适应,PCC系统硬件组态的开放性十分彻底。不仅实现了B&R品牌自身各型号产品的自由扩展与互联(本地、远程扩展、联网),而且提供了对其他厂家众多牌号产品的网络协议的支持。如AB Data Highway、Modbus、SinecL1等,都可以通过PCC统一在标准现场总线Profibus、CAN等的MAP之下。另外,PCC还提供了通用的串行通信驱动器——帧驱器(Fram Driver),用以创建用户自己的协议。
2 PCC编程软件的特点
PCC采用通用的PC机作为在线编程开发工具,编程软件为一个多窗口界面的集成开发环境,程序结构设计采用一种称为GDM(Graphic Design Method)的图形设计方法进行模块设计。它将整个项目(应用程序)划分为项目、处理器和任务等不同层面,各个层面上均采用GDM图形方法设计各模块之间的结构关系。GDM为编程者在对项目总体的把握上提供了一个强有力的工具。
PCC的编程语言可以采用常规PLC的梯型图(LAD)和指令表(STL),这两种是广为PLC开发人员熟悉的低级语言;PCC还设计了一套基于文本的面向控制的结构化高级语言——PL2000,使得程序设计者对复杂控制过程的描述变得非常直观、精练。上述三种语言,再加上PG2000提供的各种函数功能块(FBK),在项目开发时,可以根据任务模块自身的特点而自由选用。
PCC的编程软件包PG2000的调试查错和在线帮助功能十分强大。运用Debugger和PV——monitor工具,可以实现源程序级的单步、多步、单周期和连续运行调试以及过程变量的监视和修改。PG2000的在线帮助功能具有含义敏感性,即编程者可以在任何状态下,随时获取所需的帮助信息。另外,PCC还模仿大型机操作系统,设计了错误登录功能,将所有关键性错误和外界对系统的干涉,连同相应的时间标记在一起,登录到错误信息模块中。
3 PCC工程设计应用举例
这里,以齐鲁大厦的楼宇消防自动化(FA)系统为例,说明PCC在工程设计中的应用及所独具的魅力。
3.1 工程要求概述
该大厦共有33层楼面,大小厅室数百个。共分布烟雾火警探头近2000个;控制各楼层通风机、防火门、消防泵和总电源开关等需高达77个开关量;另外还有158个用于测试工作方式下的控制按钮。在兼顾工程短、成本低的前提下,PCC2005被选用。
3.2 系统硬件设计
鉴于整幢大厦近2000个火警烟雾探头的分布特点,PCC的硬件系统采用了远程扩展的方案;地面楼层设一个主站,位于集控室的电控箱之内。在地面以上的2、6、12、18、24、30楼层分别设立6个从站,控制一定楼层范围内的消防设备。主站和从站之间通过主站的一块远程扩展主模块驱动;而各从站之间则通过集成于电源模块内的远程扩展驱动口联接而成。
输入信号的处理:出于经济性的考虑,该FA系统的各个火警探头的状态信号并不是直接被PCC的I/O模块读到的,而是采用一套由德国EFF公司引进的消防探头的前端读入装置读到的。它安装于集控室之内,以固定的扫描周期监测整幢大厦的所有探头状态。在每个扫描周期结束时,将监测结果通过RS232串行口,送至PCC系统处理。而这期间的通信协议,则通过B&R的帧驱动(Frame Drive),由编程者自动创建。
另外,为满足对所有消防设施测试的需要,该系统在集控室内设有一块控制面板,用158个按钮控制各种消防设施在系统测试方式下的工作状态。为此PCC在主站上配置了5块数字信号输入模块D1477。
输出信号的处理:该系统的输出大体分成两路。一路是用以驱动对应于每一个火警探头的LED指示灯,同样出于经济性的考虑,该系统采用了数套解码电路,间接驱动每一个LED的明灭状态,大大减少了众多的LED对PCC数字量输出通道资源的占用。另一路输出信号则用以直接驱动各种消防设施,鉴于驱动电流要求的不同,系统在主站和各从站上分别配置了晶体管输出模块DO479和继电器输出模块DO650两种数字量信号输出模块。该FA系统结构图如图1所示。
3.3 系统软件设计
由于采用了PCC这一高于常规PLC的硬件平台,基于其CPU上分时多任务的操作系统和PG2000编程软件包所提供的灵活多样的支持,整个系统的控制程序采用PL2000高级语言和LAD(梯型图)混合编制,由多个任务组号不同的并行任务模块协同完成。在PG2000的GDM任务层中,各任务模块流程图如图2所示。
其中,方框内为GDM任务层中的任务名称,椭圆框内为与任务相关联的全程数据变量。并行推进的各任务的具体实现,分述如下:
eff-read任务模块 用PL2000编制,其功能是通过PCC串行接口,建立与前端装置eff的通信,获取表示整个楼宇火警探头状态的字符序列信息,并将结果置于PCC的内部字符串变量effstr中,两者之间的通信协议是由PG2000软件包中提供的Frame Driver,由用户自行创建的。
eff-chk任务模块 用PL2000编制,其功能为处理从串行口接收到的eff发来的字符串,在“Alarm”、“Reset”、“Initialize”及打印状态下,分别做出相应处理。出现报警时,从字符串中取出报警探头位置信息,并将代表所有探头状态的全程数组变量DB的相应元素置1。
LED-s 任务模块 用PL2000编制,其功能是监测PCC各站所辖的探头是否报警。出现报警,则将相应的楼层与探头号送到外部解码电路。
F-GEN任务模块 用PL2000编制,其功能是监测PCC各楼层所辖的探头是否报警。出现报警则将相应的楼层火警标志置1,否则清零。
F-RELAY任务模块 用LAD编制,其功能为按用户要求及所有消防设施的分布情况,按楼层火警标志,启动相应的消防设施。
initproj任务模块 用PL2000编制,该模块为整个控制程序的初始化模块,用以对所有全局变量的初始化,与上述任务模块不同的是,该任务模块仅在FA系统启动时执行一次。
PCC是一种较PLC更高层次的、专为中小型控制项目设计的计算机控制器。由于它集标准的PLC和工业控制计算机性能于一体,既具有高度结构化的硬件设计,又具有多任务分时操作系统,因而提供了更强大的数据运算和处理能力。它不仅可以用梯型图(LAD)和指令表(STL)编程,而且提供了对结构化高级语言(PL2000)的支持而具有灵活自由的联网和扩展功能。齐鲁大夏的FA系统发挥了PCC的软硬件优势,大大减轻了系统开发强度,缩短了开发周期,现正处于良好的运行状态。