当前位置: 首页 > news >正文

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,程序结构介绍

程序采用了结构化编程,把各种功能都封装到各自的FCFB中,由上一层的程序进行调用;
OB1中调用了FB1500FB1FB5

在这里插入图片描述
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里。

西门子提供的标准函数库(脉冲

http://www.dtcms.com/a/271477.html

相关文章:

  • c语言中的数组II
  • 景观桥 涵洞 城门等遮挡物对汽车安全性的影响数学建模和计算方法,需要收集那些数据
  • 周立功汽车软件ZXDoc深度解析:新能源汽车开发新基建的破局之道
  • java 语法类新特性总结
  • 【王树森推荐系统】排序05:排序模型的特征
  • 计蒜客T3473丑数、Leetcode2401最长优雅子数组、Leetcode167两数之和、Leetcode581最短无序连续子数组
  • 深度帖:浏览器的事件循环与JS异步
  • 【教程】基于GNN的药物相互作用网络中的链接预测
  • 数据一致性解决方案总结
  • Linux驱动04 --- 网络编程TCP客户端
  • 暑假读书笔记第五天
  • 深入剖析Elasticsearch倒排索引,Query DSL查询使用场景分析
  • lwip+8720+裸机+先上电在插网线 ping不同
  • HashMap的get、put流程源码分析
  • jenkins+固定agent节点+maven+sonarqube+docker
  • uniapp小程序无感刷新token
  • 数据结构之位图和布隆过滤器
  • ReactNative【实战系列教程】我的小红书 5 -- 文章详情(含轮播图 ImageSlider,点亮红心动画 Heart,嵌套评论等)
  • 【三维重建】一、设备分类
  • 优化 ECharts 多条折线:折线数据不完整导致的X轴日期错乱问题
  • 【面试精讲】I2C 子系统核心结构与常见问题深度解析
  • 【PTA数据结构 | C语言版】一元多项式求导
  • Redis-哨兵选取主节点流程
  • 操作系统核心技术剖析:从Android驱动模型到鸿蒙微内核的国产化实践
  • HashMap的Get(),Put()源码解析
  • CTFHub————Web{信息泄露[备份文件下载(网站源码、bak文件)]}
  • 微服务架构中数据一致性保证机制深度解析
  • [Backlog] 核心协调器 | 终端用户界面(TUI)实现 | 多分支任务冲突解决 | 测试验证体系
  • vue2中使用xgplayer播放流视频
  • 方差、协方差和协方差矩阵