User Tools

Site Tools


eeros_architecture:control_system:available_blocks:cansendfaulhaber

CAN Send Faulhaber

This block sends PDO packets over a CAN bus to a Faulhaber drive. The drive itself must be initialized by SDO transfers up to the point where PDO transfer is possible. The control system must incorporate a block for sending and another one for receiving CAN messages.

Control system for CANopen together with timeline

The block for sending will periodically (given by its time domain) send a synq message followed by several PDO's. It is important that this block is run after the block for receiving CAN messages. This ensures that the drives can send their messages upen receiving the synq message and the receive block already has these messages in its receive buffer and does not block when running.

Each time the block is run by its time domain, a sync message is sent followed by RPDO1 (carrying the control word) and RPDO2 (velocity). While the control word can be set by the method

setCtrl(Matrix<nofNodes,1,uint16_t>);

the velocity is taken from its input vel.
The velocity input expects a signal in SI units, e.g. rad/s. To account for encoder resolution of the actual drive together with a gearbox, it is possible to set a scaling factor with

setVelScale(Matrix<nofNodes,1,double>);

This blocks uses the canopenlib. The connection to the CAN bus must be first established through a CAN Handle block.

eeros_architecture/control_system/available_blocks/cansendfaulhaber.txt · Last modified: 2020/06/07 15:24 by ursgraf