您现在的位置是:首页 > PLC技术 > PLC技术
STEP 7的模块化程序结构——组织方块OB1的作用和
来源:艾特贸易2017-06-05
简介在开始进行编程之前,我们首先要了解 STEP 7 的模块化程序结构,这种结构将复杂的任务分解成一些可单独解决的分任务。 STEP 7 软件将应用程序分解为若干种模块,即 OB (组织块)、
在开始进行编程之前,我们首先要了解STEP 7的模块化程序结构,这种结构将复杂的任务分解成一些可单独解决的分任务。 STEP 7软件将应用程序分解为若干种模块,即OB(组织块)、FB(功能块)、FC(功能)和DB(数据块)等。 STEP7中的块,诸如功能(FC)和功能块(FB),可以赋予参数,通过使用这些块便实现了结构化编程的概念。这意味着解决单个任务的块,使用局部变量来实现对其自身数据的管理。块仅通过其块参数来实现与“外部”的通信,也即,与过程控制的传感器和执行器,或者与用户程序中的其他块之间的通信。在块的指令段中,一般不直接访问如输入、输出、位存储器或DB中的变量这样的全局地址,只有在调用这些块时才用全局地址去替换块中的局部变量(形式参数)。 结构化编程具有如下一些优点: 1)各单个任务块的创建和测试可以相互独立地进行。 2)通过使用参数,可将块设计得十分灵活。比如,可以创建一钻孔循环,其坐标和钻孔深度可以通过参数传递进来。 3)块可以根据需要在不同的地方以不同的参数数据记录进行调用,也就是说这些块能够被再利用。 4)在预先设计的库中,能够提供用于特殊任务的“可重用”块。 下面首先说明OB0组织块( OB)是CPU的操作系统和用户程序之间的接口,OB将用来执行特殊的程序段,主要有循环执行用户程序(例如OB1)、定时执行用户程序(例如OB30~ OB38)、响应I/O模板的硬件中断信号执行的用户程序(例如OB40~OB47)、响应I/O模板的诊断信号执行的用户程序(诊断中断,例如OB82)、CPU启动方式组织块(例如OB90、OB100、OB101、OB102)等。 本节主要介绍OB1(主循环程序)的作用和编程方法。 在STEP 7中,OB1是由CPU执行的主循环程序,CPU一行行地读取并且执行程序命令,当CPU返回到第一程序行时,它就精确地完成了一个循环周期。此过程所需要的时间就是一个扫描周期时间。 下面根据选择使用的编程语言,分别介绍用梯形图( LAD)、语句表(STL)和功能块图( FBD)来编写OB1程序。 在用STEP 7建立S7程序时,可以选择3种标准编程语言中的一种,即梯形图(LAD)逻辑语言、语句表( STL)语言或者功能块图(FBD)语言。LAD适合于熟悉继电器逻辑的电气工程师,STL适合于熟悉计算机编程语言的工程师,FBD对习惯于使用逻辑图设计的工程师更为合适。图3-20是分别使用这3种编程语言的示例。
图3-20 用3种不同编程语言编写程序的示例 在工具条上单击打开图
,打开OB1方块,在弹出的对话框中选择项目Getting Started,单击OK按钮确认。单击打开对话框中的Browse(浏览)按钮,选择用某一种编程语言来对OB1进行编程,在出现的路径菜单(C:\SIEMENS\STEP7\EXAMPLES)中,选择打开以下的项目样板:ZEn01_01_STEP7_STL_1-9、ZEn01_03_STEP7_FBD_1-9或者ZEn01 _05_STEP7_LAD_1-9。 在图3-21的中间部分,显示了这3个项目样板。 对选中的样板,例如ZEn01_05_ STEP7_ LAD_1-9,采用导航的方法,一直到出现符号表Symbols,用鼠标选中目标并按住鼠标左键,即将符号表复制到项目Getting Started的S7程序文件夹中,然后关闭项目ZEn01_05_STEP7_LAD_1-9的窗口。用鼠标选中目标并按住鼠标左键,拖动目标到所选择的位置,释放鼠标左键,完成复制。图3-21图解说明了这一过程。
图3-21 复制符号地址表和打开OB1程序组织方块 在Getting Started项目的右边窗口,双击OB1,从而打开了用LAD(或STL/FBD)来编写OB1程序的编程窗口。图3 -22所示为这一窗口的各个部分。
图3-22 S7程序的编程窗口(以梯形图逻辑语言的编程为例) 图3-23和图3-24采用图解的方法举例说明,怎样使用梯形图逻辑语言来编写一个串联电路和并联电路的程序。图3-25进一步说明怎样编写一个存储置位、复位电路。图3-26所示为梯形图逻辑语言编程中的绝对地址和符号地址。
图3-23 用梯形图逻辑语言编写一个串联电路程序示例
图3-24 用梯形图逻辑语言编写一个并联电路程序示例
图3-25 用梯形图逻辑语言编写SR单元(存储置位、复位)程序示例
图3-26 梯形图逻辑语言编程中的绝对地址和符号地址 以上介绍了使用梯形图( LAD)逻辑语言编写的串联电路、并联电路和SR触发器的程序网络段。下面将用语句表( STL)语言和功能块图(FBD)语言来编写同样的电路程序,如图3-27~图3-33所示。
图3-27 用语句表语言完成“与”(AND)指令语句程序示例 在用语句表语言编程的过程中,如果出现红色符号,这表明在已经建立的符号表中没有该符号,或者存在语法错误。 在编程过程中,也可以直接从符号表中插入符号名。单击??.?符号,然后单击菜单命令Insert→Symbol,通过下拉表的滚动条,找到相应的符号名,选择这一符号名,即可自动地替代??.?地址。 在图3-28中,网络段1的说明是,当两个输入点“Key_1”和“Key_2”都激活时(都是信号状态“1”= 24V),则“Green_Light”激活。亦即为了使“绿灯”接通,必须两个输入同时为“1”状态。 网络段2的说明是,当两个输入点“Key_3”和“Key_4”中有一个激活时(有一个是信号状态“1”= 24V),则输出“Red_Light”激活。亦即为了使“红灯”接通,只需两个输入中有一个为“1”状态。
图3-28 用语句表语言编写“或”指令和“存储置位/复位”指令程序示例
图3-29 语句表语言编程中的绝对地址和符号地址
图3-30 用功能块图语言编写“与”(AND)逻辑功能程序示例
图3-31 用功能块图语言编写“或(OR)”逻辑功能程序示例
图3-32 用功能块图语言编写SR功能(存储置位/复位)程序示例 网络段3的说明是,当输入“Automatic_On”激活时,由于S指令的作用,输出“Au tomatic_Mode”被激活,且一直保持激活状态,即使输入“Automatic_On”又变成非激活状态,对输出也没有影响。当输入“Manual_On”激活时,R指令起作用,输出“Automatic_Mode”复位到非激活状态,且一直保持非激活状态,即使输入“Manual_On”又变成非激活状态,对输出也没有影响。输出的状态是由S (Set)和R(Reset)操作来决定的。 如果两个输入同时被激活,则首先是置位功能,随后是处理复位功能,由于主程序( OB1)是顺序执行,因此一个OB1周期结束时的结果使输出处于复位状态,这种情况称复位优先。
图3-33 功能块图语言编程中的绝对地址和符号地址
点击排行
PLC编程的基本规则
