To clear up a few mis-statements in this thread:
The Auxiliary Contact NO does not tell you the motor is running. I've seen this stated several times. The Auxiliary Contact simply tells you that the Contactor is energized and nothing more. The contactor could be energized, but the Supply Voltage to the motor is off either from the preceding fuse/breaker or a field disconnect after the contactor. Could be if the motor is attached to the pump, then sure the motor could be turning, but what if the coupling is broken between the motor and pump. Then the pump is not turning and the motor turning tells you nothing. It's very important to understand your process and the importance of certain things. Plan accordingly and program accordingly.
With that said, your logic for fault detection will not work either. You are missing a very basic principle of PLC's. Scan time. PLC's take time to scan through logic and they take time to update inputs and outputs. Think about this in your fault detection. The PLC writes a "1" to a memory location for an output. Then, the PLC converts that "1" in a memory location to an output module in a PLC rack. If that output is in a local rack, it happens through the backplane. If it is in a remote rack, it happens across the communication link. Once the Output module gets the signal to energize its output, electricity travels to the device (contactor in this case). The Contactor is a magnetic device and takes time to build a magnetic field and close the contactor. At this point, the NO contacts close and a signal travels back to an Input Module. The Input module sees power on an input and sends a signal to the PLC that a particular input is on. The PLC then writes a "1" into a memory location associated with that input address. The PLC then has to scan this memory address and scan the logic and act upon the Input.
All of the above takes time. So, when you turn on an output in your program, the Auxiliary Input isn't going to turn on immediately, and quite possibly not within the single scan of your PLC logic. So if your logic is My output Is On, but my Input isn't, then fault, you are going to generate a fault every time you turn the output on. You need a delay timer to give time for the Input to come on. Usually a second or two is sufficient. But again, that goes back to your process...is that acceptable?
As for the OL, that input needs no other condition to fault. If the OL is tripped, it's faulted. You don't care whether the output was on or not. Most times if there is an OL input, I would prefer it be NC, not NO. It detects failsafe condition. Again think about the criticalness of your process. What if the signal wire from your NO Overload contact breaks or loses power? You will never know, because you are needing a "1" to indicate an OL. But if there is no wire or power, you will never get a "1" and never detect an OL. If the contact is wired NC, then you will always have a "1" in a safe state. If the OL trips, or the wire breaks, or you lose power, you lose the "1" and you know something is wrong.
A good PLC/Controls Engineer knows all of these nuances, and we could write volumes on just this simple problem. But what you need to take away from this exercise is how to evaluate "What If" and to know the consequences of when things fail.
The Auxiliary Contact NO does not tell you the motor is running. I've seen this stated several times. The Auxiliary Contact simply tells you that the Contactor is energized and nothing more. The contactor could be energized, but the Supply Voltage to the motor is off either from the preceding fuse/breaker or a field disconnect after the contactor. Could be if the motor is attached to the pump, then sure the motor could be turning, but what if the coupling is broken between the motor and pump. Then the pump is not turning and the motor turning tells you nothing. It's very important to understand your process and the importance of certain things. Plan accordingly and program accordingly.
With that said, your logic for fault detection will not work either. You are missing a very basic principle of PLC's. Scan time. PLC's take time to scan through logic and they take time to update inputs and outputs. Think about this in your fault detection. The PLC writes a "1" to a memory location for an output. Then, the PLC converts that "1" in a memory location to an output module in a PLC rack. If that output is in a local rack, it happens through the backplane. If it is in a remote rack, it happens across the communication link. Once the Output module gets the signal to energize its output, electricity travels to the device (contactor in this case). The Contactor is a magnetic device and takes time to build a magnetic field and close the contactor. At this point, the NO contacts close and a signal travels back to an Input Module. The Input module sees power on an input and sends a signal to the PLC that a particular input is on. The PLC then writes a "1" into a memory location associated with that input address. The PLC then has to scan this memory address and scan the logic and act upon the Input.
All of the above takes time. So, when you turn on an output in your program, the Auxiliary Input isn't going to turn on immediately, and quite possibly not within the single scan of your PLC logic. So if your logic is My output Is On, but my Input isn't, then fault, you are going to generate a fault every time you turn the output on. You need a delay timer to give time for the Input to come on. Usually a second or two is sufficient. But again, that goes back to your process...is that acceptable?
As for the OL, that input needs no other condition to fault. If the OL is tripped, it's faulted. You don't care whether the output was on or not. Most times if there is an OL input, I would prefer it be NC, not NO. It detects failsafe condition. Again think about the criticalness of your process. What if the signal wire from your NO Overload contact breaks or loses power? You will never know, because you are needing a "1" to indicate an OL. But if there is no wire or power, you will never get a "1" and never detect an OL. If the contact is wired NC, then you will always have a "1" in a safe state. If the OL trips, or the wire breaks, or you lose power, you lose the "1" and you know something is wrong.
A good PLC/Controls Engineer knows all of these nuances, and we could write volumes on just this simple problem. But what you need to take away from this exercise is how to evaluate "What If" and to know the consequences of when things fail.