工控网首页
>

应用设计

>

一种带操作系统的可编程计算机控制器

一种带操作系统的可编程计算机控制器

1 引言

  随着工业的不断发展和生产规模的不断扩大, 控制任务的复杂程度和控制系统的智能度越来越高, 控制系统不仅要在硬件上而且还要在软件上实现模块化设计, 并且由系统来对这些模块进行智能化管理。同时, 由于计算机技术、通信技术的飞速发展, 工业控制系统也逐渐朝着网络化的方向发展, 这不仅要求同一厂家的产品之间能够进行通信, 而且还要求不同厂家的产品之间能够相互通信, 以满足现代控制系统对开放性和互可操作性的要求。

  可编程计算机控制器(PCC) 是贝加莱公司推出的集计算机技术、通信技术、控制技术为一体的新型工业控制装置。与传统的PLC 相比, PCC 具有明显的优势: 融合了大型计算机的分析运算能力, 使控制系统的智能性得到明显的提高; 具有分时多任务的操作系统, 实现了多个应用程序的并行运行和应用软件的模块化设计;具有强大的网络通信能力, 通过现场总线技术可以很方便地进行组网, 从而形成分布式控制系统, 实现工厂自动化(FA);除了标准的网络通信协议外, 通过帧驱动器(Frame Driver) 可以很容易地制作任意第3家的串行通信协议; 具有Window 和DOS 平台的2 套编程系统, 并且可以采用高级语言作为编程语言, 使新产品的开发或旧产品的改造变得轻松自如。PCC 在塑料、包装、印刷、造纸等许多行业中得到了广泛的应用, 极大地提高了这些行业的生产效率和产品的质量。本文针对上述情况, 详细介绍了贝加莱PCC 的产品特点和技术优势。

2 PCC 的分时多任务操作系统

  由于现代工业控制的需求, 一个大型复杂的任务往往需要分成不同的任务模块, 各任务模块分别完成管理、控制、现场的数据采集与处理以及各控制站之间的通信等功能。一个系统在完成之后, 常常需要扩容, 在不改动原有硬件的基础上,系统硬件以模块方式加以扩展, 同时系统的原有软件也不能改动, 新的软件也应以模块方式添入。这些都需要分时多任务操作系统的支持。贝加莱的PCC 是配有分时多任务操作系统的典型代表。

  每个任务都是一个独立的应用程序, 可有许多不同的功能(数字量和模拟量的互相连锁、控制、定位⋯⋯)。多任务就是多个应用程序, 它们是由PCC 的操作系统来管理的, 并且这些应用程序能在PCC 中同时运行。

2. 1 分时多任务操作系统的特点

  PCC 的软件可分为系统软件和应用软件2大类。PCC 的操作系统是一个分时多任务的操作系统, 它是系统软件的核心, 负责管理多个任务的并行执行。PCC 提供了8 个具有不同循环时间不同优先级别的任务等级, 用户可以根据实际需要,为每个任务设定各自的循环时间和优先级别。PCC 的多任务操作系统具有如下特点。

1) 一个完整的复杂项目可分成多个独立的任务来完成, 每个任务都是独立的程序, 可以完成各种不同的功能, 真正实现软件的模块化设计。
2) 多个任务能在PCC 中并行运行, 并且不同的任务等级具有不同的优先级, 保证了较为重要的任务能够首先被执行。
3) 用户可以按需要设定每个应用程序的循环时间和任务等级。
4) 对于特殊任务的响应时间不受完整程序循环时间的限制。
5) 每个任务采用合适的编程语言来建立。
6) 新任务可以模块式地随时添加到系统中,而不影响原有程序的运行。

2. 2 多任务的组成

  应用程序是由PCC 的操作系统来管理的, 而多个应用程序可在PCC 中同时运行。这些应用程序可分为2 类: 循环任务和非循环任务。

2. 2. 1 循环任务

  PCC 的循环任务由8 个不同循环时间不同优先级别的任务等级组成, 可分为2 种不同的任务层: 标准任务层(TC) 和高速任务层(HS)。标准任务层的任务是由系统管理器(操作系统) 来激发的, 而高速任务层是由硬件定时来激发的。

  多任务的执行顺序是由各任务层的优先级确定的, 优先级高的任务可以中断优先级低的任务。各任务层的优先级如表1 所示。

表1 各任务层的优先级


  为了使各个PCC 任务具有不同的优先级, 用户可以将它们设置在不同的任务级别中, 并且给每个任务等级设置不同的循环时间, 在设置的循环时间内, 相应的任务被执行1 次。那些较为重要的任务和对时间要求较为严格的任务可以放在具有较高优先级别和较短循环时间的任务层中, 保证它们能被优先执行, 以满足工业现场的需求。

  例如, 一个由PCC 来完成的多电机同步传动控制系统, 如图1 所示。

图1 多电机同步传动系统

PCC 中有4 个任务:
 
①负责完成现场数据的采集, 对实时性要求最高, 应具有最高的优先级;
②负责完成同步控制算法和PCC 与现场控制设备之间的通信, 是非常重要的任务, 对实时性要求也很高, 应放在较高的任务等级中;
③负责完成数据显示, 对实时性要求不高, 但运行时间较长;
④负责完成通信功能, 实现PCC 与工控机、人机界面等监控设备之间的通信, 要求尽可能地快。系统中运行的不同任务如表2 所示。各任务的循环执行过程如图2 所示。

表2 系统运行任务

图2 各任务的循环运行过程


  
由图2 可知:
①TC# 1 在标准任务中有最高的优先级, 接着是TC# 2, TC# 3, TC# 4;
②高优先级的任务中断低优先级的任务, 保证较为重要的任务能够首先被完成。如果该系统由普通的PLC 来实现, 系统中各个任务都在同一个循环周期中, 由于任务
③占用的循环时间较多, 整个系统的循环时间将大于任务①所要求的循环时间, 这就难以保证任务①的实时性。

2. 2. 2 中断任务和例外处理任务

  所有的循环任务等级(TC# 1…TC # 4, HS# 1…HS# 4) 都是基于时间的任务, 系统管理器或硬件时钟根据分配给每个任务等级的循环时间在各任务之间转换。还有另一种完全不同的、基于事件的任务等级, 也就是说它们不是根据时间片相互转换, 仅当有特殊事件触发时才被执行。在PCC 中, 基于事件的任务等级有2 类: 中断任务等级和例外处理任务等级。

  中断任务是硬件触发的事件, 它可以中断当前的循环任务。仅当系统中装配有中断能力模块时, 中断任务才能被触发。中断任务等级的优先级高于所有的高速任务等级和标准任务等级的优先级, 但可以被具有最高优先级的例外处理任务中断执行过程。其工作方式的执行过程如图3 所示。例外是1 个由系统产生的信号, 表明一种严重的特殊错误状态, 它们实际上是由系统产生的一类特殊的中断。例外处理任务等级具有绝对最高的优先级, 它可以中断当前的任何任务。其工作方式的执行过程如图4 所示。

图4 例外处理的执行过程

2. 3 任务调度

  贝加莱PCC 的操作系统允许用户动态地控制各个任务。用户可以随时终止一个当前不需要的任务, 而在需要使用这一任务时, 可再次激活它。这一过程如图5 所示。

图5 挂起任务和激活任务的执行过程

  贝加莱的BURTRAP 功能库中, 提供了很多任务调度函数, 它们可以根据要求指定任务的运行状态, 这些函数包括:
  
ST_ ident    申请任务识别符
ST_ resume       激活一个被终止的任务(永久)
ST_ tmp_ resume  激活一个被终止的任务(暂时)
ST_ suspend      终止(挂起) 一个正在运行的任务(永久)
ST_ tmp_ suspend 终止(挂起) 一个正在运行的任务(暂时)
ST_ allsuspend   终止(挂起) 所有正在运行的任务(永久)

  图5 所示过程, 只要在任务①和任务③中分别加入ST _ suspend ( task2_ ident) 和ST _ resume( task2_ ident ) 函数即可实现上述功能, 其中task2_ ident 为任务②的标识符, 可以通过ST _ident() 函数来获取。

投诉建议

提交

查看更多评论
其他资讯

查看更多

ACOPOS 6D-装配生产新模式

高品质烫金烫出金字招牌

机器制造商:软件视角的系统选择策略

一个软件,多种机型-称重软件整体规划提升出机效率

世界级的采煤装备-来自贝加莱的支持