5 — VEHICLE CONTROL LANGUAGE (VCL)
pg. 91
Return to TOC Curtis Model 1351 – December 2018
SDO Management
Ten VCL functions are described here to manage Service Data Objects (SDOs)*. SDOs are used to
either read data from another device to send data to the device. In either case, the 1351 OS will send
an SDO and then wait for and buer the return. e VCL needs only to poll the SDO buer for the
response. Each SDO sent will be provided a Reception_ID. is ID is used to check the status of the
request and to pull the data from the input reception buers. e buer is 16 messages deep. Reading
from the buer clears out that message.
Reception_ID = Request_SDO_Read() Send an SDO read request to
a specic node
is function sends an expedited SDO request to read a value from a specic device
identied by its Node ID. e function will return a handle (i.e., Reception_ID)
to the 1351’s receive buer location where the data will be placed. Each buer
location is 32 bits (4 bytes) wide.
e Reception_ID is used to check the status of the particular request and pulls
the data from the input reception buers. Once a message is read, it is pulled from
the request buer. e buer is 16 messages deep. If a buer is full, the Request
function will return an invalid ID of 0 (valid IDs are 1-16), meaning no more
messages can be requested until the pending messages (1-16) are checked and
pulled from the buer, or the buer is cleared.
When each request is made, an individual timer is started. If the timer expires, a
fault will be set. Checking the status of a timed out value will return a fault code
(see the error code table for Check_SDO_Read)
Request_SDO_Read (Port, Node_ID, Index, Sub-Index,
Timeout)
:
Port_1 = CAN1 e primary CAN port, pins 3 & 4
Port_2 = CAN2 e secondary CAN port, pins 5 & 6
Node ID e Slave Node ID
Index e CANopen Index of the parameter to read
Sub-Index e CANopen sub-Index of the parameter to read
Timeout Specify the maximum time (in milliseconds) to
receive a response.
:
Reception_ID (i.e., the handle to check the status)
:
BAD_ID Port# out of Range
* SDO Service Data Object (SDO). A SDO is a low priority message used to transfer data sets from a client to a server and vice
versa. Several types of data transfer are available, with the Client (master controller) taking the initiative for a transfer. The SDO
process is used primarily to read or write to an object index of a Server (slave controller).