DTL_CIP_MESSAGE_SEND parameters
target
is a pointer to a DTSA structure that specifies the target to which the service request will be sent. Its type must be cast to DTSA_TYPE when calling this function (see Data Table Structured Address).To send over a CIP connection, the DTSA_AB_CIP_CONN structure must be used to specify a connection handle previously obtained via DTL_CIP_CONNECTION_OPEN.
To send an unconnected message, the DTSA_AB_CIP_PATH structure must be used to specify the path to the CIP module containing the CIP object intended to receive the message. The first link in the path (for example, the link between RSLinx Classic and the next CIP node) is specified by the
driver_id
in the DTSA_AB_CIP_PATH structure. Any additional links must be specified in the baPath
portion of the DTSA_AB_CIP_PATH structure.svc_code
is the CIP- or CIP object-defined code for the service being requested.ioi
is a pointer to a buffer containing an 8-bit size field followed by a sequence of segments, as described in the Logix 5000
Data Access Programming Manual (publication 1756-PM020). ioi
(internal object identifier) identifies the CIP object for which the requested service is to be performed within the CIP module specified by target
. The size field specifies the number of 16-bit words required to hold the address segments (exclusive of the size field itself). Only logical and symbol segment types are allowed, since path segments specify the route to the target CIP module, and this information is provided via the target
parameter.If
ioi
is NULL, the service request will still be sent to the target module, but without identifying any destination object within the module. Different modules may interpret such a request in different ways.src_buf
is a pointer to a buffer containing the service parameters for the request.src_size
is the size in bytes of the contents of src_buf
.dst_buf
is a pointer to the buffer where RSLinx Classic will copy the response from the CIP target.This parameter may be NULL if the response will not contain any data, or if the application is not interested in the response data.
The contents of
dst_buf
depend on the service request and the definition of the connected object. The RSLinx Classic software does not interpret or process any of the data in dst_buf
.dst_size
is a pointer to a variable which is an input/output parameter. On input, it specifies the size of dst_buf
in bytes. If the response data (or the combined extended status and response data, if ext_buf
and dst_buf
are the same) is larger than the specified size of dst_buf
, then the response data will be copied only until dst_buf
is full; the remaining response data will be discarded and the final completion status will have the DTL_CIP_ERROR_FLAG_TRUNCATED_DATA flag set.On output, RSLinx Classic will store the actual number of bytes of response data in this variable.
If
dst_size
is a NULL pointer, there is no limit to the size of the response data, and the size will not be returned to the caller.ext_buf
is a pointer to the buffer where RSLinx Classic will copy any extended status information from the CIP target. This parameter may be NULL if no extended status is expected, or if the application is not interested in the extended status. If ext_buf
points to the same buffer as dst_buf
, then any extended status will precede the response data in the buffer. The ext_size
parameter can be used to find the offset to the response data.The contents of
ext_buf
depend on the service request and the definition of the connected object. The RSLinx Classic software does not interpret or process any of the data in ext_buf
.ext_size
is a pointer to a variable which is an input/output parameter. On input, it specifies the size of ext_buf
in bytes. If the extended status is larger than the specified size of ext_buf
, then the extended status will be copied only until ext_buf
is full; the remaining extended status data will be discarded and the final completion status will have the DTL_CIP_ERROR_FLAG_TRUNCATED_STATUS flag set.On output, RSLinx Classic will store the actual number of bytes of extended status in this variable.
If
ext_size
is a NULL pointer, there is no limit to the size of the extended status, and the size will not be returned to the caller.io_stat
is a pointer to an address into which the final completion status is written.timeout
is the maximum time (in milliseconds) to wait for the operation to complete before it is terminated and the final completion status is set to DTL_E_TIME.For messages sent on a CIP connection, this
timeout
is ignored. The message times out only when the CIP connection itself times out. (See DTL_CIP_CONNECTION_OPEN and DTL_CIP_CONNECTION_STATUS_PROC.)callback_proc
is a function in the calling application which will be called after the operation has completed or timed out. See DTL_IO_CALLBACK_PROC for more details.If DTL_CIP_MESSAGE_SEND_CB is being used on a CIP connection for which the calling application specified a DTL_CIP_CONNECTION_PACKET_PROC callback function (in the DTL_CIP_CONNECTION_OPEN call), then
callback_proc
should be NULL.callback_param
is a value which will be passed back to the callback_proc function when the operation has completed. The caller may use this to store an index, pointer, or handle. It is uninterpreted by RSLinx Classic.Provide Feedback