Cognex.VisionPro.Comm NamespaceCognex VisionPro 9.21
 
Classes

  ClassDescription
Public classCogCardStatusEventArgs
Event args returned as part the Comm Card's CardStatus event.
Public classCogCommCard
The CogCommCard class represents a single VisionPro Communication Card installed in the system.

VisionPro comm cards are hardware devices designed to handle communication between a VisionPro vision system and the outside world.

VisionPro comm cards utilize dedicated real-time processors to manage I/O. This allows VisionPro vision systems to integrate with demanding real-time control scenarios, and reserves PC hardware resources for image processing and machine vision related tasks.

VisionPro comm cards support one or more communication modules, each communication module supports a different type or style of communication.

For example, a single VisionPro comm card may support discrete (digital) inputs and outputs, and/or Ethernet based Factory Floor Protocols (FFP) such as EtherNet/IP.

This class cannot be constructed. Instances must be retrieved from a CogCommCards collection.

This class provides access to the communication capabilities of a VisionPro Communication Card via its supported module interfaces.

  • Access the factory floor protocol (FFP) capabilities of the comm card via FfpAccess.
  • Access the precision I/O (discrete I/O) capabilities of the comm card via DiscreteIOAccess.
Public classCogCommCards
A collection containing every CogCommCard installed in the system.

Upon construction, CogCommCards is automatically initialized to contain one instance for CogCommCard found in the system.

Public classCogDiscreteIOAccess
Instances of CogDiscreteIOAccess class are held by the CogCommCard class.

CogDiscreteIOAccess is used to factory/initialize instances of the precision I/O event system running on the comm card by calling CreatePrecisionIO .

Public classCogEthernetPort

The CogEthernetPort class supports configuring an Ethernet port present on a device.

Use the CreateEthernetPort  method of CogEthernetPortAccess to factory/initialize instances of the CogEthernetPort class.

Ethernet settings are written to the Comm Card using WriteSettings(CogEthernetPortSettings). These settings are stored in flash memory directly on the Comm Card.

When a VisionPro application first connects to a Comm Card, the Comm Card automatically attempts to bring the Ethernet port interface "UP" using the stored settings. Later, when the VisionPro application exits, the Comm Card will automatically bring the Interface "DOWN", removing the card from the network.

Both the Link (physical connection present) and the Interface (IP settings activated) need to be in the "UP" state for the Ethernet port to participate in an IP network. When the link or interface is "DOWN", the Ethernet port cannot communicate over an IP network.

Use IsLinkUp to see if the Link is in the "UP" state. When the Link is up, the Ethenet port is physically connected to a network and can physically transmit and receive data.

Use IsInterfaceUp to see if the Interface is in the "UP" state. When the Interface is up, the Ethernet port has been activated with IP network settings and can participate in an IP network.

Use WriteSettings(CogEthernetPortSettings) and ReadSettings  to read and write network settings to the Comm Card.

Use BringInterfaceUpAsync  and BringInterfaceDownAsync  to manually bring the interface "UP" and "DOWN" using the settings stored on the Card.

Use ReadActiveSettings  to read the currently active settings while the Interface is "UP". The currently active settings may be different from the settings stored on the card in cases where the card is configured for DHCP, or if something (i.e. PROFINET) changes the active settings without also writing them to the storage location on the card.

Note that CogEthernetPort does not have exclusive control over the Ethernet port hardware. The Ethernet port interface may already be "UP" when a CogEthernetPort is created. Furthermore, the state of the Ethernet interface may report changes and events that were _not_ initiated from user calls into its own properties and methods.

Note also that the lifetime of this object is not related to the state ("UP" or "DOWN") of the Ethernet port interface. Disposing the CogEthernetPort object will not affect the state of actual Ethernet settings running on the card (even though exiting the _process_ will bring the network interface "DOWN").

Public classCogEthernetPortAccess
Instances of CogEthernetPortAccess class are held by the CogCommCard class.

Use CreateEthernetPort(Int32) to factory/initialize instances of the CogEthernetPort.

Public classCogEthernetPortInterfaceUpEventArgs
Event args returned as part of CogEthernetPort InterfaceUp event.
Public classCogEthernetPortSettings
The CogEthernetPortSettings class groups together related IP network settings like IPAddress and SubnetMask. The CogEthernetPortSettings class is used by the CogEthernetPort class to read/write IP network configuration settings from/to Comm Card hardware.
Public classCogFfpAccess
Instances of CogFfpAccess class are held by the CogCommCard comm card class.

CogFfpAccess is used to factory/initialize instances of the factory floor protocols running on the comm card by calling CreateNetworkDataModel(CogFfpProtocolConstants).

The Network Data Model (NDM) is the way Cognex VisionPro Vision Systems interact with a PLC.

Public classCogNdm
The Network Data Model (NDM) class supports sending and receiving messages between the vision system and a remote device (usually a PLC) over an Ethernet based Factory Floor Protocol (FFP).

The Network Data Model (NDM) is the way Cognex Vision Systems interact with a PLC.

Note: The instance number for the Rockwell Input Assembly is 11 and for the Output Assembly is 21.

Public classCogNdmClearErrorEventArgs
Event args returned as part of Cognex's Network Data Model (NDM) ClearError event.
Public classCogNdmEip

The Network Data Model (NDM) allows Cognex Vision Systems interact with different PLCs and Ethernet based factory floor protocols in a uniform fashion.

The Network Data Model EtherNet/IP class supports sending and receiving messages between the vision system and a Rockwell Control Logix PLC using the EtherNet/IP protocol

Note: The instance number for the Rockwell Input Assembly is 11 and for the Output Assembly is 21.

Public classCogNdmEventArgsBase
Base Class for all event args types used by Cognex's Network Data Model (NDM).
Public classCogNdmInspectionResult
Represents the result of a machine vision inspection.

Construct an instance of CogNdmInspectionResult and fill it with the information about the result of running an inspection.

Pass constructed CogNdmInspectionResult instances to the NotifyInspectionComplete  method.

This sends the inspection result information to the remote device (usually a PLC) using Cognex's Network Data Model (NDM).

Public classCogNdmJobChangeRequestedEventArgs
Event args returned as part of Cognex's Network Data Model (NDM) JobChangeRequested event.
Public classCogNdmNewUserDataEventArgs
Event args returned as part of Cognex's Network Data Model (NDM) NewUserData event.
Public classCogNdmOfflineRequestedEventArgs
Event args returned as part of Cognex's Network Data Model (NDM) OfflineRequested event.
Public classCogNdmProfinet

The Network Data Model (NDM) allows Cognex Vision Systems interact with different PLCs and Ethernet based factory floor protocols in a uniform fashion.

This class is the PROFINET specific implementation of the NDM. There are three members of this class that are specific to PROFINET and are not part of the CogNdm base class. They are:

Public classCogNdmProfinetConfig
Contains settings that are specific to the PROFINET protocol.
Public classCogNdmProfinetConfigChangedEventArgs
Event args returned as part of Cognex's Network Data Model (NDM) ProfinetConfigChanged event.
Public classCogNdmProtocolStatusChangedEventArgs
Event args returned as part of Cognex's Network Data Model (NDM) ProtocolStatusChanged event.
Public classCogNdmSlmp
The Network Data Model (NDM) allows Cognex Vision Systems interact with different PLCs and Ethernet based factory floor protocols in a uniform fashion.

The Network Data Model SeamLess Messaging Protocol (SLMP) class supports sending and receiving messages between a Vision System and a Mitsubishi PLC using the following variants of the SLMP protocol:

  • 1E MC Protocol Frames over TCP/IP (FX series PLCs over Ethernet).
  • 3E SLMP Protocol Frames over TCP/IP (Q and L series PLCs over Ethernet and CC-Link IE field gateways).

Use GetSlmpConfig  and SetSlmpConfig(CogNdmSlmpConfig) to read and write settings which are specific to SLMP communications.

Public classCogNdmSlmpBlockMapping
Contains settings that map a block/section of NDM signals to a specific SLMP protocol device.

The following table describes host the NDM signal table is layed out into 4 seperate blocks specific to SLMP.

The SLMP "ControlBit" signal table/block organizes the single bit NDM signals
sent from the PLC to Vision System. The ControlBit block is 80 bits long.
+----------------+---------+-------+----------+-----------+-----------+------------+-----------+---------+
|                | Bit 7   | Bit 6 | Bit 5    | Bit 4     | Bit 3     | Bit 2      | Bit 1     | Bit 0   |
+----------------+---------+-------+----------+-----------+-----------+------------+-----------+---------+
| 0              | Set     | Clear | Rsvd     | Initiate  | Rsvd      | Rsvd       | Buffer    | Trigger |
|                | Offline | Error |          | Job       |           |            | Results   | Enable  |
|                |         |       |          | Load      |           |            | Enable    |         |
+--------------------------------------------------------------------------------------------------------+
| 1              |                              Rsvd                                                     |
+--------------------------------------------------------------------------------------------------------+
| 2-5            |                              SoftEvent 0-31                                           |
+--------------------------------------------------------------------------------------------------------+
| 6              | Rsvd    | Rsvd  | Rsvd     | Rsvd      | Set User | Clear      | Inspection | Trigger |
|                |         |       |          |           | Data 0   | Exposure   | Results    | Camera  |
|                |         |       |          |           |          | Complete 0 | Ack 0      | 0       |
+--------------------------------------------------------------------------------------------------------+
| 7              | Rsvd    | Rsvd  | Rsvd     | Rsvd      | Set User | Clear      | Inspection | Trigger |
|                |         |       |          |           | Data 1   | Exposure   | Results    | Camera  |
|                |         |       |          |           |          | Complete 1 | Ack 1      | 1       |
+--------------------------------------------------------------------------------------------------------+
| 8              | Rsvd    | Rsvd  | Rsvd     | Rsvd      | Set User | Clear      | Inspection | Trigger |
|                |         |       |          |           | Data 2   | Exposure   | Results    | Camera  |
|                |         |       |          |           |          | Complete 2 | Ack 2      | 2       |
+--------------------------------------------------------------------------------------------------------+
| 9              | Rsvd    | Rsvd  | Rsvd     | Rsvd      | Set User | Clear      | Inspection | Trigger |
|                |         |       |          |           | Data 3   | Exposure   | Results    | Camera  |
|                |         |       |          |           |          | Complete 3 | Ack 3      | 3       |
+--------------------------------------------------------------------------------------------------------+

The SLMP "StatusBit" signal table/block organizes the single bit NDM signals
sent from the Vision System to the PLC.  The StatusBit block is 112 bits long.
+----------------------------------------------------------------------------------------------------------+
¦        ¦ Bit 7     ¦ Bit 6       ¦ Bit 5     ¦ Bit 4       ¦ Bit 3      ¦ Bit 2   ¦ Bit 1    ¦ Bit 0     ¦
+----------------------------------------------------------------------------------------------------------+
¦ 0      ¦ Online    ¦               Offline                 ¦ Rsvd       ¦ Rsvd    ¦ System   ¦ System    ¦
¦        ¦           ¦               Reason                  ¦            ¦         ¦ Busy     ¦ Ready     ¦
+----------------------------------------------------------------------------------------------------------+
¦ 1      ¦ General   ¦ Rsvd        ¦ Job Load  ¦ Rsvd        ¦ Rsvd       ¦ Rsvd    ¦ Rsvd     ¦ Rsvd      ¦
¦        ¦ Fault     ¦             ¦ Completed ¦             ¦            ¦         ¦          ¦           ¦
+----------------------------------------------------------------------------------------------------------+
¦ 2-5    ¦                                  Soft Event Ack 0-31                                            ¦
+----------------------------------------------------------------------------------------------------------+
¦ 6      ¦ Results   ¦ Inspection  ¦ Results   ¦ Inspection  ¦ Exposure   ¦ Acq     ¦ Trigger  ¦ Trigger   ¦
¦        ¦ Buffer    ¦ Passed 0    ¦ Valid 0   ¦ Completed 0 ¦ Complete 0 ¦ Error 0 ¦ Ack      ¦ Ready     ¦
¦        ¦ Overrun 0 ¦             ¦           ¦             ¦            ¦         ¦ Camera 0 ¦ Camera 0  ¦
+----------------------------------------------------------------------------------------------------------+
¦ 7      ¦ Rsvd      ¦ Rsvd        ¦ Rsvd      ¦ Rsvd        ¦ Rsvd       ¦ Rsvd    ¦ Rsvd     ¦ Set       ¦
¦        ¦           ¦             ¦           ¦             ¦            ¦         ¦          ¦ UserData  ¦
¦        ¦           ¦             ¦           ¦             ¦            ¦         ¦          ¦ Ack 0     ¦
+----------------------------------------------------------------------------------------------------------+
¦ 8      ¦ Results   ¦ Inspection  ¦ Results   ¦ Inspection  ¦ Exposure   ¦ Acq     ¦ Trigger  ¦ Trigger   ¦
¦        ¦ Buffer    ¦ Passed 1    ¦ Valid 1   ¦ Completed 1 ¦ Complete 1 ¦ Error 1 ¦ Ack      ¦ Ready     ¦
¦        ¦ Overrun 1 ¦             ¦           ¦             ¦            ¦         ¦ Camera 1 ¦ Camera 1  ¦
+----------------------------------------------------------------------------------------------------------+
¦ 9      ¦ Rsvd      ¦ Rsvd        ¦ Rsvd      ¦ Rsvd        ¦ Rsvd       ¦ Rsvd    ¦ Rsvd     ¦ Set       ¦
¦        ¦           ¦             ¦           ¦             ¦            ¦         ¦          ¦ UserData  ¦
¦        ¦           ¦             ¦           ¦             ¦            ¦         ¦          ¦ Ack 1     ¦
+----------------------------------------------------------------------------------------------------------+
¦ 10     ¦ Results   ¦ Inspection  ¦ Results   ¦ Inspection  ¦ Exposure   ¦ Acq     ¦ Trigger  ¦ Trigger   ¦
¦        ¦ Buffer    ¦ Passed 2    ¦ Valid 2   ¦ Completed 2 ¦ Complete 2 ¦ Error 2 ¦ Ack      ¦ Ready     ¦
¦        ¦ Overrun 2 ¦             ¦           ¦             ¦            ¦         ¦ Camera 2 ¦ Camera 2  ¦
+----------------------------------------------------------------------------------------------------------+
¦ 11     ¦ Rsvd      ¦ Rsvd        ¦ Rsvd      ¦ Rsvd        ¦ Rsvd       ¦ Rsvd    ¦ Rsvd     ¦ Set       ¦
¦        ¦           ¦             ¦           ¦             ¦            ¦         ¦          ¦ UserData  ¦
¦        ¦           ¦             ¦           ¦             ¦            ¦         ¦          ¦ Ack 2     ¦
+----------------------------------------------------------------------------------------------------------+
¦ 12     ¦ Results   ¦ Inspection  ¦ Results   ¦ Inspection  ¦ Exposure   ¦ Acq     ¦ Trigger  ¦ Trigger   ¦
¦        ¦ Buffer    ¦ Passed 3    ¦ Valid 3   ¦ Completed 3 ¦ Complete 3 ¦ Error 3 ¦ Ack      ¦ Ready     ¦
¦        ¦ Overrun 3 ¦             ¦           ¦             ¦            ¦         ¦ Camera 3 ¦ Camera 3  ¦
+----------------------------------------------------------------------------------------------------------+
¦ 13     ¦ Rsvd      ¦ Rsvd        ¦ Rsvd      ¦ Rsvd        ¦ Rsvd       ¦ Rsvd    ¦ Rsvd     ¦ Set       ¦
¦        ¦           ¦             ¦           ¦             ¦            ¦         ¦          ¦ UserData  ¦
¦        ¦           ¦             ¦           ¦             ¦            ¦         ¦          ¦ Ack 3     ¦
+----------------------------------------------------------------------------------------------------------+

The SLMP "StatusWord" signal table/block organizes the word length signals sent from the Vision System to the PLC.
The size of the StatusWord block can vary depending on the size of the inspection results section.
+----------------------------------------------+
¦        ¦             16Bit Word              ¦
+----------------------------------------------+
¦ 0      ¦        Current Job ID               ¦
+----------------------------------------------+
¦ 1      ¦        Error ID                     ¦
+----------------------------------------------+
¦ 2      ¦        Acquisition ID 0             ¦
+----------------------------------------------+
¦ 3      ¦        Inspected Image ID 0         ¦
+----------------------------------------------+
¦ 4      ¦        Inspection Result Code 0     ¦
+----------------------------------------------+
¦ 5      ¦        Acquisition ID 1             ¦
+----------------------------------------------+
¦ 6      ¦        Inspected Image ID 1         ¦
+----------------------------------------------+
¦ 7      ¦        Inspection Result Code 1     ¦
+----------------------------------------------+
¦ 8      ¦        Acquisition ID 2             ¦
+----------------------------------------------+
¦ 9      ¦        Inspected Image ID 2         ¦
+----------------------------------------------+
¦ 10     ¦        Inspection Result Code 2     ¦
+----------------------------------------------+
¦ 11     ¦        Acquisition ID 3             ¦
+----------------------------------------------+
¦ 12     ¦        Inspected Image ID 3         ¦
+----------------------------------------------+
¦ 13     ¦        Inspection Result Code 3     ¦
+----------------------------------------------+
¦ 14-960 ¦        Inspection Results           ¦
+----------------------------------------------+

The SLMP "ControlWord" signal table/block organizes the word length signals sent from the PLC to the Vision System.
The size of the ControlWord block can vary depending on the size of the user data section.
+----------------------------------------------+
¦        ¦             16Bit Word              ¦
+----------------------------------------------+
¦ 0      ¦         Job Load ID                 ¦
+----------------------------------------------+
¦ 1-960  ¦         User Data                   ¦
+----------------------------------------------+

You can use CogNdmSlmpSignalBlockConstants and CogNdmSlmpDeviceConstants to map blocks of NDM signals to
SLMP devices with the CogNdmSlmpBlockMappingCollection class.

The following table describes the SLMP memory block addresses supported on the Q, L, and FX PLCs:

+-------------------------------+--------+----------------+----------------------------------+-----+----+
|          Device Name          | Prefix | Bit/Word based |      Address Representation      | Q/L | FX |
+-------------------------------+--------+----------------+----------------------------------+-----+----+
| Input Relay                   | X      | Bit            | Hex(Q/L Series) Octal(FX series) | X   | X  |
| Output Relay                  | Y      | Bit            | Hex(Q/L Series) Octal(FX series) | X   | X  |
| Internal Relay                | M      | Bit            | Decimal                          | X   | X  |
| Latch Relay                   | L      | Bit            | Decimal                          | X   | -  |
| Annunciator                   | F      | Bit            | Decimal                          | X   | -  |
| Link Relay                    | B      | Bit            | Hex                              | X   | -  |
| State Relay                   | S      | Bit            | Decimal                          | -   | X  |
| Data Register                 | D      | Word           | Decimal                          | X   | X  |
| Link Register                 | W      | Word           | Hex                              | X   | -  |
| File Register                 | R      | Word           | Decimal                          | X   | X  |
| File Register Multiple Blocks | ZR     | Word           | Hex                              | X   | -  |
| Timer                         | TN     | Word           | Decimal                          | X   | X  |
| Counter                       | CN     | Word           | Decimal                          | X   | X  |
+-------------------------------+--------+----------------+----------------------------------+-----+----+

The most commonly used devices used to communicate vision data to a PLC, are the M (Internal Relay) and
D (Data Register) types.
Public classCogNdmSlmpBlockMappingCollection
A collection of CogNdmSlmpBlockMapping used to map blocks of the NDM signal table to SLMP devices.
Public classCogNdmSlmpConfig
Contains settings that are specific to the SLMP protocol.
Public classCogNdmTriggerAcquisitionDisabledErrorEventArgs
Event args returned as part of Cognex's Network Data Model (NDM) TriggerAcquisitionDisabledError event.
Public classCogNdmTriggerAcquisitionEventArgs
Event args returned as part of Cognex's Network Data Model (NDM) TriggerAcquisition event.
Public classCogNdmTriggerAcquisitionNotReadyErrorEventArgs
Event args returned as part of Cognex's Network Data Model (NDM) TriggerAcquisitionNotReadyError event.
Public classCogNdmTriggerAcquisitionStopEventArgs
Event args returned as part of Cognex's Network Data Model (NDM) TriggerAcquisitionStop event.
Public classCogNdmTriggerSoftEventEventArgs
Event args returned as part of Cognex's Network Data Model (NDM) TriggerSoftEvent event.
Public classCogNdmTriggerSoftEventOffEventArgs
Event args returned as part of Cognex's Network Data Model (NDM) TriggerSoftEventOff event.
Public classCogNdmUsedAcquisitionID
CogNdmUsedAcquisitionID uniquely identifies an acquired image used in an inspection.

The vision system must supply the acquisition IDs of the images used when constructing a CogNdmInspectionResult. This information is passed to the remote device and enables the remote device to track the progress of the vision system.

Public classCogNdmUsedAcquisitionIDCollection
A collection of CogNdmUsedAcquisitionID used to track which images were used to produce a particular inspection result.

The vision system must supply the acquisition IDs of the images used when constructing a CogNdmInspectionResult. This information is passed to the remote device and enables the remote device to track the progress of the vision system.

Public classCogPrio
CogPrio is used to configure and interact with the precision I/O event system.
Public classCogPrioEvent
Class which represents a precision I/O event.
Public classCogPrioEventArgs
Event args for precision I/O events.
Public classCogPrioEventCauseLine
Class which represents a line transition which causes a precision I/O event.

Construct and add instances of this class to a precision I/O event's causes collection to cause the precision I/O event to occur when a particular I/O line transitions.

Public classCogPrioEventCauseLineCollection
A collection of CogPrioEventCauseLine precision I/O event causes.
Public classCogPrioEventCauseNdm
Represents a network data model (NDM) signal transition which causes a precision I/O event.

Construct and add instances of this class to a precision I/O event's cause collection to cause the precision I/O event to occur when a particular signal in the factory floor protocol assembly layout transitions.

These events will occur directly on the Comm Card without host operating system intervention.

Public classCogPrioEventCauseNdmCollection
A collection of CogPrioEventCauseNdm precision I/O event causes.
Public classCogPrioEventCollection
A collection of CogPrioEvent
Public classCogPrioEventResponseLine
Class which represents an automatic I/O line transition in response to a precision I/O event.

Construct and add instances of this class to a precision I/O event's response collection to cause an automatic I/O line transition in response to a precision I/O event.

Public classCogPrioEventResponseLineCollection
A collection of CogPrioEventResponseLine precision I/O event responses.
Public classCogPrioScheduledEventToken
Token returned when a precision I/O event is manually scheduled.
Public classCogPrioState
Represents the state of a precision I/O interface at a particular moment in time.

Note: Once a state object is read/created its contained values do not change. To get the current values you must call ReadState() again.

Delegates

  DelegateDescription
Public delegateCogCardStatusEventHandler
Event handler for CardStatus event.
Public delegateCogCardStatusUnmanagedCallbackDelegate
Delegate type which is marshaled to an unmanaged function pointer and passed to the module error call back.
Public delegateCogEthernetMarshalledCallbackDelegate
Delegate type which is marshaled to an unmanaged function pointer and passed to the ffp module call back.
Public delegateCogEthernetPortInterfaceUpEventHandler
Event handler for InterfaceUp event.
Public delegateCogFfpUnmanagedCallbackDelegate
Delegate type which is marshaled to an unmanaged function pointer and passed to the ffp module call back.
Public delegateCogNdmClearErrorEventHandler
Event handler for ClearError event.
Public delegateCogNdmJobChangeRequestedEventHandler
Event handler for JobChangeRequested event.
Public delegateCogNdmNewUserDataEventHandler
Event handler for NewUserData event.
Public delegateCogNdmOfflineRequestedEventHandler
Event handler for OfflineRequested event.
Public delegateCogNdmProfinetConfigChangedEventHandler
Event handler for ProfinetConfigChanged event.
Public delegateCogNdmProtocolStatusChangedEventHandler
Event handler for ProtocolStatusChanged event.
Public delegateCogNdmTriggerAcquisitionDisabledErrorEventHandler
Event handler for TriggerAcquisitionDisabledError event.
Public delegateCogNdmTriggerAcquisitionEventHandler
Event handler for TriggerAcquisition event.
Public delegateCogNdmTriggerAcquisitionNotReadyErrorEventHandler
Event handler for TriggerAcquisitionNotReadyError event.
Public delegateCogNdmTriggerAcquisitionStopEventHandler
Event handler for TriggerAcquisitionStop event.
Public delegateCogNdmTriggerSoftEventEventHandler
Event handler for TriggerSoftEvent event.
Public delegateCogNdmTriggerSoftEventOffEventHandler
Event handler for TriggerSoftEventOff event.
Public delegateCogPrioEventHandler
Event handler for precision I/O events.
Public delegateCogPrioUnmanagedCallbackDelegate
Delegate type which is marshaled to an unmanaged function pointer and passed to the precision I/O module call back.
Enumerations

  EnumerationDescription
Public enumerationCogCommCardStatusEventConstants
Constants enumerating the possible Comm Card status event values.

Sign up for the CardStatus event and use the use the StatusCode property of the event args to identify which status event code is being reported by the Comm Card.

Refer to the documentation for CogCommCardStatusEventConstants to learn what kinds of status codes are reported by the Comm Card.

Public enumerationCogFfpProtocolConstants
Enumerates the various types of factory floor protocols
Public enumerationCogNdmConnectionStatusConstants
Constants enumerating the status of a factory floor protocol connection.
Public enumerationCogNdmSlmpSignalBlockConstants
Enumerates the NDM signal blocks for SLMP.

The following table describes host the NDM signal table is layed out into 4 seperate blocks specific to SLMP.

The SLMP "ControlBit" signal table/block organizes the single bit NDM signals
sent from the PLC to Vision System. The ControlBit block is 80 bits long.
+----------------+---------+-------+----------+-----------+-----------+------------+-----------+---------+
|                | Bit 7   | Bit 6 | Bit 5    | Bit 4     | Bit 3     | Bit 2      | Bit 1     | Bit 0   |
+----------------+---------+-------+----------+-----------+-----------+------------+-----------+---------+
| 0              | Set     | Clear | Rsvd     | Initiate  | Rsvd      | Rsvd       | Buffer    | Trigger |
|                | Offline | Error |          | Job       |           |            | Results   | Enable  |
|                |         |       |          | Load      |           |            | Enable    |         |
+--------------------------------------------------------------------------------------------------------+
| 1              |                              Rsvd                                                     |
+--------------------------------------------------------------------------------------------------------+
| 2-5            |                              SoftEvent 0-31                                           |
+--------------------------------------------------------------------------------------------------------+
| 6              | Rsvd    | Rsvd  | Rsvd     | Rsvd      | Set User | Clear      | Inspection | Trigger |
|                |         |       |          |           | Data 0   | Exposure   | Results    | Camera  |
|                |         |       |          |           |          | Complete 0 | Ack 0      | 0       |
+--------------------------------------------------------------------------------------------------------+
| 7              | Rsvd    | Rsvd  | Rsvd     | Rsvd      | Set User | Clear      | Inspection | Trigger |
|                |         |       |          |           | Data 1   | Exposure   | Results    | Camera  |
|                |         |       |          |           |          | Complete 1 | Ack 1      | 1       |
+--------------------------------------------------------------------------------------------------------+
| 8              | Rsvd    | Rsvd  | Rsvd     | Rsvd      | Set User | Clear      | Inspection | Trigger |
|                |         |       |          |           | Data 2   | Exposure   | Results    | Camera  |
|                |         |       |          |           |          | Complete 2 | Ack 2      | 2       |
+--------------------------------------------------------------------------------------------------------+
| 9              | Rsvd    | Rsvd  | Rsvd     | Rsvd      | Set User | Clear      | Inspection | Trigger |
|                |         |       |          |           | Data 3   | Exposure   | Results    | Camera  |
|                |         |       |          |           |          | Complete 3 | Ack 3      | 3       |
+--------------------------------------------------------------------------------------------------------+

The SLMP "StatusBit" signal table/block organizes the single bit NDM signals
sent from the Vision System to the PLC.  The StatusBit block is 112 bits long.
+----------------------------------------------------------------------------------------------------------+
¦        ¦ Bit 7     ¦ Bit 6       ¦ Bit 5     ¦ Bit 4       ¦ Bit 3      ¦ Bit 2   ¦ Bit 1    ¦ Bit 0     ¦
+----------------------------------------------------------------------------------------------------------+
¦ 0      ¦ Online    ¦               Offline                 ¦ Rsvd       ¦ Rsvd    ¦ System   ¦ System    ¦
¦        ¦           ¦               Reason                  ¦            ¦         ¦ Busy     ¦ Ready     ¦
+----------------------------------------------------------------------------------------------------------+
¦ 1      ¦ General   ¦ Rsvd        ¦ Job Load  ¦ Rsvd        ¦ Rsvd       ¦ Rsvd    ¦ Rsvd     ¦ Rsvd      ¦
¦        ¦ Fault     ¦             ¦ Completed ¦             ¦            ¦         ¦          ¦           ¦
+----------------------------------------------------------------------------------------------------------+
¦ 2-5    ¦                                  Soft Event Ack 0-31                                            ¦
+----------------------------------------------------------------------------------------------------------+
¦ 6      ¦ Results   ¦ Inspection  ¦ Results   ¦ Inspection  ¦ Exposure   ¦ Acq     ¦ Trigger  ¦ Trigger   ¦
¦        ¦ Buffer    ¦ Passed 0    ¦ Valid 0   ¦ Completed 0 ¦ Complete 0 ¦ Error 0 ¦ Ack      ¦ Ready     ¦
¦        ¦ Overrun 0 ¦             ¦           ¦             ¦            ¦         ¦ Camera 0 ¦ Camera 0  ¦
+----------------------------------------------------------------------------------------------------------+
¦ 7      ¦ Rsvd      ¦ Rsvd        ¦ Rsvd      ¦ Rsvd        ¦ Rsvd       ¦ Rsvd    ¦ Rsvd     ¦ Set       ¦
¦        ¦           ¦             ¦           ¦             ¦            ¦         ¦          ¦ UserData  ¦
¦        ¦           ¦             ¦           ¦             ¦            ¦         ¦          ¦ Ack 0     ¦
+----------------------------------------------------------------------------------------------------------+
¦ 8      ¦ Results   ¦ Inspection  ¦ Results   ¦ Inspection  ¦ Exposure   ¦ Acq     ¦ Trigger  ¦ Trigger   ¦
¦        ¦ Buffer    ¦ Passed 1    ¦ Valid 1   ¦ Completed 1 ¦ Complete 1 ¦ Error 1 ¦ Ack      ¦ Ready     ¦
¦        ¦ Overrun 1 ¦             ¦           ¦             ¦            ¦         ¦ Camera 1 ¦ Camera 1  ¦
+----------------------------------------------------------------------------------------------------------+
¦ 9      ¦ Rsvd      ¦ Rsvd        ¦ Rsvd      ¦ Rsvd        ¦ Rsvd       ¦ Rsvd    ¦ Rsvd     ¦ Set       ¦
¦        ¦           ¦             ¦           ¦             ¦            ¦         ¦          ¦ UserData  ¦
¦        ¦           ¦             ¦           ¦             ¦            ¦         ¦          ¦ Ack 1     ¦
+----------------------------------------------------------------------------------------------------------+
¦ 10     ¦ Results   ¦ Inspection  ¦ Results   ¦ Inspection  ¦ Exposure   ¦ Acq     ¦ Trigger  ¦ Trigger   ¦
¦        ¦ Buffer    ¦ Passed 2    ¦ Valid 2   ¦ Completed 2 ¦ Complete 2 ¦ Error 2 ¦ Ack      ¦ Ready     ¦
¦        ¦ Overrun 2 ¦             ¦           ¦             ¦            ¦         ¦ Camera 2 ¦ Camera 2  ¦
+----------------------------------------------------------------------------------------------------------+
¦ 11     ¦ Rsvd      ¦ Rsvd        ¦ Rsvd      ¦ Rsvd        ¦ Rsvd       ¦ Rsvd    ¦ Rsvd     ¦ Set       ¦
¦        ¦           ¦             ¦           ¦             ¦            ¦         ¦          ¦ UserData  ¦
¦        ¦           ¦             ¦           ¦             ¦            ¦         ¦          ¦ Ack 2     ¦
+----------------------------------------------------------------------------------------------------------+
¦ 12     ¦ Results   ¦ Inspection  ¦ Results   ¦ Inspection  ¦ Exposure   ¦ Acq     ¦ Trigger  ¦ Trigger   ¦
¦        ¦ Buffer    ¦ Passed 3    ¦ Valid 3   ¦ Completed 3 ¦ Complete 3 ¦ Error 3 ¦ Ack      ¦ Ready     ¦
¦        ¦ Overrun 3 ¦             ¦           ¦             ¦            ¦         ¦ Camera 3 ¦ Camera 3  ¦
+----------------------------------------------------------------------------------------------------------+
¦ 13     ¦ Rsvd      ¦ Rsvd        ¦ Rsvd      ¦ Rsvd        ¦ Rsvd       ¦ Rsvd    ¦ Rsvd     ¦ Set       ¦
¦        ¦           ¦             ¦           ¦             ¦            ¦         ¦          ¦ UserData  ¦
¦        ¦           ¦             ¦           ¦             ¦            ¦         ¦          ¦ Ack 3     ¦
+----------------------------------------------------------------------------------------------------------+

The SLMP "StatusWord" signal table/block organizes the word length signals sent from the Vision System to the PLC.
The size of the StatusWord block can vary depending on the size of the inspection results section.
+----------------------------------------------+
¦        ¦             16Bit Word              ¦
+----------------------------------------------+
¦ 0      ¦        Current Job ID               ¦
+----------------------------------------------+
¦ 1      ¦        Error ID                     ¦
+----------------------------------------------+
¦ 2      ¦        Acquisition ID 0             ¦
+----------------------------------------------+
¦ 3      ¦        Inspected Image ID 0         ¦
+----------------------------------------------+
¦ 4      ¦        Inspection Result Code 0     ¦
+----------------------------------------------+
¦ 5      ¦        Acquisition ID 1             ¦
+----------------------------------------------+
¦ 6      ¦        Inspected Image ID 1         ¦
+----------------------------------------------+
¦ 7      ¦        Inspection Result Code 1     ¦
+----------------------------------------------+
¦ 8      ¦        Acquisition ID 2             ¦
+----------------------------------------------+
¦ 9      ¦        Inspected Image ID 2         ¦
+----------------------------------------------+
¦ 10     ¦        Inspection Result Code 2     ¦
+----------------------------------------------+
¦ 11     ¦        Acquisition ID 3             ¦
+----------------------------------------------+
¦ 12     ¦        Inspected Image ID 3         ¦
+----------------------------------------------+
¦ 13     ¦        Inspection Result Code 3     ¦
+----------------------------------------------+
¦ 14-960 ¦        Inspection Results           ¦
+----------------------------------------------+

The SLMP "ControlWord" signal table/block organizes the word length signals sent from the PLC to the Vision System.
The size of the ControlWord block can vary depending on the size of the user data section.
+----------------------------------------------+
¦        ¦             16Bit Word              ¦
+----------------------------------------------+
¦ 0      ¦         Job Load ID                 ¦
+----------------------------------------------+
¦ 1-960  ¦         User Data                   ¦
+----------------------------------------------+

You can use CogNdmSlmpSignalBlockConstants and CogNdmSlmpDeviceConstants to map blocks of NDM signals to
SLMP devices with the CogNdmSlmpBlockMappingCollection class.

The following table describes the SLMP memory block addresses supported on the Q, L, and FX PLCs:

+-------------------------------+--------+----------------+----------------------------------+-----+----+
|          Device Name          | Prefix | Bit/Word based |      Address Representation      | Q/L | FX |
+-------------------------------+--------+----------------+----------------------------------+-----+----+
| Input Relay                   | X      | Bit            | Hex(Q/L Series) Octal(FX series) | X   | X  |
| Output Relay                  | Y      | Bit            | Hex(Q/L Series) Octal(FX series) | X   | X  |
| Internal Relay                | M      | Bit            | Decimal                          | X   | X  |
| Latch Relay                   | L      | Bit            | Decimal                          | X   | -  |
| Annunciator                   | F      | Bit            | Decimal                          | X   | -  |
| Link Relay                    | B      | Bit            | Hex                              | X   | -  |
| State Relay                   | S      | Bit            | Decimal                          | -   | X  |
| Data Register                 | D      | Word           | Decimal                          | X   | X  |
| Link Register                 | W      | Word           | Hex                              | X   | -  |
| File Register                 | R      | Word           | Decimal                          | X   | X  |
| File Register Multiple Blocks | ZR     | Word           | Hex                              | X   | -  |
| Timer                         | TN     | Word           | Decimal                          | X   | X  |
| Counter                       | CN     | Word           | Decimal                          | X   | X  |
+-------------------------------+--------+----------------+----------------------------------+-----+----+

The most commonly used devices used to communicate vision data to a PLC, are the M (Internal Relay) and
D (Data Register) types.
Public enumerationCogNdmSoftEventResponseCodeConstants
Constants enumerating possible response codes from TriggerSoftEvent.
Public enumerationCogNdmStoppedCodeConstants
Constants enumerating the reasons a vision system is stopped.
Public enumerationCogNdmTriggerAcquisitionResponseCodeConstants
Constants enumerating possible response codes from TriggerAcquisition.
Public enumerationCogPrioBankConstants
Known I/O banks
Public enumerationCogPrioBankTypeConstants
The types of precision I/O banks
Public enumerationCogPrioDelayTypeConstants
Delay types that may be applied to an output line action.
Public enumerationCogPrioEventScheduleTypeConstants
Scheduling options for I/O events.
Public enumerationCogPrioLineTransitionConstants
Types of I/O line edge transitions.
Public enumerationCogPrioNdmSignalConstants
Network Data Model (NDM) signals that can be used to cause precision i/o events directly without host operating system intervention.
Public enumerationCogPrioOutputLineValueConstants
Actions that may be applied to an output line.
Public enumerationCogSlmpDeviceConstants
Enumerates SLMP devices.
+-------------------------------+--------+----------------+----------------------------------+-----+----+
|          Device Name          | Prefix | Bit/Word based |      Address Representation      | Q/L | FX |
+-------------------------------+--------+----------------+----------------------------------+-----+----+
| Input Relay                   | X      | Bit            | Hex(Q/L Series) Octal(FX series) | X   | X  |
| Output Relay                  | Y      | Bit            | Hex(Q/L Series) Octal(FX series) | X   | X  |
| Internal Relay                | M      | Bit            | Decimal                          | X   | X  |
| Latch Relay                   | L      | Bit            | Decimal                          | X   | -  |
| Annunciator                   | F      | Bit            | Decimal                          | X   | -  |
| Link Relay                    | B      | Bit            | Hex                              | X   | -  |
| State Relay                   | S      | Bit            | Decimal                          | -   | X  |
| Data Register                 | D      | Word           | Decimal                          | X   | X  |
| Link Register                 | W      | Word           | Hex                              | X   | -  |
| File Register                 | R      | Word           | Decimal                          | X   | X  |
| File Register Multiple Blocks | ZR     | Word           | Hex                              | X   | -  |
| Timer                         | TN     | Word           | Decimal                          | X   | X  |
| Counter                       | CN     | Word           | Decimal                          | X   | X  |
+-------------------------------+--------+----------------+----------------------------------+-----+----+
Public enumerationCogSlmpMessageFormatConstants
Enumerates SLMP message formats
Public enumerationCogSlmpRemoteStationDestModuleConstants
Enumerates SLMP remote station destintation modules