发表于:2024/1/18 10:42:16
#10楼
以下是引用知道一点在2024/1/13 9:33:40的发言:
这是一个ng检测装置,工件长短不一,被检物可能在长度方向任一位置,设备调试时以1号位置为基准,当工件运转到传感器2时,传感器如果检测到被检物,PLC中断被触发,并在“数据”链上做个标记“1”,这个“1”随着传送带的运转移向推送器,当“1”与推出位置标记“1”重合,推送器动作,将带有被检物的工件推出传送带。
原程序的移动数据链使用的是“位”移指令,在大多数工件的使用没问题,但遇到工件比较长的情况下,会出现推不下传送带的情况,分析实验原因就是被检物靠近2or3的时候。推送器不能推工件中部。
设备上有个传感器1,用于计量工件数。
利用传感器1,可以计算出工件长度,从而得出工件中心点1的位置,在工件运行到”推出位置“能使”推送器“推工件”1“处。
现在的问题是,原程序使用的指令是”位移指令“,“数据链”上只能标识1or0,如何让计算出的工件中心点(1)标记在正确的“数据链”上就有点头痛。
比如,“数据链”起始地址是H10.00,原程序是在“传感器2”检测到“特殊物件”后,中断程序置H10.00为“1”。
现在,利用传感器1上沿和下沿,得出工件长度40个运动单位(实际就是脉冲数),工件中心就是20,推到“数据链”上,就是H11.03
如何将原置H10.00为1的程序修改为置H11.03?
这是一个ng检测装置,工件长短不一,被检物可能在长度方向任一位置,设备调试时以1号位置为基准,当工件运转到传感器2时,传感器如果检测到被检物,PLC中断被触发,并在“数据”链上做个标记“1”,这个“1”随着传送带的运转移向推送器,当“1”与推出位置标记“1”重合,推送器动作,将带有被检物的工件推出传送带。
原程序的移动数据链使用的是“位”移指令,在大多数工件的使用没问题,但遇到工件比较长的情况下,会出现推不下传送带的情况,分析实验原因就是被检物靠近2or3的时候。推送器不能推工件中部。
设备上有个传感器1,用于计量工件数。
利用传感器1,可以计算出工件长度,从而得出工件中心点1的位置,在工件运行到”推出位置“能使”推送器“推工件”1“处。
现在的问题是,原程序使用的指令是”位移指令“,“数据链”上只能标识1or0,如何让计算出的工件中心点(1)标记在正确的“数据链”上就有点头痛。
比如,“数据链”起始地址是H10.00,原程序是在“传感器2”检测到“特殊物件”后,中断程序置H10.00为“1”。
现在,利用传感器1上沿和下沿,得出工件长度40个运动单位(实际就是脉冲数),工件中心就是20,推到“数据链”上,就是H11.03
如何将原置H10.00为1的程序修改为置H11.03?
20的话不是应该置位11.04么。
执行程序前:
执行程序后:
参考程序:
参考程序不提供复位,因此可以使用MOV指令复位后再置位。
参考程序也不提供内存的边界检测,因此在对D0赋值的时候请注意H区域的边界。
友情提醒:由于无法从CX-P软件中监控变址寄存器(可以由上位机通过FINS指令读取),因此编程过程中请务必小心,否则查错将异常困难。
Good Luck~