5 — VEHICLE CONTROL LANGUAGE (VCL)
pg. 105
Curtis Model 1351 – December 2018
SRDOs
CANopen standard DS304 defines the method to produce Safety Related Date Objects. When enabled,
the Primary will create the first message and the Supervisor will follow with the data inverted second
message. If the CAN ports are linked, these messages will go out the same ports and thus conform to
the CANopen standard. If the ports are not linked, each message will go out its own port, but in the
same format and timing.
For SRDO transmission, a mailbox in the Primary must be set up and set to transmit on command
and a mailbox must be setup up to match in the supervisor. The 11 bit identifier must be set according
to the DS304 definition, which also means the
Node_IDs
must be set to the proper standard as well.
SRDOs may also be received. To do this, a mailbox in the Primary (port1) must be setup to receive one
message and mailbox to receive the inverted data message in the Supervisor (port 2).
The following VCL functions can then be used to send SRDOs and validate incoming SRDOs
function
SRDO_Handle = Setup_Transmit_SRDO()
Links two mailboxes to be
transmitted in a linked fashion.
syntax
Setup_Transmit_SRDO (Mailbox_Handle_1, Mailbox_Handle_2,
Rate, Interval)
arguments:
Mailbox_Handle_1
The Primary mailbox
(Primary_Handler)
Mailbox_Handle_2
The Supervisory mailbox
(Supervisor_Handler)
Rate
If set to EVENT (=0) then this mailbox will
send on the send command otherwise is it the
rate between sending each primary mailbox in
milliseconds
Interval
The time, in milliseconds, between sending the
Primary and Supervisor messages.
returns:
The handle to the setup SRDO function
reported errors:
function
Enable_Transmit_SRDO()
Starts the SRDO
Enable_Receive_SRDO()
Starts the SRDO
These two functions start the SRDO. If set to a cyclic rate, this will start
transmissions
syntax
Enable_Transmit_SRDO(SRDO_Handle)
Enable_Receive_SRDO(SRDO_Handle)
arguments:
SRDO_Handle
See RETURN: SRDO
_Handle = Setup_Transmit_
SRDO()
returns:
reported errors: