《S7-300PLC编程与应用从入门到提高》主讲:阳胜峰第26讲S7GRAPH的编程与应用一、顺序控制二、控制器设计三、S7GRAPH编程顺序功能图(简称SFC)是IEC标准编程语言,用于编制复杂的顺控程序,很容易被初学者接受,对于有经验的电气程师,也会大大提高工作效率。一、顺序控制例:交通信号灯控制系统设计。北向南向东向西向红红红红黄黄黄黄绿绿绿绿启动停止东西向南北向黄红绿Q4.0Q4.1Q4.2Q4.3Q4.4Q4.5交通信号灯控制盘I0.0I0.1二、控制器设计上图所示为双干道交通信号灯设置示意图,元件分配表如下。二、控制器设计1.控制说明信号灯的动作受开关总体控制,按一下起动按钮,信号灯系统开始工作,工作流程如图所示。开始东西向红灯亮、南北向绿灯亮20s时间到否?东西向红灯亮、南北向黄灯亮5s时间到否?东西向绿灯亮、南北向红灯亮30s时间到否?东西向黄灯亮、南北向红灯亮5s时间到否?YYYYNNNN二、控制器设计2.顺序功能图分析信号灯的变化规律,可将工作过程分成4个依设定时间而顺序循环执行的状态:S2、S3、S4和S5,另设一个初始状态S1。由于控制比较简单,可用单流程实现,如图6-7所示。S2T1StartS3T2S4T3S5S1StopRS2RS3RS4RS5=S1T4=Q4.0=Q4.5T120s=Q4.0=Q4.4T25s=Q4.2=Q4.3T330s=Q4.1=Q4.3T45s编写程序时,可将顺序功能图放置在一个功能块(FB)中,而将停止作用的部分程序放置在另一个功能(FC)或功能块(FB)中。这样在系统启动运行期间,只要停止按钮(Stop)被按动,立即将所有状态S2~S5复位,并返回到待命状态S1。在待命状态下,只要按动起动按钮(Start),系统即开始按顺序功能图所描述的过程循环执行。二、控制器设计三、S7GRAPH编程利用S7GRAPH编程语言,可以清楚快速地组织和编写S7PLC系统的顺序控制程序。它根据功能将控制任务分解为若干步,其顺序用图形方式显示出来并且可形成图形和文本方式的文件。可非常方便地实现全局、单页或单步显示及互锁控制和监视条件的图形分离。在每一步中要执行相应的动作并且根据条件决定是否转换为下一步。它们的定义、互锁或监视功能用STEP7的编程语言LAD或FBD来实现。下面结合交通信号灯控制系统,介绍如何用S7GRAPH编辑顺序功能图。1.创建S7项目打开SIMATICManager,然后执行菜单命令【File】→【New】创建一个项目,并命名为“信号灯Graph”。2.硬件配置选择“信号灯Graph”项目下的“SIMATIC300Station”文件夹,进入硬件组态窗口按图完成硬件配置,最后编译保存并下载到CPU。三、S7GRAPH编程3.编辑符号表三、S7GRAPH编程4.插入S7GRAPH功能块(FB)三、S7GRAPH编程5、了解S7GRAPH编辑器工作区浮动的浏览窗口选项卡详细信息窗口标准工具栏浮动工具栏转换条件编辑指令视图工具栏三、S7GRAPH编程(1)视窗工具栏区域放大缩小放大显示/隐藏详细信息窗口显示/隐藏浏览窗口选择浏览窗口的停泊位置显示/隐藏步的条件和动作项显示/隐藏注释区域切换符号地址显示方式显示永久性指令单步显示方式顺控器显示方式缩放比例三、S7GRAPH编程(2)Sequencer浮动工具栏插入顺控器插入永久性FC/FB调用插入永久性条件插入动作插入监视时间U插入监视时间T并行分支汇合插入并行分支选择性分支汇合插入选择性分支分支终止预选和直接方式切换跳转插入步和转换选择对象三、S7GRAPH编程(3)转换条件编辑工具栏梯形图分支闭合插入梯形图分支插入比较指令插入常闭指令触点插入常开指令触点三、S7GRAPH编程(4)浏览窗口图形选项卡顺控器选项卡变量选项卡三、S7GRAPH编程(5)步与步的动作命令命令区操作数地址区动作命令框转换条件梯形图步序步名转换编号转换名三、S7GRAPH编程标准动作对标准动作可以设置互锁(在命令的后面加“C”),仅在步处于活动状态和互锁条件满足时,有互锁的动作才被执行。没有互锁的动作在步处于活动状态时就会被执行。三、S7GRAPH编程与事件有关的动作动作可以与事件结合,事件是指步、监控信号、互锁信号的状态变化、信息(Message)的确认(Acknowledgment)或记录(Registration)信号被置位,事件的意义见下表。命令只能在事件发生的那个循环周期执行。三、S7GRAPH编程ON命令与OFF命令用ON命令或OFF命令可以使命令所在步之外的其他步变为活动步或非活动步。指定的事件发生时,可以将指定的步变为活动步或非活动步。如果命令OFF的地址标识符为S_ALL,将除了命令“S1(V1,L1)OFF”所在的步之外其他的步变为非活动步。三、S7GRAPH编程动作中的计数器动作中的计数器的执行与指定的事件有关。互锁功能可以用于计数器,对于有互锁功能的计数器,只有在互锁条件满足和指定的事件出现时,动作中的计数器才会计数。计数值为0时计数器位为“0”,计数值非0时计数器位为“1”。事件发生时,计数器指令CS将初值装入计数器。CS指令下面一行是要装入的计数器的初值,它可以由IW、QW、MW、LW、DBW、BIW来提供,或用常数C#0~C#999的形式给出。事件发生时,CU、CD、CR指令使计数值分别加1、减1或将计数值复位为0。计数器命令与互锁组合时,命令后面要加上“C”。三、S7GRAPH编程动作中的定时器动作中的定时器与计数器的使用方法类似,事件出现时定时器被执行。互锁功能也可以用于定时器。①TL命令为扩展的脉冲定时器命令,该命令的下面一行是定时器的定时时间“time”,定时器位没有闭锁功能。②TD命令用来实现定时器位有闭锁功能的延迟。③TR是复位定时器命令,一旦事件发生定时器立即停止定时,定时器位与定时值被复位为“0”。三、S7GRAPH编程(6)设置S7GRAPH功能块的参数集三、S7GRAPH编程6、编辑S7GRAPH功能块(FB)规划顺序功能图编辑步的名称动作的编辑编程转换条件三、S7GRAPH编程(1)规划顺序功能图输入目标步的编号光标指向目标步的框线自动添加跳转起始步的转换①插入“步及步的转换”;②插入“跳转”。三、S7GRAPH编程(2)编辑步的名称表示步的方框内有步的编号(如S1)和步的名称(如Step1),点击相应项可以进行修改,不能用汉字作步和转换的名称。将步S1~S5的名称依次改为“Initial(初始化)”、“ER_SG(东西向红灯-南北向绿灯)”“ER_SY(东西向红灯-南北向黄灯)”、“EG_SR(东西向绿灯-南北向红灯)”、“EY_SR(东西向黄灯-南北向红灯)”。三、S7GRAPH编程(3)动作的编辑①用鼠标点击S2的动作框线,然后点击动作行工具,插入3个动作行;在第3个动作行中输入命令“D”回车,第2行的右栏自动变为2行,在第1行内输入位地址,如M0.0,然后回车;在第2行内输入输入时间常数,如T#20S(表示延时20s),然后回车。②按照同样的方法,完成S3~S5的命令输入。三、S7GRAPH编程4.编程转换条件点击转换名右边与虚线相连的转换条件,在窗口最左边的工具条中点击常开触点、常闭触点或方框形的比较器(相当于一个触点),可对转换条件进行编程,编辑方法同梯形图语言。三、S7GRAPH编程7、在OB1中调用S7GRAPH功能块(FB)设置S7GRAPH功能块的参数集调用S7GRAPH功能块用S7-PLCSIM仿真软件调试S7GRAPH程序三、S7GRAPH编程(1)设置S7GRAPH功能块的参数集在S7GRAPH编辑器中执行菜单命令【Option】→【BlockSetting】,打开S7GRAPH功能块参数设置对话框,本例将FB设置为标准参数集。其他采用默认值,设置完毕保存FB1。三、S7GRAPH编程(2)调用S7GRAPH功能块打开编辑器左侧浏览窗口中的“FBBlocks”文件夹,双击其中的FB1图标,在OB1的Nework1中调用顺序功能图程序FB1,在模块的上方输入FB1的背景功能块DB1的名称。在“INIT_SQ”端口上输入“Start”,也就是用起动按钮激活顺控器的初始部S1;在“OFF_SQ”端口上输入“Stop”,也就是用停止按钮关闭顺控器。最后用菜单命令【File】→【save】保存OB1。三、S7GRAPH编程(3)用S7-PLCSIM仿真软件调试S7GRAPH程序三、S7GRAPH编程END