论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
数据库
›
分布式数据库
›
[工业主动化-19]:西门子S7-15xxx编程 - 软件编程 - PLC ...
[工业主动化-19]:西门子S7-15xxx编程 - 软件编程 - PLC程序块、构造块OB与 ...
金歌
论坛元老
|
2024-7-22 20:00:35
|
显示全部楼层
|
阅读模式
楼主
主题
1705
|
帖子
1705
|
积分
5115
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
目次
一、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编程中有多种范例,此中最常见的包括:
程序块(OB,Organization Block):
程序块是构造程序的根本单元,用于编写和实验PLC的控制逻辑。程序块按照特定的规则和要求编写,如主程序块(OB1)、副程序块(SFB)、中断程序块(OBi)、循环程序块(OBx)和系统程序块(OBD)等等。
函数块(FC,Function Block):
函数块是一种可重用的程序段,包含输入、输出和中心处理部分。函数块通常用于对某个特定数据范例举行处理或一个特定的功能操作。
数据块(DB,Data Block):
数据块是一个具有特定数据格式的数据存储区域。数据块中可以存储PLC程序使用的各种数据范例,如输入和输出数据、控制参数、控制算法参数等。
技能块(TB,Technological Block):
技能块是一种特定的程序部分,用于描述和管理生产过程中的特定技能流程、工艺参数等信息。
块的作用在于将PLC程序分别为多个逻辑上独立的模块,使编程更加容易和灵活。通过公道的使用块,程序的逻辑和功能可以被分解为不同的部分,在编写和调试PLC程序时可以更加高效和灵活地
开发
控制逻辑,提高程序的可读性和可维护性。此外,块的使用也可以提高PLC程序的重用性,减少重复编写相似代码的工作量。
1.3 不同块之间的相互调用关系
OS-> OB -> FB -> FC -> DB
1.4 OB、FC、FB和DB
在PLC(可编程逻辑控制器)编程中,OB、FC、FB和DB是常见的缩写词,分别代表不同的概念和功能:
OB(Organization Block):OB是构造块的意思,在PLC编程中表示一个程序块,用于编写和实验PLC的控制逻辑。OB包括各种范例,如主程序块(OB1)、中断程序块(OBi)、循环程序块(OBx)等,根据其不同的范例和实验规则,在PLC程序中有不同的作用和触发条件。
FC(Function):FC表示函数块,是PLC中的一种可重用程序段,通常用于封装和实现某个特定功能或算法。FC通常有输入和输出,通过参数传递来实现对输入数据的处理,并返回处理结果或更新干系的输出数据。函数块可以在PLC程序中被调用和重复使用。
FB(Function Block):FB表示功能块,也是PLC中的一种可重用程序段。与函数块不同的是,功能块不仅包含输入和输出,还具有内部的数据存储区域,可以通过内部数据交换实现数据处理和逻辑控制。功能块通常使用图形化的可视化编程工具举行编写和调用。
DB(Data Block):DB表示数据块,是PLC中用于存储数据的一种特定数据结构。数据块常用于存储输入、输出数据、控制参数、算法参数等,可以在PLC程序中被访问和修改。通过公道使用数据块,可以实现数据的集中管理和重复使用。
综上所述,OB、FC、FB和DB在PLC编程中分别代表构造块、函数块、功能块和数据块,它们在PLC程序中有不同的作用和功能。工程师们可以根据实际需求,公道选择和使用这些程序块来实现PLC的控制逻辑和数据管理。
1.5 数据块中的数据范例
在西门子PLC编程中,常见的数据范例包括:
位(Bool):用于表示开关状态,取值为0或1。
字节(Byte):用于存储8位二进制数据。
字(Word):用于存储16位二进制数据。
双字(Double Word):用于存储32位二进制数据。
整数(Int):用于存储带符号的16位整数。
长整数(DInt):用于存储带符号的32位整数。
浮点数(Real):用于存储单精度浮点数,通常用于表示实数。
字符串(String):
用于存储文本数据,可以包含多个字符。
定时器(Timer):
用于实现定时功能,可以设置计时、启动和停止定时器。
计数器(Counter):
用于实现计数功能,可以设置计数数值、启动和停止计数器。
用户自定义范例(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)的作用和重要性:
分解复杂程序:
PLC控制程序可能非常复杂,包含大量的逻辑和功能。使用程序块可以
将整个程序分解成小块
,
每个块负责特定的功能或任务
。如许可以降低程序的复杂性,使其更易于编写、调试和维护。
模块化编程:
每个程序块都可以看作
一个独立的模块
,它可以在程序中多次使用。这种模块化的设计能够提高代码的
重用性
,减少重复编写
相似代码的工作量
。
易于调试和故障排除:
当发生问题时,程序块使得定位故障变得更加容易。通过每个程序块的调试和测试,可以快速定位问题并举行故障排除,而不必查抄整个程序。
提高程序可读性:
使用程序块将程序逻辑分别为不同部分,可以提高程序的可读性。每个程序块都有特定的用途和功能,使得代码更易于明确。
灵活的程序控制:
PLC通常需要
根据不同的条件和事件来实验不同的操作
。通过程序块的使用,可以
灵活地控制程序的实验流程,根据需要调用或跳过特定的程序块
。
便于维护和修改:
程序块的使用使得程序的维护和修改变得更加容易。当需要修改程序时,只需修改特定的程序块而无需修改整个程序。如许可以减少对其他部分的影响,并降低引入新错误的风险。
总而言之,程序块(OB)在PLC编程中起到了构造程序、提高可读性、减少重复性工作、便于调试和故障排除等重要作用。
2.3 PLC有哪些程序块
PLC 中的程序块(OB)通常包括以下几种范例:
主程序块(OB1)-- 主程序:主
程序块是 PLC 中最常用的程序块。它负责 PLC 的控制逻辑和功能,包括
输入信号的读取、输出信号的控制、数据处理以及各种控制算法
的实验等。
副程序块(SFB)-- 功能库:
副程序块用于完成各种常用的功能模块化程序,如数学计算、通信协议处理、定时器/计数器等。这些功能模块可以在程序中多次被调用。
中断程序块(OBi)-- 中断处理程序:
中断程序块是在特定事件发生时被触发实验的程序块,比方硬件中断、通信中断等。中断程序块通常用于实时响应特定的事件。
循环程序块(OBx)-- 定时中断程序:
循环程序块是周期性实验的程序块,它可以在特定的时间间隔大概循环次数内被触发实验。
系统程序块(OBD)-- 系统程序:
系统程序块是用于系统特定的功能和操作,比方 PLC 的启动和停止,系统错误处理等。
每个程序块(OB)在 PLC 编程中具有
特定的实验次序和规则
,可以在 PLC 的编程软件中根据需要举行编写和设置。编写程序块时需要遵守特定的编程规范和语法,确保程序的精确性和可靠性。
通过公道使用不同范例的程序块(OB),可以将 PLC 的控制逻辑分解为不同模块,提高程序的可读性、可维护性和可重用性。如许,在编写 PLC 控制程序时可以更加灵活、高效地
开发
和调试控制逻辑。
2.4 如何使用程序块 - OB块的
实验次序和规则
在PLC(可编程逻辑控制器)编程中,使用程序块(OB,Organization Block)需要遵守特定的实验次序和规则。以下是一般环境下使用程序块的实验次序和一些常见的规则:
主程序块(OB1)的实验次序:主程序块(OB1)
是PLC程序中的入口点
,因此
它的实验次序是最高优先级的
。在P
LC系统启动时,OB1会首先实验
。主程序块可以包含
整个PLC程序的焦点逻辑和功能。
副程序块(SFB)的实验次序:
副程序块(SFB)是一种常用的功能模块,可以
重复调用
。SFB通常在主程序块(OB1)的实验过程中
根据需要调用
。副程序块在被调用时会实验相应的功能,然后返回到主程序块继承实验。
中断程序块(OBi)的实验次序:
中断程序块(OBi)是在特定事件发生时被触发实验的程序块。中断事件可以是硬件中断、通信中断等。当中断事件发生时,PLC会中断当前正在实验的程序,转而实验相应的中断程序块(OBi)。
循环程序块(OBx)的实验次序:
循环程序块(OBx)是周期性实验的程序块。OBx的实验时间
间隔可以通过设置举行设置
,比如基于时间触发大概基于循环次数触发。OBx会在设定的时间间隔大概循环次数到达时,
被触发实验
。
系统程序块(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)都是可重用的程序段,但它们之间有一些区别:
输入输出方式不同:FC通常有输入和输出,它的输入和输出是由参数传递来实现的;而FB则具有内部的数据存储区域,可以通过数据存储区域举行内部数据交换,而不像FC需要通过参数举行传递。
编程方式不同:FC使用的是一种基于某种特定编程语言(如Ladder Diagram、Statement List等语言)的情势举行编程,它通常比力得当实现较为简单的算法和控制操作。而FB则通常使用图形化的可视化编程工具,如组态软件、PLCopen Editor等,它们提供了图形化的元件库,可以通过拖拽元件的方式来编写程序。
功能范围不同:FC通常用于针对一种简单的数据范例(如数字、布尔值、定时器等)举行操作和计算,它们通常处理数据对象的方法都很相似;而FB得当建模复杂的系统,可以通过组合一些元件和FB以及一些逻辑操作来实现更加复杂的算法。
内存使用不同:由于FC需要通过参数举行数据传递,因此它需要更多的内存来存储和传输数据,尤其是当数据量较大时;而FB则可以通过内部数据存储区域举行操作,因此可以更加节省内存资源。
场合不同:FC常见于数值计算、逻辑运算等仿真软件以及通用编译器中,并可以很方便地在程序中调用;而FB通常应用于控制系统的搭建、调试等场合,能够快速地实现PLC的控制逻辑。
综上所述,FB和FC在PLC编程中都是功能和模块的可重用部分,它们在输入输出方式、编程方式、功能范围、内存使用以及应用场合等方面存在一些不同。工程师们在选择FB和FC时,应该根据程序需求来公道选择。
2.8 PLC的多线程支持
备注:
循环中断:类似Linux操作系统中的定时中断程序。
硬件中断:类似Linux操作系统中的硬件中断服务器。
IO访问中断:类似Linux操作系统中的内核异常中断服务程序。
三、PLC 结构化逻辑编程
3.1 概述
PLC(可编程逻辑控制器)是一种用于主动化控制和工业生产的装备,编写PLC程序的目的是控制生产流程、实现工业主动化和提高生产效率。在PLC编程中,结构化逻辑编程是一种常见的编程方式,其特点是模块化、分层和可读性强,有助于PLC程序的编写和维护。
PLC结构化逻辑编程包括以下几个方面:
模块化编程:
将整个PLC程序分别为多个逻辑上独立的模块,每个模块又可以进一步分别为多个子模块。每个模块和子模块的功能应该单一、清晰、明确。这种方式有利于程序的模块化管理和代码
开发
的重用。
分层编程:
将PLC程序分为不同的条理结构(如控制层、运行层、监视层等),每条理结构的功能应该独立、清晰、明确。这种方式有利于程序的分层管理、调试和维护。
使用结构化方法:
在PLC编程中,使用结构化方法可以显著提高程序的可读性和可维护性。使用结构化语言(如Ladder Diagram、Statement List、Structured Text等)举行编程,可以使用循环、条件等控制结构,使代码更加紧凑、易于明确、调试、修改。
使用函数块(FB):
Facebook公司
开发
的PLCopen是一种广泛使用的PLC程序编程规范。PLCopen规范中的函数块(FB)是模块化编程的重要组成部分,它们可以提高程序的可读性和可重用性。编写好的函数块可以在多个程序中重复使用,并可以被其他编写PLC程序的工程师调用。
使用数据块(DB):
数据块是用于存储控制参数、运行状态、输入和输出数据等的一种数据结构。在PLC程序中,使用数据块可以实现参数和数据的集中存储管理,也可以实现数据的重复使用。
综上所述,PLC结构化逻辑编程是一种模块化、分层和结构化的编程方式。使用这种方式可以提高程序的可读性和可维护性,并且使程序更易于
开发
、管理和维护。
3.2 程序段与程序块OB
程序块OB和程序段是PLC程序设计中的重要组成部分。
程序段是用于实现详细的功能和逻辑的代码段,
而程序块OB则是用于管理和实验程序段的特别程序段。
通过公道使用程序段和程序块OB,可以实现PLC程序的模块化、结构化和灵活控制。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
金歌
论坛元老
这个人很懒什么都没写!
楼主热帖
iOS 集成WebRTC相关知识点总结 ...
SQL Server 2014完全卸载与SQL Server ...
白鲸开源 DataOps 平台加速数据分析和 ...
iOS直播/游戏怎么利用特殊音效制造娱乐 ...
.NET ORM框架HiSql实战-第一章-集成HiS ...
查漏补缺——路由显示的是http://local ...
【docker专栏6】详解docker容器状态转 ...
贩卖和售前,如何与**商一起“玩耍”? ...
一个工作薄中快速新建多个数据表 ...
缓存穿透,缓存雪崩,缓存击穿 ...
标签云
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
前端开发
Oracle
登录参与点评抽奖加入IT实名职场社区
下次自动登录
忘记密码?点此找回!
登陆
新用户注册
用其它账号登录:
关闭
快速回复
返回顶部
返回列表