木系掌门
级别: 探索解密
精华主题: 0
发帖数量: 39 个
工控威望: 176 点
下载积分: 106 分
在线时间: 30(小时)
注册时间: 2024-04-03
最后登录: 2024-06-03
查看木系掌门的 主题 / 回贴
楼主  发表于: 38天前
现在取料仓有4个,触摸屏可以设定料仓数量,最大可设4,因为只有4个料仓,步进电机控制位移
当设定1个料仓,设定1仓数量:直接在1仓位置取料,当到达取料数量或取料探针感应料仓无料,机器停止
当设定2个料仓,各设数量:先取1仓,1仓取到设定数量或感应探针感应无料,切换2仓取料,2仓取到设定数量或探针感应无料,机器停止
3仓4仓以此类推
要怎么写比较简洁,或者有什么指令可以简结,现在自己写的自己都感觉又臭又长
gxtmdb82164
级别: 论坛先锋
精华主题: 0
发帖数量: 673 个
工控威望: 1051 点
下载积分: 172 分
在线时间: 542(小时)
注册时间: 2019-09-22
最后登录: 2024-05-29
查看gxtmdb82164的 主题 / 回贴
1楼  发表于: 38天前
老生常谈了,模块化,分层,分层分完了自然知道怎写~

这个需求里面料仓的状态管理并不复杂,自己设计一个数据结构(给人看的,比如Dn.0代表使能,Dn.1代表取料结束;Dn+1用于设置当前仓位数量,Dn+2用于存储当前取料的数量,DDn+4用于存储步进的位移量(XY桁架结构就继续往后加)),然后无论你有4个料仓还是400个料仓,在内存里面把数据结构铺开,写一个调度程序带上偏移量就可以访问所有的料仓数据结构,执行过程种调用各种步进驱动等输出也应该是通过接口,去调用封装好的驱动模块。

写完以后独立成料仓控制模块,抽象出最少的接口,比如说料仓启动,料仓完成,料仓报错,主程序里面调用这几个接口就行了