User Tools

Site Tools


eeros_architecture:control_system:available_blocks:cansend

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
eeros_architecture:control_system:available_blocks:cansend [2024/05/27 16:47] ursgrafeeros_architecture:control_system:available_blocks:cansend [2024/05/27 17:03] (current) ursgraf
Line 7: Line 7:
 The control system must incorporate a block for sending and another one for receiving CAN messages.  The control system must incorporate a block for sending and another one for receiving CAN messages. 
  
-[{{ :eeros_architecture:control_system:available_blocks:canrawcontrolsystem.png?600 |//Control system for CANopen together with timeline// }}]+[{{ :eeros_architecture:control_system:available_blocks:canrawcontrolsystem.png?600 |//Control system for CAN// }}]
  
-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.+The block for sending will periodically send a CAN message while the receiving block gets the current information from the drive. It is important that the sending block is run after the block for receiving CAN messages.
  
-Each time the block is run by its time domain, ''sync'' message is sent followed by RPDO1 (carrying the control word) and RPDO2 (velocity)While the control word can be set by the method+The position input expects signal in SI units, e.g. rad. To account for encoder resolution of the actual drive together with a gearbox, it is possible to set a scaling factor with
 <code cpp> <code cpp>
-setCtrl(Matrix<nofNodes,1,uint16_t>);+void setScale(Matrix<N,1,double>& scale);
 </code>  </code> 
-the velocity is taken from its input ''vel''. \\ +This blocks uses the [[https://gitlab.ost.ch/tech/inf/public/canopenlib|CANopen Library]]. Make sure to install this library following [[https://wiki.eeros.org/getting_started/install_wrapper#canopen|]].
-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 +
-<code cpp> +
-setVelScale(Matrix<nofNodes,1,double>); +
-</code>  +
-This blocks uses the [[http://github.com/ntb-ch/canopenlib|canopenlib]]. The connection to the CAN bus must be first established through a [[eeros_architecture:control_system:available_blocks:canhandle|]] block.+
eeros_architecture/control_system/available_blocks/cansend.1716821222.txt.gz · Last modified: 2024/05/27 16:47 by ursgraf