登录
首页
PLC论坛
三菱Mitsubishi
回帖
发帖
正文
主题:我做关于PLC控制生产线小车的毕业设计,一个难点,想请教各位大师指导一下
点击:2195 回复:45
楼主
编辑
引用
管理
285471548
题目要求是生产线共有4个工位和一个初始车位,有自动手动两种模式。在手动模式下,操作台上或在相应工位处按下该工位对应的按钮,小车即执行该工位的送货任务(送货包括出发自动卸货和返回初始位,这部分已搞定)。当有多个工位按钮被按下时,应执行第一个按按钮工位上的工序,并按按钮的次序贮存其它工位信号,待执行当前工位的工序后,按次序执行贮存信号的工序,并通过灯显示按按钮的次数。。。
现在的问题就是如何实现依次按呼叫顺序执行驻存的呼叫信号,并入和通过灯显示按钮次序?
请各位指点下,打算使用三菱PX2N的PLC。。谢谢
新来的没有分给大家了,谢谢
最后修改:
2013/5/19 15:32:51
13-05-19 15:28
1楼
编辑
引用
管理
285471548
请各位来帮帮我
13-05-20 13:54
2楼
编辑
引用
管理
w71412659
我有个想法,好不好用你自己看着办吧。
1,定义一个数组,保存你的操作顺序。你总共4个工位,可以考虑把数组稍微定义的长一点。意思是这样的,设你的四个工位按钮是K1、K2、K3、K4,里面分别保存1、2、3、4,每当你按下一个按钮的时候,就把按钮中的数据保存到数组的最后一位,假设你按K1、K2、K3、K4的顺序按下了4个按钮,这时数组里边的元素应该分别是1、2、3、4。
2,执行操作。每一次都调用第一个数组元素,在最后一步把刚才调用那个数组元素删掉。例如刚才存入了1、2、3、4,现在1执行完了,就把1删掉,数组中还剩下2、3、4,循环,继续调用第一个数组元素,这时候已经是2了。
3,记得调用执行程序的时候要先查看一下数组当中还有没有元素,如果没有就啥也不干接着等命令。
这些只是我的设想,也许不是很完善,你自己看着办。三菱的PLC我没用过。还有一些问题你要留意一下,例如说:
我把K1按下后,是不是要锁存按钮1的状态?就是说我在1工位执行完以前是不是禁止K1的动作,这个时候就算按下K1也不会对我的程序造成任何影响,然后在我工序1执行完毕以后再允许K1动作?
13-05-20 16:29
3楼
编辑
引用
管理
285471548
您好,谢谢的您的帮助,您前面说的那个好像是三菱有个叫做先入先出读和写的程序。。把输入存入数据寄存器再依次读出。。那比如说3先按了,我定义3号为数字3,那后面小车运行要怎么识别这个数字,这方面学的有点少。
13-05-20 17:16
4楼
编辑
引用
管理
jtfuping
引用
285471548
在 2013/5/20 17:16:10 发言
【内容省略】
比较啊,用工位存入数字的寄存器与按钮的数字比较啊。比如:比按钮数字小正转,比按钮数字大则反转
13-05-20 19:10
5楼
编辑
引用
管理
285471548
哦。。快要理顺了,那怎么样能给1号工位定义使其按钮按下,就能向寄存器输入1,2号输2呢?
13-05-20 19:20
6楼
编辑
引用
管理
jtfuping
你那主题我没仔细看,有图就好了。
比如。工位到达是用行程开关或接近开关的。他们对应的输入点是x1,x2,x3,x4。按钮对应的是X0,X5,X6,X7。
那么X1动作的话就:
X1
---II-----------[mov k1 D400]
那么X2动作的话就:
X2
---II-----------[mov k2 D400]
然后用按钮与D400比较:
X5
----II----[= k2 d400]-----[set y001]
或者
X5
----II-------[mov K2 D500]
然后用触点比较指令大于等于小于或cmp,zcp把D400与D500比较。具体看你怎么用。以上只是粗略举个例子。
最后修改:
2013/5/20 19:48:17
13-05-20 19:37
7楼
编辑
引用
管理
w71412659
楼上正解,我懒得写指令,在某扫描周期如果发现某按钮按下,就用MOV指令把对应的数据到寄存器,例如说寄存器是D400,K1对应的数据是1,代码就应该类似于 MOV 1 D400 。再把D400的数据添加到数组尾部,最好再清零D400,因为你下一次按下的时候要用到。你说的“先进先出”一般是指堆栈,PLC编程一般不会用到堆栈,但是在linux里面就一定要搞清楚堆栈的用法了。
13-05-21 08:48
8楼
编辑
引用
管理
285471548
http://fmn.rrimg.com/fmn062/20130521/1730/original_HFx0_4cf600003b2a1191.jpg
过程图是这个。。
老师您好!
第一个问题,比如2号工位首先按了呼叫,MOV K2 D402,然后3也按了呼叫,MOV K3 D403,那这样没个工位呼叫按钮都移入固定数据,怎么让他如您所说的按顺序依次存入数组的最后一位呢?需要什么指令?读出的时候要怎么做?
第二个问题,我有个大体构思,各工位按呼叫按钮,并存入数据,假如存3214进入数组,在读出数组(3214),然后按照这个数组顺序依次接通使小车工作。小车要每次返回初始工位后(有限位开关)再读出数组中第一个数并执行,执行完毕前要锁存这个呼叫信号,执行完毕后清除对应的呼叫信号。使用CMP信号来判断读出数据,确定如何动作,4个工位这里我应该是得用2次CMP吧。我这个小车呼叫只需要电机正转,他从初始位到呼叫位后经过卸货动作后会自己回到初始位。
请老师知道下,谢谢
最后修改:
2013/5/21 18:37:58
13-05-21 18:30
9楼
编辑
引用
管理
285471548
您好,老师,我把过程图发上来了,您也看一下给我指导下吧。谢谢。。
13-05-21 18:32
上一页
下一页
工控新闻
机器视觉在机器人行业的应用(下)
中扬立库与西门子深化技术协同 共绘智能仓储创新蓝图
连接未来可持续铁路交通,浩亭与阿尔斯通的合作之道
和利时与华锦能源达成榆树绿色甲醇项目前期合作协议
业内首款采用DO-214AB封装、额定浪涌电流为2kA的保护晶闸管
多国加码工业刺激 经济复苏阴霾难消
倍福专注门窗制造 40 年!倍福基于 PC 的控制技术为“小批量、多品种”的生产赋能
第四届高校电气电子工程创新大赛收官 施耐德电气携生态育新质人才
更多新闻资讯