龙空技术网

西门子S7-GRAPH编程语言连载(3)——动作

北岛李工 278

前言:

如今大家对“信号处理编程语言是什么”大约比较注重,兄弟们都想要了解一些“信号处理编程语言是什么”的相关内容。那么小编也在网摘上收集了一些有关“信号处理编程语言是什么””的相关知识,希望小伙伴们能喜欢,你们快快来学习一下吧!

上一篇文章我们对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语言教程的第三篇文章就先介绍到这里。

下面是西门子S7-GRAPH语言编程的文章归档链接:

西门子S7-GRAPH编程语言文章归档 | 北岛夜话

我的书《西门子S7-1200/1500 PLC SCL语言编程 ——从入门到精通》从硬件到软件,比较详细的介绍了SCL语言的编程,感兴趣的话可以扫描下面的二维码查看:

标签: #信号处理编程语言是什么