分享

西门子PLC程序结构的基本原理

 设备WX 2021-12-18

CPU 原则上运行两个不同的程序:

·  操作系统

·  用户程序。

操作系统

每个CPU都带有集成的操作系统,组织与特定控制任务无关的所有 CPU功能和顺序。操作系统任务包括下列各项:

·  处理重启(热启动)和热重启。

·  更新输入的过程映像表,并输出输出过程映像表

·  调用用户程序

·  采集中断信息,调用中断 OB。

·  识别错误并进行错误处理

·  管理内存区域

·  与编程设备和其它通讯伙伴进行通讯

通过修改操作系统参数(操作系统默认设置),可以在某些区域影响CPU响应。

用户程序

可以创建用户程序,并将其下载到CPU中。它包含处理特定自动化任务所要求的所有功能。用户程序任务包括:

·  确定CPU的重启(热启动)和热重启条件(例如,用特定值初始化信号)

·  处理过程数据(例如,产生二进制信号的逻辑链接,获取并评估模拟量信号,指定用于输出的二进制信号,输出模拟值)

·  响应中断

·  处理正常程序周期中的干扰。

用户程序中的块

可以应用 STEP 7编程软件构建用户程序,也就是说,可以将程序分成单个、独立的程序段。这具有下列优点:

·  大程序更易于理解。

·  可以标准化单个程序段。

·  简化程序结构。

·  更易于修改程序。

·  可测试单个程序段,因而简化调试。

·  系统调试变得更简单。

工业混合过程实例阐述了将一个自动化过程分成单个任务的优点。结构化用户程序的程序段,即程序块对应于这些单个任务。

在S7用户程序内可使用多种类型的块:

组织块(OB)

OB 确定用户程序的结构。

系统功能块(SFB) 和系统功能(SFC)

SFB 和SFC集成在S7 CPU 中,可以用来访问一些重要的系统功能。

功能块(FB)  

FB 是带有用户可自行编程的“存储器”的块。

功能(FC)

FC 包含频繁使用功能的例行程序。

实例数据块 (背景DB)

调用FB/SFB 时,实例DB与块关联。它们在编译期间自动创建。

数据块 (DB) 

DB 是用于存储用户数据的数据区。除分配给功能块的数据外,共享数据块也可由任何一个块来定义和使用。

组织块和程序结构:

OB的启动信息

每个组织块都有20字节本地数据的启动信息,在启动OB时,由操作系统提供。启动信息指定OB的启动事件、OB启动的日期和时间、所发生的错误以及诊断事件。例如,OB40是硬件中断 OB,其启动信息包含产生中断的模块地址。

取消选定中断OB

如果将优先级为 0  或少于20字节的本地数据分配给优先级,则将取消选定相应的中断OB。处理取消中断 OB的限制条件如下:

·  处于运行模式时,这些中断 OB不能复制或链接到用户程序。

·  处于停止模式时,可以将它们复制或链接到用户程序,但CPU执行重启(热启动)时,它们停止启动,并向诊断缓冲区输入一个条目。

通过取消选定不需要的中断 OB,可以增大可用的本地数据区容量,从而可以保存其它优先级的临时数据。

循环程序处理

循环程序处理是可编程逻辑控制器上“正常”执行的程序类型,表示操作系统在程序循环(周期)中运行,在每次循环中,都会调用主程序中的组织块 OB1 。即循环执行OB1 中的用户程序。

图片

事件驱动的程序处理

可由特定的事件(中断)中断循环程序处理。如果发生该类事件,将在命令边界中断当前执行的块,然后调用分配给该特定事件的其它组织块。该组织块一旦执行,将在中断点继续执行循环程序。

图片

这表示可以处理部分用户程序,这些用户程序只有在需要时才循环处理。用户程序可分成一些“子程序”,分布在不同的组织块中。如果用户程序要对相对较少发生的重要信号(例如,限制值传感器,用于测量容器中的液位,并在到达最高液位时报告)  作出响应,则当输出该信号时需要处理的子程序可位于事件驱动处理型 OB上。

线性编程与结构化编程

可以在OB1中写入整个用户程序(线性编程)。只有在给S7-300 CPU  编写简单程序、并要求极少内存时才可行。

将复杂自动化任务分割成反映过程技术功能或可多次处理的小任务,可以更易于控制复杂任务。这些任务以相应的程序段表示,称为块(结构化编程)。

图片

用户程序中的调用体系

要使用户程序正常运行,必须调用构成用户程序的块。这通过特殊的STEP 7  指令、块调用来完成,而这些指令、块调用只能在逻辑块中编程和启动。

次序和嵌套深度

块调用的次序和嵌套称为体系。可嵌套的块数目(嵌套深度)取决于特定的 CPU。下图阐述了一个扫描周期内块调用的次序和嵌套深度。

图片

创建块的固定次序如下:

·  从上到下创建块,因此可以从块的顶行开始。

·  调用的每个块必须已经存在,即在一行块内,创建块的次序为从右到左。

·  最后要创建的块是 OB1 。

在图中所示的实例中应用这些规则,则可以按下列顺序创建块:

FC1 > FB1 +  实例DB1 > DB1 > SFC1 > FB2 +  实例DB2 > OB1

块调用

下图显示了在用户程序内块调用的顺序。该程序调用第二个块,然后完全执行该块的指令。一旦执行第二个块或调用块后,在块调用后的指令处继续执行发出调用命令的中断块。

图片

当执行冷重启时,操作系统将 SFB3“TP”实例复位。如果在冷重启后,初始化该SFB 的实例,那么必须通过 OB100以PT = 0 ms 调用 SFB 的相关实例。例如,可通过在包含该 SFB 实例的块中执行初始化程序完成该操作。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多