# Example for Checking the Command Result Code or Error Bits

The following image shows an example PLC logic for checking the Command Result Code or Error bits, in this case specifically a Rockwell ControlLogix PLC:

The signals used are the following:

Signal Name | Vision System Defined Signal or Tag | PLC User Defined Tag | Notes
--- | --- | --- | ---
CommandCompleted | Yes | - | This bit signals that the job load completed (successful or failed).
CommandFailed | Yes | - | This bit signals that the job load fialed, check the ErrorID and CommandResultCode fields.
CommandResultCode | Yes | - | This fields holds the result code of the job change operation, 0 if successful and non-zero if there was a problem.
JobChangeResultCode | - | Yes | This internal memory tag holds the last unsuccessful command result code when a job failed to load.
Error | Yes | - | This bit is set when an error occurs loading the job.
ErrorID | Yes | - | This filed holds an error code when an error occurs loading the job.
JobChangeErrorID | - | Yes | This internal memory tag holds the last error code when a job failed to load.

To check for errors or status of the job load, the rung above can be added to the logic of the PLC. This logic is valid for both the job change by ID and job change by name scenarios.

The output instructions run when the CommandCompleted bit is set to 1 and the CommandFailed bit is set to 1, both by the vision system. When these conditions are met the current CommandResultCode is moved into the JobChangeResultCode PLC tag. If the Error bit is set to 1 the current ErrorID is moved to the JobChangeErrorID PLC tag.

The vision system updates CommandResultCode even when the command does not fail, it just does not get copied into the JobChangeResultCode PLC tag, since the value is 0 when it is successful and there is no reason to save that value.