集散控制系统组态软件ch3-4macs组态2_图文

发布于:2021-05-14 02:59:58

和利时集散控制系统 Hollias-MACS
软件组态2 服务器算法组态

1

1.概述

服务器算法组态是用来编制服务器算法 程序的,它用树型结构表现工程、服务站和 控制方案之间的关系。

2

服务器算法组态操作

服务器算法组态步骤是:打开服务器算法 组态—打开工程—新建站—新建方案—设置 方案属性—编辑方案(方案中用到的中间变 量要添加到数据库中)—编译方案—编译站 —编译工程—保存服务器算法工程——关闭 服务器算法组态工具。
3

2.服务器算法组态操作
点击『开 始』『程 序』『 MACSⅤ组 态软件』 『服务器 算法组态 』,弹出 如下窗口 :

选择文件菜 单中的新建 工程或点击 新建工程快 捷按钮,将 弹出选择工 程对话框。

在此对话框中选择要组态的工 程后,点击确定按钮。

4

2.服务器算法组态操作

选择工程后左边的工程窗口中出现了工 程名称,这是前面所说的树型结构的第 一层。然后选择文件菜单中的新建站或 点击新建站快捷按钮。在弹出的菜单中 选择站文件存放的路径后点击确定。 (建议用默认路径AlgSrc)

5

2.服务器算法组态操作

新建站后在左边的工程窗中工程名 称的下方出现了服务器,这是树型 结构的第二层。选择服务器后在选 择文件菜单中的新建方案或点击新 建方案的快捷按钮,将弹出新建方 案的对话框。

6

2.服务器算法组态操作

在新建方案对话框中填入方案名 称,然后选择FM语言,在弹出的 对话框中选择方案文件存放的路 径后点击保存按钮。将生成方案。

7

2.服务器算法组态操作

选中方案 后在右键 菜单中选 择属性后 弹出属性 对话框。

在方案属性对话框中将方案页 类型改为周期执行页,并且设 置页运算周期,设置完成后点 击确定按钮开始编辑方案。
8

2.服务器算法组态操作

在此处键入 GETSYSPER[_FUH E00],编译时有错误 信息提示
在公式中填入求负荷的函数,用到的数据库 点需要添加到数据库组态中。然后选择编译 菜单中的当前方案或点击编译的快捷按钮, 画面的下方出现编译的信息。当出现错误 (0),警告(0)时表示编译正确。关闭方 案。然后在工程窗口中选择服务器后在右键 菜单中选择编译,将弹出站编译对话框。

9

三、服务器算法组态
此 时 需 要 在 “ P1-1” 右 侧 的 空 白 框 中 键 入 “getsysper(_FUHE00) ”几个字符,添加完毕请保存方案页。

10

三、服务器算法组态
点击菜单栏“编译”中的“当前方案”实现本方案页编译, 如图所示;此时系统会出现错误提示“FUHE00”数据库点 类型未定义。

11

三、服务器算法组态
打开“数据库总控”,选择“demo”工程,在“数据库编 辑”下的“AM”项名,全选后确定。

12

三、服务器算法组态
类型数据库里添加”FUHE00”中间量点,更新数据库。

中间量点添 加完毕,点击 菜单栏“编译” 中的“当前方 案”,会发现 错误提示消失, 点击工具栏中 保存,再次保 存方案页。
13

2.服务器算法组态操作

最后单击保存工程快捷按钮。服务 器算法组态组态完毕,关闭组态软 件。

选择全部重编编译站内所有方案。 在画面下方出现编译信息。出现错 误(0),警告(0)时表示编译正 确。然后在工程窗口中选择工程名 称后在右键菜单中选择编译,在弹 出的对话框中选择时,系统进行工 程编译。编译信息栏中出现工程编 译成功。

14

2.服务器算法组态操作

我们再来重复一下服务器算法组态步骤是: 打开服务器算法组态—打开工程—新建站—新 建方案—设置方案属性—编辑方案(方案中用 到的中间变量要添加到数据库中)—编译方案 —编译站—编译工程—保存服务器算法工程—

—关闭服务器算法组态工具。
15

四、控制器算法组态

1.控制器算法组态软件介绍 2.变量和POU 3.POU语言及其工程应用 4.工程下装、调试

16

四、控制器算法组态

1. 控制器算法组态软件介绍

? 软件功能

? 软件界面组成介绍
? 工程的相关设置 ? 软件的一般使用步骤

17

四、控制器算法组态
(1) 控制器算法组态软件的功能

控制器算法组态软件是针对底层控制器的软件。 软件安装在工程师站上,作为控制方案的开发*台, 包括控制方案编辑器和仿真调试器两部分。
控制器算法组态软件的主要功能

完成用户控制方案的组态,具体包括: 用不同的算法语言编写用户控制方案 仿真调试 登录控制器,把程序下装到主控单元; 运行并在线调试程序。
18

四、控制器算法组态
(2) 软件的界面组成介绍

点击『开始』『程序』『MACSⅤ组态软件』『控制 器算法组态』,弹出如下窗口:

在选择工程列表栏中选择 要组态的工程后点击选择 按钮。

在选择站列表栏中选择要 组态的控制站后点击确定 按钮,进入控制器算法组 态界面。

19

(2) 软件的界面组成介绍
此时已经打开了10号控制 器算法工程。此工程存放 在工程路径下的以10命名 的文件夹下。10号控制器 算法工程名为TEST_10。

20

标题栏,显示工程文件的名称

菜单栏,提供各种常用命 令 工具栏,常用命令的快捷 按钮

(2) 软件的界面组成介绍

POU的标题栏,显示POU 的名称、类型缩略、采用的 编程语言
POU的声明区。用来声明(定 义)POU的类型、名称,使用 的局部变量

对象组织器。在窗口 中分别列举当前工程 中的程序、数据类型、 视图、资源四种对象。 一般关注程序和资源。 如图展示了工程中的 所有程序。

POU的编程区。编 写用户控制方案的 地方

信息窗口,显 示编译信息和 查找信息

21

(2) 软件的界面组成介绍
名为“IO”的全局变量定义表, 是对名为IO的程序方案中相关 信息的解释
硬件配置,组态I/O模块,定义 输入、输出通道标志符,即分配 测点的采集通道(与实际硬件联 系)

能被整个工程 中应用的变量 -全局变量

任务配置,定义工程中的程序执行方 式,一般设计为周期调用式。

对象组织器——资源窗口, 常用资源有:全局变量表、 MACS配置、任务配置

22

(3) 工程相关设置
工程的相关设置——添加函数库 点击『窗口』『库管理器』
在此区域点 右键『添加 库』

弹出窗口中列 举了可选的库 资源 如上图,在工程中若想使用hsac库中提供的功能块和 如上图,在工程中若想使用hsac库中提供
函数,就需要选中hsac.lib库,添加到你的工程中。

的功能块和函数,就需要选中hsac.lib库, 添加到你的工程中。

现在,在你的工程中 就可以使用hsac.lib 库中提供的功能块和 函数资源了。比如你 可以在一个POU中调 用HSPID功能块以实 现PID调节。

23

(3) 工程相关设置
新建工程的相关设置——添加函数库

到底需要将哪些函数库添加到你的工程中?是由这个工程 的实际控制要求决定的。要做哪些运算、实现哪些控制功能, 往往可以利用软件提供的具备相应功能的函数或功能块来实 现;而这些函数或功能块已经事先按照功能分类,存放在了 指定的函数库当中;只要在库管理器中添加某个函数或功能 块所处的函数库,就可以在你的工程中随处使用这些资源了。

我们可以在后面进行控制算法组态时,随时根据需要 在库管理器中添加或删除函数库。当然,也可以在新 建工程时,根据一般应用情况,事先在库管理器中添 加好那些常用的功能块/函数库,如下页:

认识库管理器

24

工程的相关设置——添加函数库 Hsac.lib Hsaired.lib

控制调节
信号选择

HSPID(PID调节器) HSAlgMAN(手操器)
AI_RED(冗余信号选择模块)

常用

Hscnvt.lib

H_E(16进制数据转换为工程量数据) H_RTD(16进制数据转换为热电阻温度数据) 模拟量量程转换 H_TC(16进制数据转换为热电偶温度数据) E_H(工程量/电量程数据转换为16进制数据) 常用

Hsctrol.lib Hsdpext.lib Hspower.lib

控制算法
DP设备状态检测 电力行业专用

HSDEV(微分算法) HSRS(RS触发器)

HSINTG(积分) HSSOP(二阶惯性)

HSDPGetSlaveState (获取DP从站的状态) HSMEDSEL(三取中) HSMILL(磨煤机控制)

常用

25

工程的相关设置——添加函数库
HSCOMBUSTION(燃烧控制) HSALARMSPARK(报警闪光) HSBAL2(双*衡模块) HSDLCTRL(断路器) HSSTREAMRM(主汽温度模糊控制)

Hspower2.lib 电力行业专用

Hssoe.lib

soe功能专用

HSsoeRead(读取SOE的数据记录) HSsoeTimeAdjust(SOE的系统校时)
HSACCUM(积算算法)HSALM_AM(幅值报警) HSALM_DV(偏差报警)HSCHARC(折线函数) HSCMP(多重比较器)HSCSLAVE(组合伺服放大) HSFOP(一阶惯性) HSLIM_HL(幅值限制) HSFUZZY(模糊控制)HSSCS(顺控设备) 常用 HSTIMER(定时器)HSVALVE(调节门)
RS(RS触发器) TON(延时置位型定时器) TP(定宽脉冲型定时器)

Macsctrol.lib 控制算法 Standard.lib 标准库 FCSSysPer.lib 负荷率

FCSSysPer(获取控制站负荷率)

常用 26

(4) 控制器算法组态软件的一般使用步骤

新建工程 硬件配置(设备组态) 系统通过基本编译、联编、生 成下装文件已经自动生成控制 数据库定义 器算法组态工程,并且在工程 控制算法组态 中已经完成了硬件配置和数据 库定义。 工程编译 仿真调试 登录控制器,将工程下装到主控单元 运行程序并在线调试 实施控制方案组态之前我们先要了解以下一 节的基本概念。
27

2. 变量和POU介绍

? 变量分类 ? 访问变量 ? POU概述 ? POU分类 ? POU触发

? POU语言
28

(1) 变量

控制运算的主要操作对象是数据,这些数 据的值一般都是实时变化的,我们把这些变化 的数据叫做变量。或者说,变量就是计算机中 数据存储单元的标识。控制算法组态中所用到 的变量的名称和数据类型必须是事先明确的, 这就需要我们首先对用到的变量进行定义,这 个定义过程叫做变量声明。 每个变量都必须声明,这节将着重介绍变 量的基本声明格式、以及不同类型变量的具体 声明方法。
29

(1) 变量
变量的命名

为了在数据运算过程中使用/标识这些变量, 每个变量都需要有一个名字,即变量名。变量的 命名规范:

?使用字母、数字和下划线的组合,以字母或下划线
开头,不能以数字开头; ?不能使用空格、中文字符和其它特殊字符,不能有 ‘-’号; ?不能使用系统的保留字; ?长度尽量短; ?不能重名;
30

(1) 变量
变量的数据类型

每个变量都有明确的数据类型,软件支持多种数据类 型存储方式。 常用的数据类型如:布尔型(BOOL)、整形(INT、 BYTE、WORD等等)、实数型(REAL、LREAL)、字符串型 (STRING)、时间型(TIME)…… 其它数据类型如:时间日期型、日期时间型、日期型, 自定义的一维、二维和三维数组,指针型,枚举型,结 构型等。
31

(1) 变量
声明变量

每个变量都需事先声明(定义)才能使用。 变量声明应考虑以下几个方面:

?变量声明的位置 ?变量声明的格式 ?变量名 ?变量的数据类型
32

声明变量 ? 变量声明的位置

(1) POU声明区,定义在关键字 变量
VAR和END_VAR中间的都为 局部变量

?POU的声明区 ?资源的某个全局变量表中

全局变量表单,定义在关键字 VAR_GLOBAL和END_VAR中间的都为全 33 局变量

(1) 变量
声明变量
? 变量声明的格式

?变量名:数据类型:=初始化值;
(*文字说明*)——适用于系统 内部点的声明

34

(2) 变量分类
可从以下四个角度划分变量

?按照变量结构形式的不同,分为简单型变量
和功能块实例

?按照变量有效范围(使用范围)的不同,分
为全局变量和局部变量

?按照属性分为:中间变量、输入型变量、输
出型变量、输入输出型变量、全局变量

?按照变量能否掉电保护,分为保留型和非保
留型变量
35

(2) 变量分类

变量的形式 从结构形式划分,有简单型变量和功能块实例两种。
? 简单型变量

简单型变量指单一的变化量,能被赋予一 个明确的数值。 一个简单型变量仅代表一个意义。 简单型变量的声明格式: 简单型变量名称:数据类型:=常数; (*点说明*)

36

(2) 变量分类

变量的形式 例如:AM01:REAL:=50.0; (*模拟变量01*) DM01:BOOL:=FALSE; 或 DM01:BOOL:=TRUE; (* 开关变量01*) AM02:INT:=2; (*整形变量02*) NAME01:STRING:=’TASK10’; (* 字 符 串 变 量 01*) T01:TIME:=T#1s500ms; (*时间变量01*) 以上是变量声明的完整格式。如果不需要对变量 赋初始化值,可去掉其中的赋初值部分“:=常数”。 即为: 简单型变量名称:数据类型; (*点说明*) 例如:AM01:REAL; (*模拟变量01*) 37

(2) 变量分类
变量的形式 ? 功能块实例

简单型变量仅是一个变化量,而一个“功能 块实例”则由一组特定的变量组成。具体是 怎样的一组特定变量,则取决于该功能块实 例的功能块类型。所以功能块实例接*于数 据结构的概念。 功能块实例的声明格式如下: 功能块实例名:功能块类型:=(项名1:=常数, 项名2:=常数,?,项名n:=常数); (*功能块实 例说明*)

38

变量的形式

(2) 变量分类

PID_LIC_1002:HSPID:=(PT:=100,TI:=30,SV:=100 ,KD:=5,TD:=0,DI:=0,OT:=100,OB:=0,OU:=1,DL:= 10,MU:=100,MD:=0,PK:=0,OM:=0,AD:=0,TM:=TRUE ,RM:=0,ME:=TRUE,AE:=TRUE,CE:=FALSE,TE:=TRUE ,FE:=TRUE,AV:=0,PU:=3300,PD:=0,MC:=0,CP:=0. 5); (*流量1002信号的PID调节器*) 以上是功能块实例声明的完整格式; 如果功能块实例中的项都不需要初始化赋值,则 可去掉其中的项赋初值部分,即为: 功能块实例 名:功能块类型; (*功能块实例说明*) 例 如 : TIMER01:TP; (* 定 宽 脉 冲 型 定 时 器 TIMER01*)
39

变量的有效范围 ? 全局变量

按照变量的使用有效范 围划分,有全局变量和 局部变量。

(2) 变量分类

有效范围:整个工程有效 定义位置:资源/全局变量/某个表单中,REAL或BOOL型 全局变量经过数据库总控的基本编译后会自动进入到数据 库的AM或DM类点中,在图形界面上可以显示出此变量的数 全局变量表单,定义在关键字 值。 VAR_GLOBAL和END_VAR中间的都 定义关键字:VAR_GLOBAL 为全局变量 END_VAR 将变量声明置于上述关键字中间行。 例如: VAR_GLOBAL AM01:REAL:=50.0; END_VAR 则AM01为一个全局变量

40

(2) 变量分类
变量的有效范围 ? 局部变量

有效范围:仅在定义该变 量的POU内部有效 定义位置:POU的声明区 (即*氡嗉翱谥校 定义关键字:VAR END_VAR 将变量申明置于上述关键字 中间行。 例如: VAR DM01:BOOL; END_VAR 则DM01为一个局部变量

POU声明区,定义在关键字 VAR和END_VAR中间的都为 局部变量

41

(2) 变量分类
变量的属性

按照变量属性划分,有输入型变量、输出型 变量、输入输出型变量、中间变量、全局变量。 VAR_INPUT:输入型变量。对某功能 块而言只能读,不能写!主要在功能块 型或函数型POU中应用。 VAR_OUTPUT:输出型变量。对某功能 块而言只能写,不能读!主要在功能块 型POU中应用。 VAR_IN_OUT:输入输出型。可读可写! 主要在功能块型POU中应用。 VAR:中间变量。可读可写!只在声 明它的POU中有效。 VAR_GLOBAL:全局变量。在整个工程 中有效。

42

(2) 变量分类
保留型变量

对于系统中那些需要掉电保护和数据备份的重要数据, 我们都用关键字“RETAIN”来定义它们,经过这样定义 的变量叫做保留型变量。 保留型变量的声明格式如下: VAR_GLOBAL RETAIN AM01:REAL:=50.0; END_VAR 或 VAR RETAIN DM01:BOOL; END_VAR
43

(3) 访问变量

☆“访问”即“使用”,运算过程中对变量的访问包括: 读取变量值和给变量赋值。 ☆访问一个简单型变量,直接写它的变量名即可。 如:AM01:=AM02+AM03; 这个例子表示:读取变量AM02和AM03的值,将二者相 加,并将加的结果赋值给变量AM01。 ☆访问一个功能块实例的项,书写格式为:功能块变量名. 项名 ☆如:PID01.SP(取PID01的设定值项,前提已经声明了 PID01的类型为HSPID) 强调:在程序中使用变量时一定要注意数据类型前后一致! 即一个信号连线两端的变量的数据类型应严格相同!
44

(4) POU概述

POU即程序组织单元(Program Organization Unit), 是控制器算法组态软件。作为控制软件的核心部分。控制算 法组态的过程就是按照设计好的控制方案,创建解决问题所 需的一系列POU,在POU中编写相应的控制运算回路。

POU的*氪翱谖狿OU 声明区。一是声明POU 的类型和名称,二是 声明POU内的局部变量。 POU的下半窗口为POU 编程区,体现POU所采 用的编程语言,在其 中编写运算程序。

45

(4) POU概述
Program prog名 Function_Block FB名 Function FUN名

接口变量 局部变量

说明部分

指令

代码部分

END_PROGRAM

END_FUNCTION_BLOCK

END_FUNCTION

46

POU分为如下三类:
字:PROGRAM 程序名;

(4) POU概述

?Program:程序型。最常用的POU类型。定义程序的关键
?Function_Block:功能块型。可以赋予参数并具有静态
参数(带有记忆)的POU。当以相同输入参数调用时,FB 的输出值取决于其内部变量和外部变量的状态,这些变 量在功能块的这一次执行到下一次执行的过程中是保持 不变的。定义功能块的关键字:FUNCTION_BLOCK 功能块 名;

?Function:函数型。可以赋予参数但没有静态参数。当
以相同输入参数调用时,它总生成相同的结果作为其输 出。定义函数的关键字:FUNCTION 函数名:数据类型
47

(4) POU概述

变量类型 VAR
VAR_INPUT VAR_OUTPUT

PROGRAM 可以 可以 可以 可以 可以

FB 可以 可以 可以 不可以 不可以

FUN 可以 可以 不可以 不可以 不可以

VAR_GLOBAL

RETAIN

48

(5) POU触发

在完成硬件配置、数据库定义和模拟量量程转换后, 我们就可以创建解决问题所需的POU了。任何一个POU 只有经过触发才能够开始运算。 有两种方式触发POU:

?通过任务配置触发POU ?通过POU调用的方法,用已被触发的POU触发其
它POU 实际工程中,用“任务配置”法周期性地触发主程序 “MACS_PRG”,再用“POU调用”法在主程序中调用其 它POU使其运算。
49

(5) POU触发
主程序调用子程序

在主程序MACS_PRG中,添加程序调用的运算语句。如果 主程序用“ST”语言编写,则在每行中分别输入各个子 程序的POU名称即可,格式如“POU1();”

50

(6) 算法组态

控制器算法组态具有丰富的控制算法库(算术运算函 数,紧急事件函数,连续控制函数,类型转换函数,文件操作 函数,定时器,计时器,触发器函数)。库管理器分为4个区 域,绑定在工程上的库位于左上区域,左下区域显示上面 选中库中的功能块/函数,右上区是选中功能块/函数的声 明区,右下区是功能块/函数的外观。在库函数中给出了 一些关于该函数的非常重要的信息:如该函数中有哪些输 入变量、输出变量及中间变量,它们的数据类型,有哪些 中间变量是必须赋初值的,变量的注释等。使用一个功能 块/函数资源前可以查看库管理器中的说明获得更多信息。
51

(6) 算法组态

控制算法组态的核心:创建程序型POU,采
用合适的POU语言(一般CFC或FBD)编写它的运

算内容,在编程时,对变量进行数据读、写操作,
用变量传递运算结果,将某些变量值送到输出模

块去作为控制现场设备动作的指令,或者不输出
变量而仅将变量值传递到上层操作员站监控用。

52

(7) POU语言

POU语言即算法编程语言,控制器算法组态软件共 提供六种编程语言。其中前五种语言完全符合 IEC61131-3国际标准。 学*时要求重点掌握 FBD、CFC,了解ST、LD。
控制器算法组态软件共提供六种编程语言

?FBD(功能块图——Function Block Diagram) ?LD(梯形图-Ladder Diagram) ?ST(结构化文本-Structured Text) ?SFC(顺序功能表图-Sequential Function
Chart)

?IL(指令表-Instruction List) ?CFC(连续功能图-Continuous Function

Chart)

53

(7) POU语言
FBD(功能块图)和CFC(连续功能图)

面向图形的编程语言,用图形化的功能块 编制用于完成一定运算或控制功能的程序。FBD 语言编写的程序由一系列“节”组成,每节都 包含一段相对独立的运算回路,该运算回路由 功能块、连线、输入输出端子组成,并规定了 所有功能块的调用顺序和相应模块运算所需的 参数。CFC与FBD类似,只是CFC语言编写的程序 不划分严格的区域,允许各运算回路连续放置。 运算时按照功能块顺序运行。
54

(7) POU语言
FBD(功能块图)和CFC(连续功能图)

按【F2】功能键或【编辑】【提示输入】可调 出帮助管理器,提供运算符列表

55

(7) POU语言
FBD(功能块图)和CFC(连续功能图) Standard Functions User defined Functions Standard Function Blocks User defined Function Blocks FBD Operators Standard Programs 标准函数,来自库函数中的函数 用户自定义函数,用户组态生成 标准功能块,来自库函数的功能块

用户自定义功能块,用户组态生成
标准IEC运算符,由组态软件控制器算法组态本 身支持的运算符 标准程序

User defined Programs
Conversion Operators

用户自定义程序,用户组态生成
转换运算符,用于不同类型变量之间进行转换

56

LD(梯形图)

(7) POU语言

面向图形的编程语言,一种专门用于基本逻辑 控制的连续执行语言,由触点(常开,常闭,正传感, 负传感,反转)、线圈(输出,单稳态,锁定,解锁, 跳转)、功能元件(定时器,计数器,步序器)等元 素通过水*和垂直线连接起来的*面网状图。触点、 线圈可取反。很可能你想使用触点开关来控制其它 的POU,一方面,你可以使用线圈把结果放在全局 变量中,这个全局变量可以用在其它的地方,你也 可以在LD网络中直接插入一个有使能端的POU,这 种POU完全是正常的运算符,函数或功能块。它们 有一个带有EN标志的额外输入,EN输入端总是BOOL 型,意思是使能端EN为TRUE值时,POU被执行。 57

LD(梯形图)

(7) POU语言

58

(7) POU语言
ST(结构化文本)

和高级语言(基于PASCAL)一样,包含一系列指令,由一系列 关键字(IF,WHILE,CASE,FOR,Repeat)和相应操作指令完成.包 括符号(关键字,运算符,修饰符,操作数),语句(表达式,控制语 句函数和功能块等).ST语言中的表达式由运算符和操作数组成 (表达式是一个结构,它执行后返回一个值)。优先级列表和ST 语言指令列表。

59

(7) POU语言
SFC(顺序功能图)
面向图形的语言,用来连续控制/逻辑控制和输入输出监视功能,以描述和控制过程 事件顺序操作,适合于需要多个状态控制的事件.一个SFC由一系列操作步(STEP)和 转换(TRANSITION)组成,每个步包含一组影响过程的动作(ACTION).一些基本的概 念:步,动作,转换/转换条件.对于简化步,动作总是和步直接相关,用鼠标双击动作 所属的步,进行编辑,右上角出现小三角形.入口动作(E)和出口动作(X).在步之 间就是所说的转换,转换条件可以是逻辑变量,逻辑地址,逻辑常量,或是用ST语法实 现的具有逻辑结果的一系列指令或者完全是由其它语言编程实现.对于IEC步(包含条 件和动作标志),在对象管理器中选择编辑的SFC程序,单击鼠标右键,用添加动作来 编辑,这样就可以赋给IEC步任意多个动作.用时这些动作也可以被多个步重复使用。

60

(7) POU语言
IL(指令表)

包含一系列指令,每条指令从新行开始,包含一个运算符,具有 丰富的变化,是最基本的计算机编程语言.操作数之间用逗号 分隔,LD指令是各种运算的基础,用于载入用于运算的数值.ST 指令 用于保存运算结果,IL支持比较运EQ,GT,LT,GE,LE,NE 和跳转(jumps).IL还支持两种修饰符C,N,条件执行和条件非 执行。

61

3. POU语言及其工程应用

? 信号处理的一般过程

? CFC语言应用与流量累计
? CFC语言应用与PID调节

? CFC语言应用与SCS控制
? LD语言应用
62

(1) 信号处理的一般过程

将AI信号(二进制WORD)转换 为工程量(十进制REAL),转换 结果提供给其他功能块使用或显 示在人机界面上。量程转换部分 已由程序自动生成。

进行运算处理以及输出

63

(1) 信号处理的一般过程

64

(2) CFC语言应用与流量累计

“HSACCUM”是积算功能块,存放在“macsctrol.lib”库中,常 用作流量累计。

65

(2) CFC语言应用与流量累计

积算功能块HSACCUM的输出端AV的数据类型是LREAL型,控 制器算法组态中LREAL占8个字节,而上层软件中没有占8字节 空间的数据类型相对应!所以要在控制器算法组态中将AV输出 由LREAL转换为REAL型(占4个字节),才能上传。
66

(2) CFC语言应用与流量累计
HSACCUM功能块的关键参数: MC:=1.38888888888888888888888888889E-4(采样周期为 500ms)。

I1(K)*MC的值应为每周期内的物料吨数。而I1(K)是单 位小时内的吨数,所以靠I1(K)乘以系数MC来实现由“t/h” 到“t/周期”的转换。如果运算周期是500ms,则 MC= 1/7200
67

(3) CFC语言应用与PID调节

“HSPID”是工程常用的PID算法功能块,存放在“hsac.lib” 库中。

68

(3) CFC语言应用与PID调节
PID自动运算的大致公式如下:

PID功能块需初始化幅值的项 PT, TI, SV, KD, TD, DI, OT , OB , OU, DL, MU, MD, PK, OM, AD, TM, RM, ME, AE, CE, TE, FE, AV, PU, PD, MC

?MU、MD和OT、OB:PID输出值AV的量程上限和下限和输出限 幅。串级主调的这几项应该与副调PV项的量程一致。 ?PU、PD:过程输入值PV的量程上限和下限 ?AD:正、反作用方式 ?MC:PID的作用类型,0-单PID,1-串级主调,2-串级副 69 调

(3) CFC语言应用与PID调节
PID几项输入端的认识 有手动、自动、串级、手动/自动跟踪 几种方式 TS为1时,PID进入自动跟踪方式, AV=TP PID处于自动跟踪或手动跟踪方式时, AV=TP

? RM(工作方式)
? TS(自动跟踪开关) ? TP(跟踪量点) ? IC(输入补偿) ? OC(输出补偿)

ε = PV - SP +IC O A PID内部公式运算结果 + C V=
70

除氧器水位控制方案图:
除氧器水位 ALI_CYQ LT AI

单调节回路组态

H/L Δ H/L

1

除氧器水位设定 ASP_CYQL A

2 △ PI Σ ≮ ≯

除氧器水位调节 控制器 APID_CYQL

APID_CYQL.TS 软手操器非自动状态

TRACK
1

除氧器水位幅值报警 调节器偏差报警 手操器输出和阀位偏差报警 OR
除氧水位调节回路强制手动
4

A/M 4 FORCE AUTO LIMIT TRACE

2

除氧水位回路强制手动

除氧器水位 调节手操器 AMAN_CYQL

3

AO
Δ H/L

AMAN_CYQL.AM 除氧水位手操器状态

除氧水位调节器跟踪

APID_CYQL.TS

3

F(x)

ZT

除氧器水位调节阀 AVC_CYQL

阀位反馈 LDJ301A-ZT

71

(3) CFC语言应用与PID调节
单调节回路组态

MC:=0

72

(3) CFC语言应用与PID调节
PID调节的相关变量声明

73

(4) CFC语言应用与SCS控制

“HSSCS”是工程常用的顺控设备功能块,存放在“MacsCtrol.lib” 库中,用来实现对电动机、电动门、电磁阀的启/停(开/关)控 制。
HSSCS功能块需初始化幅值的项
RT, DE, SC, CM, OS, CS, OU
?三种设备的关键项的赋值:
?电动机时:DE:=0,SC:=FALSE; ?电动门时:DE:=1, SC:=TRUE; ?电磁阀时:DE:=2, SC:=FALSE.
74

(4) CFC语言应用与SCS控制
电动机控制组态
甲给水泵控制方案图: SCS_GSB1
甲给水泵电机
设备保护关 ACI_GSB1CKM 甲给泵出口电动门已关 电气故障 厂区保护启 开许可条件

APIA_GSMGL AGZ_GSB2 ALS_GSB1

给水母管压力低 乙给水泵电机故障 甲给水泵联锁投/切 OR AND



启动甲给水泵

ARC_GSB1

开自动命令 厂区保护停

1
ARI_GSB1 ASI_GSB1 甲给水泵运行状态 甲给水泵停止状态

关许可条件 关自动命令 启 停

停 状态 反馈 控制 选择

停止甲给水泵

ASC_GSB1

0 1 1 1
注:甲、乙两台给水泵均正常时一台运行,一台备用。乙泵方案参考甲泵。

停止控制 命令记忆 启命令终止连接 停命令终止连接

75

(4) CFC语言应用与SCS控制
电动机控制组态

L4:开许可

L5:关许可
L6:开自动 L7:关自动

76

(4) CFC语言应用与SCS控制

现在在工程中广泛应用“HSSCS5” 模块实现对电 动机、电动门、电磁阀的启/停(开/关)控制。 “HSSCS5”模块是在“HSSCS”模块基础上自定义的功能 模块,它的功能更丰富。使用“HSSCS5”模块同样需要 将“HSSCS”模块所在的函数库“MacsCtrol.lib”加到 系统中来。而且初始化赋值时除了定义“HSSCS5”模块 内部项之外还要对“HSSCS”模块内部项进行赋值。
77

(4) CFC语言应用与SCS控制
电动机控制组态

L4:开许可

L5:关许可
L6:开自动 L7:关自动

78

(4) CFC语言应用与SCS控制
电动门控制组态
甲给水泵出口电动门控制方案图: SCS_GSB1CKM
甲给水泵出口电动门
设备保护关 AHX_GSB1CKM

甲给泵出口电动门远方/就地
厂区保护开

ARI_GSB1 ALS_GSB1

甲给水泵运行状态
AND

开许可条件 开自动命令 厂区保护关 关许可条件 关自动命令



开甲给水泵出口电动门 AOC_GSB1CKM

甲给水泵联锁投入

关 状态 反馈 控制 选择

关甲给水泵出口电动门

ACC_GSB1CKM

AOI_GSB1CKM ACI_GSB1CKM

甲给泵出口电动门已开 甲给泵出口电动门已关

开 关

0 1 1 1

停止控制 命令记忆 开命令终止连接 关命令终止连接

79

(4) CFC语言应用与SCS控制
电动门控制组态

80

(4) CFC语言应用与SCS控制
电动门控制组态

81

(5) LD语言应用

适用于纯粹的开关量运算。由触点、线圈、功能元件等元素通 过水*线或垂直线连接起来的*面网状图。此外还提供有使能 输入端的POU调用机制。
常开触点 输出线圈,用 来给变量赋值

常闭触点

使能运算符

?所有运算程序都编写完成后,要在主程序中调用其它的运算程序。

82

4.工程下装、调试

? 编译

? 下装
? 调试

83

(1) 编译

控制方案组态完成之后,要进行编译,以检查控制 方案组态是否存在错误,并在“信息”窗口中显示 编译结果。编译后会生成两个文件:*.SDB和符号表 文件*.SYM。 编译时选择“工程/编译”或“工程/全部再编译” 。

?如果是第一次进行控制方案编译,上两种选项都会
编译整个控制方案内容。

?上次编译基础上,如果只修改了POU和全局变量部分,
再选择“编译” 则只编译修改部分。
84

(1) 编译

?如果修改了MACS配置、目标设置、任务配置,或执
行过“全部清空”命令,再选择“编译”,则是整个 工程内容的全部编译。

?选择“全部再编译”

,编译全部工程内容。

可见“编译”和“全部再编译”只侧重编译范围的不 同;至于是会重建所有的目标文件(对应初始化下 装),还是只在原目标文件基础上做追加(对应无扰 下装),则并不取决于是执行了“编译”还是“全部 再编译”,而在于编译工程前修改的内容是什么! (见下装部分)
85

(2) 下装——通讯参数的设置

下装是把控制方案文件从工程师站传送到主控 单元的过程。这要借助于以太网连接来实现。 所以在下装前,需要建立工程师站和主控单元 间的通讯参数,即『在线』『通讯参数』来设

置。

86

(2) 下装——通讯参数的设置

每个控制器算法工程都是针对一个现场控制站组态的, 所以每个控制器算法工程都要建立四个通讯参数,如 下图是下装#10站控制算法工程可以选用的四个通讯 参数。
工程师站#10站工程

9.0 .0.1 .0. 0 10

8 13 .0. 8 9.0 13 12 .0.0. 8 12

12

12

8. 0

#10站主控单元A机

#10站主控单元B机
87

(2) 下装——通讯参数的设置
『在线』『通讯参数』 通讯参数的关键属性是IP地址!下装之前要选择一个通讯参数,选择当前 运行的主控单元对应的通讯参数。
要对#10站主控单元A机 下装,执行登录命令前, 应在通讯设置中选中这两 个参数之一即可。
#10主控单元A机第一块网卡的IP地址

88

(3) 下装——初始化下装
初始化下装:把全新的目标文件下装到正在运行的主控单元,使主控复位, 主控中的所有变量重置初始值。

导致完全下装的情况
无论选择“编译”还是“全部再编译”,如果有下列任何一种情况,都将使原 有的下装目标文件全部重建。再“登录”到主控单元,会是初始化下装!

?第一次编译工程后下装 ?执行过“工程”菜单中的“全部清空”命令,将原有的目标文件纪录清除 ?修改MACS配置 ?修改目标设置 ?修改任务配置中的任务属性 ?主控单元内的程序丢失
89

(3) 下装——初始化下装
如果要下装程序到主控单元,选择『在线』『登录』,弹出如下提示窗口:
初始化下装 提示窗口

如果确认进行全下装,会将全部目标文件下装到控制器中,并将控制器自动 复位(停止运算),所有变量回初值;需要再按下『在线』『运行』使得主 控以新的程序运行起来。所以在系统正常运行时,绝对禁止可能导致系统进 行目标文件重建的操作!

90

(4) 下装——无扰下装
无扰下装即:下装目标文件并没有全部重建,而只在原目标文件的基础上追 加修改内容。无扰下装只将修改的部分下装到主控,对于未修改部分是无扰 的,对于修改部分视具体修改内容判断。 支持无扰下装的情况

?POU的修改(如:增加或删除POU、修改已有POU的组态) ?变量的增减和修改
编译时并不重建所有目标文件,而只将修改的信息追加到原来的目标文件中。 这样,再“登录”到主控单元,会是无扰下装!

91

(4) 下装——无扰下装
如果要下装程序到主控单元,选择『在线』『登录』,弹出如下提示窗口:
无扰下装提 示窗口

如果确认进行无扰下装,则仅将修改的程序信息下装到控制器中,而不会 导致控制器复位。不需要再按下『在线』『运行』。

92

(5) 下装

下装——操作过程 ? 编译通过

? 仿真调试
? 通讯参数设置 ? “登录”主控单元 ? 发出“运行”命 令
93

(6) 调试
控制器算法组态软件提供在本地计算机中仿真调试的功能。 经仿真调试初步检查组态后,便可登录主控下装,在主控中运行程序,再 次进行全面的调试;这时用户无需连接现场设备,就能在试运行之前测试 逻辑的正确性,极大地方便了使用。 在线修改 在登录控制器的情况下修改参数: 双击欲修改的参数(模拟量),弹出对话框,输入新值,开关量的值用变 色来反映。然后以“输入值”或“强制值”方式使修改后的新值生效。

? “输入值”方式修改 (CTRL+F7)

? “强制值”方式修改(F7), “解除强制”(SHIFT+F7)

94

三、生成控制器算法工程

1.基本编译

2.联编
3.生成控制器算法工程

95

1.基本编译 2.联编

3.生成控制器算法

基本编译:在设备组态编译成功的基础上,数据库编
辑完成后可以进行基本编译。基本编译成功后才能进行 联编。基本编译的操作步骤在第四讲中曾经提到。 联编:在服务器控制算法工程编译和基本编译成功之 后可以进行联编。数据库总控画面中打开工程后选择数 据库编译中的联编或单击联编的快捷按钮。在编译信息 栏中将显示是否编译成功。 生成控制器算法工程:联编成功后可以生成控制器 算法工程。数据库总控画面中打开工程后选择数据库下 装。在编译信息栏中将显示是否成功生成控制器算法工 程。
96

点击『开始』『程序』『MACSⅤ组态软件』『数据库组态工具』,打开工程后 弹出如下窗口:

在此窗口中选择数据库编译菜单中的基本编 译或者点击工具栏中基本编译的快捷按钮, 系统将进行基本编译。编译结果将在弹出的 对话框中显示,并且具体编译信息显示在编 译列表栏中。

编译对话框中显示编译结果。单击 确定按钮完成基本编译。如果出现 基本编译错误请按照系统提示的编 译信息更改组态。然后重新进行基 本编译。直到基本编译成功。

在编译栏中显示编译信息。

97

点击『开始』『程序』『MACSⅤ组态软件』『数据库组态工具』,打开工程后 弹出如下窗口:

在此窗口中选择数据库编译菜单中的联编或 者点击工具栏中联编的快捷按钮,系统将进 行联编(联编之前必须先进行基本编译)。 联编结果将在弹出的对话框中显示,并且具 体联编信息显示在编译列表栏中。

编译对话框中显示联编结果。 单击确定按钮完成联编。如 果出现联编错误请按照系统 提示的编译信息更改组态。 然后重新进行联编。直到联 编成功。

在编译栏中显示联编信息。

98

点击『开始』『程序』『MACSⅤ组态软件』『数据库组态工具』,打开工程后 弹出如下窗口:

在此窗口中选择数据库下装菜单中的生成下 装文件或者点击工具栏中生成下装文件的快 捷按钮,系统将生成控制器算法工程。生成 文件的结果显示在列表栏中。

在列表栏中显示生成控制器算法 工程的信息。

99

100


相关推荐

最新更新

猜你喜欢