V2.2固件的Motion功能块已经升级到V3.0了。但是回原点的过程好像还是不太理想?具体分析如下:
我的项目里要求的回零方向为从-至+,即正方向回零;只有一个原点开关,没有限位开关。 而且受机械结构的限制,机构在回零过程中最多能够检测到原点开关,但是不可能穿越整个原点开关。
现在的问题是:
1、如果回零前,原点开关没有实检测到,那么回零过程为: 正转->检测到原点开关->减速至0-->反转-->检测不到原点开关-->减速至0-->正转-->检测到原点开关-->立即停止,回零完成。
2、如果回零前,原点开关已经被检测到,那么回零过程为:正转-->穿越整个原点开关直到检测不到原点开关->减速至0->反转-->再次穿越整个原点开关->减速至零-->正转-->检测到原点开关->立即停止,回零完成。
针对第1种情况,没有任何问题。 而针对第2种情况,在回零开始前已经检测到了原点开关,按理说系统就可以开始就反转,然后检测不到原点开关,再正转,检测到原点开关,回零完成!
可是S7-1200不论什么情况,一开始始终是组态的方向(我组态为正转),那么在第2种情况下,它必须要正向穿越整 个原点开关区! 这在我的机械结构里是不允许的!而且实事上也是没有必须的!
为了解决这个问题,我只好程序做判断: 开始回零前,先判断原点开关是否已经被检测到。 如果没有检测到(情况1),那么直接启动MC_Home指令回零。 如果已经检测到原点开关(情况2),那么只要先使用JOG指令反转,直到原点开关丢失,再停止JOG,再启动MC_Home…… 白白浪费啊! 别的小PLC都具有自动识别的功能……