6 — VEHICLE CONTROL LANGUAGE & CAN
Curtis 1232E/34E/36E/38E/39E & 1232SE/34SE/36SE/38SE Manual, os 31 – May 2017
pg. 14
6 — VEHICLE CONTROL LANGUAGE & CAN
The motor command diagrams for the Dual Drive controllers are shown in Figure 7a (for the master
controller, which controls the Left traction motor) and Figure 7b (for the slave controller, which controls
the Right traction motor).
Dual Drive operation is initiated by the steer pot, which is connected to the slave controller. The steer pot
wiper voltage is sent in a CAN message to the master controller (Fig. 7a point A) where the wiper voltage
is converted to steer angle. The Steer_Angle and Mapped_Throttle are processed and produce a throttle
value for the master traction controller and the slave traction controller (which is sent via a CAN message
to the slave controller (Fig. 7b point B).
The throttle processing in the master controller is similar to the throttle processing in a non-dual-drive
controller except for the additions of steer angle dual throttle processing and sending CAN messages to
the slave controller for throttle and brake commands. The brake signal can be followed in the master from
the brake pot input to the Brake_Command. The Dual_Slave_Brake_From_Master variable is sent from
the master traction controller to the slave traction controller via a CAN message (Fig. 7a point B to Fig.
7b point B).
The throttle processing in the slave controller is different from the throttle processing in a non-dual drive
controller because here the master controller is processing the throttle variables. The Dual_Slave_Throttle_
From_Master (Fig. 7b point B) and Dual_Slave_Brake_From_Master (Fig. 7b point C) arrive from the
master as shown. The Throttle Pot input on the slave is not used for throttle and may be programmed in
VCL for other uses.
VCL is not required to implement the Dual Drive CAN feature. Meaning that for a system not using
VCL, the dual drive master/slave controllers will operate as described above. However, when VCL is
implemented, should the VCL CAN operation be stop or become idle*, use the VCL function INIT_
DUAL_MOTOR_CAN() to restart (re-initialize) the Dual Drive CAN operation, besides using the
STARTUP_CAN() for VCL CAN.
INIT_DUAL_MOTOR_CAN( )
This function initializes (restarts) the dual drive CAN functions.
Syntax:
Init_Dual_Motor_CAN()
Parameters:
None.
Returns:
None.
Error Codes:
None.
*VCL functions that either stop or idle the VCL CAN operation will require re-initializing of the
dual drive CAN. Or, if the CANbus turns OFF or stops.
Examples:
1. The VCL function SETUP_CAN() in a VCL program will "stop" the Dual Drive CAN operation,
because it leaves the VCL CAN system in an idle state.
2. The VCL function SHUTDOWN_CAN () in a VCL program will stop the dual drive CAN
operation, because it stops the VCL CAN system.
3. If the variable can_error_status = 3, the CANbus is Off (reference SysInfo, "CAN/Nodes Bus Status
Information" section).
NOTE: When using VCL with Dual Drive, the CAN mailboxes CAN3 – CAN6 are required to be
reserved by the OS for Dual Drive operation. Refer to the "CAN Access IDs" section in the SysInfo file.