PROFINET IO Module Reference Table - In-Sight 4.x.x Firmware

This topic covers the PROFINET IO Module reference table and the signals contained in the table for In-Sight vision systems running In-Sight 4.x.x firmware, in conjunction with the GSD file, version 2.3. For a complete list of models and supported firmware versions, see Firmware Versions.

PROFINET IO Module Reference Table and Module Descriptions

PROFINET IO Module Reference Table - In-Sight Firmware Version 4.10.x

Module ID Byte Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Acquisition Control 0x101 0 Set Offline Reserved Trigger Trigger Enable

Acquisition Status 0x201 0 Online Offline Reason Missed Acq Acquiring Trigger Ack Trigger Ready
1..2 Acquisition ID

Inspection Control 0x102 0 Reserved Execute Command Set User Data Inspection Results Ack Buffer Results Enable

Inspection Status 0x202 0 Set User Data Ack Command Failed Command Complete Command Executing Results Valid Results Buffer Overrun Inspection Completed Inspecting
1 Reserved TestRun Ready Job Pass

Job Control Input

0x103 (default)

0

Job Load ID (8-bit) (default)

Note: TestRun is not supported on the 8-bit module. By default, the 8-bit module will be loaded. In order to use TestRun, the 8-bit module must be manually removed and replaced with the 16-bit module.
Command Control Input

0x107

0..1

Command (16-bit)

This value indicates the TestRun sequence to execute or the ID number (1-999) of the job to load when the Execute Command bit is set by the PLC.

0x1007 = Execute TestRun

0x0000 – 0x03E7 = Job IDs

Job Control Output

0x103 (default)

0 Current Job ID (8-bit) (default)
Command Control Output 0x107 0..1 Current Job ID (16-bit)

Soft Event Control Input 0x105 0 Soft Event 7 Soft Event 6 Soft Event 5 Soft Event 4 Soft Event 3 Soft Event 2 Soft Event 1 Soft Event 0

User Data

0x301(16)

0x302(32)

0x303(64)

0x304(128)

0x305(254)

0.. User Data

Inspection Results

0x401(16)

0x402(32)

0x403(64)

0x404(128)

0x405(250)

0..1 Inspection ID
2..3 Inspection Result Code
4.. Inspection Results

PROFINET IO Module Reference Table - In-Sight Firmware Version 4.9.x and earlier

Module ID Byte Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Acquisition Control 0x101 0 Set Offline Reserved Trigger Trigger Enable

Acquisition Status 0x201 0 Online Offline Reason Missed Acq Acquiring Trigger Ack Trigger Ready
1..2 Acquisition ID

Inspection Control 0x102 0 Reserved Set User Data Inspection Results Ack Buffer Results Enable

Inspection Status 0x202 0 Set User Data Ack Job Load Failed Job Load Complete Job Loading Results Valid Results Buffer Overrun Inspection Completed Inspecting
1 Reserved Job Pass

Job Control Input 0x103 0 Job Load ID (8-bit)

Job Control Output 0x103 0 Current Job ID (8-bit)

Soft Event Control Input 0x105 0 Soft Event 7 Soft Event 6 Soft Event 5 Soft Event 4 Soft Event 3 Soft Event 2 Soft Event 1 Soft Event 0

User Data

0x301(16)

0x302(32)

0x303(64)

0x304(128)

0x305(254)

0.. User Data

Inspection Results

0x401(16)

0x402(32)

0x403(64)

0x404(128)

0x405(250)

0..1 Inspection ID
2..3 Inspection Result Code
4.. Inspection Results

Acquisition Control Module

The Acquisition Control Module and Acquisition Status Module bits allow the PLC to trigger an acquisition on the In-Sight vision system, determine when an acquisition has completed and place the vision system into an Offline status where it will no longer accept acquisition triggers.

Controls image acquisition and Online/Offline status for In-Sight vision systems.

Bit Name Description

0

Trigger Enable

This field is set to enable triggering via the Trigger bit. Clear this bit to disable the network triggering mechanism.

1

Trigger

Setting this bit triggers an acquisition when the following conditions are met:

  • The In-Sight vision system is Online.
  • The Trigger Enable bit is set.
  • The AcquireImage function's Trigger parameter is set to Network or External.

2 - 6

Reserved

Unused.

7

Set Offline

When this bit is set, the In-Sight vision system is taken Offline until the bit is cleared again.

Acquisition Status Module

Indicates the image acquisition and Online/Offline status for In-Sight vision systems.

Bit Name Description

0

Trigger Ready

Indicates when an In-Sight vision system can accept a new trigger. This field is true when the vision system is Online, the TriggerEnable bit is set and the vision system is not currently acquiring an image.

1

Trigger Ack

Indicates when an In-Sight vision system has been triggered by the Trigger bit being set; this bit will stay set until the Trigger bit is cleared.

2

Acquiring

Set when an In-Sight vision system is currently acquiring an image; set by either the Trigger bit being set or by an external trigger.

3

Missed Ack

Set when an In-Sight vision system misses an acquisition trigger; cleared when an acquisition is successfully triggered.

4 - 6

Offline Reason

This field is a 3-bit field used to identify the cause of why an In-Sight vision system is Offline:

Offline Reason Name Description

0

Online

The vision system is Online.

1

Programming

The vision system's job is being modified.

2

Discrete Offline

A discrete signal is holding the vision system Offline.

3

Comm. Offline

A communications protocol is holding the vision system Offline.

Note: It is possible to have multiple devices holding the In-Sight vision system Offline. In this scenario, this field will return the channel with the lowest reason code.

7

Online

This bit is set when the In-Sight vision system is Online, and cleared when the vision system is Offline. When the vision system is Offline, examine the Offline Reason field to determine the reason.

8 - 23

Acquisition ID

This ID increments on the completion of every acquisition regardless of the trigger source, and can be used to synchronize an Acquisition with its Inspection Results.

Typical Acquisition Sequence

Note: If the In-Sight vision system will be configured to accept an acquisition trigger from a PLC/Motion Controller via a Native Mode command, Cognex recommends that the SetEvent and Wait function be utilized, with the Event code set to 8 (SW8). This will ensure that vision system waits for both the acquisition and inspection to be completed before sending a "complete" response back to the PLC/Motion Controller, and that previous inspection results are not being sent to the PLC/Motion Controller. The "complete" response from the vision system can also then be used to create conditional PLC logic that sends a read request for the inspection results. For more information, see Set Event and Wait.

An In-Sight vision system can be triggered by directly manipulating the Trigger Enable and Trigger bits in the Acquisition Control Module, or by monitoring the Trigger Ready, Trigger Ack, Acquiring and Missed Acq bits in the Acquisition Status Module.

On initial start-up, the Trigger Enable bit will be False, and must be set to True to enable triggering. When the vision system is ready to accept triggers, the Trigger Ready bit in the Acquisition Status Module will be set to True.

While the Trigger Enable and Trigger Ready bits are True, each time the vision system sees the Trigger bit change from 0 to 1, an image acquisition will be initiated. The Trigger bit should be held in the new state until that same state value has been seen in the Trigger Ack bit of the Acquisition Status Module (which is a necessary handshake to guarantee that the change has been seen by the vision system).

During an acquisition, the Trigger Ready bit in the Acquisition Status Module will be cleared and the Acquiring bit will be set to True. When the acquisition is completed, the Acquiring bit will be cleared and the Trigger Ready bit will again be set to True once the vision system is ready to begin a new image acquisition.

To force a reset of the trigger mechanism, set the Trigger Enable bit to False until the Acquisition Status Module is 0. Then the Trigger Enable bit can be set to True and acquisitions re-enabled.

Inspection Control Module

The Inspection Status Module and Inspection Control Module modules allow the PLC to monitor the vision processing portion of the In-Sight vision system to determine when new results are available, and to request that the vision system queue any new results.

Controls job execution and handling inspection results.

Bit Name Description

0

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 eight inspections are held in the vision system's buffer. The In-Sight 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.

1

Inspection Results Ack

When the Buffer Results Enable bit is set, the Inspection Results Ack bit acknowledges that the PLC has received the InspectionID, Inspection Result and Inspection Result 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 ResultsValid bit if the buffer is not empty.

2 Set User Data

The rising edge of this signal will latch the User Data Holding Buffer into the User Data field to give the vision system access to the user data. To guarantee that the vision system received the command, the bit should be held high in the PLC until the Set User Data Ack bit is asserted in the Inspection Status Module. The User Data Holding Buffer can be written to by using the Profinet Write Record command. If the Set User Data signal is asserted while the User Data Module is configured on the Profinet connection, a module alarm will be asserted.

3 Execute Command (4.10.x)

When using TestRun, the rising edge of this signal will execute command to start the TestRun. Signal must be held high until Command Completed signal is toggled. The falling edge of this signal (prior to Command Complete) is interpreted as an abort request.

Note: TestRun is supported only on the 16-bit Job Control module. If the 8-bit module is used and the Execute Command signal executes command to start the TestRun, Command Failed signal fires and the Command Complete signal is toggled to indicate the error.
Reserved (4.9.x and earlier) Unused.

4 - 7

Reserved

Unused.

Inspection Status Module

Indicates the status of job execution and inspection results.

Bit Name Description

0

Inspecting

This bit is set when an In-Sight vision system is running a job.

1

Inspection Completed

This bit is toggled upon the completion of an inspection. Set when the Inspection Count, Inspection Result Code, Inspection Results and/or Job Pass bits are valid.

2

Results Buffer Overrun

This field is set when the Buffer Results Enable bit is set and the In-Sight vision system has discarded a set of inspection results because the PLC has not acknowledged the results, and in turn set the InspectionResults Ack bit. Up to eight inspections are held in the vision system's buffer; therefore, this bit is set when the ninth inspection is added to the buffer, and will overwrite the eighth inspection in the buffer. The bit is not cleared until a valid inspection occurs and a previous inspection is not overwritten.

3

Results Valid

Set when the Inspection Count, Inspection Result Code and Inspection Results fields are valid.

4

Command Executing (4.10.x)

This bit is set to 1 when TestRun or Job Load is started. Cleared when TestRun execution completes. The Command Completed and Command Failed bits will be set prior to the falling edge of this bit.

Note: When the 8-bit module is used, the job load operation executes as soon as the JobID is written to the vision system. When the 16-bit module is used, the job load operation will not execute until the Execute Command is signaled.

Job Loading (4.9.x and earlier)

This bit is set when loading a new job.

Note: This bit only functions when the job load was initiated by the PLC using PROFINET.

5

Command Completed (4.10.x)

This bit is toggled to indicate that the TestRun execution or Job Load has completed.

Note: An attempt to execute TestRun on a Job without a TestRun configuration will result in the Command Completed being toggled and the Command Failed being set. TestRun should not be executed if TestRun Ready is not set.

Job Load Complete (4.9.x and earlier)

This bit is toggled upon the completion of a job load operation.

Note: This bit only functions when the job load was initiated by the PLC using PROFINET.

6

Command Failed (4.10.x) This bit is set to 1 to indicate that the TestRun execution or Job Load has failed to run to completion. It is cleared when a new TestRun sequence is executed or a new job is loaded by the PLC/HMI. If the job is changed through In-Sight Explorer, this bit does not change.

Job Load Failed (4.9.x and earlier)

This bit is set when the last job load attempt failed. It is cleared the next time a job is successfully loaded.

Note: This bit only functions when the job load was initiated by the PLC using PROFINET.

7

Set User Data Ack

This bit is set to acknowledge completion of the Set User Data command.

8 Job Pass This bit is set if the most recent job passed as configured in the Job Pass/Fail Cell Setup dialog. This bit is cleared if the job did not pass.

The behavior of the Job Pass bit will depend on whether or not results buffering is disabled or enabled:

Buffering Is DisabledBuffering Is Enabled
  • Set when an inspection is completed and the Job Pass/Fail cell indicates pass; otherwise it remains cleared. For more information, see Job Pass/Fail Cell Setup Dialog.
  • The Job Pass bit will be valid prior to toggling the Inspection Completed bit.
  • Set when new results are placed in the InspectionResults attribute and the Job Pass/Fail cell indicated pass for that result set; otherwise it remains cleared. The state will not change until the results are acknowledged by setting the InspectionResultsAck attribute to True, at which time the bit will be cleared.
  • The Job Pass bit will be valid prior to the Results Valid bit being set.
9 TestRun Ready (4.10.x)

This bit is set to 1 when the Vision System has a valid TestRun configuration. This signal is cleared while TestRun executes (regardless of the TestRun initiator) and returns to 1 after execution completes.

Note: This bit is signaled regardless of whether the vision system is online or offline.
Reserved(4.9.x and earlier) Unused.
10 - 15 Reserved Unused.

Inspection/Result Sequence

When an image is acquired by an In-Sight vision system, the image is placed in a queue for processing. While the vision system is processing the image, the Inspecting bit of the Inspection Status Module is set. When the vision system has finished processing the image, the Inspecting bit is cleared and the Inspection Completed bit is toggled.

The Buffer Results Enable bit of the Inspection Control Module determines how inspection results are handled by the vision system. If the Buffer Results Enable bit is set to False, then the inspection results are immediately placed into the Inspection Results Module and the Results Valid bit is set to True. If the Buffer Results Enable bit is set to True, the new results are queued. The PLC sets the Inspection Results Ack bit and the Results Valid bit is True, if there are still results to acknowledge. After the Results Valid bit is cleared, the PLC should set the Inspection Results Ack bit back to False to allow the queued results to be placed into the Inspection Results Module (this is a necessary handshake to ensure that the results are received by the PLC).

Inspection Status Module Behavior

Bit Bit Name Results If Buffering Is Disabled Results If Buffering Is Enabled
0 Inspecting

This bit is set when an In-Sight vision system is running a job.

This bit is set when an In-Sight vision system is running a job.

1 Inspection Complete

Toggled on completion of an inspection.

Toggled on completion of an inspection.

2 Results Buffer Overflow Remains set to 0. Set when the inspection results could not be queued because the PLC failed to acknowledge the previous results, causing the results buffer to overflow. Cleared when an inspection result is successfully queued.
3 Results Valid

Set when new results are placed in the Inspection Results Module.Stays set until the results are acknowledged by setting the Inspection Results Ack bit to True.

Set when new results are placed in the Inspection Results Module. Stays set until the results are acknowledged by setting the Inspection Results Ack bit to True.

Results Buffering

A queue for inspection results may be enabled. If enabled, this allows a finite number of inspection data results to be queued until the PLC has time to read them. This is a useful feature for smoothing out data flows if different parts of the system (including the external PLC) slow down for short periods of time.

In general, if inspections are occurring faster than the results can be sent out, the primary difference between buffering and not buffering is determining which results get discarded. If buffering is not enabled, the most recent results are kept, and the earlier result that the PLC was unable to read is lost. Essentially, the most recent result will simply overwrite the earlier result. If buffering is enabled (and the queue becomes full), the most recent results are discarded until room becomes available in the results queue.

Job Control Input/Output Module

The input byte of this module indicates the current job ID (the default Job ID prefix is 0, indicating that the job will not be changed) of the In-Sight vision system, or 255 if the current job has no ID. Setting the output byte while the In-Sight vision system is Offline will cause the job with the same ID to be loaded. Valid job ID numbers are 1 through 254.

Note:
  • Do not use a Job ID prefix of 255. When a job without a Job ID prefix is loaded via In-Sight Explorer, an input byte of 255 will be returned to the PLC. Therefore, it would be unclear if a job with a Job ID prefix of 255 is loaded, or a job without a Job ID prefix is loaded.

  • For In-Sight vision systems running In-Sight 4.10.x firmware, a 16-bit Job Control Input/Output Module is added to support TestRun. By default, the 8-bit module will be loaded. In order to use TestRun, the 8-bit module must be manually removed and replaced with the 16-bit module.

  • When using the 16-bit Job Control Module, valid job ID numbers are from 0 through 999, excluding 255.

Soft Event Control Module

Allows Spreadsheet soft events to be triggered. Setting any of these bits causes the associated soft event in the Spreadsheet to be triggered.

Note: In job deployment environments where In-Sight Explorer or the VisionView application are monitoring inspections, if the job depends on a Soft Event (e.g., configured as a Timer function) to trigger a spreadsheet event, it may cause the inspection of an image to be delayed if it is triggered shortly before the acquisition cycle completes. If the job file is large (i.e., it contains many Vision Tools, such as Pattern Match, Flaw Detection or InspectEdge tools, in addition to other job logic), the update required by In-Sight Explorer or VisionView may prevent an image from being inspected until the display update is queued. For applications that require exact timing (e.g., measured in the 10s of milliseconds), this update might delay the determination of pass/fail results and the transmission of results to the next station (e.g., a PLC or motion controller) in the inspection process. To avoid delayed inspections in these application environments, Cognex recommends Soft Events not be used.

User Data Module

This data can be read from the In-Sight spreadsheet, using the ReadProfinetBuffer function.

Inspection Results Module

This is the data that is written from the In-Sight spreadsheet, using the WriteProfinetBuffer function. If the Buffer Results Enable bit of the Inspection Control Module is set, then the inspection results will remain unchanged until acknowledged by pulsing the InspectionResults Ack bit.

Byte Name Description

0 - 1

Inspection ID

The acquisition ID associated with this set of results.

2 - 3

Inspection Result Code (4.10.x)

Indicates the result of the latest TestRun execution. If all tests pass, the bit 0 will be set. If one or more tests do not pass, or if there is a problem with the Setup or Cleanup during the TestRun, the bit 0 will be cleared.

  • This field is only valid following a successful TestRun.
  • The results in this field can become invalidated if a Job without a TestRun is loaded, another TestRun job is executed, a TestRun is in progress, TestRun or job load has failed or a TestRun is aborted.
  • If the camera is currently set to Online, the content of this field is driven by the spreadsheet and does not have any TestRun meaning.

Inspection Result Code (4.9.x and earlier)

Currently unused; always 0.

4 - 253

Inspection Results

Inspection result data written from the spreadsheet, using the WriteProfinetBuffer function.

PROFINET Timing Diagrams - With Buffering and Without Buffering

The following timing diagrams help illustrate the relationships between the acquisition control, inspection control, acquisition status, inspection status and inspection results.

PROFINET Acquisition and Inspection Timing Diagram without Buffering Enabled

PROFINET Acquisition and Inspection Timing Diagram with Buffering Enabled