[三菱] 使用MC和MCR指令,提高编程效率,但不要掉坑里

[复制链接]
查看309 | 回复1 | 2024-5-22 08:20:38 | 显示全部楼层 |阅读模式
指令MC(Master Control)和MCR(Master Control Reset)在PLC(可编程逻辑控制器)编程中非常常见,它们用于创建和控制主控电路
MC指令(主控指令):
功能:MC指令用于标记主控电路块的开始。当MC指令的触点接通时,该MC与对应的MCR之间的所有指令开始执行。

应用:在编程中,经常遇到多个线圈同时受一个或一组触点控制的情况。使用MC指令可以避免在每个线圈的控制电路中都串入同样的触点,从而节省存储单元。

特点:MC指令只能用于输出继电器Y和辅助继电器M(不包括特殊辅助继电器)。MC指令后,母线(LD、LDI点)移至MC触点之后,返回原来母线的指令是MCR。
MCR指令(主控复位指令):
功能:MCR指令用于标记主控电路块的结束。当MCR指令执行时,会结束当前MC指令所标记的主控电路块。

应用:与MC指令配合使用,用于控制主控电路块的执行和结束。
特点:MCR指令后,母线返回原来位置。在嵌套结构中,MCR指令会同时复位所有比其编号小的嵌套层。

假设我们有一个简单的PLC程序,当输入X000接通时,我们希望根据输入X001和X002的状态来控制输出Y000和Y001的接通与断开。
以下是使用MC和MCR指令的编程示例:

LD X000    // 如果X000接通,则执行以下指令
MC N0      // 开始一个编号为N0的主控电路块
LD X001    // 如果X001接通,则执行以下指令
OUT Y000   // 输出Y000接通
LD X002    // 如果X002接通,则执行以下指令
OUT Y001   // 输出Y001接通
MCR N0     // 结束编号为N0的主控电路块
在这个示例中,当输入X000接通时,会执行从MC N0到MCR N0之间的所有指令。如果X001接通,则输出Y000接通;如果X002接通,则输出Y001接通。当X000断开时,由于MC和MCR指令的存在,Y000和Y001都会断开。

MC和MCR指令搭配使用好处:

结束主控电路块:

当你使用MC指令开始一个主控电路块后,你需要在适当的位置使用MCR指令来结束这个电路块。这是为了确保逻辑的正确性和完整性。

避免逻辑混乱:

如果没有正确地使用MCR指令来结束主控电路块,可能会导致逻辑混乱,因为PLC可能会继续执行MC指令之后的指令,即使这些指令本应在MC指令的控制范围之外。

节省存储空间:

在编程时,我们经常会遇到多个线圈同时受一个或一组触点控制的情况。如果在每个线圈的控制电路中都串入同样的触点,将会占用很多存储单元。通过使用MC和MCR指令,我们可以避免这种重复,从而节省存储空间。

嵌套结构:

在复杂的PLC程序中,可能会使用到嵌套的主控电路块。在这种情况下,每个嵌套的MC指令都需要一个对应的MCR指令来结束。而且,MCR指令会同时复位所有比其编号小的嵌套层。

以下情况谨慎使用:

无主控电路块:

如果PLC程序中没有使用MC指令来开始一个主控电路块,那么使用MCR指令将没有实际意义。MCR指令必须和MC指令配对使用,用于结束MC指令所开始的主控电路块。

嵌套结构中的错误使用:

在嵌套的主控电路块中,MCR指令会同时复位所有比其编号小的嵌套层。如果错误地使用了MCR指令,可能会导致不应该被复位的嵌套层被复位,从而影响程序的逻辑和功能。

特殊辅助继电器:

MC和MCR指令的目标元件通常为Y(输出继电器)和M(辅助继电器),但特殊辅助继电器(如计时器、计数器等)不能用作MC或MCR指令的目标元件。因此,在涉及特殊辅助继电器的程序中,MCR指令可能不适用。

其他控制逻辑:

在某些情况下,可能需要使用其他控制逻辑来实现特定的功能,而不是使用MC和MCR指令。例如,可以使用顺序控制指令(如STL/RET)来实现顺序控制逻辑,或者使用跳转指令(如JMP/JME)来实现程序的跳转和分支。在这些情况下,MCR指令可能不适用。


Hello工控 | 2024-5-22 23:25:05 | 显示全部楼层
理解深刻,我转走了!
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则