线性化编程与结构化编程的不同点

描述

来源:晓煜大发现

嗨~大家马年好呀!今天是马年的开工的第一篇文章。本期我们来讨论一下线性化编程与结构化编程的不同点,及如何选择!本期我们采用PLC的作为讲解,比较直观。不如足之处欢迎大家指出!

编程基本定义对比

线性化编程

线性化编程是将整个用户程序连续放置在一个循环程序块(OB1)中,按顺序执行的编程范式。这种结构与PLC所代替的硬接线继电器控制类似,CPU逐条地处理指令,体现了早期PLC编程的简单性和直观性。说白了就是一条路走到黑,所有功能从上往下写。

它的核心特点主要有:

结构简单:不带分支,一个程序块包含系统的所有指令。

执行方式:CPU循环扫描时不断地依次执行OB1中的全部指令

传统性:与传统的继电器控制逻辑相似,易于电气工程师理解

编程

结构化编程

结构化编程是将过程要求类似或相关的任务归类,形成通用解决方案的编程范式。该程序块编程时采用形式参数,可以通过不同的实际参数调用相同的程序块,体现了现代软件工程的模块化思想。

它的核心特点主要有:

模块化设计:将复杂任务分解成能够反映过程工艺、功能或可反复使用的单独解决的小任务

参数化调用:通过使用参数,可将块设计得十分灵活

代码重用性:块可以根据需要在不同地方以不同参数数据记录进行调用

编程

优势对比

  优点 缺点
线性化编程 结构简单直观:程序结构简单,不带分支,一个程序块包含系统的所有指令
易于理解:与传统继电器控制逻辑类似,CPU逐条处理指令,概念简单
快速实现:对于简单的控制任务,开发速度快,无需复杂的程序组织
CPU效率低下:每个扫描周期都要扫描执行所有指令,即使某些代码在大多数时候并不需要执行
代码重复:相同或类似操作需要重复编写相同程序
维护困难:程序结构不清晰,管理和调试不方便
结构化编程 高代码重用性:通用的数据和代码可以共享,编写通用程序块,提高编程和调试效率
编程结构清晰:适合于复杂的控制任务,结构层次分明
CPU利用率高:只有在需要时才调用相关的程序块,每次循环中不是所有的块都执行
技术门槛高:结构化编程必须对系统功能进行合理地分析、分解和综合,对编程设计人员的要求较高
前期设计复杂:需要进行详细的需求分析和系统设计
学习成本高:需要掌握程序组织单元、参数传递、数据管理等概念

举个例子多电机控制程序编写

 

//线性编程
Network 1: 电动机1控制
LD I0.0 // 启动按钮1
O Q4.0 // 自锁
AN I0.1 // 停止按钮1
= Q4.0 // 电动机1输出
Network 2: 电动机2控制
LD I1.0 // 启动按钮2
O Q4.1 // 自锁
AN I1.1 // 停止按钮2
= Q4.1 // 电动机2输出
代码重复度高,修改一个电机逻辑需要修改多处
//结构化编程


// FC1 - 通用电机控制功能块
FUNCTION_BLOCK FC1
VAR_INPUT
StartButton : BOOL;
StopButton : BOOL;
END_VAR
VAR_OUTPUT
MotorOutput : BOOL;
END_VAR
// OB1主程序调用
CALL FC1(StartButton := I0.0, StopButton := I0.1, MotorOutput => Q4.0)
CALL FC1(StartButton := I1.0, StopButton := I1.1, MotorOutput => Q4.1)
代码重用性高,参数化设计,只需修改FC1,所有调用处自动更新

 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分