S7-1500——(一)从入门到精通1、基于TIA 博途解析PLC程序结构(一)
基于TIA 博途解析PLC程序结构
- 一,块结构的综述
- 1,操作系统和用户程序
- 2,块的分类
- 3,组织块OB
- 4. FC和FB介绍
- 5. DB介绍
- 6,演示项目介绍
- 6.1,演示项目介绍:
- 6.2,程序结构介绍
- 6.3,块的管脚功能介绍
- 二,OB组织块
- 1,OB的触发事件及编号
- 2,OB的优先级及中断机制
- 3,循环程序组织块
- 4,时间中断组织块
- 5,延时中断组织块
- 6,循环中断组织块
- 7,应用案例
- 8,硬件中断组织块`Hardware interrupt`
- 9,硬件中断和时间中断的`DEMO SHOW`
- 10,异步错误组织块
- 11,系统硬件故障诊断程序
- 12,编程演示:利用`OB83`评估现场模块的状态
一,块结构的综述
PLC的运行机制:①可以更好的发挥CPU的性能,满足现场的控制需求;②可以预判到各种小概率的风险事件,防止系统漏洞;③让程序结构清晰,易于维护;
1,操作系统和用户程序
系统架构: CPU内部包含操作系统和用户程序两个部分,操作系统负责调度用户程序的执行;
功能划分:
用户程序实现具体控制逻辑
操作系统管理底层硬件资源和程序执行流程
操作系统主要职责:
处理暖启动
更新I/O过程映像区
调用用户程序执行
检测并调用中断OB
错误检测与处理
存储区管理
运行机制: 操作系统来调度控制系统的运行规则,协调PLC控制任务与系统管理任务的执行;
2,块的分类
两大类别:
代码块:包含程序指令,负责程序的逻辑判断(OB/FB/FC)
数据块(DB):保存程序运行中所用到的各种变量
创建方法:
通过"添加新块"对话框选择类型
设置块名称和编程语言(LAD/STL等)
程序循环OB1是主程序块,会循环执行
3,组织块OB
核心作用: (操作系统与用户程序的接口,由他实现操作系统的功能)主要编写处理系统事件的代码,响应系统事件;
典型应用场景:(需要编写相应的代码到指定的OB块中)
自动化系统的启动特性
循环程序处理
中断驱动的程序执行
错误处理机制
类型划分:
启动OB(编号100,>=123):暖启动时执行
循环程序OB(编号1,>=123):主程序循环执行
时间中断OB(10到17,>=123):定时触发
延时中断OB(20到23,>=123):程序触发计时
循环中断OB(30到38,>=123):固定间隔执行
硬件中断OB(40到47,>=123):外部信号触发
故障类中断:发生了故障,相应的OB就会被执行,可以在OB块中编写一些诊断程序,提示问题的发生(如下图S7-1500 中主要的组织块启动事件)
编号规则:
固定编号OB:系统预定义的OB号,每个OB号所对应的功能是固定的;
≥123编号OB:用户自定义的OB号,用户可以自己指定他的功能;
4. FC和FB介绍
将程序化整为零
将复杂自动化任务分割成与过程工艺功能相对应或可重复使用的更小的子任务,将更易于对这些复杂任务进行处理和管理。这些子任务在用户程序中以FC和FB来实现。
模块化优势: 将复杂任务分解为可重复使用的子任务
调用关系: OB通过调用FC/FB实现程序结构化
函数和函数块的区别
函数 FC 是不带存储器的代码块
由于没有可以存储块参数值的数据存储器。因此,调用带有参数的函数时,必须给所有形参分配实参;
函数块 FB 是一种带存储器的代码块
它将输入、输出和输入/输出参数永久地存储在背景数据块中,从而在执行块之后,这些值依然有效;
(在实现控制任务时,可以进行一些计数,延时等需要跨周期读取的操作)FC、FB的差别在结构化编程中体现的更明显
5. DB介绍
数据块 DB 可分为全局数据块和背景数据块
全局数据块 是用于存储全局变量的数据区,它的变量可以自由声明,任何代码块都可以访问这些数据。
背景数据块 是在调用某个FB时分配给该FB使用,存储FB的参数和静态变量。只有该FB可以访问自己的背景数据块
(背景DB内容由FB声明决定,满足FB的数据存储需求)
6,演示项目介绍
演示项目运行于S7-1500demo设备,外加一个传送带模型
6.1,演示项目介绍:
演示项目模拟的是一条生产线的生产。该生产线包含四个工位,一个拾取站。另外三个工件的加工工位(站一,站二,站三);我们把工件放在拾取站。按下下面的触发按钮,工件就会按照预先设定好的加工工序,在三个工位中进行加工,加工好了以后返回拾取站,我们可以把工件儿取下。然后再重新放置新工件进行下一个循环的生产。
项目中包含一个Win CC
人机界面项目,这是一个PC run time
的项目,可以直接在电脑上运行;
然后配置通讯方式,将项目下载到CPU中。如果没有实际硬件,可以打开plc sim进行虚拟调试。然后要确认一下
win CC
使用的通讯接口,如果使用的是PLC sim
进行虚拟调试,这里应该选择PLC sim
。如果使用实际的硬件,这里就选择电脑上实际使用的物理网卡
设置好以后,就可以运行Wcc项目。项目启动后,点击启动项目图标。进入到下一画面后, 选择画面下方的生产画面进行切换,就能切换到生产时使用的生产画面;通过这个画面可以启动关闭生产线。在关闭时可以进行简单的手动测试,点动传送带向左/向右。点击画面上的生产线开启。就可以使生产线进入自动运行状态。进入自动模式后,就可以放置工件进行连续的自动生产
6.2,程序结构介绍
程序采用了结构化编程,把各种功能都封装到各自的FC
,FB
中,由上一层的程序进行调用;
在OB1
中调用了FB1500
,FB1
和FB5
。
①FB1500
负责传送带的模拟运行,当没有实际的传送带时,就需要用到FB1500
来模拟给出一些输入信号,这样才能让程序能够在自动模式下运行。
②FB1
是模式选择程序,即选择启动和关闭生产线;
③FB5
是生产线的控制程序,所有生产线控制逻辑都在FB5
中;
④全局数据块DB99
,所有与hmI
进行数据交换的接口变量都保存到DB99
中
6.3,块的管脚功能介绍
FB1500
:模拟器虚拟运行
FB1500
模拟器虚拟运行:为配合plc sim
,可以使用FB1500
给出一些模拟的输入信号
比如将工件儿放到生产线上,按下启动按钮后,传送带运行,过了一秒就能达到下一个工位。这时FB1500
就能把下一工位的到位信号给出,这样就可以连续的往下继续完成动作;在没有使用模拟器,即有实际的硬件设备,那就可以把
FB1500
关闭,EN
管角上那个I0.6
设置成1即可。下面的M1.2
是选择IO模块的功能,本练习中使用的是ET 200 SP
模块,所以这里用M1.2
长为1的信号进行赋值;
模式选择程序
通过HMI
的操作,启动/关闭生产线,结果给到Q0.1
里。
西门子提供的标准函数库(脉冲