研选课堂
HOME
研选课堂
正文内容
plc怎样简化编程 PLC编程小知识:相同功能带定时器的PLC程序怎么简化?
发布时间 : 2024-10-11
作者 : 小编
访问数量 : 23
扫码分享至微信

PLC编程小知识:相同功能带定时器的PLC程序怎么简化?

有时做梯形图会遇上几十个类似程序往下运行,它们都有各自独立的I,Q,T。如果逐条把程序写下去,工作量会非常大,那么我们应该如何简化相同功能带定时器的PLC程序呢?

简化方法

我们以西门子1200为例,使用FB功能块和多重背景功能块,并对定时器使用多重背景数据块进行简化(如果有人能做成循环的,就更加完美了)。

第一步

建立”电磁阀控制”功能块FB1,设定INPUT/OUTPUT变量接口参数,在静态变量中设定定时器参数TOF,类型为IEC_TIMER,写入控制程序。

插入TOF定时器时,需设置背景数据块为多重背景数据块,接口名称为之前设定的TOF。

第二步

再建一个”多重背景数据”功能块FB2,在静态变量设定要使用到的多个设备参数“电磁阀1”“电磁阀2”“电磁阀3”……数据类型为“电磁阀控制FB1”。

第三步

将FB1功能块拖入到程序中,使用几个设备(近似重复的程序段)就用几个FB1,分别设定为使用多重背景,接口类型分别选择“电磁阀1”“电磁阀2”“电磁阀3”……并输入实参。

结果如下:

第四步

在OB1中调用FB2,将FB2拖入主程序中,建立FB2背景数据块FB2_DB后保存。这样就完成了。

方法优点

1.程序做成了功能块,修改起来极为方便,只需改修单个功能块就行,不必逐条修改成百上千条类似的语句。当子程序较长时,优势更加明显;

2.排列整齐,输入输出接口清晰,也便于接口数据的输入、检查和修正;

3.避免无数条重复程序部分写错;

4.对于1200、1500而言,定时器使用多重背景数据块可以节约数据块的数量,避免使用过多的DB块,解放内存。

使用状态机方式简化PLC程序的编写

在PLC程序的编写过程中,可以使用状态机的控制思路,将一些复杂的控制过程使用状态机的方法处理。这里简单给大家介绍一下什么是状态机?如下图所示,为一个状态机的状态图。

从以上图中可以看到,其是将动作执行的各个状态进行了一个划分、规划。动作程序的执行就是使程序在不同的条件下进行各个状态之间的转换。

以上这些都比较抽象,初次接触的话不是特别能让人理解,接下来我们看一下一个程序功能如何拆分为状态机的单个状态。

如何拆分设计状态机的状态

状态的选择

一般将程序执行过程中,会存在停留、保持、等待等过程。在设计状态的时候,就可以将状态的最小单位设计为这些过程。例如,1、控制气缸伸出/收回,这就可以选做状态机的一个状态;2、设备停止,等待接收命令,这也应该是一个状态;3、启动电机运行,电机运行到停止这也应该是一个状态;

总的来说,在选择状态的时候,状态在程序的时序结构上,在时间单位上应该是一个“保持”的状态。

状态之间的转换

状态转换一定是要某种条件的。即状态在处于保持的过程中,检测到条件满足,就进行状态间的转换。例如,气缸伸出/收回这个状态,在气缸动作的过程中,其缸动作到位传感器检测到到位信号,则程序就应该转换到下一个状态。下一个状态可以是另一个气缸的动作、也可以是等待延时、还可以是其他设备流程上的步骤。

状态机实现流程控制方法

举例1

这里以机械手物料取放机构为例给大家分享。这个是我以前给大家分享的一篇文章PLC编程示例-机械手物料取放。在这篇文章中,我以类似于“流水线”的方式给大家分享如何处理这类流程控制逻辑。

这种方式简单方便,编写程序的时候就依照动作的流程顺序执行下去就可以。但是如果设备的动作比较复杂,就可能会将这个“流水线”设计得非常得长。这当然不是一个优质的程序结构。但是如果使用状态机的方式来处理,就可以将程序简化许多。且程序的代码质量也会提高不少。

举例2

串口自定义协议实现过程。在处理串口通信的过程中,在进行数据传输的过程中一般都会有几个动作,如串口状态查询、串口空闲查询、数据发送、数据接收、异常检测、异常处理。

同样的,将串口通信的过程均使用状态机的方式来进行处理,可以极大的简化程序的结构。尤其在通信过程为动态变化的情况下,如某一时刻,仅需要数据发送流程;某一时刻,仅需要数据接收;某一时间既要发送又要接收;在处理此类流程复杂的过程时,选用状态机的方式可以灵活的适用在各种变化的通信过程。

(转载请注明来源函控自动化工程师头条号)

相关问答

plc程序化简的口诀是?

在PLC(可编程逻辑控制器)编程中,有一个常用的简化程序的原则,可以用以下的"口诀"来概括:KISS原则:保持简单,愚蠢可行(KeepItSimple,Stupid)这个...

1500plc怎么样编程比较节省程序资源?

编程时可以采用一些技巧来节省程序资源。首先,优化算法和数据结构选择,使用高效的算法和数据结构可以减少程序的执行时间和空间复杂度。其次,合理使用变量和...

在单位做设备维修,很多设备上有PLC,想在PLC上多下点功夫,怎么做?

我是矿山电气小东,分享电气知识。看到这个问题时,第一时间就想到了我自己在十几年前,初次接触PLC的场景我与PLC初相识那还是在2007年的一天,我们矿的一斜...1...

PLC编程才开始怎样入门提高?

随着科技的进步,社会的发展,PLC取代了传统的继电器控制盘,在工业自动控制系统担起了重要的角色,应用日益广泛。如何提高PLC编程能力,适应社会的发展需要,是PLC技...

plc编程循环问题怎么整?

在PLC编程中,处理循环问题需要注意以下几点:确定循环条件:使用比较指令或逻辑指令对循环条件进行判断,根据判断结果决定是否继续循环。比如,可以使用比较指...

plc不同品牌设备的编程区别?

不同厂家PLC的编程语言一般不一样的。主流的有西门子和三菱。不同厂家,不同型号的PLC的编程语言只能适应自己的产品。IEC中的PLC编程语言标准中有五种编程语...

PLC编程语言有哪三个?

1、PLC有五种标准化编程语言顺序功能图(SFC)、梯形图(LD)、功能模块图(FBD)三种图形化语言和语句表(IL)、结构文本(ST)两种文本语言,最常用的两种编程...1、P...

plc1500使用方法?

所有模块采用统一的前连接器,集成式电压跳线可形成灵活的电压组,简化了库存。由于S7-1500安装导轨中集成了标准安装导轨,可方便地安装自动熔断器、继电器等附...

plc程序设计语言?

它是一种类似于高级语言的程序设计语言。在大中型的可编程序控制器系统中,常采用结构化语句描述程序设计语言来描述控制系统中各个变量的关系。它也被用于集散...

三菱PLC编程软件安装不了?

三菱PLC编程软件的安装步骤如下:1、鼠标右键点击下载好的三菱PLC安装包,把安装包解压到指定文件夹。2、解压压缩包之后,会有一个文件夹出现,打开文件夹,找...

 奥莱姆贝  刘宝咏琴 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部