存储过程可重用的代码块_S71200程序块之组织块介绍

       一、S7-1200程序块

      S7-1200CPU采用块的概念,将程序分解为独立的,自成体系的各部部件块的功能类似于S7-200系列中的子程序,但类型更多,功能更强大

     简而言之就是比如一个项目分成不同的功能(任务)和工艺,每个任务可做成不同的代码块;每个代码块可完成不同的任务或工艺,并且每个代码块是独立的;这些块与S7-200的子程序块更强大,在200系列中如果采用带形式参数的子程序去编写程序的过程中,如果去使用计数器、定时器等没有相应的变量类型的存储区时,在需要被重复调试这带形参的子程序时,计数器、定时器就会出现双线圈;但在1200中的FB/FC块中可以使用计数器、定时器、沿脉冲信号等反复调用不受影响

二、使用块的优点

   使用块的概念有以下好处:

(1)便于大规模程序的设计和理解

   将不同的任务分成不同的程序块,在大的项目中我们按照,任务、功能的划分不同的任务段,每个任务段编写不同的程序块,完成这个任务块的程序就行, (2)可设计标准化的程序块,方便进行重复的调用      如一个电机的控制,涉及到电机的启动方式、运行参数如速度的反馈、电压电流的反馈等等;如果设计一个标准的程序块时,不同的工程师不需重新设计,把标准块直接调用即可。 (3)程序结构清晰明了,修改方便,调试简单。 (4)增加PLC的组织透明性,可理解易维护。 三、程序块详解        S7-1200CPU提供了不同类型的程序块,主要分为组织块(OB)、函数(FC)函数块(FB)数据块(DB)       组织块:由操作系统调用,决定程序的结构       函数(功能)块:具有存储器的代码块,可将值存储在背景数据块中,即使在执行完后,这些值存在背景数据块中仍然有效。       函数:不带存储器的代码块,数据存储在局部存储区L里面,函数没有背景数据块,执行完成后,数据不保存      数据块:存储用户数据的区域,类似于200系列的V存储区;它分为全局数据块和背景数据块。可根据不同的任务段,建立不同的数据块来存储任务 a6a3fcbb7e57dbf2249b0582eb5860f8.png abb6af262ac49e29e388004c88453d1a.png 组织块OB     组织块的基本功能是调用用户程序,在S7-1200中可以使用的组织块OB有启动组织块、循环组织块、循环中断组织块,定时中断组织块,硬件中断组织块,故障中断组织块等。      启动组织块(OB100)在添加OB块的时可选择多个启动组织块,根据组织块的编号大小顺序依次执行。启动组织块通常用来做出初始化的程序(在一些需要做初始化的程序可以放到OB100中)

f4d861610de7432398e632a938a05053.png

      循环组织块: (OB1)PLC的主程序MAIN CPU会循环的对程序扫描执行,然后有循环组织块调用不同FB/FC,也就是CPU在处于RUN模式时,操作系统每个周期调用循环OB一次,所有的循环OB执行完后,操作系统重新调用循环OB,S7-1200CPU支持多个程序循环OB,执行顺序一样是根据编号大小依次执行; 279d60739810e08f7e16347c7b41d7da.png        硬件中断组织块:在RUN模式下,CPU立即响应硬件中断事件,调用相关的硬件中断OB,中断程序的执行不受主程序的扫描和过程映像更新时间的影响,适合需要快速响应的应用。比如高速计数的当前值等于预设值时,可启用硬件中断      一个硬件中断事件只允许一个硬件中断OB,而一个硬件中断OB可分配给多个硬件中断事件。      中断硬件触发后,操作系统将识别输入通道并确定所分配的OB,在识别和确认的过程中,同一模块上发送了触发硬件中断的另一事件,必须遵循以下规则:       1、如果该通道再次发生相同的中断事件,操作系统不予响应,硬件中断将丢失       2、如果发生不同的中断事件,则在当前正在执行的中断确认后再响应这个新的中断事件

418ca4c6a7bbfb4c866159db6509c32f.png

      时间中断组织块:时间中断OB用于在时间可控的应用中定期运行一部分用户程序,可实现在某个预设时间到达只运行一次,或在设定的触发日期到达后,按时、分、秒、天、周、月等周期运行,只有设置并激活了时间中断,且程序中存在相应组织块的情况下,才能运行时间中断,通过以下指令对时间中断进行操作: “ACT-TINT”激活时间中断 “SET-TONTL”设定时间中断的参数 “CAN-TINT”取消未执行的时间中断 “QRY-TINT”查询时间中断的状态       循环中断组织块:循环中断OB按设定的时间间隔循环执行,如间隔时间为1000MS,则在程序块执行期间会每隔1000MS调用该该块一次。在添加块的时候可添加一个循环中断组织块,同时可设置该组织块的执行时间间隔      故障中断组织块:在发生故障时,可启用故障中断      延时中断组织块:延时中断OB在一段可设置的延时时间后启动,可通过以下指令对延时中断进行操作:    “SRT-DINT”用于启动延时中断,该中断在超过参数指定的时间后调用延时中断OB。延时时间范围在1~60000MS    “CAN-DINT”取消启用的延时中断    “QRY-DINT”查询延时中断的状态

1f2a22f24dad4b96ab3402fb3a6ac1b2.png

      时间错误组织块:时间错误组织块是操作系统用于处理时间故障的中断组织块,当程序和执行时间超过最大的循环时间或发生时间错误事件,CPU将触发时间错误中断OB80

cead00b31b2fbd4cba8de8bfe2609312.png

      诊断错误组织块:诊断错误组织块是操作系统用于响应诊断错误的中断组织块,如激活诊断功能的模块检测到故障状态发生变化时,向CPU发送诊断中断请求,触发诊断错误组织块OB82

9da217f5642aa852a9f2cc50cb97e332.png

     拔插中断组织块:拔插中断组织块OB83是操作系统用于响应对模块移除或插入操作的中断组织块,S7-1200 PLC的本地模块不支持热插拔,拔出或插入中央机架模块将导致CPU进入STOP模式

5a4f9810d580f4534ffa3d58f9454c9d.png

      机架错误中断组织块:机架错误中断组织块OB86是操作系统用于响应PROFIBUS-DP和PROFINET-IO分布式IO站通信故障的中断组织块

baa518c7cfa26a615b646ac6fad30ba0.png

更多精彩内容请扫码关注公众号 dbc55082bf9589f56f4fa7a85dfb97f2.png                            阅读好习惯, 读完点“在看”  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
除了函数,数据库还可以存储以下类型的PL/SQL代码块: 1. 存储过程(Stored Procedure):存储过程是一段被命名的PL/SQL代码块,可以在数据库进行存储和重复调用。它可以接受参数并执行一系列的SQL语句和逻辑操作,常用于实现复杂的业务逻辑。 2. 触发器(Trigger):触发器是一种特殊类型的存储过程,它与数据库的表相关联,并在特定事件发生或特定条件满足时自动触发执行。例如,在插入、更新或删除表的数据时触发器可以执行相应的操作。 3. 包(Package):包是一种将相关的PL/SQL对象(如函数、过程、变量等)封装在一起的容器。它提供了更结构化的组织方式,使得代码更易于维护和重用。包可以包含包头和包体两部分,包头声明了包的接口,而包体定义了具体的实现。 4. 类型(Type):类型是一种用户定义的数据结构,可以用于创建自定义数据类型。在PL/SQL,可以定义记录类型、表类型和对象类型等。类型可以作为参数、变量或返回值在PL/SQL代码使用。 5. 异常处理程序(Exception Handler):异常处理程序是一段用于捕获和处理异常的PL/SQL代码块。它可以在程序执行过程检测到异常,并根据需要执行相应的错误处理逻辑。 以上是数据库可以存储的除函数外的其他类型的PL/SQL代码块。它们都可以在数据库进行定义、存储和调用,用于实现不同的业务逻辑和数据处理需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值