| 作者 | 主题 |
|---|---|
|
伊默 至圣
经验值:19260 发帖数:4259 精华帖:118 |
楼主
主题:S7-1200 PTO回零讨论
V2.2固件的Motion功能块已经升级到V3.0了。但是回原点的过程好像还是不太理想?具体分析如下:
我的项目里要求的回零方向为从-至+,即正方向回零;只有一个原点开关,没有限位开关。 而且受机械结构的限制,机构在回零过程中最多能够检测到原点开关,但是不可能穿越整个原点开关。 现在的问题是: 1、如果回零前,原点开关没有实检测到,那么回零过程为: 正转->检测到原点开关->减速至0-->反转-->检测不到原点开关-->减速至0-->正转-->检测到原点开关-->立即停止,回零完成。 2、如果回零前,原点开关已经被检测到,那么回零过程为:正转-->穿越整个原点开关直到检测不到原点开关->减速至0->反转-->再次穿越整个原点开关->减速至零-->正转-->检测到原点开关->立即停止,回零完成。 针对第1种情况,没有任何问题。 而针对第2种情况,在回零开始前已经检测到了原点开关,按理说系统就可以开始就反转,然后检测不到原点开关,再正转,检测到原点开关,回零完成! 可是S7-1200不论什么情况,一开始始终是组态的方向(我组态为正转),那么在第2种情况下,它必须要正向穿越整 个原点开关区! 这在我的机械结构里是不允许的!而且实事上也是没有必须的! 为了解决这个问题,我只好程序做判断: 开始回零前,先判断原点开关是否已经被检测到。 如果没有检测到(情况1),那么直接启动MC_Home指令回零。 如果已经检测到原点开关(情况2),那么只要先使用JOG指令反转,直到原点开关丢失,再停止JOG,再启动MC_Home…… 白白浪费啊! 别的小PLC都具有自动识别的功能……
I can do it
|
|
筹笔驿 游士 经验值:156 发帖数:26 精华帖:2 |
6楼
主题:回复:S7-1200 PTO回零讨论
我最近也在使用V3.0,情况和你的类似,也是没有限位开关,一开始也觉得回零方式不太灵活。
后来找到一种方法: 在工艺对象DB块中,有设置或修改回零的参数: ● <轴名称>.Config.Homing.Direction 用于更改“逼近/回原点方向” ● <轴名称>.Config.Homing.SideActiveHoming 用于更改“回原点开关侧” 首先使用程序逻辑判断,要正转还是反转回零,即是: 情况一:挡片挡住参考开关,左 -> 右 找原点, 顺时针找原点 dir=1 side=0, 参考开关 1-> 0,下降沿实现回零; 情况二:挡片在参考开关右边,右 -> 左 找原点 逆时针找原点 dir=0 side=1, 参考开关 0-> 1,上升沿实现回零; 效果暂时还可以,欢迎大家讨论。 |