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个循环结束后停止
什么是线性化编程、模块化编程、结构化编程?
今天我们来说一说什么是线性化编程、模块化编程和结构化编程。
线性化编程的程序结构示意图如上图所示,线性化化编程 是将整个用户程序都放在循环组织块OB1中,也就是主程序中,CPU循环扫描时不断地依次执行OB1中的全部指令。线性化编程的特点是结构简单,不带分支,一个程序块包含了系统的所有指令。由于所有的指令都在OB1中,循环扫描工作方式下每个扫描周期都要扫描执行所有的指令,即使某些部分代码在大多数时候并不需要执行,因此,CPU效率低下,没有充分利用。另一方面,如果需要多次执行相同或者类似的操作,需要重复编写相同或类似的程序。再者,由于程序结构不清晰,会造成管理和调试的不方便。建议在编写大型程序时应尽量避免采用线性化编程。
模块化编程的程序结构示意图如上图所示,模块化编程 是将程序根据功能分为不同的逻辑块,在OB1中可以根据条件决定块的调用和执行。模块化编程的特点是控制任务被分成不同的块,易于几个人同时编程,调试也比较方便。由于OB1中根据条件只有在需要时才调用相关的程序块,因此每次循环中不是所有的块都执行,CPU的利用效率得到了提高。模块化编程中,被调用块和调用块之间没有数据交换。
结构化编程的程序结构示意图如上图所示,结构化编程 是将过程要求类似或相关的任务归类,形成通用的解决方案,在相应的程序块中编程,可以在OB1或者其它程序块中调用。该程序块编程时采用形式参数,可以通过不同的实际参数调用相同的程序块。结构化编程中,被调用块和调用块之间有数据交换,需要对数据进行管理。结构化编程必须对系统功能进行合理地分析、分解和综合,对编程设计人员的要求较高。在对西门子S7-1200 CPU编程时,推荐使用结构化编程方法。
以上,我们介绍了西门子S7-1200的几种编程方法,并给大家讲解了什么是线性化编程、模块化编程和结构化编程。想要学习更多西门子PLC编程知识,请持续关注本号内容,我们共同学习提高!
相关问答
CP1H使用2路模拟量输入AD模块,如何在PLC里编程?
首先,你需要的PLC中去设定需要的量程,以及对应的分辨率:1、如果你使用内建的AD输入,那么对应的模拟量输入地址就是:200CH~203CH例如如果使用AD0的话,对...
PLC程序结构怎么搭建,自动流程图怎么才能构思缜密没漏洞?
原图文请查看我头条号文章结合项目的实际情况,选用合适的程序设计结构,注意编程常用技巧,可以事半功倍。题图:西门子S7-1200PLC来源:EVERYPIXELPLC...过...
西门子plc如何学习?需要什么plc编程软件?
需要学习PLC首先需要知道PLC编程的方式:线性编程、模块化编程、结构化编程。对于西门子PLC,以结构化编程为主,但可以使用线性编程和模块化编程,对于结构化编...
如何用三菱PLC控制电气比例阀输出多段线性压力曲线?
是用于控制实现多段速运行的。如果用这个来控制压力输出。你只能设定恒定值。而PID设定可以有一个反馈渠道,你预先设置最大压力。列如最大压力值是5,变频器范...
在PLC中使用数学问题有哪些?
在PLC(可编程逻辑控制器)中使用数学问题主要涉及以下几个方面:算术运算:PLC可用于执行基本的算术运算,如加法、减法、乘法和除法。这些运算可用于各种应用,...
高数难还是编程难?
感谢邀请!过来人,经验性的分享,请参考。我是一名工科生,学了很多数学,大学课程包括,高等数学,线性代数,概率论与数理统计,数学建模。研究生的数学课程...当...
plc模拟量液位百分比怎么编程?
第二种用模拟量一个测量位测量位跟随水平面走,有点类似电子尺之类的要有明显的线性关系。根据总长与两个极限限位的电压值或者电流值计算出测量位与电压或者电...
plc电压不稳的原因及处理方法?
1.电源电压不稳定。一般都采用了线性或开关稳压器,但是要考虑系统满载工作的时候电源供应是否充足,否则电源功率不够,也会造成电压过低,导致控制器死机或程...
PLC发多少脉冲给伺服电机转一圈,脉冲频率该怎么算?
要确定PLC发多少脉冲给伺服电机转一圈,需要知道伺服电机的编码器分辨率,也就是每转多少个脉冲。然后,计算出整个系统需要的脉冲数,即脉冲频率。假设伺服电机...
plc怎么连接和控制伺服电机-184****9185的回答-懂得
通过专用的数据线,可以将plc和控制伺服电机有机的联系起来,构成一套比较完整的自动化控制系统,其连接顺序如图所示:伺服驱动器的响应速度,转矩模式...