3. Roboter-Grundlagen
3.1. Roboter instanziieren
1/**
2* @brief Konstruktor der Roboter-Schnittstellenklasse
3*/
4FRRobot();
3.2. Kommunikation mit der Steuerung aufbauen
1/**
2* @brief Kommunikation mit der Robotersteuerung aufbauen
3* @param [in] ip IP-Adresse der Steuerung, werkseitig standardmäßig 192.168.58.2
4* @return Fehlercode
5*/
6errno_t RPC(const char *ip);
3.3. Kommunikation mit der Steuerung schließen
1/**
2 * @brief Kommunikation mit der Robotersteuerung schließen
3 * @return Fehlercode
4 */
5errno_t CloseRPC();
3.4. SDK-Version abfragen
1/**
2* @brief SDK-Version abfragen
3* @param [out] version SDK-Versionsnummer
4* @return Fehlercode
5*/
6errno_t GetSDKVersion(char *version);
3.5. Controller-IP abrufen
1/**
2* @brief Controller-IP abrufen
3* @param [out] ip Controller-IP
4* @return Fehlercode
5*/
6errno_t GetControllerIP(char *ip);
3.6. Roboter in den oder aus dem Drag&Teach-Modus schalten
1/**
2* @brief Roboter in den oder aus dem Drag&Teach-Modus schalten
3* @param [in] state 0 - Drag&Teach-Modus verlassen, 1 - Drag&Teach-Modus betreten
4* @return Fehlercode
5*/
6errno_t DragTeachSwitch(uint8_t state);
3.7. Abfragen, ob sich der Roboter im Drag-Modus befindet
1/**
2* @brief Abfragen, ob sich der Roboter im Drag&Teach-Modus befindet
3* @param [out] state 0 - nicht im Drag&Teach-Modus, 1 - im Drag&Teach-Modus
4* @return Fehlercode
5*/
6errno_t IsInDragTeach(uint8_t *state);
3.8. Roboter aktivieren (Enable) oder deaktivieren (Disable)
1/**
2* @brief Roboter aktivieren (Enable) oder deaktivieren (Disable). Nach dem Einschalten ist der Roboter standardmäßig automatisch aktiviert.
3* @param [in] state 0 - deaktivieren, 1 - aktivieren
4* @return Fehlercode
5*/
6errno_t RobotEnable(uint8_t state);
3.9. Umschalten zwischen Hand- und Automatikmodus
1/**
2* @brief Umschalten zwischen Hand- und Automatikmodus des Roboters
3* @param [in] mode 0 - Automatikmodus, 1 - Handmodus
4* @return Fehlercode
5*/
6errno_t Mode(int mode);
3.10. Roboter-Betriebssystem herunterfahren
Neu in Version C++SDK-v2.2.1-3.8.1.
1/**
2* @brief Roboter-Betriebssystem herunterfahren
3* @return Fehlercode
4*/
5errno_t ShutDownRobotOS();
3.11. Parameter für die Wiederverbindung mit der Robotersteuerung einstellen
Neu in Version C++SDK-v2.1.5.0.
1/**
2* @brief Parameter für die Wiederverbindung mit der Robotersteuerung einstellen
3* @param [in] enable Wiederverbindung bei Netzwerkfehler aktivieren: true - aktivieren, false - deaktivieren
4* @param [in] reconnectTime Wiederverbindungszeit (ms)
5* @param [in] period Wiederverbindungszyklus (ms)
6* @return Fehlercode
7*/
8errno_t SetReConnectParam(bool enable, int reconnectTime = 30000, int period = 50);
3.12. Roboter-Betriebssystem herunterfahren (C#)
1/**
2* @brief Roboter-Betriebssystem herunterfahren
3* @return Fehlercode
4*/
5int ShutDownRobotOS();
3.13. Logging-Parameter initialisieren
Neu in Version C++SDK-v2.1.2.0.
1/**
2* @brief Logging-Parameter initialisieren
3* @param output_model: Ausgabemodus, 0 - direkte Ausgabe, 1 - gepufferte Ausgabe, 2 - asynchrone Ausgabe
4* @param file_path: Pfad und Name der Logdatei, maximale Länge 256, Name muss die Form xxx.log haben, z.B. /home/fr/linux/fairino.log
5* @param file_num: Anzahl der rollierenden Logdateien, 1~20. Einzeldateigröße max. 50 MB
6* @return Fehlercode
7*/
8errno_t LoggerInit(int output_model = 0, std::string file_path = "", int file_num = 5);
3.14. Logging-Filterstufe einstellen
Neu in Version C++SDK-v2.1.2.0.
1/**
2* @brief Logging-Filterstufe einstellen
3* @param lvl: Filterstufe. Je kleiner der Wert, desto weniger Logs werden ausgegeben. Standardwert ist 1. 1 = error, 2 = warning, 3 = info, 4 = debug
4*/
5void SetLoggerLevel(int lvl = 1);
3.15. Codebeispiel für grundlegende Robotersteuerung
1int TestRobotCtrl(void)
2{
3 ROBOT_STATE_PKG pkg = {};
4 FRRobot robot;
5 robot.LoggerInit();
6 robot.SetLoggerLevel(1);
7 int rtn = robot.RPC("192.168.58.2");
8 robot.SetReConnectParam(true, 30000, 500);
9 char ip[64] = "";
10 char version[64] = "";
11 uint8_t state;
12 robot.GetSDKVersion(version);
13 printf("SDK version:%s\n", version);
14 robot.GetControllerIP(ip);
15 printf("controller ip:%s\n", ip);
16 robot.Mode(1);
17 robot.Sleep(1000);
18 robot.DragTeachSwitch(1);
19 robot.Sleep(1000);
20 robot.IsInDragTeach(&state);
21 printf("drag state :%u\n", state);
22 robot.Sleep(3000);
23 robot.DragTeachSwitch(0);
24 robot.Sleep(1000);
25 robot.IsInDragTeach(&state);
26 printf("drag state :%u\n", state);
27 robot.Sleep(3000);
28 robot.RobotEnable(0);
29 robot.Sleep(3000);
30 robot.RobotEnable(1);
31 robot.Mode(0);
32 robot.Sleep(1000);
33 robot.Mode(1);
34 robot.Sleep(3000);
35 robot.ShutDownRobotOS();
36 robot.CloseRPC();
37 return 0;
38}
3.16. Codebeispiel zum Abrufen der Softwareversion des Roboters
1/**
2* @brief Softwareversion des Roboters abrufen
3* @param[out] robotModel Robotermodell
4* @param[out] webVersion Web-Version
5* @param[out] controllerVersion Controller-Version
6* @return Fehlercode
7*/
8errno_t GetSoftwareVersion(char robotModel[64], char webVersion[64], char controllerVersion[64]);
3.17. Hardwareversion des Roboters abrufen
Neu in Version C++SDK-v2.1.1.0.
1/**
2* @brief Hardwareversion des Roboters abrufen
3* @param[out] ctrlBoxBoardversion Hardwareversion der Steuerkasten-Trägerplatine
4* @param[out] driver1version Hardwareversion von Antrieb 1
5* @param[out] driver2version Hardwareversion von Antrieb 2
6* @param[out] driver3version Hardwareversion von Antrieb 3
7* @param[out] driver4version Hardwareversion von Antrieb 4
8* @param[out] driver5version Hardwareversion von Antrieb 5
9* @param[out] driver6version Hardwareversion von Antrieb 6
10* @param[out] endBoardversion Hardwareversion der Endeffektorplatine
11*/
12errno_t GetHardwareVersion(char ctrlBoxBoardversion[128], char driver1version[128], char driver2version[128], char driver3version[128], char driver4version[128], char driver5version[128], char driver6version[128], char endBoardversion[128]);
3.18. Firmwareversion des Roboters abrufen
Neu in Version C++SDK-v2.1.1.0.
1/**
2* @brief Firmwareversion des Roboters abrufen
3* @param[out] ctrlBoxBoardversion Firmwareversion der Steuerkasten-Trägerplatine
4* @param[out] driver1version Firmwareversion von Antrieb 1
5* @param[out] driver2version Firmwareversion von Antrieb 2
6* @param[out] driver3version Firmwareversion von Antrieb 3
7* @param[out] driver4version Firmwareversion von Antrieb 4
8* @param[out] driver5version Firmwareversion von Antrieb 5
9* @param[out] driver6version Firmwareversion von Antrieb 6
10* @param[out] endBoardversion Firmwareversion der Endeffektorplatine
11*/
12errno_t GetFirmwareVersion(char ctrlBoxBoardversion[128], char driver1version[128], char driver2version[128], char driver3version[128], char driver4version[128], char driver5version[128], char driver6version[128], char endBoardversion[128]);
3.19. Codebeispiel zum Abrufen der Software- und Firmwareversionen
1int TestGetVersions(void)
2 {
3 ROBOT_STATE_PKG pkg = {};
4 FRRobot robot;
5 robot.LoggerInit();
6 robot.SetLoggerLevel(1);
7 int rtn = robot.RPC("192.168.58.2");
8 if (rtn != 0)
9 {
10 return -1;
11 }
12 robot.SetReConnectParam(true, 30000, 500);
13 char robotModel[64] = { 0 };
14 char webversion[64] = { 0 };
15 char controllerVersion[64] = { 0 };
16 char ctrlBoxBoardversion[128] = { 0 };
17 char driver1version[128] = { 0 };
18 char driver2version[128] = { 0 };
19 char driver3version[128] = { 0 };
20 char driver4version[128] = { 0 };
21 char driver5version[128] = { 0 };
22 char driver6version[128] = { 0 };
23 char endBoardversion[128] = { 0 };
24 rtn = robot.GetSoftwareVersion(robotModel, webversion, controllerVersion);
25 printf("Getsoftwareversion rtn is: %d\n", rtn);
26 printf("robotmodel is: %s, webversion is: %s, controllerVersion is: %s \n\n", robotModel, webversion, controllerVersion);
27 rtn = robot.GetHardwareVersion(ctrlBoxBoardversion, driver1version, driver2version, driver3version, driver4version, driver5version, driver6version, endBoardversion);
28 printf("GetHardwareversion rtn is: %d\n", rtn);
29 printf("GetHardwareversion get hardware versoin is: %s, %s, %s, %s, %s, %s, %s, %s\n\n", ctrlBoxBoardversion, driver1version, driver2version, driver3version, driver4version, driver5version, driver6version, endBoardversion);
30 rtn = robot.GetFirmwareVersion(ctrlBoxBoardversion, driver1version, driver2version, driver3version, driver4version, driver5version, driver6version, endBoardversion);
31 printf("GetFirmwareversion rtn is: %d\n", rtn);
32 printf("GetHardwareversion get hardware versoin is: %s, %s, %s, %s, %s, %s, %s, %s\n\n", ctrlBoxBoardversion, driver1version, driver2version, driver3version, driver4version, driver5version, driver6version, endBoardversion);
33 robot.CloseRPC();
34 return 0;
35 }