上一篇文章我们对Graph语言的顺控器做过介绍,可以概括为如下几个知识点:
顺控器是由一系列的步和跳转条件组成的代码;
顺控器的步有激活和未激活两种状态;
可以为每个步编辑相应的动作(指令代码),当步处于激活状态时,会执行这些动作;
顺控器有线形、选择、并行三种结构;
步的动作是很重要的内容,通常在动作中我们会对一些全局变量进行操作。通过这些变量,可以与该函数块之外的函数/函数块进行交互,从而实现控制目的。今天这篇文章,我们就来详细介绍下——动作(Action)。
动作是“步”要执行的指令代码(指令和变量)。在编程开发环境下单击步的右上角图标,可以打开步的动作表,如下图所示:动作表中“限定符”是指令,其右侧的“动作”则是该指令操作的变量。除此之外还有“事件”和“互锁”两栏。
事件:如果某条指令与某个事件绑定,则表示仅在该事件发生时该指令才会被执行;在Graph语言中,有些指令必须与事件绑定,这类指令称为依赖于事件的指令。比如定时器、计数器指令均是依赖于事件的指令;有些指令可以与事件绑定,也可以不绑定,这类指令称为标准指令;
互锁:如果某条指令与“互锁”绑定,则表示仅在互锁条件满足的情况下该指令才会被执行。互锁条件用“-(C)-”表示。双击“步”进入编辑状态时,可以看到互锁条件(interlock)代码编辑区,如下图所示:
上图中编写了步S3的互锁条件代码,即当变量“temperatue”的值小于100时互锁条件满足(为真)。如果不编写互锁条件代码(留空),则表示互锁条件一直满足;
下面来详细介绍下指令与事件。
1、标准指令
标准指令所完成的动作称为标准动作,具体含义见下面的表格:
指令 | 数据类型 | 含义 |
---|---|---|
N |
BOOL FB、FC、SFB、SFC |
当步激活时,操作数(布尔值)被置位并保持;当步取消激活时,操作数被复位;如果是调用函数/函数块,则步激活时调用,取消激活时不调用; |
S | BOOL | 当步激活时,操作数(布尔值)被置位并保持; |
R | BOOL | 当步激活时,操作数(布尔值)被复位并保持; |
D | BOOL,TIME | 该指令有两个操作数,第一个为布尔型,表示要操作的变量(n);第二个为时间型,表示延时的时间(t)。其含义为:当步激活后,延时t时间,将n置位; |
L | BOOL,TIME | 该指令有两个操作数,第一个为布尔型,表示要操作的变量(n);第二个为时间型,表示延时的时间(t)。其含义为:当步激活后,将n置位,并保持t时间; |
注:置位表示将布尔值设置为1(true),复位表示将布尔值设置为0(false)
2、定时器指令
多数定时器指令须与事件绑定(TF指令除外),当事件发生时,定时器指令激活并执行。具体的定时器指令见下面的表格:
指令 | 含义 |
---|---|
TL | 扩展脉冲定时器。当绑定的事件发生时,定时器激活并保持设定的时间,该时间段内定时器的输出为true;当超过设定的时间后,定时器的输出为false。 |
TD | 保持接通延时定时器。当绑定的事件发生时,定时器激活,该时间段内定时器的输出为false;当超过设定的时间后,定时器的输出为true。 |
TR | 停止定时器并复位。当绑定的事件发生时,则立即停止指定的定时器,将其状态和时间值将复位; |
TF | 延时关闭定时器。该指令无需与事件绑定,当步激活时,定时器输出为true。当步取消激活时,定时器开始运行,到达设定的时间后,定时器输出为false; |
注:输出为true表示置位(设置为1),输出为false表示复位(设置为0)
3、计数器指令
计数器指令须与事件绑定(下文介绍事件),具体含义见下面的表格:
指令 | 含义 |
---|---|
CS | 设置计数器的初始值。有两个操作数:计数器(C#0~C#999)和初始值(WORD)。当绑定的事件发生后,该指令将指定计数器的初始值设置为指定的初始值; |
CU | 加计数(向上计数)。当绑定的事件发生后,计数器值加“1”。若计数器值达到上限“999”后,则停止增加。达到上限后,即使出现信号上升沿,计数值也不再递增; |
CD | 减计数(向下计数)。当绑定的事件发生后,计数器值减“1”。若计数器值达到下限“0”时,则停止递减。达到下限后,即使出现信号上升沿,计数值也不再递减; |
CR | 复位计数器。当绑定的事件发生后,计数器值将立即复位为“0”; |
4、事件
事件与指令绑定,以期在特定的条件下执行指令。Graph支持的事件含义见下面的表格:
事件 | 信号检测 | 说明 |
---|---|---|
S1 | 上升沿 | 步从未激活转为激活状态 |
S0 | 下降沿 | 步从激活转为未激活状态 |
V1 | 上升沿 | 监控条件从不满足转为满足状态 |
V0 | 下降沿 | 监控条件从满足转为不满足状态 |
L0 | 上升沿 | 互锁条件从不满足转为满足状态 |
L1 | 下降沿 | 互锁条件从满足转为不满足状态 |
A1 | 上升沿 | 报警从未确认转为确认 |
R1 | 上升沿 | 注册触发(REG_EF/REG_S 输入端的上升沿) |
注1:事件均为沿信号,因此其绑定的指令仅执行一个扫描周期;
注2:互锁条件满足时,与其绑定的指令才会被执行;
注3:若监控条件满足,则顺控器不再跳转到下一步;若不满足,则顺控器可跳转到下一步;如果监控条件为空,则认为不满足;
监控条件和互锁条件如下图所示:
好了,关于GRAPH语言教程的第三篇文章就先介绍到这里。
责任编辑:彭菁
-
代码
+关注
关注
30文章
4780浏览量
68539 -
语言教程
+关注
关注
0文章
2浏览量
5690 -
Graph
+关注
关注
0文章
36浏览量
9081
原文标题:西门子S7-GRAPH编程语言连载(3)——动作
文章出处:【微信号:方正智芯,微信公众号:方正智芯】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论