黄金会员
主题
帖子
积分6300
阅读权限40
注册时间2013-7-2
最后登录1970-1-1
在线时间 小时
|
本帖最后由 guicai 于 2014-5-12 14:28 编辑
很久以前就做好了,就是感觉不很理想,最近学习modbus,所以就拿雕刻机的手控开刀了,把它改进一下. 手控采用mach 的modbus通讯,使用32个输入线圈和7个保持寄存器. 除6个方向键和停止 暂停 这个8个按键之外,因为这几个按键是直接端口映射的.其他按键均采用vb脚本进行按键解析,这样就很灵活,加入了 按键执行应答,手控的按键只有被mach vb脚本执行了才会发送应答给手控,已保证按键被执行, 手控才会发出按键蜂鸣提示音.因为mach modbus 的实效性不高,有时每次通讯间隔超过100ms以上,如果手控按键按的快一点,刚好在这个100ms内,那么这个按键是不会被 mach读取的,所以有了按键执行应答,就不会发生这种偶然性事件了。
手控上: 开始、 启动主轴、x、y、z 归零、返回原点、z对刀,这几个按钮,还加入了二次确认功能,好比电脑上的双击有效,第一次按下 发出 嘀嘀嘀嘀...的提示音,只要在1.5秒内再次按下同一按键,这个按键功能才会被发送出去,这样做是因为我的手控体积小,按键分布密,以前好几次 不小心误按了 x归零,唉,后悔死了,又要重新校对坐标 非常麻烦。有了二次按键确认功能,就减少发生这种灾难性事件了。(看到网上有人发帖说有的按键扫描程序如何的简单,只有3行什么的, 如何的强,可我怎么都觉得按键扫描好难,太不好处理了)
手控和mach端都有modbus断线提示, 手控端还加入了按键锁,防止别人误操作. 手控端 检测到modbus断线时,禁止全部按键扫描,并有二极管闪烁指示,. 电脑 mach 检测到 modbus断线时 会发出提示窗口,并且强制暂停,接着延时0.5秒后停止工作. 这样做的目是因为,mach modbus本身没有断线初始化功能, 例如,正在手控移动x轴,此时恰巧modbus断线,那么mach会一直在移动x轴,直到触发限位, 也就是说 mach会一直保持断线之前的modbus按键状态,这样是很危险的,虽然也是一个极其偶然的事件,所以 为了使mach能够在断线的时候 复位所有和modbus有关的按钮,就加入了断线 自动暂停+停止功能.
本来还可以加入显示屏 显示当前xyz坐标,由于手控体积太小,一时半会也找不到合适的小液晶屏,所以显示部分硬件电路没加,软件上是已经支持了,modbus已经实时把坐标发送到手控上了.
发贴的主要意图在于交流创意,交流好的点子和思路,大家可以踊跃发言。因为我个人觉得,懂的人(相对来说) 基本只要说的出来 就可以做到或者可以想办法做到,懂的人是缺少好的点子 思路 缺少好的创意。不是很懂的初学者 缺少的是技术 知识, 但是知识这个东西不是一时半会就可以学会 ,教懂的, 当然了,如果你有需要 你有耐性等 我也可以慢慢教.
自制的手控图片:(以前拍摄的)
雕刻机控制台整体:
|
|