您现在所在的是:

三菱Mitsubishi

回帖:45个,阅读:2104 [上一页] [1] [2] [3] [4] [5] [下一页]
625
285471548
文章数:14
年度积分:50
历史总积分:625
注册时间:2013/5/19
发站内信
发表于:2013/5/19 15:28:56
#0楼
题目要求是生产线共有4个工位和一个初始车位,有自动手动两种模式。在手动模式下,操作台上或在相应工位处按下该工位对应的按钮,小车即执行该工位的送货任务(送货包括出发自动卸货和返回初始位,这部分已搞定)。当有多个工位按钮被按下时,应执行第一个按按钮工位上的工序,并按按钮的次序贮存其它工位信号,待执行当前工位的工序后,按次序执行贮存信号的工序,并通过灯显示按按钮的次数。。。
现在的问题就是如何实现依次按呼叫顺序执行驻存的呼叫信号,并入和通过灯显示按钮次序?
请各位指点下,打算使用三菱PX2N的PLC。。谢谢
新来的没有分给大家了,谢谢
[此贴子已经被作者于2013/5/19 15:32:51编辑过]
625
285471548
文章数:14
年度积分:50
历史总积分:625
注册时间:2013/5/19
发站内信
发表于:2013/5/20 13:54:02
#1楼
请各位来帮帮我
7672
w71412659
文章数:1455
年度积分:53
历史总积分:7672
注册时间:2013/5/8
发站内信
2018论坛魅力之星
发表于:2013/5/20 16:29:31
#2楼
我有个想法,好不好用你自己看着办吧。
   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动作?
兽人永不为奴,除非包吃包住!
625
285471548
文章数:14
年度积分:50
历史总积分:625
注册时间:2013/5/19
发站内信
发表于:2013/5/20 17:16:10
#3楼
回复 #2楼 w71412659
您好,谢谢的您的帮助,您前面说的那个好像是三菱有个叫做先入先出读和写的程序。。把输入存入数据寄存器再依次读出。。那比如说3先按了,我定义3号为数字3,那后面小车运行要怎么识别这个数字,这方面学的有点少。
1052
jtfuping
文章数:97
年度积分:50
历史总积分:1052
注册时间:2011/6/30
发站内信
发表于:2013/5/20 19:10:03
#4楼
以下是引用2854715482013/5/20 17:16:10的发言:
您好,谢谢的您的帮助,您前面说的那个好像是三菱有个叫做先入先出读和写的程序。。把输入存入数据寄存器再依次读出。。那比如说3先按了,我定义3号为数字3,那后面小车运行要怎么识别这个数字,这方面学的有点少。
比较啊,用工位存入数字的寄存器与按钮的数字比较啊。比如:比按钮数字小正转,比按钮数字大则反转
625
285471548
文章数:14
年度积分:50
历史总积分:625
注册时间:2013/5/19
发站内信
发表于:2013/5/20 19:20:51
#5楼
回复 #4楼 jtfuping
哦。。快要理顺了,那怎么样能给1号工位定义使其按钮按下,就能向寄存器输入1,2号输2呢?
1052
jtfuping
文章数:97
年度积分:50
历史总积分:1052
注册时间:2011/6/30
发站内信
发表于:2013/5/20 19:37:54
#6楼
你那主题我没仔细看,有图就好了。
比如。工位到达是用行程开关或接近开关的。他们对应的输入点是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编辑过]
7672
w71412659
文章数:1455
年度积分:53
历史总积分:7672
注册时间:2013/5/8
发站内信
2018论坛魅力之星
发表于:2013/5/21 8:48:15
#7楼
楼上正解,我懒得写指令,在某扫描周期如果发现某按钮按下,就用MOV指令把对应的数据到寄存器,例如说寄存器是D400,K1对应的数据是1,代码就应该类似于 MOV 1 D400 。再把D400的数据添加到数组尾部,最好再清零D400,因为你下一次按下的时候要用到。你说的“先进先出”一般是指堆栈,PLC编程一般不会用到堆栈,但是在linux里面就一定要搞清楚堆栈的用法了。
兽人永不为奴,除非包吃包住!
625
285471548
文章数:14
年度积分:50
历史总积分:625
注册时间:2013/5/19
发站内信
发表于:2013/5/21 18:30:59
#8楼
图
过程图是这个。。
老师您好!
第一个问题,比如2号工位首先按了呼叫,MOV K2 D402,然后3也按了呼叫,MOV K3 D403,那这样没个工位呼叫按钮都移入固定数据,怎么让他如您所说的按顺序依次存入数组的最后一位呢?需要什么指令?读出的时候要怎么做?
第二个问题,我有个大体构思,各工位按呼叫按钮,并存入数据,假如存3214进入数组,在读出数组(3214),然后按照这个数组顺序依次接通使小车工作。小车要每次返回初始工位后(有限位开关)再读出数组中第一个数并执行,执行完毕前要锁存这个呼叫信号,执行完毕后清除对应的呼叫信号。使用CMP信号来判断读出数据,确定如何动作,4个工位这里我应该是得用2次CMP吧。我这个小车呼叫只需要电机正转,他从初始位到呼叫位后经过卸货动作后会自己回到初始位。
请老师知道下,谢谢
[此贴子已经被作者于2013/5/21 18:37:58编辑过]
625
285471548
文章数:14
年度积分:50
历史总积分:625
注册时间:2013/5/19
发站内信
发表于:2013/5/21 18:32:04
#9楼
回复 #7楼 w71412659
您好,老师,我把过程图发上来了,您也看一下给我指导下吧。谢谢。。

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

62.4004