自动化项目:用三菱 PLC编程控制机械手!
气动机械手动作示意图,其功能是将工件从 A 处移送到 B 处。气动机械手的升降和左右移行分别使用了双线圈的电磁阀,在某方向的驱动线圈失电时能保持在原位,必须驱动反方向的线圈才能反向运动。
上升、下降对应的电磁阀线圈分别是 YV2 、YV1 ,右行、左行对应的电磁阀线圈分别是 YV3 、YV4。机械手的夹钳使用单线圈电磁阀 YV5 ,线圈通电时夹紧工件,断电时松开工件。
通过设置限位开关 SQ1 、SQ2、SQ3、SQ4 分别对机械手的下降、上升、右行、左行进行限位,而夹钳不带限位开关,它是通过延时 1.7s 来表示夹紧、松开动作的完成的。如下图所示
如图 10-8 所示为机械手的操作面板,机械手能实现手动、回原位、单步、单周期和连续等五种工作方式。手动工作方式时,用各按钮的点动实现相应的动作;回原位工作方式时,按下“回原位”
按钮,则机械手自动返回原位;单步工作方式时,每按一次起动按钮,机械手向前执行一步;选择单周期工作方式时,每按一次起动按钮,机械手只运行一个周期就停下;连续工作方式时,机械手在原位,只要按下起动按钮,机械手就会连续循环动作,直到按下停止按钮,机械手才会最后运行到原位并停下;而在传送工件的过程中,机械手必须升到最高位置才能左右移动,以防止机械手在较低位置运行时碰到其它工件。
2.1 分配输入 /输出点,见表 10-42.2 PLC 接线图,如图 10-9 所示
2.3 程序设计
2.3.1 基本指令编程
机械手系统的程序总体结构如图 10-10 所示,分为公用程序、自动程序、手动程序和回原位程序等四部分。其中自动程序包括单步、单周期和连续运行的程序,因它们的工作顺序相同,所以可将它们合编在一起。 CJ(FNC00)是条件跳转应用指令(详情见项目十二),指针标号 P□ 是其操作数。
该指令用于某种条件下跳过 CJ 指令和指针标号之间的程序,从指针标号处继续执行,以减少程序执行时间。如果选择“手动”工作方式,即 X0 为 ON,X1 为 OFF,则 PLC 执行完公用程序后,将跳过自动程序到 P0 处,由于 X0 动断触点断开,所以直接执行“手动程序”。由于 P1 处的X1 的动断触点闭合,所以又跳过回原位程序到 P2 处。
如果选择“回原位”工作方式,同样只执行公用程序和回原位程序。如果选择“单步”或“连续”方式,则只执行公用程序和自动程序。公用程序如图 10-11 所示,当 Y4 复位(即松紧电磁阀松开)、左限位 X21 和上限位 X17 接通时,辅助继电器 M0 变为 ON,表示机械手在原位。
这时, 如果开始执行用户程序 (M8002 为 ON)、系统处于手动或回原位状态( X0 或 X1 为ON),那么初始步对应的 M10 被置位,为进入单步、单周期、连续工作方式作好准备。
如果 M0 为 OFF, M10 被复位,系统不能进入单步、单周期、连续工作方式。图中的指令ZRST(FNC40)是成批复位的应用指令,当 X0 为 ON 时,对 M11~M18 的辅助继电器复位,以防止系统从自动方式转换到手动方式,再返回自动方式时出现两种不同的活动步。
手动程序如图 10-12 所示, 用 X10~X15 对应机械手的上下左右移行和夹钳松紧的按钮。按下不同的按钮,机械手执行相应的动作。在左、右移行的程序中串联上限位置开关的动合触点是为了避免机械手在较低位置移行时碰撞其它工件。为保证系统安全运行,程序之间还进行了必要的联锁。
如图 10-13 所示为回原位程序, 在系统处于回原位工作状态时, 按下回原位按钮 (X5 为ON),M3 变为 ON,机械手松开和上升,当升到上限位( X17 变为 ON),机械手左行,直到移至左限位( X21 变为 ON)才停止,并且 M3 复位。
自动程序如图 10-14 所示,系统工作为单步方式时, X2 为 ON,其动断触点断开,辅助继电器一般情况下 M2 为 OFF 。X3 、X4 都为 OFF,“单周期”和“连续”工作方式被禁止。假设系统处于初始状态, M10 为 ON,当按下起动按钮 X6 时, M2 变为 ON,使 M11 为 ON,Y0 线圈得电,机械手下降。放开起动按钮后, M2 立即变为 OFF。
当机械手下降到下限位时,与 Y0 线圈串联的 X16 动断触点断开, Y0 线圈失电,机械手停止下降。此时, M11 、X16 均为 ON,其动合触点接通,再按下起动按钮 X6 时, M2 又变为 ON,M12 得电并自保持,机械手进入夹紧状态,同时 M11 也变为OFF。在完成某一步的动作后,必须按一次起动按钮,系统才能进入下一步。
如果选择的是单周期工作方式, 此时 X3 为 ON,X2 的动断触点接通, M2 为 ON,允许转换。
在初始步时按下起动按钮 X6 ,在 M11 电路中,因 M10、X6 、M2 的动合触点和 M12 的动断触点都接通,所以 M11 变为 ON,Y0 也变为 ON,机械手下降。当机械手碰到下限位开关 X16 时停止下降,M12 变为 ON, Y4 也变为 ON,机械手进入夹紧状态,经过 1.7s 后,机械手夹紧工件开始上升。这样,系统就会按工序一步一步向前运行。
当机械手在 M18 步返回原位时, X4 为 OFF,其动合触点断开,此时不是连续工作方式,因此机械手不会连续运行。
系统处于连续方式时, X4 为 ON ,它的动合触点闭合,在初始步时按下起动按钮 X6 ,M1 得电自保持,选择连续工作方式,其它工作过程与单周期方式相同。按下停止按钮 X7 后, M1 变为OFF,但系统不会立即停下,在完成当前的工作周期后,机械手最终停在原位。
2.3.2 基本指令配合步进指令的编程方法
运用步进指令编写机械手顺序控制的程序比用基本指令更容易、更直观。在机械手的控制系统中,手动和回原位工作方式用基本指令很容易实现,这里不重复。只介绍图 10-15 所示的顺序功能图,该图实现了机械手的自动连续运行。图中特殊辅助继电器 M8002 仅在运行开始时接通。S0 为初始状态,对应回原位的程序。
在选定连续工作方式后, X4 为 ON,按下回原位按钮 X5,能保证机械手的初始状态在原位。当机械手在原位时,夹钳松开 Y4 为 OFF,上限位 X17、左限位 X21 都为 ON,这时按下起动按钮 X6,状态由S0 转换到 S20,Y0 线圈得电,机械手下降。
当机械手碰到下限位开关 X16 时, X16 变为 ON,状态由 S20 转换为 S21, Y0 线圈失电,机械手停止下降, Y4被置位, 夹钳开始夹持, 定时器 T0 启动,经过 1.7s 后,定时器的触头接通, 状态由S21 转换为 S22,机械手上升。
系统如此一步一步按顺序运行。当机械手返回到原位时 X21 变为 ON,状态由 S27 转换为 S0,机械手自动进入新的一次运行过程。因此机械手能自动连续运行。
从图 10-15 所示的顺序功能图中可以看出,每一状态继电器都对应机械手的一个工序,只要弄清工序之间的转换条件及转移方向就很容易、很直观的画出顺序功能图。其对应的步进指令梯形图也很容易画出。
2.3.3 基本指令、初始状态指令和步进指令配合的编程方法
初始状态指令顺序控制的程序如图 10-16 所示。图( a)为初始化程序,它保证了机械手必须在原位才能进入自动工作方式。图( b)为手动方式程序,机械手的夹紧、放松及上下左右移行由相应的按钮完成。在图(c)回原位方式程序中, 只需按下回原位按钮即可。
图中除初始状态继电器外,其它状态继电器应使用回零状态继电器 S10~ S19。图( d)为自动方式程序, M8041 和 M8044 都是在初始化程序中设定的,在程序运行中不再改变。
下面是图 10-16 对应的语句表程序
来源:网络,版权归原作者,侵删
分拣设备的编程思路的具体操作方法(内含程序)
哈喽,大家晚上好呀!
上次给大家分享了我们的学员陆冯在智控教育阶段性的学习的分享,广受好好评~今天我们继续带来他的技术分享第二篇。大家一起来学习吧!
常州智控教育成长营——阶段学习分享2
【技术分享】 作者:陆冯
主要内容:
注意:本文是只针对(智控教育新北校区的分拣设备)的技术总结,不针对其它设备。
1.分拣设备的硬件认知
2.分拣设备的编程思路和具体操作方法
3.机构简化、暂停、预停、信号锁存、产品计数、预设产量—等等一招鲜战术的原理
各位同学大家好!
很荣幸用word文档形式来进行技术分享,这也次我首次进行word版本的项目工程讲解,如有错误之处,请各位指正!
(设备总体视图)
首先我们明确一点,我们要做的,是让这个设备安全、正确、高效地运作起来。这是我们的唯一目的!那么为了这个目的去进行PLC编程调试。一个好的电气工程师编写出来的程序,应当具有:安全性、正确性、高效性、移植性和扩展性。
PLC程序其实就是人的意志的延伸,你的思维和意识基本决定了这台设备是个傻瓜,还是聪慧过人,当然,这个世界上不可能有完美的程序.......
1.分拣设备的硬件认知
硬件包括所有机械部分、电气部分,工作原理和工作现象,是你必须要搞清楚的。
(电磁阀视图)
本设备重点要说的,是上图这7个电磁阀,其中有一个备用;那么剩下的6个,其中有4个(蓝色的)是具有弹簧复位功能的单电控电磁阀:
说白了,给电就是气缸伸出,不给电就是气缸缩回,没电弹簧就推回去了,这个很好理解;
但是,有2个(红色的)电磁阀,是没有弹簧复位的双电控电磁阀:
PLC I/O表中 也是使用了 4个输出,才控制住了这 2个电磁阀。
说白了,左边给电一次,就跑左边不回家了,右边给电一次就跑右边不回家了,左右两家哪家给电,往哪家跑。有趣的解释:【它是一个“热爱电的家伙”,且“极度轻浮”,比如:左边电磁线圈只要给一次电,就可以把它骗回来,并且不需要一直给电;但是,如果此时右边来给了电,而此时,恰巧左边又没在给电,那么它就会跑到右边..】
重点:我们的“摆动气缸”和“移动气缸”,就是两个没有弹簧复位的双电控电磁阀!
我们在实际操作中出现了很多不一样的初始状态,摆动气缸和移动气缸分别具有两种位置,从而可以得出,我们所有同学,只可能出现4种初始位置状态(都是正确的):
1.移动气缸取料位(左边)+摆动气缸取料位(左边);
2.移动气缸取料位(左边)+摆动气缸放料位(右边);
3.移动气缸放料位(右边)+摆动气缸取料位(左边);
4.移动气缸放料位(右边)+摆动气缸放料位(右边);
当然,我们的单电控带弹簧复位电磁阀的初始位置也很重要,一般我们认为断电状态下,它所处于的位置为“初始位置”。
那么搞清楚了以上电磁阀的硬件认知,很多人就应当知道自己错在了哪里,被这个搞昏头的不少吧?我当年也被搞过,搞不清楚或者是无法正确控制它的初始位置,所谓的后面的自动运行程序,就是没有一楼的二楼!
除了上面的这个难点,你还要搞清楚,各个传感器分别检测的是哪个执行机构的哪个位置,我们这个项目里其实就是:6个气缸的各自的2个端部磁性开关。
装在任何一个气缸上的2个传感器,必然只可能有1个得电——因为气缸,只存在两个工作位置中的一个,它不可能既在左限位,又在右限位。
那么,到这里,这台分拣设备编程之前所要了解的,已经基本说完了。
2.分拣设备的编程思路和具体操作方法
解决了上面的硬件认知问题,我们在程序编写过程中就胸有成竹了!
下面介绍第一种 编程方式:
启动后自动运行--单流程循环程序--能够启动、停止、复位,三位互锁。
首先,建议大家如果没有多少编程经验,请不要贸然使用FB\FC的形参和实参调用。其实在主程序里面,哪怕3000行程序,只要你实现了功能,就是王道。
我那天下午刚接完线,用时不到10分钟,就完成了:“启动按钮按下一次,搬运并且分拣一个工件”的单周期不循环流程。其实用的就是主程序+PLC I/O变量表,没有任何FC、FB、DB,不需要嵌套、调用、形式参数的间接寻址,可以有效避开很多不必要的,因为对软件不熟悉而产生的错误。
(流程图)
这张流程图,基本阐述了这个设备最基本功能的流程框架 。
注意:以上流程图中的任何一个方框都在步态存储器中有自己独立的数字(就是状态),至少是单独的一步,甚至是多步。提醒各位不要在一个步里面想干太多的事情,简单点,一步就干一件事情,然后检测一下干完没有,如果ok就去下一步,多写几步而已,可以避免好多信号不保持,而带来的离奇错误。
提示:
IF (“First scan”=1) THEN
{
“步态存储器”:=1;
}
END_IF;
IF (“步态存储器”=1) THEN
{
“复位程序”:=1;
IF (“复位完成”=1)THEN
{
“步态存储器”:=2;
}
END_IF;
}
END_IF;
所有运行程序必须被关在,步态存储器的笼子里!!!想换笼子,只能是主令电器/上位机的指令。
流程解析:
上电之后,1200 PLC会在第一个扫描周期内置位Firstscan系统标志位,我们用它来进行系统复位。
复位程序:
关闭所有单电控电磁阀的输出,并且将双电控电磁阀设置在一边有电、一边没电的状态,将设备初始位置设为自己想要的那个位置。
如果已经执行复位程序成功,那么这台设备,6个气缸,都应当拥有的自己的传感器信号输出了,比如升降气缸应当是上升到位,而双电控电磁阀控制的气缸上面,是哪个传感器得电,就得看你选的设备初始位置是什么了。
然后,我们如果满足(所有传感器常开触点串联)这个条件,那么我们将进入复位完成状态,等待启动按钮的启动。
而接下来的自动程序,无非是,顺序控制。你用SET\RST成对配合也好,还是MOVE+比较指令也好,都是一样的。
步态条件满足——去执行什么——执行好了——去下一步。
很容易就能实现程序的单流程循环自动运行。
当然,停止按钮和复位按钮,是怎么分配权限的?我们一般这么干:
1.停止按钮高于一切,任何情况下按下停止,都将进入停止状态;
2.启动按钮按下时,必须在设备复位完成状态,在设备初始位置时,才有效;
3.复位按钮按下时,设备必须处于停止状态,才有效,才会去执行复位程序;
(就算用三个开关量表示设备状态,这事也很简单)
三位互锁——设备3个状态只能存在于1种状态中,遵循以上原则。
上面所描述的这种,单流程循环+三位互锁的运行方式,不涉及大量的标志位调用,不需要什么多深的编程思想和工程经验,甚至不考虑设备运行节拍,完全是巷子里面扛木头,直来直去。
但是这是基础,是每个人必须去走的一关,没有一步登天,没有功德圆满。
启动-保持-停止,6个“字”已经讲完了PLC。可是——何时启动?何时保持?何时停止?如何启动?如何保持?如何停止?这6个“问”,你能回答为:“启动-保持-停止”这6个字吗???
当遇到,某位操作员按着启动按钮不放、手动模式下按启动、设备启动中按复位、复位中按停止或者启动、手动模式下已经改了很多机构的初始位置----再切换为自动,等等等等,你的程序能经受住考验吗?
唯有把程序关进“设备状态的笼子”里面,才有回答上面这些问题的“可能性”!
下面介绍第二种 编程方式:
(流程图)
看到这里,突然发现,多了“选择结构”和“并行结构”。我水平有限,也说不清楚。但是还是尝试着解释一下吧!解释如下:
手/自动切换会自动进入设备复位程序,引起设备自动复位(当然你可以设置为进入停止状态,等人工按下复位按钮,进行复位);这样就确保了手/自动切换,无论哪种进入哪种模式,最开始的那一刻,设备均处于“初始位置状态”,不会因为手动模式下的操作被保留,带回到自动模式下。
也就是保证了,设备会因为“模式切换”,而进行自我归零,不产生累计误差。
至于并行架构,我是这么理解的:
供料部分说:我只负责供料,只要放料位没料了,我就去取料;并且我会告诉分拣部分,我这次抓的是什么料(SET料识别标志位);而且要是我发现没料了,我就不干了,然后大声说:“没料了,人类来给我加料!”(SET缺料标志位,而人加完料,按下启动按钮后,会RST缺料标志位);
运料部分说:我只负责运料,只要供料部分把料送到了(料送到的信息是靠电容传感器),我就去抓取,然后送给分拣部分,但是!我在把料给分拣部分时,我得问他一下,他准备好了没有?如果没有,可不能给他(这里是指检查分拣部分准备完成标志位);
分拣部分说:我只根据供料部分SET的料识别标志位,决定我咋干,如果是金属的,我就把它放在左边,如果不是,就把它放在右边;对了,我还要给运料部分那个兄弟说一声:我已经准备好了(SET分拣部分准备完成标志位);
这很像美国的总统制度,三只狗互相制约。
好了,我想我已经说的很形象了.........
我给我女朋友讲故事,都没这么形象。
3.机构简化、暂停、预停、信号锁存、产品计数、预设产量—等等一招鲜战术的原理
首先给各位普及相关思想,这些玩意儿都是建立在之前的基础上,这些功能,说实话只是“一片叶子”,没有合适的程序架构和遵守相关原则,是做不出来的。我们的树干,必须又粗又壮,这“叶子”才会多,这些吸引人眼球的的“一招鲜”,才能被展现出来。
一个个讲过去吧!
A.机构简化:
双电控电磁阀和单电控电磁阀,在程序中如果比较的话,为了不出错,基本上,双控会比单控多一行程序,因为双电控电磁阀要用两个输出,那么这个时候想办法啊!怎么把它变成和单电控电磁阀一样,一行搞定,还不出错???
FC块不带参调用 就是答案。
把SET/RST配合起来,变成一个块调用,方便、快速、还正确。
B.暂停:
暂停功能,其实就是记住当前设备状态,按下停止之后设备不再动,保持当前位置,再次按下启动,继续去执行未完成的任务。
很简单,做到本文第2点讲的,并且程序中每一个动作都与传感器条件相关联;禁止使用普通线圈,必须只使用SET/RST指令进行顺序控制编程;禁止使用定时器(信号滤波除外);必须使用IO映射,并且分为监视机构和执行机构两种,在暂停按钮按下,暂停标志位启动时,执行机构的IO映射:=NOT(“暂停标志位”)就行了。启动按钮复位暂停标志位就OK了。
C.预停:
停止按钮按下时,置位预停标志位,在自动流程,最后一步时,设置选择结构,是回第一步,还是停止(根据预停标志位决定),如果停止,顺便把预停标志位自己也RST掉,以便于下次使用。
D.信号锁存、产品计数、预设产量
其实,在我们这套设备里面,供料机构分辨的“料识别标志位”,就是信号锁存,因为我检测的时候,我的分拣机构就能迅速完成料的分拣吗?不是,而是等待运料部分把料给搬运过来,典型的“秋后算账程序”,我记住你是“金属的”,还是“塑料的”,然后过了一段时间,才依靠信号锁存下来的“证据”,决定把你放到哪个仓库。
产品计数就不用说了,上面这说的内容后面加个计数器,或者ADD,或者INC指令,操作一个DINT类型的数字就行,这叫“记账本”,但是记住,为了准确,通常用上升沿来做这些加法指令/加法计数器的EN(使能)条件。
预设产量,说白了就是触摸屏设定了一个值,然后把这个值和产品计数的数值比较,当设置的数量到了之后,程序最后一步做一个选择结构,如果数量到了——进入停止程序。
当然除了这些,还有缺料报警、放料完成后按启动继续运行什么的,基本都是这个套路,本人不在赘述。
感谢各位观看,谢谢各位!
相关问答
plc如何做写字程序?
下面是一些编写PLC写字程序的步骤:确定要显示的字母或数字,并将它们转换成PLC可以处理的二进制或BCD码。创建一个字母或数字的模板,并将其上传到PLC中。将...
PLC编程应当如何学起?需要安装什么软件-ZOL问答
PLC编程应当如何学起?需要安装什么软件举报9人讨论1288次围观关注问题写回答讨论回答(9)dsogdcbwyphsPLC不是通用的,分三大主流:西门子,三菱,欧姆龙。...
plc编程就业方向及前景?
PLC编程非常好找工作,就业方向和前景各不相同,分析如下:1.在SIEMENS,三菱等PLC的著名公司做技术支持或销售,如果能力强,在外企混还是很滋润的,待遇也好;...P...
plc主程序和子程序怎么编?
PLC(可编程逻辑控制器)的主程序和子程序是根据具体的编程语言和PLC厂商而定的。以下是一种常见的编程方法,供参考:创建主程序:根据PLC编程软件的要求,创...
plc编程入门教程做什么的?
主要讲解PLC的基本组成,基本编程和网络通讯等主要讲解PLC的基本组成,基本编程和网络通讯等
本人想配置一台电脑学plc编程,请问应配置什么样的电脑?-ZOL问答
3.显卡:显存1G及以上位宽256bit及以上,显存类型为DDR3以上,建议使用NVIDIA品牌显卡(推荐使用solidworks认证的专业显卡:如:NVIDIAQuadro系列、A...
对于一个较为复杂的自动化任务,PLC编程的思路是什么,应该怎样考虑?
根软件设计一样根据需要硬件配置(plc点数,IO余量)程序设计需要先要规划(数据寄存器,中间继电器分配,IO分配),程序结构框架,单元功能实现,整体程序调试...根软...
plc编程谁家的好用?
很高兴回答的问题!就市场占有率来看,西门子最大,其次是三菱、欧姆龙。具体谁家好用,这个不能一概而论,还取决于编程人员对其使用的熟练程度。西门子PLC又...这...
7款plc编程软件介绍?
1、欧姆龙plc编程软件欧姆龙plc编程软件集成了CX-ProgrammerV9.5,能够为欧姆龙PLC编程提供全面的软件支持,本版本为最新版,全面支持32/64位WIN8系统,为多国...
买了一个plc自己不会编程怎么办?
可以从两个方面考虑第一种;直接找会plc编程的师傅来帮你完成你自己想要的程序。第二种;可以自己学习编程语言。根据自己买的这个PLC的型号,安装对应的编程软...