Danielle Kruijver / Mbed 2 deprecated Controll_SBT_main

Dependencies:   mbed mbed-rtos

Committer:
DanielleKruijver
Date:
Fri Apr 12 09:55:53 2019 +0000
Revision:
1:3d46a0660d05
Main SBT controllll

Who changed what in which revision?

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