登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:求欧姆龙PLC一个简易的按点击顺序执行的程序

点击:9067 回复:23

以下是我自己编写的程序,三个槽罐按点击顺序依次进行作业,但是不具有普遍适用性,4个槽罐有24种情况,5个就有120种了,求大神的简易程序!
附件 1.jpg
附件 2.jpg
附件 3.jpg
附件 4.jpg
附件 5.jpg
附件 6.jpg
附件 7.jpg
附件 8.jpg
附件 9.jpg
附件 10.jpg
附件 11.jpg
附件 12.jpg
附件 13.jpg
附件 14.jpg
后面的复位寄存器是为了方便模拟加的~因为在实际应用中作业的启动通常为复位按钮,停止按钮没有加入~~~
只想知道一个简易的适用于很多个的顺序执行程序学习一下,知识就是用来传播的~~~,程序附上(照片是方便观看的)
附件:
[本地下载]
15-09-22 22:08
这个程序是可以先点击作业执行后,等待第一个点击的作业完毕后,再自动进行第二个点击的作业,作业完毕的开关由实际中某个条件来执行,如PH值、液位、溶液浓度等等,这里为手动点击~~~
15-09-22 22:16
再更新一下,如果有什么想法也可以说一下,也不必整个程序,谢谢~
15-09-22 22:17
做一个队列的数据结构就可以了,欧姆龙支持间接寻址,可以很方便的构建这种结构。
Good Luck~
15-09-22 22:30
这位老师能说的仔细一些吗表情,我刚接触PLC半年,很多东西还在学习,很多东西还不太明白~麻烦您了~
15-09-22 22:35
队列结构在任何一本描述数据算法的数都会有介绍,通过指针就可以,只要你的PLC支持间接寻址就可以。
在欧姆龙中,可以通过SSET(设置栈大小),PUSH(向栈中压入数据)以及FIFO(以队列方式读取数据)来实现这一过程。
首先,通过SSET指令来设置栈大小,欧姆龙的队列需要固定4CH的空间存储栈管理信息,且因为FIFO会保留最后一个数据,为了确保你的程序可以结束掉,所以还需要多申请一个CH的空间用于存放工艺步骤结束标志。因为楼主使用的是3个通道,那么这里的栈空间申请了8个通道。
附件 snap1.jpg
15-09-23 10:58
以D100作为栈的首地址,D100,D101为栈的大小,D102,D103为栈指针,这是固定的,你的数据实际是从D104开始存放的。
使用PUSH指令向栈中存放数据,这里的PUSH指令的执行顺序决定了以后FIFO的读取顺序。
附件 snap2.jpg
15-09-23 11:01
之所以在申请栈空间的时候要多申请一个空间,是因为FIFO指令读取到栈最后一个数据的时候会保留数据,这样的话你会陷入最后一个工艺步骤而无法退出,所以需要放一个结束标志,这里向栈中压入数据0作为结束。
附件 snap3.jpg
15-09-23 11:03
然后,使用FIFO指令依次将数据读取,并通过比较指令来运行不同的工艺步骤。
附件 snap4.jpg
附件 snap5.jpg
15-09-23 11:05
上述程序例程采用的机型为CP1H。
使用的指令描述为:
SSET:CP1H编程手册第369页
PUSH:CP1H编程手册第371页
FIFO:CP1H编程手册第375页
注:或许你的欧姆龙CP1H的编程手册版本与我不同,请以你的手册页码为准。
本程序的例程代码:
使用的软件版本:CX-Programmer V9.5  操作系统版本:Win7 32Bit OS
附件:
[本地下载]
完~
15-09-23 11:13

上一页下一页

工控新闻

更多新闻资讯