恭喜,你发布的帖子
发布于 2023-10-28 10:23:19
18楼
A、根据截图分析(按排除地址重叠、排除截图程序之外的程序对M9.0的控制):
1)M9.0的线圈指令以及置位、复位,均在子程序【输入输出转换】中;
2)M9.0的使用在【段2】,用于控制Q0.4;
3)M9.0的【置位】、【复位】在【段4】。共有3种状态,分别是:置位、复位、保持原值(即不置位、又不复位)。并且三种状态的优先级别相同(原因:置位、复位是有条件的,用同一个点M9.1的,常开、常闭点控制);
4)M9.0的【线圈指令】在【段5】;
B、依据上述分析及程序的扫描执行规则(由上到下、从左到右)可以得出:
1)Q0.4的输出状态,与M9.0上周期的一致。即:Q0.4的输出滞后M9.0一个周期;
2)线圈指令的优先级高于置位复位;M9.0的结果:段4的置位、复位被线圈指令覆盖,导致段4成为【无效程序段】。
C、解决方案参考:
1)方案1:M9.0的【线圈指令】调至【段4】,【置位】、【复位】调至【段5】,变为【置位复位】优先。当置位复位不满足条件时,线圈指令才会有效;
2)方案2:将【段2】中 M9.0控制Q0.4的线圈指令调至现在的【段4】与【段5】之间。结果与方案1相同。并且Q0.4的输出滞后【线圈指令】一个周期。而Q0.4的输出与【置位复位】是同一个周期;
3)方案3:不用线圈指令,全部用置位、复位指令,并配合沿指令;
4)方案4:【线圈指令】与【置位、复位】指令,分别使用不同的M位(或V位),再用这两个M(或V位)并联控制Q0.4;
请填写推广理由:
分享
只看
楼主