工业生产过程往往从逻辑上划分为多个步骤,当满足某种条件时,生产过程从一个步骤跳转到另一个步骤,这些步骤构成了“生产工艺”。比如果汁的生产工艺大致包括:清洗→打浆→榨汁→粗滤→均质→加热→装罐→杀菌等,这种顺序执行的生产工艺特别适合用顺序功能图来控制实现。
顺序功能图(SFC-Sequential Function Chart)是国际编程语言标准IEC 61131-3推荐的五种编程语言之一(其它四种语言分别是:梯形图、功能块图、语句表和结构化文本),西门子PLC所支持的编程语言S7-GRAPH(简称GRAPH)就属于顺序功能图。GRAPH语言在实际工业生产中使用广泛,很多企业标准(比如大众的VASS标准、戴姆勒的Integra标准)的流程控制都使用GRAPH语言实现
。本系列教程我们会对GRAPH语言进行系统性介绍,今天这篇文章,先来认识下GRAPH语言。
说明:西门子S7-300/400/1500系列PLC支持GRAPH语言,S7-200 SMART及S7-1200不支持GRAPH语言。
在博途环境下新建项目,双击“添加新设备”,选择支持GRAPH语言的PLC(比如CPU 1515-2PN)。然后单击刚添加设备的左侧项目树→“程序块”→“添加新块”,在弹出的对话框中选择函数块(FB),命名为“seqControl1”,语言选择GRAPH,如下图所示:
创建完成后会自动生成GRAPH语言的编程界面,如下图所示:
其中:
①变量声明区:包括输入变量、输出变量、静态变量等。默认情况下函数块创建完成后会自动生成一些变量,相关内容后序详述;
②导航区:由四部分组成:
前固定指令(permanent pre-instructions);
顺控器(sequencer);
后固定指令(permanent post-instructions);
报警(alarm);
前固定指令是在顺控器指令执行之前所执行的指令,每次调用该函数块时都会被调用(如果编写了的话);
顺控器就是编写的流程控制代码;
后固定指令是在顺控器指令执行之后所执行的指令,每次调用该函数块时都会被调用(如果编写了的话);
报警视图中可以启用报警显示、指定类别启用条件、选择显示类别等;
③代码编辑区:用来编辑GRAPH代码;
接下来详细介绍下函数块的(接口)变量。
使用GRAPH语言创建的函数块,会生成一些默认的接口参数(输入/输出变量)。有三种接口参数的选择方案:
①默认方案;
②最少参数方案(接口参数数目很少);
③最全参数方案(接口参数数目较多);
单击开发环境的工具栏菜单“编辑”→“接口参数”,可以看到三种接口方案,如下图所示:
默认接口参数方案自动生成的参数变量如下图所示:
最少参数方案生成的参数如下图所示(除了静态变量,就只有一个初始化顺控器的参数 INIT_SQ):
最全参数方案生成的接口参数如下图所示:
最全参数方案生成的参数实在是很多,一般情况下用不到这么多参数。
说明:上述只是初始创建函数块时的参数,静态变量里的参数会随着代码的增加而增加。
下面以默认参数方案为例,介绍下各参数的含义:
输入参数(上升沿信号执行)
名称 | 数据类型 | 说明 |
---|---|---|
OFF_SQ | 布尔型 | 关闭顺控器,取消所有步的激活 |
INIT_SQ | 布尔型 | 初始化顺控器,激活初始步 |
ACK_EF | 布尔型 | 确认故障,跳到下一步 |
S_PREV | 布尔型 | 自动模式:向前翻页浏览当前活动步,显示“S_NO”参数中的步号; 手动模式:显示“S_NO”中的上一步(较小编号); |
S_NEXT | 布尔型 | 自动模式:向后翻页浏览当前活动步,显示“S_NO”参数中的步号; 手动模式:显示 S_NO 中的下一步(较大编号); |
SW_AUTO | 布尔型 | 切换到自动模式 |
SW_TAP | 布尔型 | 切换到半自动模式 |
SW_TOP | 布尔型 | 切换到自动或半自动模式 |
SW_MAN | 布尔型 | 切换到手动模式[1] |
S_SEL | 整数型 | 手动模式下选择的步号, 配合S_ON和S_OFF使用 |
S_ON | 布尔型 | 激活S_SEL选择的步号 |
S_OFF | 布尔型 | 取消激活S_SEL选择的步号 |
T_PUSH | 布尔型 | 自动或手动模式下,如果满足条件且该参数有上升沿信号,则跳转到下一步 |
注[1]:SW_AUTO/SW_TAP/SW_TOP/SW_MAN,每一次上升沿都会激活其对应的模式,并使上一次模式失效;
输出参数
名称 | 数据类型 | 说明 |
---|---|---|
S_NO | 整数 | 步号 |
S_MORE | 布尔型 | 更多步,其它步也被激活 |
S_ACTIVE | 布尔型 | 所显示的步处于激活状态 |
ERR_FLT | 布尔型 | 常规故障 |
AUTO_ON | 布尔型 | 自动模式 |
TAP_ON | 布尔型 | 半自动模式 |
TOP_ON | 布尔型 | 半自动模式 |
MAN_ON | 布尔型 | 手动模式 |
好了,关于GRAPH语言教程的第一篇文章就先介绍到这里。