我被MC_Home指令坑惨了。
以前我在德企做机器时,都是把一个工装安装在工作台一个地方,然后把机床的加工头移过来,正对着这个工装上的一个圆孔,查看这时的X、Y值,输进840D,这就设置好原点了。以后,加工头停在任意位置,我一按回原点,它就会移动到先前指定的原点处。
这次用西门子PLC带伺服,我不假思索地也这样想,以为MC_Home就是让加工头从任意位置移动到原点处。但是发现了一些问题,详细过程不说了,只说为了解决一些迷惑,我就猛查资料,百度搜索、西门子论坛讨论、反复看官方手册,我才慢慢搞清楚了:MC_Home指令只能用一次。
可是以前我在调试机器时地无数次地激发MC_Home。我是在触控屏上设置了一个“回原点”按钮,地址连着MC_Home指令的Execute引脚,调试机器时多次按这个按钮。当时也发现一些问题,但是由于工作忙,没去解决,后来工作又中断了,这事不了了之。现在才知道这样做错得离谱。
一般地,MC_Home只能用一次。
上图说明问题(看最后的图):一般地,轴(或者电机)是在导轨上运行的,为了简单地说明问题,我们假定有一根导轨长1000mm,再假定它上面有从0到1000的刻度。此导轨两头装有正、负限位开关。
导轨上没有零点接近传感器。但是我们目测觉得某个位置适合做零点(一般地它是靠近X-这个位置的),我们把轴移到这里,执行一次MC_Home,这就把这里设为零点了,记为X0_1,如下图“第一次”。
然后我们继续调试机器,经过各种操作和各种混乱,最后轴又停在一个地方,我们又在这里执行一次MC_Home,这就是把这里设为新的零点了,记为X0_2,如下图“第二次”。
于是,同样是让轴向前走500毫米(就是触控屏上运动的目标位置设为500),在第一次时,是让轴从X0_1出发再往前走500毫米,在第二次时,是让轴从X0_2出发再往前走500毫米。虽然两次都是让轴走500毫米,但是最终落在导轨上不同的刻度处,如下图“误差”两字所示。
这显然会出大问题。如下图,第一次让轴运行900毫米的话,还在导轨范围内;第二次让轴运行900毫米的话,就超出导轨了,可能导致撞车了。
所以,我觉得,触控屏上可以设置“回原点”按钮,但是要把它设个安全等级,不然的话,操作工以后随便按一下“回原点”,都会导致“目标位置”落在导轨上不同的位置上。而且,MC_Home在面板上的按钮不要命名为“回原点”,而是“标志原点”。
MC_Home指令只能用一次。机器一旦调试完毕,就得禁用此指令,在自动化流程的梯形图里也不得再用这个指令。这是我感悟出来的,此前在任何资料上都没有看到过。
当然了,所谓只能用一次,是指确定了原点之后,就不要再用了;如果以后机构改变了,编码器内存丢掉了,那就得重新标志零点,那时就得再用一次MC_Home了。
不知道我说得对不对,望大侠指教。
最后说一下,此项目用报文3,23圈绝对式编码器,走工艺对象,伺服厂家要求Mode=7,问详细原因他们也说不清楚。
