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@2:1117ce9d1867, 2019-04-10 (annotated)
- Committer:
- DanielleKruijver
- Date:
- Wed Apr 10 09:33:36 2019 +0000
- Revision:
- 2:1117ce9d1867
- Parent:
- 1:822c609fb2ce
Maxon motoren homen en daarna 300.000qc draaien
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 | 2:1117ce9d1867 | 5 | /* ----------------------------------------------------------------------------- |
DanielleKruijver | 2:1117ce9d1867 | 6 | EPOS commands that you need to home, you can find those in chapter 8.3 from the |
DanielleKruijver | 2:1117ce9d1867 | 7 | application node. |
DanielleKruijver | 2:1117ce9d1867 | 8 | ----------------------------------------------------------------------------- */ |
DanielleKruijver | 1:822c609fb2ce | 9 | const char Shutdown_Data[8] = {0x2B,0x40,0x60,0x00,0x06,0x00,0x00,0x00}; //voorkomen dat je niet nog in een andere mode zit |
DanielleKruijver | 0:785972ab5892 | 10 | |
DanielleKruijver | 1:822c609fb2ce | 11 | const char Switch_On_And_Enable_Data[8] = {0x2B,0x40,0x60,0x00,0x0F,0x00,0x00,0x00}; //enable de motorcontroller (groene ledje constant aan) |
DanielleKruijver | 0:785972ab5892 | 12 | |
DanielleKruijver | 0:785972ab5892 | 13 | 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 | 14 | |
DanielleKruijver | 2:1117ce9d1867 | 15 | 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 | 16 | |
DanielleKruijver | 2:1117ce9d1867 | 17 | 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 | 18 | |
DanielleKruijver | 0:785972ab5892 | 19 | 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 | 20 | |
DanielleKruijver | 2:1117ce9d1867 | 21 | const char Status_Word_Data[4] = {0x40,0x41,0x60,0x00}; //0x40, want ccs is 2: je upload iets van de controller om te kijken of het gelukt is. |
DanielleKruijver | 2:1117ce9d1867 | 22 | |
DanielleKruijver | 2:1117ce9d1867 | 23 | const char Clear_Fault_Data[8] = {0x2B,0x40,0x60,0x00,0x80,0x00,0x00,0x00}; //Clear fault: 0x0080 versturen naar 0x6040-00 |
DanielleKruijver | 2:1117ce9d1867 | 24 | |
DanielleKruijver | 2:1117ce9d1867 | 25 | /* ----------------------------------------------------------------------------- |
DanielleKruijver | 2:1117ce9d1867 | 26 | Additional EPOS commands that you need for going to a position, you can find |
DanielleKruijver | 2:1117ce9d1867 | 27 | those in chapter 8.7 from the application node. |
DanielleKruijver | 2:1117ce9d1867 | 28 | ----------------------------------------------------------------------------- */ |
DanielleKruijver | 2:1117ce9d1867 | 29 | const char Position_Mode_Data[8] = {0x2F,0x60,0x60,0x00,0xFF,0x00,0x00,0x00}; |
DanielleKruijver | 2:1117ce9d1867 | 30 | |
DanielleKruijver | 2:1117ce9d1867 | 31 | /* ----------------------------------------------------------------------------- |
DanielleKruijver | 2:1117ce9d1867 | 32 | Sends a CAN Message to the controller |
DanielleKruijver | 0:785972ab5892 | 33 | Returns 1 for succes. May be slow. a faster send message is build into Goto_Pos |
DanielleKruijver | 0:785972ab5892 | 34 | @param COB_ID |
DanielleKruijver | 0:785972ab5892 | 35 | @param Message length |
DanielleKruijver | 0:785972ab5892 | 36 | @param Data string |
DanielleKruijver | 2:1117ce9d1867 | 37 | ----------------------------------------------------------------------------- */ |
DanielleKruijver | 0:785972ab5892 | 38 | CANMessage create_CAN_msg(int COB_ID, int LENGTH, char * DATA); |
DanielleKruijver | 0:785972ab5892 | 39 | |
DanielleKruijver | 2:1117ce9d1867 | 40 | //A struct in which msg_1 is saved |
DanielleKruijver | 2:1117ce9d1867 | 41 | //struct EPOS_MESSAGES { |
DanielleKruijver | 2:1117ce9d1867 | 42 | // CANMessage msg_1; |
DanielleKruijver | 2:1117ce9d1867 | 43 | //}; |
DanielleKruijver | 2:1117ce9d1867 | 44 | |
DanielleKruijver | 2:1117ce9d1867 | 45 | //CANMessage Latest_EPOS_msg(int NODE_ID); |
DanielleKruijver | 2:1117ce9d1867 | 46 | |
DanielleKruijver | 0:785972ab5892 | 47 | // The EPOS class |
DanielleKruijver | 0:785972ab5892 | 48 | class EPOS{ |
DanielleKruijver | 0:785972ab5892 | 49 | |
DanielleKruijver | 0:785972ab5892 | 50 | public: |
DanielleKruijver | 0:785972ab5892 | 51 | |
DanielleKruijver | 0:785972ab5892 | 52 | int NODE_ID; // the CAN adress of this controller |
DanielleKruijver | 2:1117ce9d1867 | 53 | |
DanielleKruijver | 2:1117ce9d1867 | 54 | EPOS(int node_id){ |
DanielleKruijver | 2:1117ce9d1867 | 55 | NODE_ID=node_id; |
DanielleKruijver | 2:1117ce9d1867 | 56 | }; |
DanielleKruijver | 0:785972ab5892 | 57 | |
DanielleKruijver | 0:785972ab5892 | 58 | /** puts the EPOS in shutdown state */ |
DanielleKruijver | 0:785972ab5892 | 59 | CANMessage Shutdown(); |
DanielleKruijver | 0:785972ab5892 | 60 | |
DanielleKruijver | 0:785972ab5892 | 61 | /** puts the EPOS in Switchon state */ |
DanielleKruijver | 0:785972ab5892 | 62 | CANMessage SwitchOnAndEnable(); |
DanielleKruijver | 0:785972ab5892 | 63 | |
DanielleKruijver | 0:785972ab5892 | 64 | /** Requests a statusword from the EPOS */ |
DanielleKruijver | 0:785972ab5892 | 65 | CANMessage StatusWord(); |
DanielleKruijver | 0:785972ab5892 | 66 | |
DanielleKruijver | 0:785972ab5892 | 67 | /** puts the EPOS in homing mode */ |
DanielleKruijver | 2:1117ce9d1867 | 68 | CANMessage HomingMode(); |
DanielleKruijver | 0:785972ab5892 | 69 | |
DanielleKruijver | 0:785972ab5892 | 70 | /** sets the homing method to current mode positive speed */ |
DanielleKruijver | 2:1117ce9d1867 | 71 | CANMessage HomingMethodPositive(); |
DanielleKruijver | 0:785972ab5892 | 72 | |
DanielleKruijver | 0:785972ab5892 | 73 | /** sets the homing method to current mode positive speed */ |
DanielleKruijver | 2:1117ce9d1867 | 74 | CANMessage HomingMethodNegative(); |
DanielleKruijver | 0:785972ab5892 | 75 | |
DanielleKruijver | 0:785972ab5892 | 76 | /** puts the EPOS in start homing state */ |
DanielleKruijver | 0:785972ab5892 | 77 | CANMessage StartHoming(); |
DanielleKruijver | 2:1117ce9d1867 | 78 | |
DanielleKruijver | 2:1117ce9d1867 | 79 | /** Resets the fault condition on the EPOS */ |
DanielleKruijver | 2:1117ce9d1867 | 80 | CANMessage ClearFault(); |
DanielleKruijver | 0:785972ab5892 | 81 | |
DanielleKruijver | 2:1117ce9d1867 | 82 | /** Function that defines a message with the right amount of quartercircles */ |
DanielleKruijver | 2:1117ce9d1867 | 83 | CANMessage GoToPosition(int quartercircles); |
DanielleKruijver | 2:1117ce9d1867 | 84 | |
DanielleKruijver | 2:1117ce9d1867 | 85 | /** Function that defines a message with the right amount of quartercircles */ |
DanielleKruijver | 2:1117ce9d1867 | 86 | CANMessage PositionMode(); |
DanielleKruijver | 0:785972ab5892 | 87 | |
DanielleKruijver | 0:785972ab5892 | 88 | /** Homes the EPOS with Current mode */ |
DanielleKruijver | 0:785972ab5892 | 89 | void Homing(); |
DanielleKruijver | 2:1117ce9d1867 | 90 | |
DanielleKruijver | 2:1117ce9d1867 | 91 | /** With this function the axis moves to the new absolute position */ |
DanielleKruijver | 2:1117ce9d1867 | 92 | void StartPositionMode(); |
DanielleKruijver | 0:785972ab5892 | 93 | }; |
DanielleKruijver | 0:785972ab5892 | 94 | |
DanielleKruijver | 0:785972ab5892 | 95 | #endif |