Y_CO_ExplicitMessage
This function block will write/read a block of data to/from an Ethernet/IP Target (Adapter) device via Explicit Messaging.
Parameters
| * | Parameter | Data Type | Description | Default |
|---|---|---|---|---|
| VAR_IN_OUT | ||||
| V | SourceElement | ExplicitData | When writing a message to the Target (Adapter), SourceElement is the data (as an array of bytes) that the Scanner (Controller) will send to the Target. | |
| V | Destination | ExplicitData | When reading a message from the Target (Adapter), the Destination Element is the data (as an array of bytes) where the Scanner (Controller) will copy the data from the Target. | |
| VAR_INPUT | ||||
| B | Execute | BOOL | Upon the rising edge, all other function block inputs are read and the function is initiated. To modify an input, change the value and re-trigger the execute input. | FALSE |
| V | AdapterIPAddress | STRING | IP Address of the Target device. | STRING#'' |
| V | ServiceCode | BYTE | Code for the particular service type as defined for a CIP message. The value can be obtained from the Target's (Adapter's) documentation. | BYTE#0 |
| V | ServiceClass | BYTE | Class parameter of a CIP Generic message. The value can be obtained from the Target's (Adapter's) documentation. | BYTE#0 |
| V | Instance | BYTE | Instance parameter of a CIP Generic message. The value can be obtained from the Target's (Adapter's) documentation. | BYTE#0 |
| V | Attribute | BYTE | Attribute parameter of a CIP Generic message. The value can be obtained from the Target's (Adapter's) documentation. | BYTE#0 |
| V | SourceLength | INT | The number of bytes to be written to the Target. This is the actual data size required, not the full size of the SourceData DataType. | BYTE#0 |
| VAR_OUTPUT | ||||
| B | Done | BOOL | The done bit is set high when the last packet of the message is successfully transferred. | |
| B | Busy | BOOL | Set high upon the rising edge of the Execute input, and reset when Done, CommandAborted, or Error is true. In the case of a function block with an Enable input, a Busy output indicates the function is operating, but not ready to provide Valid information. (No Error) | |
| B | Error | BOOL | Set high if an error has occurred during the execution of the function block. This output is cleared when 'Execute' or 'Enable' goes low. | |
| E | ErrorID | UINT | If Error is true, this output provides the Error ID. This output is reset when 'Execute' or 'Enable' goes low. | |
| E | ComErrorID | WORD | If Error is true, this output provides the TLS/UDP Error Codes. This output is reset when 'Execute' or 'Enable' goes low. Please refer to the Error codes/Status codes of TLS_* function blocks in TLS/UDP Error / Status Codes for Ethernet FBs. | |
| V | Status | DWORD | Indicates if the Target was able to execute the requested command. A value of zero indicates successful execution of the command by the remote device. | |
| V | Response | WORD | Response from the Target. | |
| V | ResponseStatus | WORD | Status of the response from the Target. | |
Error Description
See the Function Block ErrorID List.
Notes
Unlike EtherNet/IP Implicit Messaging (a built in feature of the iC9200 Series Controllers) which uses the UDP protocol, Explicit Messaging uses TCP/IP. This function block emulates the MSG function block in the AB RSLogix platform. The Y_CO_ExplicitMessage function block is best suited when an application requires unscheduled and less frequent updates like recipe transfer, cam table transfer, job transfer etc. Explicit Messaging makes use of a request/response format for communication. The equivalence to the MSG function block is shown below.
Example 1
An example of sending data to an MPiec controller is shown below. Instance 111 is enabled on the MPiec controller.
Example 2
An example of receiving data from an MPiec controller is shown below. Instance 101 is used for this.