I am attempting to debug a problem with an FMD88-10 PLC located in another continent. My client describes the problem as the PLC being "paused". The behavior that he is describing is consistent with a run-time error.
I am working to get more accurate information about the issue from my client. But this will take both time and patience on my part. I seem to not be blessed with much of either...
So in the mean time, I am trying to "instrument" the clients PLC code to log the problem. I think that there are a few things that I can look for:
- User-defined runtime Error: defining an interrupt handler for run-time errors using the INTRDEF 100, n statement.
- Watch dog timer.
So here are my questions about INTRDEF to catch a run-time error
- With the INTRDEF approach, how does the custom function "know" what triggered the run-time error?
- Because CFs on the FMD88-10 do not accept arguments, you can't pass the error info to the CF. Is the error stuff stored in some undocumented register that the CF might be able to access, say DM[4001]? Oh that would just generate another run-time error....
- Yes, I know that the error info should be displayed on the 4x20 LCD. How does the CF "read" back what was written to the LCD by the PLC firmware?
I believe that the only way to access this info is via a host link command. I don't have enough spare serial ports on the FDM88-10 to allow me to wire the ports together. This way I could issue a host link command(s) to read the LCD display and get the strings spit out one serial port and sucked up by the other port.
Could I achieve this by using issuing a host link command via Ethernet?
- If I could "read" back the error info can I write it to the extended file system to generate an error log? How much of the PLC code can I expect to run from the run-time error interrupt handler?
- Is there anything that I can do from the real-time error interrupt handler other than to report the PLC?
On the dead-man timer mechanism. Is there any way that I could log the events that led up to the timeout? Or does the system just reset and start over?
Best regards,
Gary D*ickinson