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@1:3d46a0660d05, 2019-04-12 (annotated)
- Committer:
- DanielleKruijver
- Date:
- Fri Apr 12 09:55:53 2019 +0000
- Revision:
- 1:3d46a0660d05
Main SBT controllll
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
DanielleKruijver | 1:3d46a0660d05 | 1 | #include "mbed.h" |
DanielleKruijver | 1:3d46a0660d05 | 2 | #include "DataStore.h" |
DanielleKruijver | 1:3d46a0660d05 | 3 | #ifndef EPOSS |
DanielleKruijver | 1:3d46a0660d05 | 4 | #define EPOSS |
DanielleKruijver | 1:3d46a0660d05 | 5 | |
DanielleKruijver | 1:3d46a0660d05 | 6 | |
DanielleKruijver | 1:3d46a0660d05 | 7 | /* ----------------------------------------------------------------------------- |
DanielleKruijver | 1:3d46a0660d05 | 8 | EPOS commands that you need to home, you can find those in chapter 8.3 from the |
DanielleKruijver | 1:3d46a0660d05 | 9 | application node. |
DanielleKruijver | 1:3d46a0660d05 | 10 | ----------------------------------------------------------------------------- */ |
DanielleKruijver | 1:3d46a0660d05 | 11 | const char Shutdown_Data[8] = {0x2B,0x40,0x60,0x00,0x06,0x00,0x00,0x00}; //voorkomen dat je niet nog in een andere mode zit |
DanielleKruijver | 1:3d46a0660d05 | 12 | |
DanielleKruijver | 1:3d46a0660d05 | 13 | const char Switch_On_And_Enable_Data[8] = {0x2B,0x40,0x60,0x00,0x0F,0x00,0x00,0x00}; //enable de motorcontroller (groene ledje constant aan) |
DanielleKruijver | 1:3d46a0660d05 | 14 | |
DanielleKruijver | 1:3d46a0660d05 | 15 | 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 | 1:3d46a0660d05 | 16 | |
DanielleKruijver | 1:3d46a0660d05 | 17 | 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 | 1:3d46a0660d05 | 18 | |
DanielleKruijver | 1:3d46a0660d05 | 19 | 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 | 1:3d46a0660d05 | 20 | |
DanielleKruijver | 1:3d46a0660d05 | 21 | 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 | 1:3d46a0660d05 | 22 | |
DanielleKruijver | 1:3d46a0660d05 | 23 | 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 | 1:3d46a0660d05 | 24 | |
DanielleKruijver | 1:3d46a0660d05 | 25 | const char Clear_Fault_Data[8] = {0x2B,0x40,0x60,0x00,0x80,0x00,0x00,0x00}; //Clear fault: 0x0080 versturen naar 0x6040-00 |
DanielleKruijver | 1:3d46a0660d05 | 26 | |
DanielleKruijver | 1:3d46a0660d05 | 27 | /* ----------------------------------------------------------------------------- |
DanielleKruijver | 1:3d46a0660d05 | 28 | Additional EPOS commands that you need for going to a position, you can find |
DanielleKruijver | 1:3d46a0660d05 | 29 | those in chapter 8.7 from the application node. |
DanielleKruijver | 1:3d46a0660d05 | 30 | ----------------------------------------------------------------------------- */ |
DanielleKruijver | 1:3d46a0660d05 | 31 | const char Position_Mode_Data[8] = {0x2F,0x60,0x60,0x00,0xFF,0x00,0x00,0x00}; |
DanielleKruijver | 1:3d46a0660d05 | 32 | |
DanielleKruijver | 1:3d46a0660d05 | 33 | /* ----------------------------------------------------------------------------- |
DanielleKruijver | 1:3d46a0660d05 | 34 | Sends a CAN Message to the controller |
DanielleKruijver | 1:3d46a0660d05 | 35 | Returns 1 for succes. May be slow. a faster send message is build into Goto_Pos |
DanielleKruijver | 1:3d46a0660d05 | 36 | @param COB_ID |
DanielleKruijver | 1:3d46a0660d05 | 37 | @param Message length |
DanielleKruijver | 1:3d46a0660d05 | 38 | @param Data string |
DanielleKruijver | 1:3d46a0660d05 | 39 | ----------------------------------------------------------------------------- */ |
DanielleKruijver | 1:3d46a0660d05 | 40 | CANMessage create_CAN_msg(int COB_ID, int LENGTH, char * DATA); |
DanielleKruijver | 1:3d46a0660d05 | 41 | |
DanielleKruijver | 1:3d46a0660d05 | 42 | //A struct in which msg_1 is saved |
DanielleKruijver | 1:3d46a0660d05 | 43 | //struct EPOS_MESSAGES { |
DanielleKruijver | 1:3d46a0660d05 | 44 | // CANMessage msg_1; |
DanielleKruijver | 1:3d46a0660d05 | 45 | //}; |
DanielleKruijver | 1:3d46a0660d05 | 46 | |
DanielleKruijver | 1:3d46a0660d05 | 47 | //CANMessage Latest_EPOS_msg(int NODE_ID); |
DanielleKruijver | 1:3d46a0660d05 | 48 | |
DanielleKruijver | 1:3d46a0660d05 | 49 | // The EPOS class |
DanielleKruijver | 1:3d46a0660d05 | 50 | class EPOS{ |
DanielleKruijver | 1:3d46a0660d05 | 51 | |
DanielleKruijver | 1:3d46a0660d05 | 52 | public: |
DanielleKruijver | 1:3d46a0660d05 | 53 | |
DanielleKruijver | 1:3d46a0660d05 | 54 | //verbinding met main function |
DanielleKruijver | 1:3d46a0660d05 | 55 | DataStore *m_FtoW_data; |
DanielleKruijver | 1:3d46a0660d05 | 56 | |
DanielleKruijver | 1:3d46a0660d05 | 57 | int NODE_ID; // the CAN adress of this controller |
DanielleKruijver | 1:3d46a0660d05 | 58 | |
DanielleKruijver | 1:3d46a0660d05 | 59 | EPOS(int node_id){ |
DanielleKruijver | 1:3d46a0660d05 | 60 | NODE_ID=node_id; |
DanielleKruijver | 1:3d46a0660d05 | 61 | }; |
DanielleKruijver | 1:3d46a0660d05 | 62 | |
DanielleKruijver | 1:3d46a0660d05 | 63 | /** puts the EPOS in shutdown state */ |
DanielleKruijver | 1:3d46a0660d05 | 64 | CANMessage Shutdown(); |
DanielleKruijver | 1:3d46a0660d05 | 65 | |
DanielleKruijver | 1:3d46a0660d05 | 66 | /** puts the EPOS in Switchon state */ |
DanielleKruijver | 1:3d46a0660d05 | 67 | CANMessage SwitchOnAndEnable(); |
DanielleKruijver | 1:3d46a0660d05 | 68 | |
DanielleKruijver | 1:3d46a0660d05 | 69 | /** Requests a statusword from the EPOS */ |
DanielleKruijver | 1:3d46a0660d05 | 70 | CANMessage StatusWord(); |
DanielleKruijver | 1:3d46a0660d05 | 71 | |
DanielleKruijver | 1:3d46a0660d05 | 72 | /** puts the EPOS in homing mode */ |
DanielleKruijver | 1:3d46a0660d05 | 73 | CANMessage HomingMode(); |
DanielleKruijver | 1:3d46a0660d05 | 74 | |
DanielleKruijver | 1:3d46a0660d05 | 75 | /** sets the homing method to current mode positive speed */ |
DanielleKruijver | 1:3d46a0660d05 | 76 | CANMessage HomingMethodPositive(); |
DanielleKruijver | 1:3d46a0660d05 | 77 | |
DanielleKruijver | 1:3d46a0660d05 | 78 | /** sets the homing method to current mode positive speed */ |
DanielleKruijver | 1:3d46a0660d05 | 79 | CANMessage HomingMethodNegative(); |
DanielleKruijver | 1:3d46a0660d05 | 80 | |
DanielleKruijver | 1:3d46a0660d05 | 81 | /** puts the EPOS in start homing state */ |
DanielleKruijver | 1:3d46a0660d05 | 82 | CANMessage StartHoming(); |
DanielleKruijver | 1:3d46a0660d05 | 83 | |
DanielleKruijver | 1:3d46a0660d05 | 84 | /** Resets the fault condition on the EPOS */ |
DanielleKruijver | 1:3d46a0660d05 | 85 | CANMessage ClearFault(); |
DanielleKruijver | 1:3d46a0660d05 | 86 | |
DanielleKruijver | 1:3d46a0660d05 | 87 | /** Function that defines a message with the right amount of quartercircles */ |
DanielleKruijver | 1:3d46a0660d05 | 88 | CANMessage GoToPosition(float quartercircles); |
DanielleKruijver | 1:3d46a0660d05 | 89 | |
DanielleKruijver | 1:3d46a0660d05 | 90 | /** Function that defines a message with the right amount of quartercircles */ |
DanielleKruijver | 1:3d46a0660d05 | 91 | CANMessage PositionMode(); |
DanielleKruijver | 1:3d46a0660d05 | 92 | |
DanielleKruijver | 1:3d46a0660d05 | 93 | /** Homes the EPOS with Current mode */ |
DanielleKruijver | 1:3d46a0660d05 | 94 | void Homing(); |
DanielleKruijver | 1:3d46a0660d05 | 95 | |
DanielleKruijver | 1:3d46a0660d05 | 96 | /** With this function the axis is set in the position mode */ |
DanielleKruijver | 1:3d46a0660d05 | 97 | void StartPositionMode(); |
DanielleKruijver | 1:3d46a0660d05 | 98 | |
DanielleKruijver | 1:3d46a0660d05 | 99 | /** With this function the axis is going to move */ |
DanielleKruijver | 1:3d46a0660d05 | 100 | void Move(); |
DanielleKruijver | 1:3d46a0660d05 | 101 | }; |
DanielleKruijver | 1:3d46a0660d05 | 102 | |
DanielleKruijver | 1:3d46a0660d05 | 103 | #endif |