最近做了一个案子,用的硬件是西门子S7-SMART 控制第三方直线电机,GOTO指令走绝对定位。
控制原理:物料被感应后,直线电机按设定位置VD4012及设定速度VD4016前行,抵达设定位置后,延时0.1S,触发直线电机后退指令(此时位置传送为0),按照设定的速度VD4016返回原点。
控制逻辑:
第一步:轴初始化:
第二步:轴寻参
第三步:按逻辑控制前进后退
问题:程序可以正常运行,但有一个BUG,就是在返回时,虽然给定的位置是0,用PLC程序监控位置过程值V4000会出现-0.1的数值,一旦出现-0.1,再给触发信号,GOTO指令就不执行了。跟400客户打电话,给出解决办法是使用LDPOS指令,考虑到顺序扫描,LDPOS指令块放置位置在GOTO指令之前,指令如下:
问题依旧存在,当出现VD4000为-0.1时,即使触发V40.1,VD4000过程值也不会按设想的那样,把VD4000赋值为0,只能求助各位大神
楼主最近还看过
程序拟制:
1. I0.6为安全继电器常闭点,安全继电器未复位,该轴停止使能所有子程序。
2.轴寻参 刚开始中间未加M0.6线圈,也就是说可以安全继电器工作的情况下无限制的寻参,也不知道出现-0.1跟这儿有没有关系,结合设备使用情况,这里加了个限制线圈,不允许在工作原点位置频繁寻参。
3.寻参后的瞬间,走GOTO指令的偏移量(工作原点)
4.由于案子要求速度很快(直线电机的行进速度10米/秒)所有速度惯量很大,出现一个问题就是回到位后,会有误动作一次,前进线圈内加一时间断
5.
6.前进线圈
7.后退线圈
8.触摸屏手动功能,V10.3一次前进,再点一次复位,由于工艺要求未使用转换开关
9.
10.手动直线电机
11.直线电机寻参后走GOTO指令
12.
13.GOTO指令