[工业自动化-19]:西门子S7-15xxx编程 - 软件编程 - PLC程序块、组织块OB与PLC多线程原理、OB、FC、FB、DB

news/2024/10/21 13:24:25/

目录

一、PLC的块的种类

1.1 什么是块

1.2 块的种类

1.3 不同块之间的相互调用关系

1.4 OB、FC、FB和DB

二、PLC程序组织块OB

2.1 什么是程序块OB

2.2 为什么需要程序块OB

2.3 PLC有哪些程序块

2.4 如何使用程序块 - OB块的执行顺序和规则

2.5 PLC用户程序主函数(主循环)

2.6 PLC初始化函数

2.7 PLC函数调用支持

2.8 PLC的多线程支持

三、PLC 结构化逻辑编程

3.1 概述

3.2 程序段与程序块OB


一、PLC的块的种类

1.1 什么是块

在PLC(可编程逻辑控制器)编程中,块(Block)是组织程序(Organization Program)的基本单元。

块是一个逻辑上的概念,通常包含一系列的指令或语句,用于实现特定的功能、算法或任务。

块可以看作是一个相对独立的程序部分,可以在整个PLC程序中重复使用。

1.2 块的种类

块在PLC编程中有多种类型,其中最常见的包括:

  1. 程序块(OB,Organization Block):程序块是组织程序的基本单元,用于编写和执行PLC的控制逻辑。程序块按照特定的规则和要求编写,如主程序块(OB1)、副程序块(SFB)、中断程序块(OBi)、循环程序块(OBx)和系统程序块(OBD)等等。

  2. 函数块(FC,Function Block):函数块是一种可重用的程序段,包含输入、输出和中间处理部分。函数块通常用于对某个特定数据类型进行处理或一个特定的功能操作。

  3. 数据块(DB,Data Block):数据块是一个具有特定数据格式的数据存储区域。数据块中可以存储PLC程序使用的各种数据类型,如输入和输出数据、控制参数、控制算法参数等。

  4. 技术块(TB,Technological Block):技术块是一种特定的程序部分,用于描述和管理生产过程中的特定技术流程、工艺参数等信息。

块的作用在于将PLC程序划分为多个逻辑上独立的模块,使编程更加容易和灵活。通过合理的使用块,程序的逻辑和功能可以被分解为不同的部分,在编写和调试PLC程序时可以更加高效和灵活地开发控制逻辑,提高程序的可读性和可维护性。此外,块的使用也可以提高PLC程序的重用性,减少重复编写相似代码的工作量。

1.3 不同块之间的相互调用关系

OS-> OB -> FB -> FC -> DB

1.4 OB、FC、FB和DB

在PLC(可编程逻辑控制器)编程中,OB、FC、FB和DB是常见的缩写词,分别代表不同的概念和功能:

  1. OB(Organization Block):OB是组织块的意思,在PLC编程中表示一个程序块,用于编写和执行PLC的控制逻辑。OB包括各种类型,如主程序块(OB1)、中断程序块(OBi)、循环程序块(OBx)等,根据其不同的类型和执行规则,在PLC程序中有不同的作用和触发条件。

  2. FC(Function):FC表示函数块,是PLC中的一种可重用程序段,通常用于封装和实现某个特定功能或算法。FC通常有输入和输出,通过参数传递来实现对输入数据的处理,并返回处理结果或更新相关的输出数据。函数块可以在PLC程序中被调用和重复使用。

  3. FB(Function Block):FB表示功能块,也是PLC中的一种可重用程序段。与函数块不同的是,功能块不仅包含输入和输出,还具有内部的数据存储区域,可以通过内部数据交换实现数据处理和逻辑控制。功能块通常使用图形化的可视化编程工具进行编写和调用。

  4. DB(Data Block):DB表示数据块,是PLC中用于存储数据的一种特定数据结构。数据块常用于存储输入、输出数据、控制参数、算法参数等,可以在PLC程序中被访问和修改。通过合理使用数据块,可以实现数据的集中管理和重复使用。

综上所述,OB、FC、FB和DB在PLC编程中分别代表组织块、函数块、功能块和数据块,它们在PLC程序中有不同的作用和功能。工程师们可以根据实际需求,合理选择和使用这些程序块来实现PLC的控制逻辑和数据管理。

1.5 数据块中的数据类型

在西门子PLC编程中,常见的数据类型包括:

  1. 位(Bool):用于表示开关状态,取值为0或1。

  2. 字节(Byte):用于存储8位二进制数据。

  3. 字(Word):用于存储16位二进制数据。

  4. 双字(Double Word):用于存储32位二进制数据。

  5. 整数(Int):用于存储带符号的16位整数。

  6. 长整数(DInt):用于存储带符号的32位整数。

  7. 浮点数(Real):用于存储单精度浮点数,通常用于表示实数。

  8. 字符串(String):用于存储文本数据,可以包含多个字符。

  9. 定时器(Timer):用于实现定时功能,可以设置计时、启动和停止定时器。

  10. 计数器(Counter):用于实现计数功能,可以设置计数数值、启动和停止计数器。

  11. 用户自定义类型(User-Defined Types):可以根据需求通过结构体或联合体等方式定义自己的数据类型。

这些数据类型在西门子PLC编程中被广泛应用,开发人员可以根据具体的应用需求选择适合的数据类型来存储和处理数据。每个数据类型都有其特定的用途和限制,了解这些数据类型的特点和用法对于正确使用PLC编程非常重要。

二、PLC程序组织块OB

2.1 什么是程序块OB

在PLC(可编程逻辑控制器)编程中,程序块(OB,Organization Block)是组织程序(Organization Program)的基本单元,用于编写和执行 PLC 的控制逻辑。

OB 是按照特定的规则和要求编写的一段程序代码

2.2 为什么需要程序块OB

程序块(OB,Organization Block)在PLC(可编程逻辑控制器)编程中起着重要的作用。

以下是一些程序块(OB)的作用和重要性:

  1. 分解复杂程序:PLC控制程序可能非常复杂,包含大量的逻辑和功能。使用程序块可以将整个程序分解成小块每个块负责特定的功能或任务。这样可以降低程序的复杂性,使其更易于编写、调试和维护。

  2. 模块化编程:每个程序块都可以看作一个独立的模块,它可以在程序中多次使用。这种模块化的设计能够提高代码的重用性,减少重复编写相似代码的工作量

  3. 易于调试和故障排除:当发生问题时,程序块使得定位故障变得更加容易。通过每个程序块的调试和测试,可以快速定位问题并进行故障排除,而不必检查整个程序。

  4. 提高程序可读性:使用程序块将程序逻辑划分为不同部分,可以提高程序的可读性。每个程序块都有特定的用途和功能,使得代码更易于理解。

  5. 灵活的程序控制:PLC通常需要根据不同的条件和事件来执行不同的操作。通过程序块的使用,可以灵活地控制程序的执行流程,根据需要调用或跳过特定的程序块

  6. 便于维护和修改:程序块的使用使得程序的维护和修改变得更加容易。当需要修改程序时,只需修改特定的程序块而无需修改整个程序。这样可以减少对其他部分的影响,并降低引入新错误的风险。

        总而言之,程序块(OB)在PLC编程中起到了组织程序、提高可读性、减少重复性工作、便于调试和故障排除等重要作用。

2.3 PLC有哪些程序块

PLC 中的程序块(OB)通常包括以下几种类型:

  1. 主程序块(OB1)-- 主程序:主程序块是 PLC 中最常用的程序块。它负责 PLC 的控制逻辑和功能,包括输入信号的读取、输出信号的控制、数据处理以及各种控制算法的执行等。

  2. 副程序块(SFB)-- 功能库:副程序块用于完成各种常用的功能模块化程序,如数学计算、通信协议处理、定时器/计数器等。这些功能模块可以在程序中多次被调用。

  3. 中断程序块(OBi)-- 中断处理程序:中断程序块是在特定事件发生时被触发执行的程序块,例如硬件中断、通信中断等。中断程序块通常用于实时响应特定的事件。

  4. 循环程序块(OBx)-- 定时中断程序:循环程序块是周期性执行的程序块,它可以在特定的时间间隔或者循环次数内被触发执行。

  5. 系统程序块(OBD)-- 系统程序:系统程序块是用于系统特定的功能和操作,例如 PLC 的启动和停止,系统错误处理等。

每个程序块(OB)在 PLC 编程中具有特定的执行顺序和规则,可以在 PLC 的编程软件中根据需要进行编写和配置。编写程序块时需要遵守特定的编程规范和语法,确保程序的正确性和可靠性。

通过合理使用不同类型的程序块(OB),可以将 PLC 的控制逻辑分解为不同模块,提高程序的可读性、可维护性和可重用性。这样,在编写 PLC 控制程序时可以更加灵活、高效地开发和调试控制逻辑。

2.4 如何使用程序块 - OB块的执行顺序和规则

在PLC(可编程逻辑控制器)编程中,使用程序块(OB,Organization Block)需要遵守特定的执行顺序和规则。以下是一般情况下使用程序块的执行顺序和一些常见的规则:

  1. 主程序块(OB1)的执行顺序:主程序块(OB1)是PLC程序中的入口点,因此它的执行顺序是最高优先级的。在PLC系统启动时,OB1会首先执行。主程序块可以包含整个PLC程序的核心逻辑和功能。

  2. 副程序块(SFB)的执行顺序:副程序块(SFB)是一种常用的功能模块,可以重复调用。SFB通常在主程序块(OB1)的执行过程中根据需要调用。副程序块在被调用时会执行相应的功能,然后返回到主程序块继续执行。

  3. 中断程序块(OBi)的执行顺序:中断程序块(OBi)是在特定事件发生时被触发执行的程序块。中断事件可以是硬件中断、通信中断等。当中断事件发生时,PLC会中断当前正在执行的程序,转而执行相应的中断程序块(OBi)。

  4. 循环程序块(OBx)的执行顺序:循环程序块(OBx)是周期性执行的程序块。OBx的执行时间间隔可以通过配置进行设置,比如基于时间触发或者基于循环次数触发。OBx会在设定的时间间隔或者循环次数达到时,被触发执行

  5. 系统程序块(OBD)的执行顺序:系统程序块(OBD)是用于系统特定的功能和操作,如PLC的启动和停止、系统错误处理等。系统程序块的执行顺序可能会有特定的要求和规则,需要根据具体的PLC和编程平台进行配置和使用。

在PLC编程中,程序块(OB)的执行顺序和规则可能因具体的PLC品牌、模型和编程软件而有所不同。因此,在进行PLC编程时,应仔细阅读和遵守相关的PLC文档和编程手册,了解特定PLC系统的程序块使用规则。

另外,值得一提的是,程序块的具体功能和执行顺序可以通过参数设置和编程软件中的配置进行调整和修改。这样可以根据程序的具体需求和逻辑来定制程序块的执行顺序,以满足特定的控制要求。

2.5 PLC用户程序主函数(主循环)

2.6 PLC初始化函数

2.7 PLC函数调用支持

FB:多个函数的程序块,拥有块内的全局变量,也称为背景数据区,背景数据区的数据供程序块内部的不同函数之间进行数据交互与通信。

FC:类似C语言函数,使用局部变量进行通信。

在PLC(可编程逻辑控制器)编程中,FB(Function Block)和FC(Function)都是可重用的程序段,但它们之间有一些区别:

  1. 输入输出方式不同:FC通常有输入和输出,它的输入和输出是由参数传递来实现的;而FB则具有内部的数据存储区域,可以通过数据存储区域进行内部数据交换,而不像FC需要通过参数进行传递。

  2. 编程方式不同:FC使用的是一种基于某种特定编程语言(如Ladder Diagram、Statement List等语言)的形式进行编程,它通常比较适合实现较为简单的算法和控制操作。而FB则通常使用图形化的可视化编程工具,如组态软件、PLCopen Editor等,它们提供了图形化的元件库,可以通过拖拽元件的方式来编写程序。

  3. 功能范围不同:FC通常用于针对一种简单的数据类型(如数字、布尔值、定时器等)进行操作和计算,它们通常处理数据对象的方法都很相似;而FB适合建模复杂的系统,可以通过组合一些元件和FB以及一些逻辑操作来实现更加复杂的算法。

  4. 内存使用不同:由于FC需要通过参数进行数据传递,因此它需要更多的内存来存储和传输数据,尤其是当数据量较大时;而FB则可以通过内部数据存储区域进行操作,因此可以更加节省内存资源。

  5. 场合不同:FC常见于数值计算、逻辑运算等仿真软件以及通用编译器中,并可以很方便地在程序中调用;而FB通常应用于控制系统的搭建、调试等场合,能够快速地实现PLC的控制逻辑。

综上所述,FB和FC在PLC编程中都是功能和模块的可重用部分,它们在输入输出方式、编程方式、功能范围、内存使用以及应用场合等方面存在一些不同。工程师们在选择FB和FC时,应该根据程序需求来合理选择。

2.8 PLC的多线程支持

备注:

循环中断:类似Linux操作系统中的定时中断程序。

硬件中断:类似Linux操作系统中的硬件中断服务器。

IO访问中断:类似Linux操作系统中的内核异常中断服务程序。

三、PLC 结构化逻辑编程

3.1 概述

PLC(可编程逻辑控制器)是一种用于自动化控制和工业生产的设备,编写PLC程序的目的是控制生产流程、实现工业自动化和提高生产效率。在PLC编程中,结构化逻辑编程是一种常见的编程方式,其特点是模块化、分层和可读性强,有助于PLC程序的编写和维护。

PLC结构化逻辑编程包括以下几个方面:

  1. 模块化编程:将整个PLC程序划分为多个逻辑上独立的模块,每个模块又可以进一步划分为多个子模块。每个模块和子模块的功能应该单一、清晰、明确。这种方式有利于程序的模块化管理和代码开发的重用。

  2. 分层编程:将PLC程序分为不同的层次结构(如控制层、运行层、监视层等),每层次结构的功能应该独立、清晰、明确。这种方式有利于程序的分层管理、调试和维护。

  3. 使用结构化方法:在PLC编程中,使用结构化方法可以显著提高程序的可读性和可维护性。使用结构化语言(如Ladder Diagram、Statement List、Structured Text等)进行编程,可以使用循环、条件等控制结构,使代码更加紧凑、易于理解、调试、修改。

  4. 使用函数块(FB):Facebook公司开发的PLCopen是一种广泛使用的PLC程序编程规范。PLCopen规范中的函数块(FB)是模块化编程的重要组成部分,它们可以提高程序的可读性和可重用性。编写好的函数块可以在多个程序中重复使用,并可以被其他编写PLC程序的工程师调用。

  5. 使用数据块(DB):数据块是用于存储控制参数、运行状态、输入和输出数据等的一种数据结构。在PLC程序中,使用数据块可以实现参数和数据的集中存储管理,也可以实现数据的重复使用。

综上所述,PLC结构化逻辑编程是一种模块化、分层和结构化的编程方式。使用这种方式可以提高程序的可读性和可维护性,并且使程序更易于开发、管理和维护。

3.2 程序段与程序块OB

程序块OB和程序段是PLC程序设计中的重要组成部分。

程序段是用于实现具体的功能和逻辑的代码段,

而程序块OB则是用于管理和执行程序段的特殊程序段。

通过合理使用程序段和程序块OB,可以实现PLC程序的模块化、结构化和灵活控制。


http://www.ppmy.cn/news/1215848.html

相关文章

【Pytorch和深度学习】栏目导读

【Pytorch和深度学习】栏目导读

一、栏目说明 本栏目《pytorch实践》是为初学者入门深度学习准备的。本文是该栏目的导读部分,因为计划本栏目在明年完成,因此,导读部分,即本文也在持续更新中。 本栏目设计目标是将深度学习全面用pytorch实践一遍,由浅…
阅读更多...
linux rsyslog日志采集格式设定一

linux rsyslog日志采集格式设定一

linux rsyslog日志采集格式设定一 1.创建日志接收模板 打开/etc/rsyslog.conf文件,在GLOBAL DIRECTIVES模块下任意位置添加以下内容 命令: vim /etc/rsyslog.conf 测试:rsyslog.conf文件结尾添加以下内容 $template ztj,"/var/log/%hostname%/%programname%.log&…
阅读更多...
Centos 7rc.local脚本命令开机不执行及指定用户启动的方法

Centos 7rc.local脚本命令开机不执行及指定用户启动的方法

1.开机不启动 在实际生产场景中,我们喜欢在安装了一些软件服务后,将软件设置为开机自启动 配置在/etc/rc.local文件中。直接将软件服务的启动命令写在rc.local文件 注意:编辑完rc.local文件后,一定要给rc.local文件执行权限&#…
阅读更多...
Flutter 实现 Android CollapsingToolbarLayout折叠布局效果

Flutter 实现 Android CollapsingToolbarLayout折叠布局效果

Flutter 是通过Tabbar TabbarView 来实现 类似Android Viewpager 页面切换的效果的。我个人觉得Flutter 的tab 切换实现过程要比Android的实现过程要简单容易不是一星半点,哈哈哈哈 ,因为她所用到的widget 都是google 官方封装好的,用起来代…
阅读更多...
考研数学笔记:线性代数中抽象矩阵性质汇总

考研数学笔记:线性代数中抽象矩阵性质汇总

在考研线性代数这门课中,对抽象矩阵(矩阵 A A A 和矩阵 B B B 这样的矩阵)的考察几乎贯穿始终,涉及了很多性质、运算规律等内容,在这篇考研数学笔记中,我们汇总了几乎所有考研数学要用到的抽象矩阵的性质…
阅读更多...
Go使用命令行输出二维码

Go使用命令行输出二维码

引言 二维码(QR code)是一种矩阵条码的标准,广泛应用于商业、移动支付和数据存储等领域。在开发过程中,我们可能需要在命令行中显示二维码,这可以帮助我们快速生成和分享二维码信息。本文将介绍如何使用Go语言生成二维…
阅读更多...
拓扑排序软件设计——ToplogicalSort_app(含有源码、需求分析、可行性分析、概要设计、用户使用手册)

拓扑排序软件设计——ToplogicalSort_app(含有源码、需求分析、可行性分析、概要设计、用户使用手册)

拓扑排序软件设计 前言1. 需求分析2. 可行性分析2.1 简介2.2 技术可行性分析2.2.1 技术实现方案2.2.2 开发人员技能要求2.2.3 可行性 2.3 操作可行性分析2.4 结论 3. 项目报告3.1 修订历史记录3.2 软硬件环境3.3 需求分析3.4 详细设计3.4.1 类设计3.4.2 核心流程描述3.4.3 核心…
阅读更多...
QNX 字符设备 resource manager 实例

QNX 字符设备 resource manager 实例

文章目录 前言一、普通的 resource managers二、字符设备 resource managers1. 字符设备节点2. 字符设备 devctl cmd 参数1. devctl cmd 参数的构成2. devctl 字符设备实例总结参考资料前言 本文主要介绍如何编写一个 qnx 下 的 char device resource managers (字符设备驱动…
阅读更多...
最新文章

玻璃钢生产厂家品牌玻璃钢雕塑厂江西上饶玻璃钢雕塑制品厂天津人物玻璃钢雕塑多少钱北京秋季商场美陈厂家供应商场大象美陈气球造型天涯玻璃钢雕塑厂家仿古玻璃钢雕塑造型福建玻璃钢雕塑厂招聘信息金坛玻璃钢花盆花器鲁山玻璃钢雕塑加工厂家雕塑材料玻璃钢北京秋季商场美陈供货商溧阳玻璃钢浮雕人物山水雕塑龙泉玻璃钢景观雕塑烟台玻璃钢雕塑哪家好玻璃钢果篮雕塑批发价仿真玻璃钢雕塑容易碎安徽多彩玻璃钢雕塑定做价格北京商场美陈定制河源公园玻璃钢雕塑泰州商场中庭美陈艺术商场美陈销售厂家奥体商场美陈装饰玉溪市玻璃钢雕塑设计供应玻璃钢大理石小钢琴雕塑加厚玻璃钢花盆石家庄佛山玻璃钢卡通雕塑价格玻璃钢户外雕塑制作视频嘉兴玻璃钢雕塑订做价格新品玻璃钢植物雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化