mellis
Member
Just ran into a SLC500 program last week that had multiple MCR zones. Had to look it up to be sure how it worked. In this case, conditional subroutines would have done just as well. In some cases it looks like the original programmer was just trying to make the program execute faster by skipping sections that didn't need to execute all the time. A JMP would have been better if this is what he wanted.
I understand that a conditional subroutine is not a "drop in" replacement for a MCR. But I can get the same function even if I have to code it a bit differently. The MCR zones I encountered recently had a lot of RTOs and UTL/UTO pairs in the logic. It would have probably been simpler in a subroutine with TONs and OTEs.
Bottom line, It's a programming technique that is not used much and there are alternatives that are more common and readily understood. I think it is a hold over from PLC2 days where there were no subroutines.
I understand that a conditional subroutine is not a "drop in" replacement for a MCR. But I can get the same function even if I have to code it a bit differently. The MCR zones I encountered recently had a lot of RTOs and UTL/UTO pairs in the logic. It would have probably been simpler in a subroutine with TONs and OTEs.
Bottom line, It's a programming technique that is not used much and there are alternatives that are more common and readily understood. I think it is a hold over from PLC2 days where there were no subroutines.
Last edited: