什么是线性化编程、模块化编程、结构化编程?
今天我们来说一说什么是线性化编程、模块化编程和结构化编程。
线性化编程的程序结构示意图如上图所示,线性化化编程 是将整个用户程序都放在循环组织块OB1中,也就是主程序中,CPU循环扫描时不断地依次执行OB1中的全部指令。线性化编程的特点是结构简单,不带分支,一个程序块包含了系统的所有指令。由于所有的指令都在OB1中,循环扫描工作方式下每个扫描周期都要扫描执行所有的指令,即使某些部分代码在大多数时候并不需要执行,因此,CPU效率低下,没有充分利用。另一方面,如果需要多次执行相同或者类似的操作,需要重复编写相同或类似的程序。再者,由于程序结构不清晰,会造成管理和调试的不方便。建议在编写大型程序时应尽量避免采用线性化编程。
模块化编程的程序结构示意图如上图所示,模块化编程 是将程序根据功能分为不同的逻辑块,在OB1中可以根据条件决定块的调用和执行。模块化编程的特点是控制任务被分成不同的块,易于几个人同时编程,调试也比较方便。由于OB1中根据条件只有在需要时才调用相关的程序块,因此每次循环中不是所有的块都执行,CPU的利用效率得到了提高。模块化编程中,被调用块和调用块之间没有数据交换。
结构化编程的程序结构示意图如上图所示,结构化编程 是将过程要求类似或相关的任务归类,形成通用的解决方案,在相应的程序块中编程,可以在OB1或者其它程序块中调用。该程序块编程时采用形式参数,可以通过不同的实际参数调用相同的程序块。结构化编程中,被调用块和调用块之间有数据交换,需要对数据进行管理。结构化编程必须对系统功能进行合理地分析、分解和综合,对编程设计人员的要求较高。在对西门子S7-1200 CPU编程时,推荐使用结构化编程方法。
以上,我们介绍了西门子S7-1200的几种编程方法,并给大家讲解了什么是线性化编程、模块化编程和结构化编程。想要学习更多西门子PLC编程知识,请持续关注本号内容,我们共同学习提高!
PLC编程方法概述及线性化编程,再不学习就晚了
用户程序结构
线性程序(线性编程)
所谓线性程序结构,就是将整个用户程序连续放置在一个循环程序块(OB1)中块中的程序按顺序执行,CPU通过反复执行OB1来实现自动化控制任务。这种结构和PLC所代替的硬接线继电器控制类似,CPU逐条地处理指令。事实上所有的程序都可以用线性结构实现,不过,线性结构一般适用于相对简单的程序编写。
分部式程序(分部编程、分块编程)
所谓分部程序,就是将整个程序按任务分成若干个部分,并分别放置在不同的功能(FC)、功能块(FB)及组织块中,在一个块中可以进一步分解成段。在组织块OB1中包含按顺序调用其他块的指令,并控制程序执行。 在分部程序中,既无数据交换,也不存在重复利用的程序代码。功能(FC)和功能块(FB)不传递也不接收参数,分部程序结构的编程效率比线性程序有所提高,程序测试也较方便,对程序员的要求也不太高。对不太复杂的控制程序可考虑采用这种程序结构。
结构化程序(结构化编程或模块化编程 )
所谓结构化程序,就是处理复杂自动化控制任务的过程中,为了使任务更易于控制,常把过程要求类似或相关的功能进行分类,分割为可用于几个任务的通用解决方案的小任务,这些小任务以相应的程序段表示,称为块(FC或FB)。OB1通过调用这些程序块来完成整个自动化控制任务。
结构化程序的特点是每个块(FC或FB)在OB1中可能会被多次调用,以完成具有相同过程工艺要求的不同控制对象。这种结构可简化程序设计过程、减小代码长度、提高编程效率,比较适合于较复杂自动化控制任务的设计。
利用Shift移位指令的线性化编程方法
梯形图指令
EN:Enable 允许输入,使能输入
IN:待移位的原数据
N:要移位的位数
ENO:Enable Out,使能输出
OUT:移位操作的结果
指令使用注意
1、IN、OUT数据类型要与移位指令名称中的类型一致才可移位
2、N的表示方法
可用BCD码表示:C#x 范围0~15
可用16进制数表示:W#16#X 范围:W#16#1~W#16#FFFF
可用存储单元来表示:MWx
3、明确存储器中数据的存放格式
多气缸的应用A+A-B+C+C-B-A+A-
气动回路
1)实现A+A-B+C+C-B-A+A-
2)手动方式下,按下start,按顺序执行
3)自动方式下,按下start,循环执行上述动作10次且循环间隔2s
4)自动方式下,按下pause,工步停止,按下start,当前工步继续 进行,按下stop,1个循环结束后停止
相关问答
plc线性编程的含义?
所谓线性程序结构,就是将整个用户程序连续放置在一个循环程序块(OB1)中块中的程序按顺序执行,CPU通过反复执行OB1来实现自动化控制任务。这种结构和PLC所代...
PLC程序结构怎么搭建,自动流程图怎么才能构思缜密没漏洞?
原图文请查看我头条号文章结合项目的实际情况,选用合适的程序设计结构,注意编程常用技巧,可以事半功倍。题图:西门子S7-1200PLC来源:EVERYPIXELPLC...下...
plc编程过程控制算法?
在PLC编程中,过程控制算法是用来实现对工业过程的控制和调节的一种方法。下面是一般的PLC编程过程控制算法的步骤:确定控制目标:首先需要明确要控制的过程和...
CP1H使用2路模拟量输入AD模块,如何在PLC里编程?
首先,你需要的PLC中去设定需要的量程,以及对应的分辨率:1、如果你使用内建的AD输入,那么对应的模拟量输入地址就是:200CH~203CH例如如果使用AD0的话,对...
plcai块是什么意思?
PLC(ProgrammableLogicController)是一种可编程逻辑控制器,常用于工业自动化控制系统中。AI块是PLC中的一种功能块,用于实现模拟量输入信号的采集和处理。...
学好PLC有什么用?
其实就业环境是不错的。经常有人问到:“学会PLC可以找什么工作?”其实学会了这门技术活工作真的不用愁!下面来分享下我的浅见:1.机械设计,产品设计,就是...
哪个品牌的plc(可编程逻辑控制器)比较好用?
2、第二西门子的是欧系的编程逻辑和思维,众所周知,欧系是以它的专业性、严谨性、规范性见长,而西门子是欧系品牌的领先者,所以成熟、专业、权威的技术和逻辑...
Plc扩展模块中AD模块的功能是?
AD模块就模拟量输入模块,作用就是把外部输入的电流,电压,热电阻,热电偶等信号接进模拟量输入模块,模拟量模块负责把这些信号转换成数字信号,不同的模块转换...
在PLC中使用数学问题有哪些?
在PLC(可编程逻辑控制器)中使用数学问题主要涉及以下几个方面:算术运算:PLC可用于执行基本的算术运算,如加法、减法、乘法和除法。这些运算可用于各种应用,...
PLC可编程控制器软件
[最佳回答]PLC可编程控制器软件:在工业生产过程中,大量的开关量顺序控制,它按照逻辑条件进行顺序动作,并按照逻辑关系进行连锁保护动作的控制,及大量离散量的...