硬件:三菱FX1s-20MT-001
软件:GX Developer8.52E
程序:开平
功能:按下“自动”进入STL自动循环,按下“停止”按钮置所有S状态为0,脉冲发送也会被终止,送料也会被停止。
问题:当使用步进顺控指令STL语句时,并且使用脉冲指令DPLSR时,有个问题,按“停止”按钮中断脉冲发送指令后,切换到“手动”再发脉冲启动该输出点时,没有响应!
梯形图:
自动的:
手动的:
分析:该问题只出现在正转上,因为自动送料只有正转,中途停掉正在正转的脉冲后,手动正转则没反应,反转都正常,查看代码手动正转和反转一模一样,唯一可能问题在于自动模式脉冲退出时有点异常,导致再在此端口发送脉冲失败!很可能与S状态有关。后来程序改为当按下“停止”按钮时,先中断脉冲输出,也就是说让梯形图执行到那条语句,然后再延时清除所有S状态,经过试验,问题解决!
“停止”指令改为:
这样先RST M100,不会ZRST S1 S9,程序运行到下面后,在STL S1里关掉Y0脉冲发送,然后几个扫描周期后T17计数到达5,接着才清除S状态。这样就行了!该问题花了个把小时才研究透!以后使用STL要注意,可能其它指令也会有这个问题,有机会在其它PLC型号上试试看。详细代码在现场修改,所有没有整理。