SoftPLC技术及其在过程控制中的应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SoftPLC技术及其在过程控制中的应用
2006-9-13
一、前言
SoftPLC技术被称为用于PLC的软逻辑控制技术。

SoftPLC系统采用纯软件的方式使得兼容PC的硬件能够完成实际PLC的逻辑控制工作。

通常这意味着PC在运行的时候其自身已经成为一个专用的控制器,进而失去了大多数用户界面的功能。

然而,有些SoftPLC使用一块带微处理器的功能模块置于PC总线之上的方式来完成PLC的逻辑控制功能,同时与宿主PC共享内存中的实时数据。

此外,当系统正在运行操作员界面(OI)等程序时,其他一些SoftPLC利用一个实时环境使得宿主PC能够有部分时间去处理相应的控制逻辑。

为了更好地描述和体现SoftPLC技术的特点,本文将结合美国ICONICS公司开发研制的软逻辑控制组态软件ControlWorX 32加以介绍,以供同仁参考。

二、 ControlWorX 32组态软件
ControlWorX 32是美国ICONICS公司开放研制的GENESIS 32系列工业控制组态软件之一,GENESIS 32工业控制组态软件还包括GraphWorX 32(用于图形化人机界面开发的组态软件)、TrendWorX 32(用于实时和历史数据记录管理的组态软件)、AlarmWorX 32(用于报警和事件记录管理的组态软件),以及 OPC ToolWorX(专用于OPC设备驱动程序开发的工具软件包)等。

ControlWorX 32是一个完全基于IEC 1131-3标准的开放性控制系统应用程序组态软件,同时也是Windows NT平台下的基于OPC技术规范连接的开放性控制系统容器。

兼容于现有的工业标准,能够非常方便地满足建立、测试、调试PLC软逻辑控制程序和生产过程控制应用,为基于坚固Windows NT的实时过程控制应用提供了广泛的连接特性。

ControlWorX 32图形化控制组态工具提供了全套符合IEC 1131-3标准的程序设计语言。

所要求设计的控制系统应用程序可以采用五种IEC 1131-3标准程序设计语言的一种,或者任何几种语言的混合体。

ControlWorX 32提供了先进的IEC工程管理方式和开发工具包,也提供了一种坚固的运行程序内核和一套完善的调试功能,有利于对控制应用程序进行离线测试。

ControlWorX 32采用了一个高性能多任务软逻辑和过程控制引擎,而且运行于Windows NT平台之上,为过程控制应用程序提供了毫秒级的执行时间间隔。

依靠OPC自动化技术规范,很容易集成到任何基于OPC连接的HMI/SCADA系统中去。

另外,只要采用开放性通信技术标准,如Interbus-S、CAN、Profibus、DeviceNet、FF、HART等现场总线技术,也可以非常容易连接到各种现场总线设备和控制装置中去。

如图1所示,该图展现了ControlWorX 32的组成结构。

三、 IEC 1131标准
图1 ControlWorX 32组成结构示意图
十几年前,我们就已经听到可编程控制器(PLC)工业领域内有关标准化问题的争论。

现在争论的焦点则倾向于通过开发和出版标准化的产品,以便能够在各个工业领域内得到交叉应用,正如IEC 1131标准(即众所周知的IEC 61131标准)的出现。

当前,许多PLC和控制系统制造商均将其产品向标准化的方向发展。

并且,相当多的工业用户也仍然面临着是否采用符合IEC 1131标准化工业控制产品的选择。

在1979年,国际电工委员会(IEC)内部的一个工作组已经完成了人们期待已久的可编程控制器(PLC)标准的制定,主要包括硬件设计、安装、测试、文档归类、程序设计和通信。

工作组的目的是为可编程控制器(PLC)的程序设计建立一套一致的编程方式,鼓励人们采用快速的软件开发方式。

这种努力的结果使得开发商、最终用户和生产制造者有一个可以共同依赖的标准,也就是IEC 1131标准。

IEC 1131标准为现有的现场自动化控制系统制定了标准化的多程序设计语言,固定的指令集和不同的编程概念。

常规PLC在应用过程中的最大障碍在于不同的PLC工作平台与不同的PLC生产制造商之间存在着互相兼容性问题,其结果将会导致工业用户在硬件和软件上造成极大的投资浪费。

IEC 1131标准为所有的PLC程序开发定义了标准化的程序设计语言,规范了PLC与程序设计系统之间的接口,不同的工程项目具有相同的程序设计方法和指令集,相同的操作和数据处理,以及程序设计结构。

采用IEC 1131标准进行PLC和程序设计系统开发的最大优点在于所有的操作平台使用同样的编程概念,大大降低了自动化控制系统的费用投入和开发时间周期。

IEC 1131标准主要包含以下五个方面的内容:
第一部分:所描述的为一般信息,主要针对可编程控制器(PLC)及其相关联的外围设备的应用和选择提供一般性的描述,包括对标准条款的定义,相关特征的识别等,即IEC 1131-1标准。

第二部分:设备与测试需求,主要针对可编程控制器(PLC)及其相关联的外围设备提供设备和测试需求,包括对功能特征、服务条件、特征解释、一般性安全信息以及可应用测试的最小要求等,即IEC 1131-2标准。

第三部分:可编程控制器(PLC)程序设计语言,主要针对可编程控制器(PLC)指定一套统一的程序设计语言的语法和语义,即IEC 1131-3标准。

第四部分:用户在线指导,为可编程控制器(PLC)工业用户在开发一个自动化工程项目时提供更好的开发建议和帮助,对系统分析从单元选择到整体维护提供非常有益的注释,即IEC 1131-4标准。

第五部分:通信,主要包含来自于不同生产制造商的可编程控制器(PLC)之间的通信,同样也包括其他使用制造业信息技术规范(MMS)的非可编程控制器(PLC)设备与可编程控制器(PLC)之间的通信,即 IEC 1131-5标准。

IEC 1131标准的前两部分内容在于规定了相应的技术规范,第三部分主要确定了标准化的五种程序设计语言。

IEC 1131-3标准还增加了如下内容的修改:
.变量的声明类似于其他高级程序设计语言中的变量声明;
.数据类型的声明成为可能;
.可以进一步区分全局数据变量和局部数据变量;
.程序设计全部采用助记符形式进行开发。

四、 ControlWorX 32组态软件技术特点
ControlWorX 32组态软件包含开发和运行两部分。

系统开发部分可以运行于Windows 95/98或者Windows NT平台之上;而运行环境只能置于Windows NT平台之上。

如图2所示的开发环境人机界面。

与大多数基于IEC 1131-3标准的SoftPLC(软逻辑控制)技术组态软件一样,ControlWorX 32同样具有如下特点:
1.广泛的OPC连接特性
依靠通用的OPC连接工业技术标准,OPC客户应用程序可以连接到任何OPC服务器应用程序上,连接到DCS系统、PLC系统、I/O系统,以及标准现场总线网络系统等。

OPC 服务器驱动程序可以来自于ICONICS公司,或者是其他第三方驱动程序软件生产开发商提供的。

所提供的OPC服务器设备驱动程序可以连接到Interbus-S、CAN、Profibus、DeviceNet、FF、HART等现场总线设备上。

2.支持五种IEC 1131-3标准程序设计语言
.SFC-顺序功能图表;
.LD –梯形逻辑图表;
.ST –结构化文本语言;
.IL –指令表;
.FBD-功能模块图表;
3.丰富的指令集
.IEC 1131-3标准程序设计语言的所有指令;
.数字与算法函数;
.位移动操作函数;
.数据类型转换函数;
.PID控制算法功能模块、定时器、计数器等;
4.实时多任务运行
.周期性任务(固定时间间隔);
图2 ControlWorX 32组态环境人机界面
.事件任务(中断);
.缺省任务(周期性循环);
5.支持的数据类型
.任何位操作类型:BOOL(1)、BYTE(8)、WORD(16)、DWORD(32);.任何数字操作类型:SINT(8)、INT(16)、DINT(32)、REAL(32);
6.相关技术数据
.速度:0.5ms/1000位操作(NT环境);
.程序存储容量:可设置到大约30000行IL(指令表);
.I/O数量:可组态成64KB输入和64KB输出;
.内存总量:64KB可设置;
.数据模块总线:可设置;
.定时器和计数器总线:无限,或者只限于内存容量;
.PLC任务总数:32 PLC任务;
7.附加特性
.模块化程序管理机制;
.当软逻辑控制任务执行时,在线修改程序;
.全统计诊断功能;
.基于OPC连接技术规范的全球性通用I/O接口,便于控制组态;
.全文档和硬件实时驱动程序开发工具包;
五、ControlWorX 32组态软件的程序设计语言
ControlWorX 32组态软件所依赖的IEC 1131-3标准为可编程控制器(PLC)定义了五种程序设计语言。

即两种文本化程序设计语言(IL:指令列表与ST:结构化文本)和两种图形化程序设计语言(FBD:功能模块图表与LD:梯形图表),以及一种组织化程序设计语言(SFC:顺序功能图表)。

IL(指令列表)由一系列在每一行提供一条操作指令的顺序指令表组成,这些顺序指令大多数与微处理器的宏汇编程序设计语言的指令相兼容。

这是一种可修改的程序设计方式,但对于没有程序设计经验的工业用户来讲,这种程序设计方式已经被证实是非常麻烦和旷日持久的。

对于构建复杂的应用来讲,事实上IL(指令列表)能够为此提供强大的基本功能。

然而,在一个小型临界状态运行的应用程序中,优化代码是极为重要的。

图3是一个采用IL(指令列表)编程的例子,变量RUN_TIMER被定义成TON类型。

最后一行定义的采样周期为1秒,变量run_pluse将被置位,有效输出位将使得电机发生旋转。

图3 采用IL(指令列表)编程代码的例子
ST(结构化文本)是一种类似于Pascal的高级程序设计语言。

如果符号地址被使用,ST(结构化文本)程序类似于句子,这种编程方式非常有利于新手的学习。

对于复杂的数学计算任务和控制算法ST(结构化文本)是一种极好的程序设计语言。

ST(结构化文本)程序设计语言使用起来非常简单,而且不同于具有冗长代码的LD(梯形图表)或者FBD(功能模块图表)。

图4是一个采用ST(结构化文本)程序设计语言编写的部分代码的例子。

变量TIMER被定义作为TON类型,采用一个1秒钟的定时器进行初始化。

当所定时的时间到达后,则脉冲变量将会置位。

然后,脉冲变量使得变量计数器增加,因而设置输出变量输出1时为真。

这种循环将继续进行下去,直到所有输出变量被重新设置。

图4 采用ST(结构化文本)编程代码的例子
FBD(功能模块图表)程序设计语言允许工业用户采用图形化功能模块以组态的方式开发
应用程序,这些功能模块可以从IEC标准功能模块库中提取。

在分散型控制系统中,控制工程师采用FBD(功能模块图表)进行控制系统的组态将会更加得心应手。

图5是一个采用FBD(功能模块图表)程序设计语言编程的例子。

变量Start将会启动电机的运行。

AND功能模块将传送电源到第一个定时器模块TON。

经过1000ms以后,输出变量O1将置位,同时第二个定时器模块将被初始化。

这种循环将继续进行下去,直到变量StartOver被设置,因此,复位顺序依赖于AND模块。

LD(梯形图表)程序设计语言与人们所熟悉的PLC编程方式相同,它采用了传统的继电器和线圈。

这种编程方式主要面向离散型控制系统的应用。

然而,IEC 1131-3标准的梯形图表编辑器允许功能模块嵌入到梯形图表代码中去,以便创建更加灵活的过程控制应用。

例如,ControlWorX32组态软件已经提供了这种嵌入的功能,为此,越来越多的最终工业用户将逐渐从传统的继电器逻辑图表转移到具有增强功能的IEC 1131-3标准的功能模块图表的编程方式上来。

图6是一个采用LD(梯形图表)程序设计语言编程的例子。

然而,在这种情况下,先前的FBD功能部件已经被打包成一个名叫CQ的起源功能模块(DBF)。

该模块已经被成功集成到梯形图表中。

SFC(顺序功能图表)为生产过程提供一个图表化的描述方法,这意味着该方法可以将一段程序分割到一个逻辑顺序中去。

通过直接连接,便可符合步骤的组织单元以及相互之间的转换。

图5 采用FBD(功能模块图表)编程的例子
图6 采用LD(梯形图表)编程的例子
采用直接连接方法,在SFC(顺序功能图表)中被编程的代码主体用于协调所连接的步骤和转移关系。

一个或者多个操作模块能够与一个步骤相关联。

当一个步骤处于活动状态时,与该步骤相关联的操作将会被执行,而且依赖于所限定的操作。

这种操作可以成为一个布尔变量,同时,有可能对代码进行重新编辑,以便能够在一个具有详细名称的代码主体工作表中得到执行。

在这种情况下,具有代码主体工作表的文件名可以作为所操作的名称来使用。

图7 采用SFC(顺序功能图表)编程的例子
在SFC(顺序功能图表)中,一个从一个步骤到另一个步骤的生产过程终端的转移条件能够得到描述。

如果一个转移条件成为真(TRUE),而且一旦再次或者后续步骤成为活动状态时,前面的步骤可以得到执行。

在FBD(功能模块图表)或者LD(梯形图表)中,这种转移条件不是一个布尔变量就是一个直接连接的布尔表达式。

在SFC(顺序功能图表)编程中首先被连接的是一个叫做SFC(顺序功能图表)网络。

一个SFC(顺序功能图表)网络必须总是有一个初始化步骤,并且当程序组织单元(POU)启动后第一个步骤能够首先被执行。

平行或者具有分支结构的功能模块可以插入到SFC(顺序功能图表)网络中去。

在SFC(顺序功能图表)代码主体中,可以使用星号和括号将相应的注释语句插入其中。

图7是一个采用SFC(顺序功能图表)编程的例子。

六、在生产过程控制中的应用
如图8为一个简单的单回路闭环控制示意图。

利用这个例子,在ControlWorX 32组态软件中我们将学习怎样编写功能模块,以及其他一些程序设计语言设计工程项目的方法和知
识。

我们将为过程控制管理建立一系列的功能模块。

设定值与过程测量值之间的偏差经过PID控制算法运算后,其输出值直接作用于过程控制变量。

图8 单回路闭环控制框图
1.启动工程项目
首先你必须建立一个新的工程项目。

为此,从主菜单的“文件”菜单下选择“新建工程项目”命令,则工程项目模板框将会出现。

选择“ProConOS/没有硬件”,并按“确定”按钮确认。

然后,一个没有命名的工程项目将会出现在你的眼前。

现在为你所创建的工程项目确定一个标题是非常重要的。

以PIDXMPL作为标题,从主菜单的“文件”菜单下选择“另存工程项目为”命令即可。

点击“保存”按钮后,系统将会返回到你的当前工程项目树下。

(1) 建立数据类型
在你所建立的工程项目文件夹中寻找并选择“数据类型”项目,为所选定的数据类型输入一个变量名称 PIDTypes,并点击“确定”按钮确认。

现在,在你的工程项目文件夹中的“数据类型”项目下将会出现一个PIDTypes字段。

双击PIDTypes字段并输入如图9所示的内容。

图9 定义数据类型示意图
退出如图9所示的窗口,并保存工作表。

为了以后能够使用该数据类型,现在你必须编译这个工作表。

从主菜单的“制作”菜单下选择“编译工作表”命令即可,系统将为你编译你的数据类型。

(2) 组建功能模块
为了制作你的功能模块,在你当前的工程项目文件夹中双击“逻辑POUs”项目。

选定相应类型的功能模块,这里选择ST(结构化文本)程序设计语言,并输入标题名称LAG。

单击“确定”按钮后,你将看到,在你的工程项目文件夹中会出现三个新的项目:LAGT*、LAGV* 和LAG*。

双击LAGV*项目,在所出现的窗口内输入如图10所示的特殊字段,包括名称,数据类型,使用方法和初始值等。

图10 数据类型变量表
在你为每个变量输入了相应的数据后,千万别忘记点击“刷新”按钮。

当你完成所有变量数据的输入后,关闭当前窗口并返回到你的工程项目树。

双击LAG*项目,以便为你的功能模块输入内容。

这一操作将激活一个活动窗口。

在当前的活动窗口中输入你的程序,如图11所示。

图11 LAG*项目编程程序
(3) 建立控制程序
为了建立一个控制程序,首先从当前工程项目树中,选择“逻辑POUs”项目,然后按回车键,或者点击鼠标右键选择插入方式,系统将会为你提供组建新的功能模块。

输入下列信息,单击“确定”按钮并返回到当前工作的工程项目树。

.程序:PIDLoop
.程序类型:FBD
.PLC类型:IPC_28
.处理器类型:IPC_64K
你可以看到,在当前的工程项目文件夹中将会出现三个新的项目:PIDLoopT*、PIDLoopV*和PIDLoop*。

双击PIDLoopV*项目,并输入如图12所示的变量类型,包括变量名称,数据类型,初始值和CSV标识(×或者非×)。

在你为每个变量输入了相应的数据后,千万别忘记点击“刷新”按钮。

一旦你完成所有变量数据的输入后,关闭当前窗口并返回到你的工程项目树。

图12 PID控制算法的数据变量类型表
为了输入程序的内容,从当前工程项目树中选择并双击PIDLoop*项目,将激活一个活动的窗口。

在当前活动的窗口中点击所建立的功能模块图标,则如图13所示的功能/功能模块对话框将会出现。

在功能/功能模块对话框中详细列出了功能模块的技术参数,包括所属组别、功能模块名称、功能模块类型、局部变量工作表、实例、模块外型尺寸、显示类型、显示数据类型以及形式参数等。

在如图13所示的功能/功能模块对话框中,选择一个名为PID的功能模块并按“确定”按钮,将自动出现如图14所示的自动功能模块(FB)声明对话框。

在该对话框中,为PIDLoop功能模块的POUs提供了一些必须的变量参数,包括功能模块的使用方法、FB实例、AT类型、FB类型、以及PDO和CSV选项等参数。

图13 功能/功能模块对话框
图14 自动功能模块(FB)声明对话框
在当前活动工作表中,采用同样的方法再分别建立名为NEG、LIMIT_REAL、INTEGRAL 和LAG的四个功能模块。

从工具栏中选择连接器图符,将PID功能模块的XOUT端连接到NEG功能模块的输入端;将NEG功能模块的输出端连接到LIMIT_REAL功能模块的IN端;
将INTEGRAL功能模块的XOUT端连接到LAG功能模块的InValue端;将LIMIT_REAL 功能模块的输出端连接到INTEGRAL功能模块的XIN端。

这种连接将确定信号的流动方向和功能模块之间的关系,如图15所示。

图15 单回路PID控制组态连接图
为了增加变量图表,单击变量图符,在出现的对话框中输入变量名称确定后,在功能模块上将会显示所定义的变量名称。

当你完成最后一步LAG功能模块OutValue端到PID功能模块PV端的连接后,退出该窗口。

接下来,在你的工程项目树中找到并选择“任务”项目,按回车键或者点击鼠标右键选择插入方式,选择名为PID的任务,并单击“确定”按钮,将出现如图16所示的任务设置对话框。

在该对话框中为执行的任务确定了采样周期,优先级,看门狗定时器时间间隔,堆栈模式等参数。

图16 任务设置对话框
使用如图16所示的缺省设置,并按“确定”退出。

从工程项目管理器中选择默认任务并删除该任务,另外选择PID任务并按回车。

在类型下面选择程序,在程序实例下面选择PID 回路,并选择“确定”按钮确认。

从工程项目树中选择R_IPC项目,单击鼠标右键,再选择设置命令,将会打开如图17所示的资源设置对话框,以便对相应的工作环境进行设置。

在该对话框中,一定要确保在CSV选项的“制作变量”子项被选择。

如图17所示的重点提示项。

2.构造工程项目
图17 资源设置对话框
为了编译所创建的工程项目,从主菜单上选择“制作”菜单下的“构造工程项目”命令。

系统将为你编译该工程项目,同时也会报告编译过程中所出现的任何错误。

由于这个程序的运行是循环的,因而将始终会看到清楚的错误报告反馈。

在工程项目树中双击“控件”项目,将出现如图18所示的资源控件对话框。

图18 资源控件对话框
在如图18所示的资源控件对话框中,如果状态(State)显示运行(Run),单击停止(Stop)按钮将改变运行状态为停止(Stop),然后单击下载(Download)按钮。

当资源控件对话框再次出现时,单击Cold按钮,则状态显示将重新返回到运行(Run)状态。

最后关闭资源控件对话框
如果状态行显示的状态为超时(TimeOut),则意味着ControlWorX 32运行模件没有执行。

在这种情况下,从启动菜单上重新启动ControlWorX 32运行模件。

3.观察并修改工程项目
在当前工程项目树上双击实例项目,将会显示正处于运行状态下的执行程序,并允许用户观察所有变量的状态。

用户可以在变量上通过双击来改变变量的值,同时,也允许用户改变文本框中的内容,当需要改变时单击“覆盖”按钮即可。

从当前窗口中的启动菜单选择并启动OCI数据交换服务器和OCI OPC&CALL-R服务器。

从主菜单上选择“文件”菜单下的“新建工作空间”命令,然后再从“编辑”菜单下选择“插入工程项目”命令。

从对话框中插入PIDXMPL工程项目,并单击“确定”按钮确认。

同时保存当前的工作空间是非常重要的。

从主菜单上选择“文件”菜单下的“另存工作空间为”命令,单击“保存”按钮将当前工作空间保存为PIDLoop.oci。

从工程项目文件夹中选择控件项目,然后启动运行。

从启动菜单上启动另一个图形化组态软件GraphWorX 32。

一旦GraphWorX 32启动后,选择过程控制测点图符,单击“标识符”按钮,双击“我的计算机”选项,然后双击
OCR.ICONICS.OCIOPC服务器即可。

只要你完成了测点类型的选择后,从主菜单上选择“运行”命令即可在当前窗口中观察到相应的实时数据。

七、结束语
由此我们可以看到,由于SoftPLC技术充分结合了工业PC与可编程序控制器(PLC)之间各自的优点,同时,也是当前工业控制计算机软件发展的主流之一,必将在以后工业自动化过程控制领域发挥越来越重要的作用。

符合SoftPLC技术规范的其他工控软件还包括Wonderware公司的InControl组态软件、Siemens公司的STEP7组态软件、以及PcSoft公司的WizPLC组态软件等。

这些工控组态软件的推出,为工业用户在自动化过程控制系统应用程序的研究开发领域提供了更加广泛的选择余地。

相关文档
最新文档