chengyi0406
级别: 正式会员
精华主题: 0
发帖数量: 6 个
工控威望: 95 点
下载积分: 599 分
在线时间: 31(小时)
注册时间: 2016-05-16
最后登录: 2017-05-27
查看chengyi0406的 主题 / 回贴
楼主  发表于: 2017-03-18 15:14


AB间输送带电机装有一只编码器,X0处有一光电开关,想达到的效果就是记录每个工件的位置,工件数量最多为60个,哪位大侠指点下思路。
逆水行舟
级别: 略有小成
精华主题: 0
发帖数量: 141 个
工控威望: 256 点
下载积分: 670 分
在线时间: 139(小时)
注册时间: 2010-11-28
最后登录: 2024-12-20
查看逆水行舟的 主题 / 回贴
1楼  发表于: 2017-03-20 10:05
引用
引用第2楼cvlsam于2017-03-20 08:44发表的  :
先入先出,这不就是一个含有60个元素的队列结构么 手册上FIFO指令可以看看,没有的用2个Z寄存器作为指针也很好构建队列结构。

大侠FIFO指令是S200的哟三菱的应该是SFRD指令
逆水行舟
级别: 略有小成
精华主题: 0
发帖数量: 141 个
工控威望: 256 点
下载积分: 670 分
在线时间: 139(小时)
注册时间: 2010-11-28
最后登录: 2024-12-20
查看逆水行舟的 主题 / 回贴
2楼  发表于: 2017-03-24 08:25
引用
引用第9楼dgamen于2017-03-20 13:16发表的  :
现在遇到的问题就是第一个值D0能读出来,第二个D1读出来后,D0就不再变化。我想要的效果是D0一致计数直到清零,有什么好办法吗?
你的意思是要D0一直都在记录当前值吗,直到记录D0值的那个产品到达B点为止。     是这样吗?

进入的时候记录A初始值,用编码器当前值减去初始值不就是,不就是过程的值吗?
逆水行舟
级别: 略有小成
精华主题: 0
发帖数量: 141 个
工控威望: 256 点
下载积分: 670 分
在线时间: 139(小时)
注册时间: 2010-11-28
最后登录: 2024-12-20
查看逆水行舟的 主题 / 回贴
3楼  发表于: 2017-03-24 08:56
引用
引用第10楼chengyi0406于2017-03-20 13:37发表的  :
是的,就是这个意思,比如说第一个工件到B点,它的位置D0清零,此时传送带上有 50个工件,那么第51个到X0后位置再次为D0,一致循环

比较简单方法,构建一个队列,使用先进先出方便指令,D0清零后,应该把D1数据移送到D0依次类推,51个放到50数据类。按照你上面说的,当出现D0,D1数据清空后,再进入3个铲品,且没有产品出时,前两个分别进入D1,D2,第3个将进入D51,哪你出队列程序将比较复杂,以你问这个问题推断,如果你没有很好计算机语言基础,会花很长时间。
逆水行舟
级别: 略有小成
精华主题: 0
发帖数量: 141 个
工控威望: 256 点
下载积分: 670 分
在线时间: 139(小时)
注册时间: 2010-11-28
最后登录: 2024-12-20
查看逆水行舟的 主题 / 回贴
4楼  发表于: 2017-03-24 13:40
图片:
图片:
图片:
如果你不要方便指令的话,也可以自己构建一个队列,抽时间写了个简单队列建构,你可以参考下。该程序没有经过仿真测试