# NDM Control Signals Descriptions

## System Control

### Byte 0

Bit | Name | Description
--- | --- | ---
7 | Set Offline | This bit is set by the PLC to temporarily place the vision system into a disabled state.
6 | Clear Error | This bit is used to acknowledge an Error Code, and can also be used to acknowledge any Acquisition Errors being signaled by the vision system.
5 | Reserved | Unused.
4 | Initiate Job Load | This bit is used to initiate a job load.
3-2 | Reserved | Unused.
1 | Buffer Results Enable | When this bit is set, the Inspection ID, Inspection Result and Inspection Results fields are held constant until the Inspection Results Ack field has acknowledged them and been set. Up to sixteen inspections are held in the vision system's buffer. The vision system will respond to the acknowledgment by clearing the Results Valid bit. Once the Inspection Results Ack field is cleared and there is a new set of rules sent to the PLC, the Results Valid bit will no longer be cleared. If the Inspection Results Ack bit is cleared and there are no more results in the vision system's buffer that are to be sent to the PLC, the Results Valid bit remains cleared.
0 | Trigger Enable | This field is set to enable triggering via the Trigger bit. Clear this bit to disable the network triggering mechanism. If the Trigger Enable and a Trigger bit are set simultaneously, then the trigger will fail and an Acquisition Error will be signaled. There will be one Trigger Enable signal to gate all cameras connected to the vision system.

### Byte 1

Bit | Name | Description
--- | --- | ---
7-0 | Reserved | Unused

### Byte 2-3

Byte | Name | Description
--- | --- | ---
2-3 | Job Load ID | This byte indicates the current job ID to be loaded, when the Initiate Job Load bit is set.

### Byte 4-7

Byte | Name | Description
--- | --- | ---
4-7 | Soft Event 0-31 | These bits are used to trigger a programmable action in the vision system.

### Byte 8-15

Byte | Name | Description
--- | --- | ---
8-15 | Reserved | Unused

## Engine 0-3

### Byte 16-19

Bit | Name | Description
--- | --- | ---
7-4 | Reserved | Unused
3 | Set User Data 0-3 | This command is used by the PLC to indicate to the vision system that it should transfer the User Data field into a holding buffer for consumption by the vision system. These bits will fire the FFP NewUserData script point in Designer, and the event argument indicates which bit was set. See the NDM Event Handlers topic for more information about the NewUserData event. Note: The Set User Data bits need to be configured to read the User Data field in Designer. If Set User Data is not set by the PLC, the User Data in Designer will either be unavailable, or, if a successful transmission had already occurred, the old values will be present.
2 | Clear Exposure Complete 0-3 | While this signal is High, the Exposure Complete status will remain reset. Once this signal is set to Low, the Exposure Complete status will be set to High on the next exposure completion.
1 | Inspection Results Acknowledgment 0-3 | When the Buffer Results Enable bit is set, the Inspection Results Ack bit acknowledges that the PLC has received the Inspection ID, Inspection Result and Inspection Results data. The next set of inspection results is then sent to the PLC. Clearing the Inspection Results Ack bit causes the vision system to set the Results Valid bit if the buffer is not empty. If results buffering is disabled, the Inspection Results Ack bit must be set to clear the Results Valid bit.
0 | Trigger Camera 0-3 | Setting this bit triggers an acquisition on a specific camera when the Trigger Enable bit is set. These four bits fire the FFP TriggerAcquisition script point and the FFP TriggerAcquisition 0-3 Task triggers. See the NDM Event Handlers topic for more information about the TriggerAcquisition event, and the Task Mode topic for more information configuring the Task trigger.

### User Data

Byte | Name | Description
--- | --- | ---
20-xxx | User Data | This data is sent to the application by the PLC, using the Read PLC block. This data is user-defined; the size of the user data section for each camera is set by the user. For example, the user can define that camera 0 has a user data size that is larger than the size of camera 1. Note: The User Data needs to be set prior to setting the Set User Data bits.