Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Daan_Test1_maxon.h@0:785972ab5892, 2019-04-04 (annotated)
- Committer:
- DanielleKruijver
- Date:
- Thu Apr 04 10:08:08 2019 +0000
- Revision:
- 0:785972ab5892
- Child:
- 1:822c609fb2ce
Test one to send a message to the maxon motor controller with CAN
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
DanielleKruijver | 0:785972ab5892 | 1 | #include "mbed.h" |
DanielleKruijver | 0:785972ab5892 | 2 | #ifndef EPOSS |
DanielleKruijver | 0:785972ab5892 | 3 | #define EPOSS |
DanielleKruijver | 0:785972ab5892 | 4 | |
DanielleKruijver | 0:785972ab5892 | 5 | // EPOS commands that you need to home, you can find those in chapter 8 from the application node. |
DanielleKruijver | 0:785972ab5892 | 6 | const char Shutdown_Data[8] = {0x2B,0x40,0x60,0x00,0x06,0x00,0x00,0x00}; |
DanielleKruijver | 0:785972ab5892 | 7 | |
DanielleKruijver | 0:785972ab5892 | 8 | const char Switch_On_And_Enable_Data[8] = {0x2B,0x40,0x60,0x00,0x0F,0x00,0x00,0x00}; |
DanielleKruijver | 0:785972ab5892 | 9 | |
DanielleKruijver | 0:785972ab5892 | 10 | const char Homing_Mode_Data[8] = {0x2F,0x60,0x60,0x00,0x06,0x00,0x00,0x00}; //aan de 0x6060-00 geef je aan dat je nu gaat homen wat de waarde 06 heeft in de data bytes |
DanielleKruijver | 0:785972ab5892 | 11 | |
DanielleKruijver | 0:785972ab5892 | 12 | const char Homing_Method_Data_positive[8] = {0x2F,0x98,0x60,0x00,0xFD,0x00,0x00,0x00}; //bij de index 0x6098-00 geef je aan welke homing method je gaat gebruiken: 0xFD = -3 = current treshold positive speed |
DanielleKruijver | 0:785972ab5892 | 13 | |
DanielleKruijver | 0:785972ab5892 | 14 | const char Homing_Method_Data_negative[8] = {0x2F,0x98,0x60,0x00,0xFC,0x00,0x00,0x00}; //bij de index 0x6098-00 geef je aan welke homing method je gaat gebruiken: 0xFC = -4 = current treshold negative speed |
DanielleKruijver | 0:785972ab5892 | 15 | |
DanielleKruijver | 0:785972ab5892 | 16 | const char Start_Homing_Data[8] = {0x2B,0x40,0x60,0x00,0x1F,0x00,0x00,0x00}; //om te beginnen met homen geef je het controlword de waarde 0x001F om het homen te starten |
DanielleKruijver | 0:785972ab5892 | 17 | |
DanielleKruijver | 0:785972ab5892 | 18 | const char StatusWord_Data[4] = {0x40,0x41,0x60,0x00}; |
DanielleKruijver | 0:785972ab5892 | 19 | |
DanielleKruijver | 0:785972ab5892 | 20 | /** Sends a CAN Message to the controller |
DanielleKruijver | 0:785972ab5892 | 21 | Returns 1 for succes. May be slow. a faster send message is build into Goto_Pos |
DanielleKruijver | 0:785972ab5892 | 22 | @param COB_ID |
DanielleKruijver | 0:785972ab5892 | 23 | @param Message length |
DanielleKruijver | 0:785972ab5892 | 24 | @param Data string |
DanielleKruijver | 0:785972ab5892 | 25 | */ |
DanielleKruijver | 0:785972ab5892 | 26 | CANMessage create_CAN_msg(int COB_ID, int LENGTH, char * DATA); |
DanielleKruijver | 0:785972ab5892 | 27 | |
DanielleKruijver | 0:785972ab5892 | 28 | // The EPOS class |
DanielleKruijver | 0:785972ab5892 | 29 | class EPOS{ |
DanielleKruijver | 0:785972ab5892 | 30 | |
DanielleKruijver | 0:785972ab5892 | 31 | public: |
DanielleKruijver | 0:785972ab5892 | 32 | |
DanielleKruijver | 0:785972ab5892 | 33 | int NODE_ID; // the CAN adress of this controller |
DanielleKruijver | 0:785972ab5892 | 34 | |
DanielleKruijver | 0:785972ab5892 | 35 | /** puts the EPOS in shutdown state */ |
DanielleKruijver | 0:785972ab5892 | 36 | CANMessage Shutdown(); |
DanielleKruijver | 0:785972ab5892 | 37 | |
DanielleKruijver | 0:785972ab5892 | 38 | /** puts the EPOS in Switchon state */ |
DanielleKruijver | 0:785972ab5892 | 39 | CANMessage SwitchOnAndEnable(); |
DanielleKruijver | 0:785972ab5892 | 40 | |
DanielleKruijver | 0:785972ab5892 | 41 | /** Requests a statusword from the EPOS */ |
DanielleKruijver | 0:785972ab5892 | 42 | CANMessage StatusWord(); |
DanielleKruijver | 0:785972ab5892 | 43 | |
DanielleKruijver | 0:785972ab5892 | 44 | /** puts the EPOS in homing mode */ |
DanielleKruijver | 0:785972ab5892 | 45 | CANMessage Homing_Mode(); |
DanielleKruijver | 0:785972ab5892 | 46 | |
DanielleKruijver | 0:785972ab5892 | 47 | /** sets the homing method to current mode positive speed */ |
DanielleKruijver | 0:785972ab5892 | 48 | CANMessage Homing_Method_positive(); |
DanielleKruijver | 0:785972ab5892 | 49 | |
DanielleKruijver | 0:785972ab5892 | 50 | /** sets the homing method to current mode positive speed */ |
DanielleKruijver | 0:785972ab5892 | 51 | CANMessage Homing_Method_negative(); |
DanielleKruijver | 0:785972ab5892 | 52 | |
DanielleKruijver | 0:785972ab5892 | 53 | /** puts the EPOS in start homing state */ |
DanielleKruijver | 0:785972ab5892 | 54 | CANMessage StartHoming(); |
DanielleKruijver | 0:785972ab5892 | 55 | |
DanielleKruijver | 0:785972ab5892 | 56 | /** Sets the EPOS home method to current pos */ |
DanielleKruijver | 0:785972ab5892 | 57 | CANMessage Homing_Method_current_pos(); |
DanielleKruijver | 0:785972ab5892 | 58 | |
DanielleKruijver | 0:785972ab5892 | 59 | |
DanielleKruijver | 0:785972ab5892 | 60 | //public: |
DanielleKruijver | 0:785972ab5892 | 61 | |
DanielleKruijver | 0:785972ab5892 | 62 | /** Homes the EPOS with Current mode */ |
DanielleKruijver | 0:785972ab5892 | 63 | void Homing(); |
DanielleKruijver | 0:785972ab5892 | 64 | }; |
DanielleKruijver | 0:785972ab5892 | 65 | |
DanielleKruijver | 0:785972ab5892 | 66 | #endif |