S7-GRAPH编程,S7-GRAPH

基础 3
编程 ProgrammingwithS7-GRAPH GettingStarted Edition(2008年7月) 摘要 本文档主要用于讨论与S7-GRAPH编程相关的以下问题:编程软件的基本信息基本概念讲解基本使用讲解用于示例工程的简单应用例子实际使用中常见问题及讲解 关键词 编程工具;Step7;梯形图;语句表;S7-GRAPH; KeyWords Programmingtools;Step7;LAD;STL;S7-GRAPH; A&DService&Support Page2-56 目录 S7-GRAPH编程

.......................................................................................................1
1.

前言

....................................................................................................................6
2.

软件的基本信息

..................................................................................................6 2.1.

S7-GRAPH

简介............................................................................................

6 2.2.S7-GRAPH与STL:...................................................................................7 2.3.S7-GRAPH安装与使用:............................................................................7 2.4.S7-GRAPH软件兼容性................................................................................7 2.5.S7-GRAPH中英文词汇对照关系.................................................................7
3.S7-GRAPH基本概念与基本使用........................................................................8 3.1.S7程序构成

...................................................................................................

8 3.2.用户界面

........................................................................................................

8 3.2.1.生成新S7-GRAPH程序..........................................................................................................8
3.2.2.

工具条..................................................................................................................................

103.2.3.

工作区..................................................................................................................................

103.2.4.

概览窗口..............................................................................................................................

123.2.5.

详细窗口..............................................................................................................................

143.2.6.S7-GRAPH格式的FB与Source文件...............................................................................14
4.

顺控器规则........................................................................................................15 4.1.

顺控器执行规则:.......................................................................................

15 4.2.顺控器结构

..................................................................................................

16 4.3.顺控器元素

..................................................................................................

16 4.4.

条件与动作的编程.......................................................................................

17 4.4.1.

步的构成及属性..................................................................................................................

174.4.2.

步的动作(action)..........................................................................................................

184.4.3.

动作(action)分类:......................................................................................................

194.4.4.

没有动作的步......................................................................................................................

194.4.5.

动作的指令..........................................................................................................................

20 4.5.S7-GRAPH特有地址..................................................................................20 A&DService&Support Page3-56 4.6.S7-GRAPHFB参数设置............................................................................20 4.6.1.S7-GRAPHFB

参数设置:...................................................................................................

214.6.2.

接口描述设置:..................................................................................................................

234.6.3.Executability

选项...........................................................................................................

234.6.4.

顺控器属性设置..................................................................................................................

23 4.7.S7-GRAPHFB程序的背景数据块.............................................................24 4.8.

背景数据块进阶使用...................................................................................

25
5.程序调试

...........................................................................................................28
6.

S7-GRAPH应用于虚拟工程.................................................................................29 6.1.

虚拟工程工艺要求.......................................................................................

29 6.2.S7-GRAPH简单示例..................................................................................32
7.S7-GRAPH

常见问题........................................................................................40 7.1.

与监控调试相关问题...................................................................................

40 7.1.1.

问题:监控不完整..............................................................................................................

407.1.2.

问题:顺控器不切换..........................................................................................................

417.1.3.

问题:无法监视顺控器......................................................................................................

417.1.4.

问题:顺控器初始化..........................................................................................................

427.1.5.问题:S7-GRAPH程序占用多少内存................................................................................427.1.6.问题:如何监控一系列步的时间......................................................................................437.1.7.

问题:无法监控步的激活时间..........................................................................................

45 7.2.

与使用技巧相关问题...................................................................................

45 7.2.1.问题:如何使用背景数据块内部的步数信息..................................................................457.2.2.问题:如何使用背景数据块内部的转换条件的信息......................................................467.2.3.问题:如何在自动模式中重新激活上次的活动步..........................................................477.2.4.问题:如何实现忽略监控干扰而实现顺控器到下一步的转换......................................487.2.5.问题:如何确定S7-GRAPH顺控器的故障步....................................................................497.2.6.问题:为什么同时满足转换条件和监控的条件时,转换条件会切换到下一步...........507.2.7.问题:为什么尽管互锁条件没有完成,在离开步的时候动作“L0S”被执行?.......517.2.8.问题:如何将无条件同时分支改为条件分支时不需重新输入所有受影响的步...........517.2.9.问题:如何在第一个OB1周期中或第一次调用S7-GRAPHFB时关闭顺控器..............537.2.10.问题:为什么计数器比较功能产生一个错误结果........................................................557.2.11.问题:为什么在顺控器中无法通过程序激活另一个步................................................557.2.12.问题:如何加密S7-GRAPH

块...........................................................................................

55
8.附录-推荐网址

................................................................................................56 8.1.

西门子自动化与驱动产品的在线技术支持................................................56 A&DService&Support Page4-56 重要提示:本文为技术交流文档,不能作为订货、选型等重要事宜的唯一依据,建议您参考Siemens的标准产品样本和技术手册进行产品的选型和订货。
A&DService&Support Page5-56
1.前言 本文可以作为S7-GRAPH编程语言的使用参考资料,希望读者通过对本章的阅读,能够更快更好地学习S7-GRAPH编程语言。
西门子提供了S7-GRAPH编程语言的详尽手册,在安装S7-GRAPH软件包后,通过点击Windows菜单开始->Simatic->Documentation->English可以阅读到名称为“S7-GRAPH-ProgrammingSequentialControlSystems”的PDF手册。
此手册共分为15个章节,其详细地讲解了S7-GRAPH编程语言。
一切关于S7-GRAPH使用的问题请以此手册为准。
相对于其它编程语言,S7-GRAPH有着它本身一些特性,一些独特的概念也比较难于理解。
本文中将对S7-GRAPH手册中的部分内容作出额外强调与讲解,虽然这些讲解与手册有重叠之处,但希望通过这些讲解能够使用户更快地掌握S7-GRAPH的使用。
在讲解内容之后,再列举出一些用户在实际使用当中经常会遇到的问题,希望能够对用户有所帮助。
相关手册地址连接:S7-300和S7-400的梯形图(LAD)编程/CN/view/zh/18654395S7-300和S7-400的语句表(STL)编程/CN/view/zh/18653496使用STEP7V5.3编程/CN/view/zh/18652056S7-GRAPHV5.3forS7-300/400/CN/view/zh/1137630
2.软件的基本信息 2.1.S7-GRAPH简介 S7-GRAPH具有以下特点:适用于顺序控制程序符合国际标准IEC61131-3PLCopen基础级认证适用于SIMATICS7-300(推荐用于CPU314以上CPU),S7-400,C7andWinAC S7-GRAPH针对顺序控程序做了相应优化处理,它不仅仅具有PLC典型的元素(例如输入/输出,定时器,计数器),而且增加了如下概念: A&DService&Support Page6-56 多个顺控器(最多8个)步骤(每个顺控器最多250个)每个步骤的动作(每步最多100个)转换条件(每个顺控器最多250个)分支条件(每个顺控器最多250个)逻辑互锁(最多32个条件)监控条件(最多32个条件)事件触发功能切换运行模式:手动、自动及点动模式 2.2.S7-GRAPH与STL: S7-GRAPH可以编译成STL,虽然其代码量相对于STL编程有所增加,但开发人员可以将更多的精力集中到控制任务上,提高了工程效率。
2.3.S7-GRAPH安装与使用: STEP7标准版并不包括S7-GRAPH软件包及授权,需单独购买,STEP7Professional版包括了S7-GRAPH的软件包及授权,安装即可。
在S7程序中,S7-GRAPH块可以与其它STEP7编程语言生成的块组合互相调用,S7-GRAPH生成的块也可以作为库文件被其它语言引用。
2.4.S7-GRAPH软件兼容性 不同S7-GRAPH软件版本与STEP7及操作系统之间的兼容性:图中的X表示兼容,-表示不兼容 表2-1S7-GRAPH软件兼容性注:1)仅仅S7-GRAPHV5.3+SP1或以后版本支持 2.5.S7-GRAPH中英文词汇对照关系 由于很多英文的科技专用词汇没有明确统一的中文词汇,所以在本文的讲解当中,尽量保持 手册中的英文信息。
本文中将尽量减少使用中文词汇代替英文专用词汇,需要代替的中英文词汇 对照关系如下: •
Sequencer 顺控器 A&DService&Support Page7-56 •Step•Branch•Interlock•Supervision•Transition 步分支互锁条件监控条件转换条件
3.S7-GRAPH基本概念与基本使用 3.1.S7程序构成 作为STEP7的选项包,S7-GRAPH软件在安装后,将被集成在STEP7中使用。
S7-GRAPH编程界面为图形界面,包含若干个顺控器。
当编译S7-GRAPH程序时,其生成的块以FB的形势出现,此FB可以被其它程序调用,例如OB1。
CALLFB2,DB2 INIT_SQ:=M0.0 调用GRAPH生成的功能块适用范围:OB/FB/FC GRAPHFB GRAPH背景数据块DB FB:在编译时生成 DB:尽量在编译时生成,以保持一致性 3.2.用户界面 图3-1:S7程序构成 3.2.1.生成新S7-GRAPH程序 首先,在STEP7当中生成一个新项目,用右键点击Sourc文件夹,插入一个新的GRAPHSource,如下图: A&DService&Support Page8-56 图3-2:生成新S7-GRAPH程序注意:用户也可以在Block文件夹插入一个GRAPH格式的FB,与插入源文件的区别,将在本文的后续部分详细讲解。
双击新生成的GRAPHsource后,可以打开用户界面,如下图:
1 1
3 2
1.工具条A&DService&Support 45 图3-3:S7-GRAPH用户界面 Page9-56
2.工作区
3.概览窗口
4.详细窗口
5.状态条 3.2.2.工具条 工具条中可以分为4类功能,标准功能:主要为文件功能,例如打开,保存,复制,粘贴等功能视图功能:调整显示作用,如是否显示符号名等顺控器:包含顺控器元素,如分支,跳转,步等。
LAD/FBD:可以为每步添加LAD/FBD指令。
3.2.3.工作区 工作区是S7-GRAPH中的最重要的区域,典型的工作区视图如下: 步的互锁条件步的监控条件 步的符号名 步的注释区步的动作列表 步的转换条件 转换条件符号名 图3-4:S7-GRAPH工作区视图互锁条件(Interlock):Interlock是每步的一个可编程条件,它将影响每个单独步的执行情况。
•如果互锁条件(Interlock)满足,则与互锁条件组合的指令将被执行(在S7-GRAPH中有专门与Interlock状态相关的指令) •如果互锁条件(Interlock)不满足,则: A&DService&Support Page10-56 o与互锁条件组合的指令将不被执行o互锁错误信号将为1(事件eventL1)每个互锁条件(Interlock)最多可以容纳32个LAD/FBD元素,在工作区中用字母“C”来表示。
如果每个互锁条件(Interlock)为空,即没有编程,系统则认为互锁条件满足。
例子:下图中的监测温度超过了90度的设定值,即互锁条件(Interlock)不满足,则监控时互锁错误信号被触发。
温度比较,超过了90度 超过了90度 图3-5:互锁条件使用监控条件(Supervision):Supervision是每步的一个可编程条件,它将影响每个单独步向下一步转换的执行情况。
•如果监控条件(Supervision)满足,则事件V1发生,顺控器不再转换到下一步,当前步保持激活,步的激活时间Si.U停止。
•如果监控条件(Supervision)不满足,并且当前步向下一步的转换条件满足,顺控器将转换到下一步。
每个监控条件(Supervision)最多可以容纳32个LAD/FBD元素,在工作区中用字母“V”来表示。
如果每监控条件(Supervision)为空,即没有编程,系统则认为监控条件不满足。
A&DService&Support Page11-56 3.2.4.概览窗口 概览窗口的Graphic视图: 顺控器之前的Permanentinstructions 顺控器 顺控器之后的Permanentinstructions 图3-6:概览窗口的Graphic视图Permanentinstructions:英文原意为永久的,固定的指令。
可以通过右键点击图中的区域,在提示InsertNewElement->PermanentInstruction下,选择Condition或者Call。
不论顺控器的状态如何,这些指令可以在每次扫描时被执行。
可以在S7-GRAPH的FB中编写任意多的指令(资源足够的情况下)。
注意:Permanentinstructions只支持两种格式,即: •LAD/FBD格式的AND,OR,比较指令(每个NETWORK最多可以容纳32个)•CALL指令如果希望Permanentinstructions使用LAD/FBD其它格式指令,请将这些指令编写为FB,FC,然后用CALL格式调用。
A&DService&Support Page12-56 添加LAD指令 注意此处可以使用的指令类型是有限制的 添加新程序行,或CALLFC,FB等 图3-7:Permanentinstructions使用概览窗口的Sequencer视图:对于每个S7-GRAPH的FB程序,可以包括多个Sequencer(顺控器),如果希望对多个顺控器概览察看,可以选择概览窗口的Sequencer视图 A&DService&Support Page13-56 图3-8:概览窗口的Sequencer视图概览窗口的Variables视图:在S7-GRAPH的FB程序中,可以通过概览窗口的Variables视图,察看并编辑如下资源 图3-9:概览窗口的Variables视图 3.2.5.详细窗口 可以查看编译信息,变量监控,交叉参考等状态条显示在线,离线,CPU状态等。
3.2.6.S7-GRAPH格式的FB与Source文件 在生成STEP7项目后,可以通过两种方式生成S7-GRAPH程序:•S7-GRAPH格式的FB,右键点击项目中的Block文件夹,InsertNewObject->FunctionBlock->CreatedinLanguage选择GRAPH•S7-GRAPH格式的Source文件,右键点击项目中的Source文件夹,InsertNewObject->选择GRAPHSource 两者互相转换:S7-GRAPH格式的FB可以通过菜单File->GenerateSourceFile生成S7-GRAPH格式的Source文件;S7-GRAPH格式的Source文件也可以通过菜单File->Compile生成S7-GRAPH格式的FB。
A&DService&Support Page14-56 两者的区别:S7-GRAPH格式的FB保存时会自动检查语法错误,如果有语法错误,则无法保存;S7-GRAPH格式的Source文件可以随时保存,不检查语法错误。
FB保存后即为可执行代码,可以下载调试;S7-GRAPH格式的Source文件只能用于记录用户程序,无法下载调试。
因此,编程者如果不能保证一次编写完成语法正确的程序,建议的使用Source文件格式。

4.顺控器规则 S7-GRAPH格式的FB程序是这样工作的:•每个S7-GRAPH格式的FB,都可以作为一个普通FB被其它程序调用•每个S7-GRAPH格式的FB,都被分配一个背景数据块,此数据块用来存储FB参数设置,当前状态等等•每个S7-GRAPH格式的FB,都包括三个主要部分:顺控器之前的Permanentinstructions,一个或多个顺控器,顺控器之后的Permanentinstructions 4.1.顺控器执行规则: 请注意下面描述中的英文关键字,这些关键字对于学习实用S7-GRAPH非常重要
1.每个顺控器都以如下情况开始:•一个初始步或者•多个位于顺控器任意位置的初始步只要某个步的某个动作(action)被执行,则认为此步被激活(active),如果多个步被同时执行,则认为是多个步被激活(active)
2.一个激活的步在如下情况退出:•任意激活的干扰(activedisturbaces),例如互锁条件或监控条件的消除或确认•并且至后续步的转换条件(transition)满足
3.满足转换条件的后续步被激活
4.在顺控器的结束位置如果有:•一个跳转指令(jump),指向本顺控器的任意步,或者FB的其它顺控器。
此指令可以实现顺控器的循环操作•分支停止指令。
顺控器的步将停止 步(Step)A&DService&Support Page15-56 在S7-GRAPH程序中,控制任务被分为多个独立的步。
在这些步中将声明一些动作,这些动作将在某些状态下被控制器执行(例如控制输出,激活或非激活某些步)激活的步(ActiveStep)激活的步是一个当前自身的动作正在被执行的步。
一个步在如下任意情况下,都可被激活: •当某步前面的转换条件满足•当某步被定义为初始步(initialstep),并且顺控器被初始化•当某步被其它基于事件的动作调用(event-dependentaction) 4.2.顺控器结构 图4-1:顺控器结构由上图示例中可以归纳出三点:
1.S7-GRAPH的FB可以是简单的线性结构顺控器
2.S7-GRAPH的FB可以是包括选择结构及并行结构顺控器
3.S7-GRAPH的FB可以包括多个顺控器 4.3.顺控器元素 在工具栏中有如下顺控器元素,用户应当熟练使用: Step+Transition(步+转换条件)在新建的S7-GRAPHFB中,默认会有一个步及转换条件,用户可以在此基础上增加新的步及 A&DService&Support Page16-56 转换条件。
步+转换条件的形式总是组合出现的,它们会被系统自动分配一个编号,此编号可以被任意修改。
初始步:当一个S7-GRAPHFB被调用时,顺控器中的初始步将被无条件执行,此步不一定是顺控器中编号第一的步。
顺控器由FB的参数INIT_SQ=1被初始化,由初始步开始执行。
Jump(跳转指令)OpenAlternativeBranch(打开选择分支)CloseAlternativeBranch(关闭选择分支)OpenSimultaneousBranch(打开并行分支)CloseSimultaneousBranch(关闭并行分支)Branch(分支停止)InsertSequencer(插入顺控器) 当前可以使用的元素当前可以使用的元素 可以在此视图下,先大致编辑顺控器的总体结构 选择某步后,工具栏中的相应适合的元素由灰色变为可以使用 双击此处的某步或指令后,在工作区可以进行详细编辑 4.4.条件与动作的编程 图4-2:顺控器元素 4.4.1.步的构成及属性 双击顺控器的结构视图的某步后,在工作区可以对每步进行详细编辑,见下图: A&DService&Support Page17-56 步的互锁条件步的监控条件步的符号名 步的注释区步的动作列表 步的转换条件 转换条件符号名 图4-3:步的构成步的属性:右键点击步的图标,选择ObjectProperties,注意初始步属性的选择。
步的编号 步的注释 初始步的属性 4.4.2.步的动作(action) 添加动作A&DService&Support 图4-4:步的属性 Page18-56 步的动作(action)在S7-GRAPH的FB中占有重要位置,用户大部分控制任务要由步的动作来完成,编程者应当熟练掌握所有的动作(action)指令。
图4-5:添加动作可以通过右键点击步的动作图标,添加新的动作。
动作执行顺序 注意指令格式,如空格等指令执行顺序 图4-6:指令执行顺序 4.4.3.动作(action)分类: 动作可以分为以下几类:•标准动作o与interlock有关或无关•基于事件的动作o与interlock有关或无关o与步的激活或非激活有关•计数器,定时器及算术指令的动作 4.4.4.没有动作的步 顺控器中可以有没有动作的步,顺序执行到这些步后,此步激活,并直接进入后续的转换条件判断部分。
A&DService&Support Page19-56 4.4.5.动作的指令 动作(action)的具体指令描述在S7-GRAPH的手册中占有大量篇幅,编程人员应当像学习LAD中的基本指令一样,熟练地掌握动作指令。
限于篇幅,本文不再讲解。
4.5.S7-GRAPH特有地址 在S7-GRAPHFB中存在一些特有地址,用户可以像使用普通PLC地址一样来使用这些地址,具体 含义见下表: 地址 含义 使用方式 Si.T 步i的当前或上次的激活时间 比较,赋值 Si.U 步i的没有干扰的总的激活的时间 比较,赋值 Si.X 显示步i是否被激活 常开/常闭触点 Transi.TT显示转换条件i是否满足 常开/常闭触点 表4-1S7-GRAPH特有地址 S7-GRAPH特有地址的引用格式见下图: 步3的状态 转换条件3的状态 图4-7:S7-GRAPH特有地址的引用格式 4.6.S7-GRAPHFB参数设置 注意:由于S7-GRAPHFB是在其它程序中被调用的,所以其接口参数的设置及编译设置对程序的后续调试及执行有着重大的影响,在此加以强调。
在S7-GRAPH编辑器菜单中选择Options->BlockSettings...可以进行FB设置,如下图: A&DService&Support Page20-56 图4-8:S7-GRAPHFB参数设置 4.6.1.S7-GRAPHFB参数设置: S7-GRAPHFB参数设置包括4种类型:
1.Minimum,FB只包括SQ_INIT启动参数,如果用户的程序仅仅会运行在自动模式,并且不需要其它的控制及监控功能,可以选择此模式
2.Standard,FB包括默认参数,如果用户希望程序运行在各种模式,并提供反馈及确认消息功能。
可以选择此模式。

3.Maximum(S7-GRAPH版本=>V4.x)FB包括默认参数,扩展参数,提供更多的控制,监控参数
4.User-defined(S7-GRAPH版本=>V5.x)包括默认参数,扩展参数,提供更多的控制,监控参数 注意:选择FB参数设置后,可以手动对接口参数进行修改,例如删除一些不关心的部分接口参数。
下表是对部分参数的解释,希望有利于用户调试使用。
A&DService&Support Page21-56 FB参数(上升沿有效) ACK_EFINIT_SQOFF_SQSW_AUTOSW_MANSW_TAPSW_TOP S_SEL S_ON 内部变量(静态数据区 名称)MOP.ACKMOP.INITMOP.OFFMOP.AUTOMOP.MANMOP.TAPMOP.TOP - - 顺序控制器含义(S7-GRAPH名称) "Acknowledge""Initialize""Disable""Automatic(Auto)""Manualmode(MAN)""Inchingmode(TAP)""Automaticorswitchtonext(TOP)""Stepnumber" "Activate" 故障信息得到确认激活初始步(顺控器复位)停止顺控器,例如使所有步失效模式选择:自动模式模式选择:手动模式模式选择:单步调节模式选择:自动或切换到下一个 选择,激活/去使能在手动模式S_ON/S_OFF在S_NO步数手动模式:激活步显示。
S_OFF - "Deactivate" 手动模式:去使能步显示。
T_PUSHSQ_FLAGS.ERRORSQ_FLAGS.FAULTEN_SSKIPEN_ACKREQHALT_SQHALT_TM ZERO_OP EN_ILEN_SV MOP.T_PUSH- MOP.SSKIPMOP.ACKREQMOP.HALTMOP.TMS_HALTMOP.IL_PERMMOP.T_PERMMOP.OPS_ZERO MOP.SUPMOP.LOCK "Continue" "Errordisplay:Interlock""Errordisplay:Supervision"Skipsteps""Acknowledgeerrors""seqencer""timers" "Alwaysprocessinterlocks""Alwaysprocesstransitions""Actionsactive" "Supervisionactive""Interlocksactive" 单步调节模式:如果传送条件满足,上升沿可以触发连续程序的传送。
错误显示:“互锁” 错误显示:“监视” 激活步的跳转。
使能确认需求 停止程序顺序并且重新激活停止所有步的激活运行时间和块运行和重新激活临界时间“执行互锁” “执行程序传送” 复位所有在激活步
N,D,L操作到
0,在激活或不激活操作数中不执行CALL操作。
复位/重新使能步互锁 复位/重新使能步监视 表4-2S7-GRAPHFB参数 关于选择FB参数的详细解释,请参考S7-GRAPH手册中关于背景数据块结构描述的章节。
A&DService&Support Page22-56 4.6.2.接口描述设置: 在编译选项菜单中,InterfaceDescription及Executability两个选项是密切关联的,当选择占用内存最小(Memoryminimized)时,必须选择FC73。

1.Memoryminimized占用内存最小,但诊断及调试的功能受限制。

2.Structurearrays步的描述以数组的方式存储在背景数据块中,不允许符号名方式 访问步。

3.Individualstructures步的描述以独立的数据结构方式存储在背景数据块中,允许 符号名方式访问步及转换条件。
这种方式增加了背景数据块的大小。
4.6.3.Executability选项
1.Fullcode全代码,所有运行S7-GRAPHFB程序需要的代码都将被包括在FB自身当 中,不需要额外的FC。

2.StandardFCrequired(>=V4.x)标准的FC,如果选择此项,则S7-GRAPH使用标 准FC(FC70,FC71,FC72,orFC73)来支持所有的S7-GRAPHFBs。
填入FC的标号 即可。
不同Executability选项下的区别: FullcodeStandardFC70 StandardFC71StandardStandardFC73 FC72 内存取决于顺控约8200字节约7750字节 约10700约8150字节 要求器的大小 字节 任务 无 在S7-GRAPHV5.1在S7-GRAPHV5.1 无 无诊断消息,无步激 限制 及更高版本中可及更高版本中可以 活时间(.U),无"跳 以使用算术运算,使用算术运算,定时 跃步功能"选项,无 定时器,计数器功器,计数器功能,无 法跳跃至用户指定 能 用户自定义参数 的步及转换条件 表4-3S7-GRAPH程序占用内存情况 4.6.4.顺控器属性设置
1.CriteriaanalysisdatainDB当使用SIMATIC标准应用程序ProTool/ProAgent时,此选项用来将分析数据存储在背景数据块中。
A&DService&Support Page23-56
2.Skipsteps激活步跳转功能(有利于调试)
3.Acknowledgeerrors如果在顺控器执行时,发生了干扰(disturbance),此时必须在 输入参数"ACK_EF"上确认,顺控器才会继续执行。
此选项在把FB参数设置为Minimum时不可选。

4.Synchronization(asofV4.0)同步(4.0以上版本有效)允许将程序与过程同步
5.Permanentprocessingofallinterlocksinmanualoperation在手动模式下,如果选择此项,无论实际情况如何,每步的interlocks都将满足,并在监控的状态下显示出来。

6.Lockoperatingmodeselection(V5.x)锁定操作模式。
如果选择此参数,则当程序运行时,无法通过编程设备改变顺控器运行模式(如手动/自动模式切换)
7.Safeactivationmode(asofV5.1)安全激活模式。
此选项影响步的激活状态,当某步被激活时,系统同时将所有其它不能被激活的步去除激活。
例如:在分支选择程序中的某步被激活时,另一个分支的所有步都将被去激活。
4.7.S7-GRAPHFB程序的背景数据块 S7-GRAPHFB程序的背景数据块保存着顺控器执行的所有信息,因此,S7-GRAPHFB程序的背景数据块在调试及运行中有着重要的作用。
编程人员要务必注意以下几点: •当修改顺控器程序后,下载时务必下载背景数据块•PLC断电后,背景数据块将保持,建议用户在供电恢复后,执行顺控器初始化操作•在其它用户程序中,不要随意改写S7-GRAPHFB程序背景数据块内容,否则将引起顺控器 执行混乱,并对系统安全性构成威胁•在其它用户程序中,改写S7-GRAPHFB程序背景数据块内容,可以改变顺控器状态,编程 者务必慎用。
注意:在下载S7-GRAPHFB程序时,建议选中图中所有项。
A&DService&Support Page24-56 图4-9:S7-GRAPHFB下载参数设置 4.8.背景数据块进阶使用 进阶使用背景数据块信息的意义: 在用户在其它程序中调用S7-GRAPHFB程序时,S7-GRAPHFB提供给用户的接口资源是有限的,用 户如果希望使用S7-GRAPH的更多、更高级的功能(例如当前步的状态,转换条件信息等),就需 要对FB的背景数据块的结构有所了解。
这样就可以达到灵活使用S7-GRAPH程序,S7-GRAPH程 序与其它程序无缝衔接的目的。
前面的讲解已经说明了关于FB的设置及分配问题,下面重点强调一下FB的背景数据块的结构, 见下表: 区域 名称 长度 依赖于参数设置 FB参数 S7-GRAPHFB输入/输出参数 2字节:minimum10字节:standrad/maximum 不确定:user-define 保留工作区G7T_
0 16字节 转换条件 转换条件名称(例如Trans1,Trans2) 转换条件个数*16字节 保留工作区G7S_
0 32字节 A&DService&Support Page25-56 步 步的名称(例如Step1,Step2) 步个数*32字节 顺控器状态- - 内部工作区- - 表4-4S7-GRAPHFB背景数据块结构 对于FB的背景数据块中关于转换条件的结构,请参考下表: 组件 说明 数据内内外外类型部部部部 读写读写 TV转换条件有效 BOOLyesnoyesno TT转换条件满足 BOOLyesnoyesno TS转换切换 BOOLyesnoyesno CF_IVCRIT_FLT条目不允许 BOOLyesnoyesno TNO显示用户定义的转换条件数量 INTnonoyesno 当前处理周期中,转换条件中LAD/FBD元素(最 CRIT多32个)的状态 DWORDyesnoyesno 前一个处理周期中,转换条件中LAD/FBD元素 CRIT_OLD(最多32个)的状态 DWORDyesnoyesno CRIT_FLT如果错误发生,将复制CRIT状态 DWORDyesnoyesno 表4-5S7-GRAPHFB背景数据块中转换条件的结构 对于FB的背景数据块中关于步条件的结构,请参考下表: 组件S1L1V1R1A1S0L0V0XLAVA 说明步激活进入事件interlock离开事件Supervision进入事件保留错误被确认步激活离开事件Interlock进入事件Supervision离开事件步激活状态Interlock不满足Supervision满足 数据类内部内部外部外部 型 读 写 读 写 BOOLyesnoyesno BOOLyesnoyesno BOOLyesnoyesno BOOL no no no no BOOLyesnoyesno BOOLyesnoyesno BOOLyesnoyesno BOOLyesnoyesno BOOLyesnoyesno BOOLyesnoyesno BOOLyesnoyesno A&DService&Support Page26-56 RAAASSLSVSSNOT
U CRIT_LOC 保留 BOOL no no no no 保留 BOOL no no no no 系统内部变量 BOOL no no no no interlock
状态 BOOLyesnoyesno supervision状态 BOOLyesnoyesno 用户步的编号 INT no noyesno 步激活的所有时间 TIMEyesnoyesno 没有干扰情况下步激活的时 间 TIMEyesnoyesno 当前处理周期中,Interlock 中LAD/FBD元素(最多32个) 的状态 DWORDyesnoyesno CRIT_LOC_ERR CRIT_SUPSMLPLNVPVNH_IL_ERRH_SV_FLTRESERVED 当interlock离开时,将复 制CRIT_LOC状态 DWORDyesnoyesno 当前处理周期中, Supervision中LAD/FBD元素 (最多32个)的状态 DWORDyesnoyesno 系统内部变量 BOOL no no no no 系统内部变量 BOOL no no no no 系统内部变量 BOOL no no no no 系统内部变量 BOOL no no no no 系统内部变量 BOOL no no no no 系统内部变量 BYTE no no no no 系统内部变量 BYTE no no no no 保留 DWORD
no no no no 表4-6S7-GRAPHFB背景数据块中步的结构 表格解释: 内部读:在S7-GRAPH程序内部,对此变量的读操作 内部写:在S7-GRAPH程序内部,对此变量的写操作 外部读:在S7-GRAPH程序外部,其它程序中对此变量的读操作 外部写:在S7-GRAPH程序外部,其它程序中对此变量的写操作 步激活进入事件:当步刚刚变为激活状态时(进入状态),此事件被认为是步激活进入事件,例如: 对于Step1.S1,此变量在Step1进入激活状态时,接通一个扫描周期。
步激活离开事件:当步刚刚变为非激活状态时(离开状态),此事件被认为是步激活离开事件,例 如:对于Step1.S0,此变量在Step1进入非激活状态时,接通一个扫描周期。
A&DService&Support Page27-56
5.程序调试 把程序下载后,可以进行调试工作。
在菜单Debug-Monitor中,可以监视顺控程序的执行状态,在菜单Debug-ControlSequencer中,可以控制顺序执行的手动/自动模式,当前激活的步骤。
顺控器操作按钮 可以切换手/自动方式 手动方式下,可以激活指定的步 缓动方式,注意帮助信息中的限制条件 众多参数的使用,请参考帮助信息 图5-1:顺序控制功能 菜单Debug-Synchronization可以同步顺控器,模式为手动模式,可以选择当前激活的步,如下图: A&DService&Support Page28-56 手动方式下,可以激活指定的步 图5-2:手动调试模式重要提示:调试功能可以更改当前程序的手动/自动模式,当前激活的步骤(手动模式下程序限定条件无效,并可以直接选择当前激活的步骤,例如直接从第一步跳转至最后一步)。
这样的操作有可能跳过系统原有的保护,可能对人身或生产造成伤害及影响,所以在对工艺及S7-GRAPH不熟悉的情况下,请勿使用此功能。
至此,本章节用尽量少的篇幅强调了S7-GRAPH编程语言中需要注意的知识点,在后续的章节再列举出一些用户在实际使用当中经常会遇到的问题,希望能够对用户有所帮助。

6.S7-GRAPH应用于虚拟工程 6.1.虚拟工程工艺要求 下面将以的虚拟工程中的原料配比环节来举例说明S7-GRAPH的使用。
原料配比示意图: A&DService&Support Page29-56 原 原 原 料 料 料
A B
C 液位
C 液位B液位
A 阀门
D 图6-1:原料配比示意图 原料配比环节需要将三种原料
A,B,C按照一定的工艺要求进行混合,并且搅拌均匀后由阀门 D送至下一工艺流程。
并且在箱体流入液体过程中的任意时刻,如果温度超出了温度
X,则关闭 入口阀门。
输入输出符号定义: •阀门
A Q1.0 •阀门
B Q1.1 •阀门
C Q1.2 •搅拌电机Q1.3 •阀门
D Q1.4 •搅拌复位I1.0 •搅拌开始I1.1 简单工艺描述: 初始化打开阀门
A,当液体A到达限位A时,关闭阀门
A,打开阀门
B,当液体B到达限位B时,关闭阀门
B,启动搅拌电机,5分钟后关闭搅拌电机, 如果附加工艺选择为“0”:•则打开阀门
D,流程结束。
如果附加工艺选择为“1”:则打开阀门
C,当液体C到达限位C时,关闭阀门
C,启动搅拌电机,10分钟后关闭搅拌电机,,打开阀门
D,流程结束。
A&DService&Support Page30-56 下图为原料配比工艺流程图:初始化 打开阀门
A 到达限位A否 是关闭阀门
A 打开阀门
B 到达限位B是 关闭阀门B启动搅拌电机 5分钟关闭搅拌电机 附加工艺选择=0是 打开阀门D5分钟 关闭阀门D结束 否否 打开阀门
C 到达限位C否 是关闭阀门C启动搅拌电机 10分钟关闭搅拌电机 图6-2:原料配比工艺流程图 A&DService&Support Page31-56 6.2.S7-GRAPH简单示例 原料配比环节的控制任务属于非常典型的顺序控制流程,在下面的例子中,将使用FB2编写原料配比程序。
1)添加功能块 图6-3:添加功能块 A&DService&Support Page32-56 2)选择功能块类型 3)编程元素 图6-4:选择功能块类型 顺序编程元素 逻辑控制元素 第一步,属性中默认为 初始步骤 图6-5:编程元素A&DService&Support Page33-56 4)编程分支及流程 依次从顺序控制元素中选择需要的类型,添加到 控制图中分支开始 可更改名称便于记忆 分支结束流程结束图6-6:编程分支及流程 A&DService&Support Page34-56 5)初始化处理 等待搅拌开始信号 右键->InsertNewElement->Action关闭所有阀门 6)互锁条件及指令 图6-7:初始化 设置互锁条件:箱体温度低于设定值只有在互锁条件满足且当前步有效时,打开阀门
A 步骤3开始的条件:液位大于限定值 图6-8:编程环境视图 A&DService&Support Page35-56 7)流程分支 电机搅拌5分钟 分支1:如工艺参数选择为
0,则执行编号4流程 8)省略步骤6-7具体程序9)步骤5结束 分支2:如工艺参数选择不为
0,则执行编号6流程 图6-9:流程分支 本步骤维持5分钟 A&DService&Support 图6-10:流程结束 整个工艺结束Page36-56 10)菜单Options-ApplicationSetting进行参数设置,本例选择了FB最小化参数及全代码,具体含义请参考菜单中的帮助说明 本例选择最小参数本例选择全代码 图6-11:参数设置11)存盘时程序会自动编译,在OB1中调用FB2 初始化输入控制图6-12:调用FB2 A&DService&Support Page37-56 12)下载后,监控FB2 当前步骤 当前步骤时间 图6-13:监控FB213)输入“搅拌开始”为“1”后,阀门A打开,当液位高于设定值时,进入下一步 图6-14:测试FB2 A&DService&Support Page38-56 14)温度超高时的监控画面,在Addresses中可以监控到程序中使用的变量值 超过了90度 图6-15:温度超高互锁15)菜单Debug-ControlSequencer可以控制顺序执行的手动/自动模式,当前激活的步骤。
A&DService&Support 图6-16:顺序控制功能 Page39-56 重要提示:由于此功能可以更改当前程序的手动/自动模式,当前激活的步骤(手动模式下程序限定条件无效,并可以直接选择当前激活的步骤,例如直接从第一步跳转至最后一步)。
这样的操作有可能跳过系统原有的保护,可能对人身或生产造成伤害及影响,所以在对工艺及S7-GRAPH不熟悉的情况下,请勿使用此功能。
至此,一个简单的S7-GRAPH程序示例就结束了,本文中仅是对其非常简单的作了介绍。
任何编程语言都有其复杂性,并非一朝一夕就可掌握,关于S7-GRAPH的具体使用,请按照本文提供的的地址连接下载S7-GRAPH手册。
重要提示: 本文的虚拟工程与真实工程实例有重大差别,示例中并未遵循规范的工程设计流程进行编程,请读者切勿将其与工程实例相混淆。
由于此例子是免费的,任何用户可以免费复制或传播此程序例子。
程序的作者对此程序不承担任何功能性或兼容性的责任,使用者风险自负。
西门子不提供此程序例子的错误更改或者热线支持。

7.S7-GRAPH常见问题 7.1.与监控调试相关问题 7.1.1.问题:监控不完整 问题:为什么当顺控器超过100步时,监控程序时所有或部分步的状态和转换无法显示?解答:这是由于S7CPU系统资源有限,不能满足状态功能造成的。
对于S7-300CPU(CPU318除外),当顺控步数超过100时,将会发生上述问题。
而CPU318和S7-400模板相应的上限值将近200步。
解决方法: •在S7-GRAPH编辑器中,在"Optionss>ApplicationSettings...>页签:General"路径下,可修改"maximumnumberofstatusjobsused"选项中的监视任务数。
此任务数增大,则监视程序将占用更多CPU的系统资源。
•使用功能更强大的CPU(如CPU318或CPU400)。
A&DService&Support Page40-56 •减少步数和转换器数。
7.1.2.问题:顺控器不切换 问题:为什么在自动模式下,即使转换条件已满足时顺控器也没有切换?
解答:如果S7-GRAPH程序的背景数据块没有被及时更新,可能会导致自动模式下的顺控器不继续切换,比较常见的情况如下: •转换条件满足,但顺控器停在Step1中•转换条件的状态不显示 解决方法:在SIMATIC管理器和CPU中删除背景数据块。
然后在S7-GRAPH编辑器中再次生产背景DB并将其载入CPU。
特别强调:在S7-GRAPH菜单中"Optionss>ApplicationSettings...>General>OnSaving"的选项中,应当选择IncludeinstanceDB,这样当用户更改FB结构并存盘时,FB的背景数据块也被更新。
建议选择此项,利于保持项目数据一致性,很多调试时出现的问题都与背景数据块更新有关,此处不再依次列举。
建议选择此项,利于保持项目数据一致性 图7-1:数据块的刷新选项 7.1.3.问题:无法监视顺控器 问题:上载S7-GRAPHFB之后,为何不能监视它。
A&DService&Support Page41-56 解答:请检查“InterfaceDescriptio”选项,查看是否选择了“DownloadtoPLC”。
如果没有,在菜单“Options>BlockSettings>Compile/Save”下设置“DownloadtoPLC”选项。
然后重新保存块。
设置该选项后,下载S7-GRAPHFB时,接口描述被下载到PLC。
这样,用户就可以下载监视它了。
7.1.4.问题:顺控器初始化 问题:为什么即使在输入“OFF_SQ”为TRUE时顺控器仍在输入“INIT_SQ”的上升沿被激活?解答:输入“OFF_SQ”及“INIT_SQ”信号都是上升沿有效的,也就是说它们是否有效与它们的数值(TRUE或FALSE)没有关系。
为了防止顺控器在初始化之后自动连续工作,在关闭顺控器之前可以通过输入“SW_MAN”的上升沿切换到手动模式。
在重新初始化之后,顺控器保持在初始化步骤中直到再次切换到自动模式,例如通过参数“SW_TOP”。
参数说明:这些参数都是接收到上升沿有效“OFF_SQ”关闭顺控器“INIT_SQ”初始化顺控器“SW_MAN”模式选择:切换到手动模式“SW_TOP”模式选择:自动或切换到下一个 7.1.5.问题:S7-GRAPH程序占用多少内存 问题:S7-GRAPH程序占用多大CPU内存?
解答:S7-GRAPH程序代码量的大小与编辑器的设置有关,在编辑器的设置菜单下的块设定中,用户可以定义顺控程序的功能块号和所用内存大小。
当使用标准功能块FC70,FC71,FC72或者FC73时,S7-GRAPH的部分系统功能就会导入到这些功能块中,此种方式大约会使S7-GRAPH程序减少5000字节。
但所用的这些标准功能块调用时同样占用内存空间。
如果一个项目中有多个S7-GRAPHFB程序,并且这些S7-GRAPH程序被定义成使用标准功能块方式。
那么,它们公用的系统功能都将通过重复使用标准功能来实现。
而这些标准功能只需生成一次并下载即可,这样就节省了内存空间。
可以使用下列公式检测S7-GRAPHFB块和S7-GRAPHDB块所占内存的大小。
•FB的内存需求:150字节+n*16字节 A&DService&Support Page42-56 •DB的内存需求:236字节+n*26字节 n:步的数量 以下例子给出了如何确定两个各有20个步和转换条件的顺控程序在两种不同模式下所需内存的例子。
例子只是粗略计算。
编译器设置为:“FullCode”模式S7-GRAPHFB以及它的背景数据块(MC7代码)内存需求计算如下: •FB块的内存需求:4900字节(管理共享)+130字节每步+转换条件字节数(根据内容)•DB块的内存需求:270字节(管理共享)+70字节每步+转换条件字节数(根据内容) 计算结果: •FB块的内存需求约为:4,900+20x130=7,500字节•DB块的内存需求约为:270+20x70=1,670字节 编译器设置为:“标准功能块”(S7-GRAPHV4.0或以上版本)这时顺控程序所需内存计算如下: •FB块的内存需求约为:150字节+20x16字节=470字节•DB块的内存需求约为:236字节+20x26字节=756字节 管理共享功能被导入标准功能块FC70,FC71,FC72和FC73。
例如,FC71被FB7调用和FC73被S7-GRAPHFB调用,这时CPU有额外的内存需要: •8150字节(对于FC73)•7750字节(对于FC71) 7.1.6.问题:如何监控一系列步的时间 问题:如何通过同步分支的帮助来监控一系列步的时间? 解答:在下面的例子中,可以通过同步步S5来监控步S2及S3的时间。
如果步S2及S3的 过程时间超过了步S5的监控定义时间,步S5进入故障模式。
A&DService&Support Page43-56 在同步分支处,转换条件使能步S2及S5。
步S2及S3组成的序列与同步步S5同时执行,并在转换条件T3处结束。
为了防止达不到步S5中编程的监控时间,当同步步结束后,转换条件T3连接到下一个步S4上。
图7-2:同步分支用于监控时间 为了编程步S2及S3的监控时间总和,步S5(同步分支)定义了监控条件。
图中展示了步S5单步视图下“U”编程的监控时间,步S5的监控时间为4s。
输入参数“ACK_EF”可以用来确认错误,其被指定为标志M0.2。
A&DService&Support Page44-56 当监控时间及等待时间被编程后,可以改变默认的时间值来适应自动控制任务。
参数“SiT”及“SiU”默认值可以在S7-GRAPHV5.2以上版本被指定。
监控时间的默认值可以通过来菜单“Options>ApplicationSettings...>EditorTab”输入 图7-3:更改监控时间设置 7.1.7.问题:无法监控步的激活时间 问题:为什么无法监控步的激活时间(“STEPi.U”)?解答:如果无法监控步的激活时间(“STEPi.U”),那么很可能在“Compile/Save”栏中的块设置中选择了FC73而不是FC72。
虽然FC73可明显地减少S7-GRAPHFB的内存需求,但是这种方式生成的块不支持诊断,并且在监控运行系统控制时只有状态显示。
因此,激活时间“U”也不可用。
解决方法:通过菜单Options>Blocksettings>Compile/Save>Executability下指定标准FC72。
就把接口描述从“Memoryminimized”更改为“Structurearrays”并以OK确认。
重新编译S7-GRAPHFB并将块加载到CPU中。
7.2.与使用技巧相关问题 7.2.1.问题:如何使用背景数据块内部的步数信息 问题:如何使用背景数据块内部的步数信息?解答:顺控器中的每一步都会在S7-GRAPHFB的背景数据块中生成一个结构数据,步的信息被记录在此结构当中,此结构的内部数据可以通过符号名的方式进行访问,结构体中数据区的索引为步的号码,用户不要去修改此数值。
•G7S[1].X用于显示步是否被激活•G7S[1].SNO用于显示用户步数 例如当步1被激活时,可以通过如下指令访问步1的信息: A&DService&Support Page45-56 AFB2.G7S[1].X =M0.0 //M0.0存储当前步1是否激活的状态 LFB2.G7S[1].SNO TMW2 //MW2储存当前激活步的序号 在菜单命令"Options>Blocksettings>Compile/Save"中,激活“Structurearrays”选项,如果此选项被激活,结构体将包含步的数组,并在存盘和编译后生成。
•数据区名称:G7S•字节长度:(步的数量)*32 图7-4:激活“Structurearrays”选项 7.2.2.问题:如何使用背景数据块内部的转换条件的信息 问题:如何使用背景数据块内部的转换条件的信息?解答:在背景数据块中每个转换条件的信息都存储在一个结构当中。
这一结构包括含转换条件的参数“TV”,“TT”和“TS”。
只要相关步骤活动,这一转换条件传输数据就是当前的。
•TV:转换条件有效(类型:BOOL)•TT:转换条件为真(类型:BOOL)•TS:转换条件切换(类型:BOOL)。
内部访问此结构(在S7-GRAPHFB内部)或从STEP7块(LAD/STL/FBD编辑器)进行外部访问格式如下: A&DService&Support Page46-56 •T002.TT内部访问是通过转换条件编号及紧跟的结构单元名称进行的。
•G7T[2].TT外部访问是通过转换条件编号及紧跟的结构单元名称进行的。
其它信息请参考问题:如何使用背景数据块内部的步数信息的解答。
7.2.3.问题:如何在自动模式中重新激活上次的活动步 问题:在从手动模式切换到自动模式后,如何在自动模式中重新激活上次的活动步?解答:顺控器的状态被保存在其分配的背景数据块中,通过对背景数据块的处理,可以实现以上要求。

1.当前激活的步被存储于背景数据块的域(ARRAY)“SAX”中。
为了保存当前激活的步的信息,必须在设置顺控器为手动模式前保存该数组。
可以使用系统功能SFC20“BLKMOV”来完成此功能CALL"BLKMOV"//在DB2变量中标记SAXfield并保存_SAXARRAY[1..50]SRCBLK:="MY_DB1".SAXRET_VAL:=MW66DSTBLK:="MY_DB2".Save_SAX
2.如果要重新激活保存的步,那么应当先将顺控器中所有的步去激活(deactive)。
然后使用系统功能SFC20把刚才保存的数据复制到背景数据块的“SONX”区域。
CALL"BLKMOV"//复位标记步骤SRCBLK:="MY_DB2".Save_SAXRET_VAL:=MW66DSTBLK:="MY_DB1".SONX
3.在重新激活之前,使用“OFF_SQ”信号来停止依然活动的所有步。
在保存活动步和随后的再激活之间的时间内不必对顺控器作任何改变。
注意:复制之后,原来的步就会被立即激活。
实例数据块中数组“SAX”和“SONX”的长度取决于顺控器的结构(并行步)。
用于保存“SAX”域 A&D
Service&Support Page47-56 的数组必须足够大。
注意事项:当改变操作模式从自动到手动并且再次回到自动时,如果顺控器没有改变,那么顺控器会自动同步到先前的活动步。
7.2.4.问题:如何实现忽略监控干扰而实现顺控器到下一步的转换 问题:如何实现忽略监控干扰(SupervisionDisturbance)而实现顺控器到下一步的转换?解答:如果在S7-GRAPH的操作中发生一个监控干扰(SupervisionDisturbance),即Supervision=TRUE。
那么该监控干扰必须通过输入参数“ACK_EF”确认。
确认后顺控器才会继续运行。
下表解释了使用或不使用参数“ACK_EF”进行确认的要求。
在S7-GRAPH菜单中“Options>BlockSettings>Compile/Save>SequencerProperties”,确定启用“Acknowledgeerrors”功能。
图7-5:启用“Acknowledgeerrors”功能但是,如果已经为“FBParameters”启用了选项“Minimum”就不能选择该功能。
因此应首先为“FBParameters”启用“Standard”,“Maximum”或“User-defined” A&DService&Support Page48-56 如果不使用以上的方法,在下面的例子程序中,也可以通过程序逻辑屏蔽Supervision信号实现同样的功能。
图7-6:程序逻辑屏蔽Supervision信号程序分析:当M1.7=1时,并且M1.0和M1.2也为“1”,此时,步可以向下一步转换,而监控干扰(SupervisionDisturbance)条件不满足。
然而请注意在该程序中,必须禁用“Acknowledgeerrors”功能。
7.2.5.问题:如何确定S7-GRAPH顺控器的故障步 问题:如何确定S7-GRAPH顺控器的故障步?解答:S7-GRAPH顺控器的FB参数存储于实例DB中,而且FB参数的存储器要求取决于已经在表“Compile/Save”的菜单“Options>BlockSettings”中的设置。
这里设置“FBParameters”为“User-defined(V5.x)”。
在对S7-GRAPH顺控器进行编译和保存后,就拥有了最大的参数集可用于在块(FB,FCorOB1)中调用S7-GRAPHFB。
现在,就可以通过一些参数来确定顺控器的状态或故障步。
输出参数: •S_NO:显示步编号•S_MORE:可在S_NO中显示更多的活动步•S_ACTIVE:显示步为活动•SEF_DISP:只显示故障步的列表 A&DService&Support Page49-56 •ERROR:任意步中的互锁错误•FAULT:任意步中的监控错误 输出参数: •DISP_SEF:只显示故障步 相关更多信息可以参考S7-GRAPH手册中关于STEPStructure章节。
7.2.6.问题:为什么同时满足转换条件和监控的条件时,转换条件会切换到下一步 问题:为什么同时满足转换条件和监控的条件时,转换条件会切换到下一步?解答:在S7-GRAPH当中,对监控条件(Supervision)的描述如下: •如果监控条件(Supervision)满足,则事件V1发生,顺控器不再转换的下一步,当前步保持激活,步的激活时间Si.U停止。
•如果监控条件(Supervision)不满足,并且当前步向下一步的转换条件满足,顺控器将转换到下一步。
但需要注意的是:在一个周期中,首先进行的是切换过程,然后是状态中的保留处理。
因而在一个周期中顺控器总是企图尽早地切换,也就是说,如果下图中的步2中的转换和监控同时满足,则立即进行步的转换。
A&DService&Support Page50-56 图7-7:步的转换 解决方法:使用不同的参数编程监控和接通,例如: •M1.2用于监控,并且•M1.3用于转换条件检测 7.2.7.问题:为什么尽管互锁条件没有完成,在离开步的时候动作“L0S”被执行? 问题:为什么尽管互锁条件没有完成,在离开步的时候动作“L0S”被执行?解答:在S7-GRAPH中,一个动作可以根据互锁状态信号的改变而被触发。
在事件“L0S”的情况下,此指令的操作数被置位为
1,并且一旦对于一个激活的步的互锁条件从信号状态0改变为1时,此动作即被触发。
(互锁条件到来,错误离去)。
S7-GRAPH的一个基本规则:没有激活的一个步不能引起任何错误。
因此,如果当一个无法执行的互锁条件在离开步时被置为“完成的”(错误被强制确认),则当此步离开时,“L0S”指令总是被执行。
7.2.8.问题:如何将无条件同时分支改为条件分支时不需重新输入所有受影响的步 问题:如何将无条件同时分支改为条件分支时不需重新输入所有受影响的步?解答:首先在菜单中选择“View>Sequencer”,以察看整个顺控器。
点击右键在弹出菜单中选择命令“InsertNewElement>AlternativeBranch>Open”。
这就可以插入一个条件分支。
A&DService&Support Page51-56 图7-8:插入一个条件分支在刚创建的条件分支处插入选中的转换条件剪切的顺控器部分,并执行菜单命令“Edit>Paste”。
A&DService&Support Page52-56 选择此处,并使用Paste命令,则选择的3步将被粘贴到此分支 使用鼠标左键圈选此处的3个步,并选择“Cut” 图7-9:粘贴一个条件分支 7.2.9.问题:如何在第一个OB1周期中或第一次调用S7-GRAPHFB时关闭顺控器 问题:如何在第一个OB1周期中或第一次调用S7-GRAPHFB时关闭顺控器?解答:通过参数OFF_SQ外部控制顺控器FB参数“INIT_SQ”和“OFF_SQ”可用来初始化和关闭顺控器,前提是确保在顺控器编译前以下路径下的: “Options>Blocksettings...>Compile/Save>FBParameters下的参数“Standard”、“Maximum”或“User-defined”之中的一个已经激活。
下图显示了对S7-GRAPHFB的调用,调用时,可将M0.0的常闭点送至“OFF_SQ”,这样当程序开始扫描时,“OFF_SQ”参数将收到一个上升沿,并关闭顺控器。
A&DService&Support Page53-56 图7-10:关闭顺控器通过Supervision来控制顺控器下图显示了步1(初始步)中将M10.3的常闭点用于监控条件。
如果M10.3为“False”,则启动后,顺控器运行到监测步而且不会再切换。
当在块设置中激活选项“Acknowledgeerrors”时,只需在FB输入参数“ACK_EF”进行确认后,顺控器将被继续执行。
图7-11:通过Supervision来控制顺控器 A&DService&Support Page54-56 7.2.10.问题:为什么计数器比较功能产生一个错误结果 问题:为什么计数器比较功能产生一个错误结果?
解答:由于S7-GRAPH计数值是BCD码的格式,那么输入的比较值也必须是BCD码的格式(3位十进制BCD),并应当遵循下列语法格式:C#000到C#999。
7.2.11.问题:为什么在顺控器中无法通过程序激活另一个步 问题:为什么在顺控器中无法通过程序激活另一个步?
解答:这是初学者经常范一个错误,S7-GRAPH中提供了一些指令,可以在顺控器当中根据用户意图激活顺控器中的某一个步。
但是务必要注意的是:在程序调转到被激活步之前,务必要增加关闭当前步的指令,否则顺控器不会执行步的切换。
7.2.12.问题:如何加密S7-GRAPH块 问题:如何加密S7-GRAPH块?解答:在STEP7中,只有STL源文件格式支持块保护功能,仅仅有S7-GRAPH源文件无法实现块保护功能。
因此可以通过由S7-GRAPH源文件生成STL格式源文件的方式实现块保护功能。
可以按照如下步骤实现:
1.首先将S7-GRAPHFB备份为S7-GRAPHFB源文件•打开S7-GRAPHFB,并通过“File>GenerateSourceFile...”创建S7-GRAPH源文件。
•在打开的对话框中输入对象名称,例如“Source_FB”。
•用OK键进行保存,生成了S7-GRAPH源文件后,关闭S7-GRAPHFB。

2.生成STL格式的FB•在Windows操作系统中,通过“Start>SIMATIC>STEP7>LAD,STL,FBD-ProgrammingS7Blocks”打开LAD/STL/FBD编辑器。
•在LAD/STL/FBD编辑器中,通过“File>Open”选择STEP7项目,打开在S7-GRAPH中创建的块(例如FB51)。
•选择菜单中“File>Save”,此时显示信息提示:此块是在不同的编程语言中创建的,保存后则不能再用其原始创建语言(S7-GRAPH)进行编辑。
点击“Yes”按钮。
则在S7-GRAPH中创建的功能块,现在已经变为STL语言格式了。

3.生成STL格式的源文件 A&DService&Support Page55-56 •在LAD/STL/FBD编辑器中通过“File>GenerateSource...”创建STL源文件•在打开的对话框中输入对象名称,例如“Protect_FB”。
•选中要为其创建STL源文件的块(例如FB51),并将这个块移到右边的“Blocks Selected”窗口中。
•以OK确认,生成STL源文件,关闭LAD/STL/FBD编辑器。

4.现在在“Sources”文件夹中有两个源文件。
•STL源文件(Protect_FB),•S7-GRAPH源文件(Source_FB),
5.生成加密的FB•打开STL源文件“Protect_FB”,并在“TITLE”下的块的声明段插入关键字 KNOW_HOW_PROTECT•通过“File>Save"and"File>Compile”保存并编译STL源文件。
则FB51被加密。

8.附录-推荐网址 8.1.西门子自动化与驱动产品的在线技术支持 西门子(中国)有限公司自动化与驱动集团客户服务与支持中心网站首页:/Service/专家推荐精品文档:mend.aspAS常问问题:/CN/view/zh/10805055/133000AS更新信息:/CN/view/zh/10805055/133400“找答案”AS版区:/service/answer/category.asp?
cid=1027 A&DService&Support Page56-56

标签: #美工 #邮件服务器 #做什么 #linux #计算机 #文件夹 #编程语言 #文件