Compile and run-time errors are non-fatal errors. Non-fatal errors can degrade some aspect of the performance of your PLC, but do not render the PLC incapable of executing the user program or updating the I/O. Run-time errors are non-fatal errors detected in RUN mode, and reflected in special memory (SM) bits that your program can monitor and evaluate. At startup, the PLC reads the I/O configuration and stores this information in the SM memory. During normal operation, the I/O status is periodically updated and stored in the SM memory. If the PLC detects a difference in the I/O configuration, it sets the configuration-changed bit of the module-error byte; the I/O module will not be updated until this bit is reset. For the PLC to reset this bit, the module I/O must once again match the I/O configuration stored in the system data memory. Run-time programming errors are non-fatal error conditions created by you or your program while the program is being executed. An example of this is an indirect-address pointer, which was valid when the program compiled, modified by program execution to point to an out-of-range address. Use the PLC > Information… command to determine what type of error has occurred. You can correct run-time programming errors only by modifying the user program. The run-time programming errors are cleared at the next transition from STOP to RUN mode. Compile errors (or program-compile errors) are detected at download as the PLC compiles the program. If there is a compile error, the compile halts, and the previous program (which is known to be valid since it previously compiled) is retrieved. All of these steps occur while the PLC is in STOP mode. Compile errors can be displayed using the PLC > Information… command.