最近小弟正在做一个课程设计,是用step7编程利用PLC实现货物升降机的功能,就是同时按下多个控制按钮,然后升降机先移动到第一次按下的位置,然后停止,然后当按下当前位置的按钮时,升降机移动到下一个位置,如果按下停止按钮,则立刻停止,同时之前存储的位置都被清零。
比如说,如果按下的顺序是按钮1,按钮3,按钮4,按钮2
则机器先移动到位置1,然后停下,当再次按下按钮1 时,移动到位置3,再次按下按钮3,
的时候,移动到位置4,然后按下按钮4,升降机下降到位置2.
我的想法是类似于堆栈,要把相应的命令存到PLC 里面,然后一次次调用。不过之前没有学过PLC 还有类似的功能。
还有个想法就是利用SR 存储器的互锁,不过只能实现两个位置的存贮。
希望得到论坛里各位高手的赐教,应该从哪个方向去考虑这个问题呢?
新手瞎琢磨,先提供个思路,大家来拍砖吧,呵呵。。。
实现一个设计目标先从外围硬件开始考虑。楼主这是个升降机,涉及多个楼层,为求简明易懂,暂时先按3个楼层来。
1、既然是升降机,那么驱动电机必然是需要正反转,所以不论电机用380还是220的,必须有2个驱动信号分别驱动电机的正转和反转。先定Q0.0为正转(升),Q0.1为反转(降)。
2、3层楼,每一层都有可能,因此至少需要3组行程开关(为了保险,可以考虑每组用多个开关,但信号只有一个),以便让货梯的启停位置正确。暂定I0.3表示1楼行程,I0.4表示二层,I0.5表示三层。。。
3、理论上,每一层都需要一个确认按钮,表示该楼层的活已经干完了,货梯可以<此处内容被屏蔽>了。但楼主要求这个确认按钮和之前的编程按钮是同一个按钮。那么意味着每一个楼层的按钮有两个功能,按一下是提出要求,再按一下是取消要求。之前有很多帖子讨论关于按一下亮按一下灭的逻辑,这里可以借鉴一下。这三个按钮分别是I0.0=1楼、I0.1=2楼,I0.2=3楼。另外,还有一个急停按钮(楼主说是停止按钮),该按钮可以在任何状态下,立刻停止所有输出,并且将之前存储的路线清零。定义急停按钮=I0.6
4、楼主要求可以对货梯的步进行进路线进行编程。也就是说,货梯的升降路线可以一次输入多个步骤。这个东东要实现,有点绕。应该有很多方法,我个人的办法也许比较笨,但应该是能够实现功能的。具体就是用数字来给每一个楼层命名,比如三楼就是3,二楼就是2等等。然后有一个步骤存储限制,比如最多能存储3个步骤,这个具体看要求了。再然后,每按下相应楼层的请求按钮,那么就会有一个相应的数字存入一个专门的地址,因为前面设计的最多存储3个步骤,因此这种专门地址一共有3个,每一个地址分别对应3个步骤里面的每一个。然后就是走一步看一步了。走到第几个步骤,就看下一步的位置要求。根据位置要求正转或者反转驱动电机,用相应的行程开关来作停止信号就行了。
5、先写符号表:
Q0.0=升梯 Q0.1=降梯
I0.0=指令1 I0.1=指令2 I0.2=指令3;
I0.3=行程1 I0.4=行程2 I0.5=行程3;
I0.6=急停
VW0=步骤1 VW2=步骤2 VW4=步骤3
具体程序如果大家有兴趣,我在后面贴出来。。。以上思路,欢迎大家批评指正!
回复内容:
对: 莱茵军曹 回复内容:对: chinacupor 新手瞎琢磨,先... 内容的回复!
下午在忙别的,晚上尝试写了一个,感觉比较粗糙,还需要雕琢一下,但太晚了懒得弄了,不过基本意思应该是表达出来了,只看还有些什么Bug需要斟酌斟酌的。。。比如我就发现一个bug,贴完图再说,实在懒得搞了。。。
上图!
大家看看是不是有问题啊,一口气写出来也没怎么细看,比如说目前发现就有个BUG,当货梯从1楼到2楼去的时候,如果2楼的行程开关坏了,货梯会在1楼跟3楼之间不停的往返。。。除非按下急停开关。。。其他的情况还好,基本有报警可以照顾到。。。这个问题也不是说不能解决,只是太晚了懒得想了,交给楼主吧。。。
我本来也是个菜鸟,贴图上来就是抱着互相学习的目的,希望和大家多多交流,一起共同提高。。。噢耶!
晕,回帖怎么不能发附件啊。。。懒得截图了,想上传程序拉到。。。
另外,昨天没工夫想,现在想来,楼主这个逻辑有很多不合理甚至很无聊的地方。。。
比如说,既然每走过一个步骤之后,需要人为确定完成才能执行下一步,那么有必要事先对步骤编程么?假设现在事先编好程序,3层、1层、2层,现在第一步是到了3层,搬完东西,按一下按钮3,货梯电机启动反转下降到1层去。这个过程有必要事先编程么?比如不编程,货梯按一下3,去3层,搬完东西,按一下1,去一层,一层忙活完,再按一下2,去2层。。。对于操作来说一点都不增加负担,但对于程序来说,就简单多了啊。。。同样也可靠多了啊。。。
如果说楼主一定要坚持事先对货梯编程,那么有必要非要把完成任务的通知功能放在下指令的那些按钮上么?如果另外增加一个专门的任务完成确认按钮如何?那会让程序简单很多,同时也能在极大程度上减少现场的误操作。比如现在货梯在2楼已经忙活完了,操作员却不小心按到了3上面。。。虽然也能确认,但整个逻辑复杂太多了啊。。。如果是另外一个专门按钮负责告知控制器任务完成可以进入下一步的话,操作员按错的几率是不是小多了???
回复内容:
对: chinacupor 晕,回帖怎么不能发附件啊。。。懒得截图了,想上传程序拉... 内容的回复!
关于这个问题我特意请教了实验室的助教,他说是这样的:假设是一个大型的货物起降机,那么每层的按钮实际就是该层人员需要该货物,那么当连续三层都需要货物时,比如升降机首先到达三层,当三层的人员完成装卸的时候,按下三层的按钮,升降机就会前往下一编程位置,这个就是这个功能的目的。
还有很感谢您耐心的回复,如果您没法贴图的话,能不能发到我的邮箱里面啊,joshua_09@126.com,或者很希望您能够加我的QQ:370251742,我刚刚入手PLC,好多事情不太了解,希望得到高手的指点啊