资深工程师分享:PLC程序设计思路,初学者福利
前几天有个学员咨询一个程序设计的问题,程序的控制要求如下:需要控制5台电机的运行,每台电机运行时需要记录运行时间,电机启动运行时,根据记录的运行时间,从小到大,每个2s依次启动电机的运行。
我想对于这个程序的控制要求来讲,他的难点在于如何对这些电机运行时间进行排列,排列好了后,如何根据排列的顺序去起动电机的运行,从这个控制要求中我们可以看出,这主要是分为两个部分来完成这个程序的设计的:
第一部分:用于对电机的运行时间进行从小到大顺序的排列;
第二部分:根据排列好的数据,如何判断需要起动那一台电机。
这里我们以西门子S7-200SMART系列PLC为例,先说说,如何编写一个数据排列的带参数的子程序。
数据排列带参数子程序设计思路:
西门子S7-200系列的PLC中不像三菱的FX系列PLC具有数据排列的指令,因此我们要实现这个数据的排列功能,必须自己去搭建一个这样的功能块,在搭建这个功能块的时候,会使用到间接寻址和循环指令,同时还需要应用到带参数的子程序。那么如何编写一个数据排列的子程序呢?
假设有5个数据需要把他们的数据的大小按照顺序从小到大排列,那么我们可以先在这五个数中找到最大的数放在最后面。然后在剩下的四个数中找到最大的数放到倒数第二个的位置,接着在剩下的三个数中找到最大的值放到倒数第三的位置,依次下去,这样当全部比较完后,我们的数据就按照从小到大的顺序排列好了。那么很明显,我们需要用两个循环指令进行嵌套。外层的循环指令需要循环4次,而内层的循环指令的循环次数是会变化的,因为第一次从5个数据中找出最大值,循环4次,第二次的时候从4个数据中找出最大值,循环3次,依次下去,每次需要改变循环的次数。
如何找出最大值呢? 我们可以进行比较,首先用第二个数跟第一个数比较,如果第二个数比第一个数大,那么指针往下移动变成第二个数跟第三个数比较,如果第二个数比第三个数大,那么对第二个数和第三个数进行交换,依次下去,当比较完成后,最大的数就放到最后的地址里面去了。
程序设计:
(1)建立变量表
(2)根据变量表,编写数据排列子程序
第二部分的内容: 根据排列好的数据,如何判断需要起动那一台电机。
在启动电机时,我们需要把每一台电机运行的时间拿过来与排列好的数据进行比较,看看他是位于我们这个排列好的数据中的的什么位置。然后根据这个位置来判断启动的时候。
设计思路:
在这里面我们会用到两个功能,第一个功能时把我们电机运行的时间,按照编号顺序放到表格中,例如VW20到VW28分别表示电机1到电机5的运行时间,把它放到表格中,而后把我们排列好的数据,拿过来与表格中的数据进行比较(可以使用查表指令),看看最小的值时位于表格中的哪个位置,根据查表指令所查找的位置来启动那条电机,比如查找出来的值时3则表示的就是第三台电机的运行时间最少,可以启动这第三台电机,这里我们需要用到表格指令及间接寻址。
程序:
总结
本程序作为一个框架程序,主要应用到了以下几个内容,间接寻址的应用,循环指令的应用,带参数子程序的应用,查表指令的使用,希望读者看完后,对自己以后设计程序时思路会有所启发,若有考虑不周之处或更好的方法,望指出,谢谢。
本文为技成曾鑫老师原创作品,未经同意转载必究
↓↓↓下载可免费观看西门子系列课程
PLC编程很难吗?其实用对方法,就很容易!附5大PLC编程技术方法
根据下图的三相交流电动机正反转控制的主电路,设计一个PLC控制电动机正停反的控制系统。控制要求如下:
(1)正常情况下,按启动按钮SB1,电机正转,按下反转启动按钮SB2,电机反转。
(2)电机启动后,按下停止按钮SB3并等待5秒钟之后,才可以改变电动机的旋转方向;
(3)如果SB1和SB2同时按下,电动机停止转动,并且不起动,同时报警灯L1亮1秒暗1秒不断闪烁。此时按SB3停止按钮进行复位。
首先我们先确定一下按钮、KM的使用辅助触点情况,这里是正反转的主回路,主回路必须有互锁电路,其他的按钮用常开触点。
下面是PLC的输入输出点表:
根据题意(1) 编程:这里根据题意1,只需2个自保持电路即可。
题意(2) 要求按停止按钮5秒后才能改变电机方向,所以这里需设置一个标志位,这里用M0.0。
并且加上程序互锁电路,具体如下:
首先在2个自保持回路中加入互锁电路——网络1的Q0.1常闭点和网络2的Q0.0常闭点。题意2说按下停止按钮后5秒,才能按启动按钮,所以网络3按下I0.2停止按钮后,M0.0得电自保持,计时器T37计时5s后,将M0.0的自保持回路停掉。并且在网络1和网络2中加M0.0的常闭点,使M0.0得电时网络1和网络2即使按了正转按钮或者反转按钮也不会使Q0.0或Q0.1得电。
题意(3) 要求SB1和SB2同时按下,电动机停止转动,并且不起动,同时报警灯L1亮1秒暗1秒不断闪烁。编程如下:
这次增加了网络4/5/6,网络5和6就是利用2个计时器产生一个一秒脉冲的小程序,SM0.0为特殊位,其功能为一直得电。网络4就是利用M0.1将网络1/2/3锁死,也就是说M0.1得电网络1.2.3是不起作用的。其原理与上一小结的M0.0一样。
以上就是这个实例的全部编程。
正所谓万丈高楼平地起,如果你叫小编一口气编出来,小编也是很为难的。但是,将题意一点点拆分,一点点地把所需的功能写入,最后一定可以合你心意。最后你看看编完的程序与最初的程序差了多少?
接下来,小编给大家介绍5种PLC编程方法:经验法、解析法、图解法、技巧法及计算机辅助设计法。
(1)经验法 :
运用已掌握的成功设计经验,结合实际的情况,选择与实际情况类似的一个或若干个成功的程序,或具有一些典型功能的标准程序作为“样机”,对“样机”逐一修改,直至满足新的任务要求。在工作过程中,应多收集与积累这些“样机”,从而不断丰富自己的经验。
(2)解析法 :
PLC用于逻辑控制的编程方法可根据组合逻辑或时序逻辑的理论,并运用相应的解析方法,对其进行逻辑关系的求解。然后,再根据求解的结果,或画成梯形图,或直接编写指令表。解析法比较严密,可以运用一定的标准,使程序优化与算法化,并可避免编程的盲目性,是一种比较有效的方法。
(3)图解法:
图解法是靠画图进行PLC程序设计。
常见的主要有3种方法:梯形图法、波形图法以及流程图法。
梯形图法是最基本的方法。无论是经验法,还是解析法,若用梯形图编写PLC程序,就要用到梯形图法。
波形图法很适合于时序控制电路。它先把对应信号的波形画出,再根据时间用逻辑关系去组合,就可以很容易地把电路设计出来。
流程图法是用框图来表示PLC程序的执行过程及输入条件与输出间的关系。在步进控制中,用它进行设计是很方便的。
(4)技巧法
技巧法是在经验法及解析法的基础上,运用技巧进行编程,以提高进行编程的质量。巧妙地使用PLC所提供的多种功能指令进行编程,是对已有经验的“升华”,做到熟能生巧,实现创造性的编程。
(5)计算机辅助设计
PLC可通过上位连接单元与微型计算机连接,并运用微型机进行联机辅助编程。计算机辅助编程,应有相应的软件做支持。现有的编程软件可把梯形图翻译成指令表。编程时,可先在计算机屏幕上设计梯形图,然后再将该梯形图转换成对应的指令表。这种编程软件有现成的,例如,日本三菱公司的MEDOC和GPP等
总结以上5种编程方法是不能截然分开的。如经验法、解析法、技巧法都要用到图解法,而技巧法又是经验法的升华。
转发是最大的鼓励!谢谢您的支持!
小贴士
PLC专属资料: 含有从入门到高级所有PLC学习资料(三菱/西门子/欧姆龙) ,电气经典18本大全书,历年电气考试真题、电气必备实训仿真软件、电气自动化行业各类型技术手册!
相关问答
plc编程是什么专业的主要课程_精选答案-醉学网
[最佳回答]是电气设计及自动化专业的主要课程。可编程逻辑控制器,它使用一类可编程存储器进行内部存储程序,执行逻辑运算、顺序控制、计时、计数和算术运算以...
本人想配置一台电脑学plc编程,请问应配置什么样的电脑?-ZOL问答
屏幕方面需求必须自己确定,设计需求肯定对高色域有要求的,甚至需要进行校色的。校色后按说生成个小软件,让机器开*后运*。按说:正常下确定好处理器的档次。...
PLC程序设计步骤及方法有哪些?
参见网页链接参见网页链接
急求学长学姐告知PLC程序的调试方法及步骤?申请方
1、检查接线、核对地址。要逐点进行,要确保正确无误。可不带电核对,那就是查线,较麻烦。也可带电查,加上信号后,看电控系统的动作情况是否符合设计...
plc五种编程语言?
plc编程语言如下1、梯形图语言(LD)梯形图语言是PLC程序设计中最常用的编程语言。它是与继电器线路类似的一种编程语言。由于电气设计人员对继电器控制较为熟...
plc程序编写步骤及技巧?
方法/步骤1/4第一步:打开GXWorks2软件,新建程序,选择你的PLC型号,然后请选择程序语言为SFC,点击确定,跳出块信息设置。标题不填写,块类型选择梯形图块...
plc编程学什么专业好?
电气工程及其自动化专业的主要课程。电气工程及其自动化专业主要课程:电路原理,电力系统自动化,电力系统继电保护,模拟电子技术基础,数字电子技术基础,电...
学习PLC编程需要什么样配置的笔记本。-ZOL问答
各PLC厂家一般都有专用的通讯电缆,而且彼此不兼容,像西门子就走的MPI电缆,有串口版本和USB版本,去西门子中国可以查到产品订货号订购。至于变频器各厂家支持总...
plc编程电脑推荐?
常用编程软件的话,配置参数上不能太差,电脑配置需求参考如下:1.操作系统:windows7(建议使用64位)2.内存:最少2GB(推荐4GB及以上)3.显...常用编程软件的...
大学毕业3年电气工程师,plc程序电气图设计选..._电气工程师...
,工作压力大,但是也有很多机会和挑战,需要不断学习和提升自己的技能和知识。建议多参加行业相关的培训和会议,积累经验和人脉,同时也可以考虑进修硕...