自动化网-工控人家园官网移动版

主页 > 工控品牌 > 西门子 >

step7程序执行原理和编程方法-循环程序如何执行

plc的循环程序是如何执行的。(这一点非常重要)

1.循环程序如何执行

1.1在CPU上电之后,启动块OB100/101/102先启动一次。(调用哪一个OB块由系统的启动模式配置决定)

1.2启动块执行完毕后,系统的循环监视时间就被激活了(这个时间可以在STEP7的硬件配置中设置,如果循环时间超出则PLC停机)

1.3之后,CPU会从输入模块及其它过程映象设备读取所有的输入状态

1.4接着下来便到了主循环程序的执行

1.4.1主循环执行也是按照语句顺序执行,如图所示,当OB1执行第一个语句CallFB,则此时程序进入所调用FB块顺序执行FB块的语句

1.4.2若在所调用的FB块,在某一语句中执行了CallFB/FC,则程序又进入下一级的FC中依次执行块中语句,依此类推

1.4.3当调用的下一级FC所有语句执行完成后,程序回到CallFC的这一语句,继续执行后面的语句

1.4.4当所Call的FB也执行完成后,程序回到OB1的CallFB处,继续执行后面的语句。

1.4.5直至最后,完成OB1的所有程序,则主循环结束。

1.4.6在OB1执行的过程中,循环中断(如OB35)、故障中断(如OB86)等可以插入执行,执行完成后会回到中断的地方继续主循环的执行。

1.5主循环执行完成后,PLC将过程映象的输出写到输出模块

1.6完成1.5的步骤之后一个完整的循环就结束了,此时跳至1.2步骤,重新开始新一循环的监视时间,如此周而复始。

西门子plc程序执行图(建议保存)

2.程序块类型

  知道了PLC循环程序如何执行后,我们再来看一看STEP7的程序块有哪些类型

2.1用户块

  用户块包括程序代码和用户数据。在结构化程序中,一些块循环调用处理,一些块需要时才调用。

2.1.1组织块

  OB块构成了S7CPU和用户程序的接口。可以把全部程序存在OB1中,让它连续不断地循环处理。也可以把程序放在不同的块中,用OB1在需要的时候调用这些程序块。除OB1外。操作系统根据不同的事件可以调用其他的OB块,例如:

2.1.1.1时间-日期中断

2.1.1.2周期时间中断

2.1.1.3诊断中断

2.1.1.4硬件中断

2.1.1.5故障处理中断

2.1.1.6硬件启动

2.1.2功能块(FB)

  功能块是在逻辑操作块内的功能或功能组,在操作块内分配有存储器,并存储有变量。FB需要这个背景数据块形式的辅助存储器。通过背景数据块传递参数,而且,一些局部参数也保存在此区。其他的临时变量存在局部堆栈中。保存在背景数据块内的数据,当功能块关闭时数据仍保持。而保存在局部堆栈中的数据不能保存。

2.1.3功能(FC)

  功能是类似于功能块的逻辑操作块,但是,其中不分配存储区。FC不需要背景数据块。临时变量保存在局部堆栈中,直到功能结束。当FC执行结束时,使用的变量要丢失。

2.1.4数据块(DB)

  数据块是一个永久分配的区域,其中保存其他功能的数据或信息。数据块是可读/写区,并做为用户程序的一部分转入CPU。

2.2系统块

  系统块是在CPU操作系统中预先定义好的功能和功能块。这些块不占用用户程序空间。用户程序调用系统块,在整个系统中这些块具有相同的接口、相同的标示和相同的号。用户程序可以容易地转换到不同的CPU或PLC。

2.2.1系统功能块(SFC)

  系统功能是集成在S7CPU中的已经编程并调试过的功能。这些块支持的一些任务是设置模块参数、数据通讯和拷贝功能等。用户程序可以不用装载直接调用SFC。SFC不需要分配数据块。

2.2.2系统功能块(SFB)

  系统功能块是S7CPU的集成功能。由于SFB是操作系统的一部分,用户程序可以不用装载直接调用SFB。SFB需要分配背景数据块DB,数据块必须作为用户程序的一部分下装到CPU。

2.2.3系统数据块(SDB)

  系统数据块是由不同STEP7工具产生的程序存储区,其中存有操作控制器的必要数据。SDB中存有一些信息,例如:组态数据、通讯连接和参数。

3.编程方法

  前面大致了解了一下PLC程序的一个循环是如何执行的,并了解了一下程序中块的类型,下面再来看看有哪些编程方法组织这些块。

  每一个西门子的编程人员都会有自已的编程习惯和方法。STEP7为设计程序提供了三种方法。基于这些方法,可以选择最适合于你的应用的程序设计方法。

3.1线性化编程

  所有的程序都在一个连续的指令块中。这种结构和PLC所代替的固定接线的继电器线路类似。系统按照顺序处理各个指令。

3.2模块化编程

  程序分成不同的块,每个块包含了一些设备和任务的逻辑指令。组织块中的指令决定是否调用有关的控制程序模块。例如,一个模块程序包含有一个被控加工过程的各个操作模式。

3.3结构化编程

  结构化程序包含有带有参数的用户自定义的指令块。这些块可以设计成一般调用。实际的参数(输入和输出的地址)在调用时进行赋值。 (责任编辑:admin)