Danielle Kruijver / Mbed 2 deprecated Daan_Test1_maxon

Dependencies:   mbed mbed-rtos

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?

UserRevisionLine numberNew 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