I have already searched the Rockwell Knowledgebase and looked through the Micrologix Instruction Set Manual and so far I can't explain this anomaly. I'm wondering if anyone else might have encountered it.
I have this program running on over 100 pieces of equipment out in the field and I have never seen this happen before. The fault occurred because F8:2 was assigned an indeterminate value. In this program, F8:2 (which is an PV in engineering units) is used only twice: once in an SCP instruction where it is written based off an analog input, and once in an LES instruction where it is only read. Other than that it is displayed in the HMI but is not written to.
The Scaled Min and Scaled Max values, F8:44 and F8:45 respectively can be written to in the HMI and are not used anywhere else in the controller logic. I have already suspected a hardware error and after swapping the ML1200 controller and 1762-IF4 module with new ones, the problem re-occurred. It would seem that clearing out the NaN from F8:2 by writing a value to it manually via PC and clearing the fault will allow the controller to run for a couple of days before it faults again with the same problem.
Has anyone seen anything like this or have any ideas on the matter? Based on what I've read the only way the output of an SCP instruction is assigned a NaN status is (from the Micrologix instruction set manual:
The fact that this can be cleared and run for a period time before faulting for the same reason leads me to believe something is happening with the raw input from the analog in module causing the input parameter in the SCP to go to infinity or NaN, but considering I've replaced the analog input module already, I'm stumped. Is there anyway I can put a NaN logic trap in place to keep the controller from faulting if I can't identify the cause of the situation? Thanks in advance.
I have this program running on over 100 pieces of equipment out in the field and I have never seen this happen before. The fault occurred because F8:2 was assigned an indeterminate value. In this program, F8:2 (which is an PV in engineering units) is used only twice: once in an SCP instruction where it is written based off an analog input, and once in an LES instruction where it is only read. Other than that it is displayed in the HMI but is not written to.
The Scaled Min and Scaled Max values, F8:44 and F8:45 respectively can be written to in the HMI and are not used anywhere else in the controller logic. I have already suspected a hardware error and after swapping the ML1200 controller and 1762-IF4 module with new ones, the problem re-occurred. It would seem that clearing out the NaN from F8:2 by writing a value to it manually via PC and clearing the fault will allow the controller to run for a couple of days before it faults again with the same problem.
Has anyone seen anything like this or have any ideas on the matter? Based on what I've read the only way the output of an SCP instruction is assigned a NaN status is (from the Micrologix instruction set manual:
If Input max - Input min = 0 and Input does not equal Input min, The Result becomes a negative overflow (for integer values) or a negative NAN (for floating point values)
or
If any of the parameters (except Output) are NAN (not a number), Infinity, or De-normalized; then the result is -NAN.
or
If Scaled max - Scaled min or Input max - Input min result in an overflow, then the result is -NAN
Given the values in the SCP instruction at the time of the fault, I don't see any of these criteria applying to my situation. I don't see anything in the instruction set manual or knowledgbase specific to indeterminate values on floating points, just NaN's in general.or
If any of the parameters (except Output) are NAN (not a number), Infinity, or De-normalized; then the result is -NAN.
or
If Scaled max - Scaled min or Input max - Input min result in an overflow, then the result is -NAN
The fact that this can be cleared and run for a period time before faulting for the same reason leads me to believe something is happening with the raw input from the analog in module causing the input parameter in the SCP to go to infinity or NaN, but considering I've replaced the analog input module already, I'm stumped. Is there anyway I can put a NaN logic trap in place to keep the controller from faulting if I can't identify the cause of the situation? Thanks in advance.