S7-1200CPU采用块的概念,将程序分解为独立的,自成体系的各部部件块的功能类似于S7-200系列中的子程序,但类型更多,功能更强大
简而言之就是比如一个项目分成不同的功能(任务)和工艺,每个任务可做成不同的代码块;每个代码块可完成不同的任务或工艺,并且每个代码块是独立的;这些块与S7-200的子程序块更强大,在200系列中如果采用带形式参数的子程序去编写程序的过程中,如果去使用计数器、定时器等没有相应的变量类型的存储区时,在需要被重复调试这带形参的子程序时,计数器、定时器就会出现双线圈;但在1200中的FB/FC块中可以使用计数器、定时器、沿脉冲信号等反复调用不受影响
二、使用块的优点
使用块的概念有以下好处:
(1)便于大规模程序的设计和理解
将不同的任务分成不同的程序块,在大的项目中我们按照,任务、功能的划分不同的任务段,每个任务段编写不同的程序块,完成这个任务块的程序就行,(2)可设计标准化的程序块,方便进行重复的调用 如一个电机的控制,涉及到电机的启动方式、运行参数如速度的反馈、电压电流的反馈等等;如果设计一个标准的程序块时,不同的工程师不需重新设计,把标准块直接调用即可。(3)程序结构清晰明了,修改方便,调试简单。(4)增加PLC的组织透明性,可理解易维护。三、程序块详解 S7-1200CPU提供了不同类型的程序块,主要分为组织块(OB)、函数(FC)函数块(FB)数据块(DB) 组织块:由操作系统调用,决定程序的结构 函数(功能)块:具有存储器的代码块,可将值存储在背景数据块中,即使在执行完后,这些值存在背景数据块中仍然有效。 函数:不带存储器的代码块,数据存储在局部存储区L里面,函数没有背景数据块,执行完成后,数据不保存 数据块:存储用户数据的区域,类似于200系列的V存储区;它分为全局数据块和背景数据块。可根据不同的任务段,建立不同的数据块来存储任务
组织块OB 组织块的基本功能是调用用户程序,在S7-1200中可以使用的组织块OB有启动组织块、循环组织块、循环中断组织块,定时中断组织块,硬件中断组织块,故障中断组织块等。 启动组织块(OB100)在添加OB块的时可选择多个启动组织块,根据组织块的编号大小顺序依次执行。启动组织块通常用来做出初始化的程序(在一些需要做初始化的程序可以放到OB100中)
硬件中断组织块:在RUN模式下,CPU立即响应硬件中断事件,调用相关的硬件中断OB,中断程序的执行不受主程序的扫描和过程映像更新时间的影响,适合需要快速响应的应用。比如高速计数的当前值等于预设值时,可启用硬件中断 一个硬件中断事件只允许一个硬件中断OB,而一个硬件中断OB可分配给多个硬件中断事件。 中断硬件触发后,操作系统将识别输入通道并确定所分配的OB,在识别和确认的过程中,同一模块上发送了触发硬件中断的另一事件,必须遵循以下规则: 1、如果该通道再次发生相同的中断事件,操作系统不予响应,硬件中断将丢失 2、如果发生不同的中断事件,则在当前正在执行的中断确认后再响应这个新的中断事件
故障中断组织块:在发生故障时,可启用故障中断 延时中断组织块:延时中断OB在一段可设置的延时时间后启动,可通过以下指令对延时中断进行操作:
“SRT-DINT”用于启动延时中断,该中断在超过参数指定的时间后调用延时中断OB。延时时间范围在1~60000MS “CAN-DINT”取消启用的延时中断 “”查询延时中断的状态