3. Roboter-Grundlagen

3.1. Roboter instanziieren

1/**
2* @brief  Konstruktor der Roboter-Schnittstellenklasse.
3*/
4Robot robot = new Robot();

3.2. Kommunikation mit der Steuerung herstellen

1/**
2* @brief  Stellt die Kommunikation mit der Robotersteuerung her.
3* @param  [in] ip  IP-Adresse der Steuerung, werkseitig Standard 192.168.58.2.
4* @return Fehlercode.
5*/
6int RPC(String ip);

3.3. Kommunikation mit dem Roboter schließen

1/**
2* @brief Schließt die Kommunikation mit dem Roboter.
3* @return Fehlercode.
4*/
5int CloseRPC();

3.4. SDK-Version abfragen

1/**
2* @brief Fragt die SDK-Versionsnummer ab.
3* @return Versionsnummer als String.
4*/
5String GetSDKVersion();

3.5. Controller-IP abrufen

1/**
2* @brief Gibt die Controller-IP zurück.
3* @param [out] ip String-Array zur Aufnahme der Controller-IP (erwartet Array der Länge 1).
4* @return Fehlercode.
5*/
6int GetControllerIP(String[] ip);

3.6. Roboter in den Ziehe-Teaching-Modus schalten oder daraus zurückkehren

1/**
2* @brief Schaltet den Roboter in den Ziehe-Teaching-Modus oder zurück.
3* @param [in] state 0-Ziehe-Teaching-Modus verlassen, 1-Ziehe-Teaching-Modus betreten.
4* @return Fehlercode.
5*/
6int DragTeachSwitch(int state);

3.7. Abfragen, ob sich der Roboter im Ziehe-Teaching-Modus befindet

1/**
2* @brief Fragt ab, ob sich der Roboter im Ziehe-Teaching-Modus befindet.
3* @param [out] state Liste mit einem Element: 0-nicht im Ziehe-Teaching-Modus, 1-im Ziehe-Teaching-Modus.
4* @return Fehlercode.
5*/
6int IsInDragTeach(List<Number> state);

3.8. Roboter aktivieren (Enable) oder deaktivieren (Disable)

1/**
2* @brief Aktiviert oder deaktiviert den Roboter. Nach dem Einschalten ist der Roboter standardmäßig automatisch aktiviert.
3* @param [in] state 0-deaktivieren (Disable), 1-aktivieren (Enable).
4* @return Fehlercode.
5*/
6int RobotEnable(int state);

3.9. Umschalten zwischen Hand- und Automatikmodus

1/**
2* @brief Schaltet zwischen Hand- und Automatikmodus um.
3* @param [in] mode 0-Automatikmodus, 1-Handmodus.
4* @return Fehlercode.
5*/
6int Mode(int mode);

3.10. Roboter-Betriebssystem herunterfahren

Neu in Version Java: SDK-v1.0.4-3.8.1

1/**
2* @brief Fährt das Roboter-Betriebssystem herunter.
3* @return Fehlercode.
4*/
5int ShutDownRobotOS();

3.11. Parameter für die automatische Wiederverbindung mit dem Roboter einstellen

1/**
2* @brief Stellt die Parameter für die automatische Wiederverbindung mit dem Roboter ein.
3* @param [in] enable Aktivieren? true-aktivieren, false-deaktivieren.
4* @param [in] times Anzahl der Wiederverbindungsversuche.
5* @param [in] period Zeitintervall zwischen den Wiederverbindungsversuchen (Millisekunden).
6* @return Fehlercode.
7*/
8int SetReconnectParam(boolean enable, int times, int period);

3.12. Logging-Parameter initialisieren

 1/**
 2* @brief Initialisiert die Logging-Parameter.
 3* @param [in] logType Ausgabemodus, DIRECT-direkte Ausgabe; BUFFER-gepufferte Ausgabe; ASYNC-asynchrone Ausgabe.
 4* @param [in] logLevel Log-Filterstufe, ERROR-Fehler; WARNING-Warnung; INFO-Information; DEBUG-Debug.
 5* @param [in] filePath Pfad zum Speichern der Dateien, z.B. "D://Log/".
 6* @param [in] saveFileNum Maximale Anzahl der zu speichernden Dateien. Dateien, die sowohl die maximale Anzahl als auch die maximale Aufbewahrungsdauer überschreiten, werden gelöscht.
 7* @param [in] saveDays Maximale Aufbewahrungsdauer in Tagen. Dateien, die sowohl die maximale Anzahl als auch die maximale Aufbewahrungsdauer überschreiten, werden gelöscht.
 8* @return Fehlercode.
 9*/
10int LoggerInit(FrLogType logType, FrLogLevel logLevel, String filePath, int saveFileNum, int saveDays);

3.13. Log-Filterstufe einstellen

1/**
2* @brief Stellt die Log-Filterstufe ein.
3* @param [in] logLevel Log-Filterstufe, ERROR-Fehler; WARNING-Warnung; INFO-Information; DEBUG-Debug.
4* @return Fehlercode.
5*/
6int SetLoggerLevel(FrLogLevel logLevel);

3.14. Codebeispiel für grundlegende Robotersteuerung

 1public static void main(String[] args)
 2{
 3    Robot robot = new Robot();
 4    robot.SetReconnectParam(true,20,500);
 5    robot.LoggerInit(FrLogType.DIRECT, FrLogLevel.INFO, "D://log", 10, 10);
 6    int rtn = robot.RPC("192.168.58.2");
 7    if(rtn == 0)
 8    {
 9        System.out.println("RPC-Verbindung erfolgreich");
10    }
11    else
12    {
13        System.out.println("RPC-Verbindung fehlgeschlagen");
14        return;
15    }
16    String[] ip={""};
17    String version = "";
18    version=robot.GetSDKVersion();
19    System.out.println("SDK version : " + version);
20    int rtn = robot.GetControllerIP(ip);
21    System.out.println("controller ip : " +  ip[0] + "  " + rtn);
22    robot.Mode(1); // 1-Handmodus, 0-Automatikmodus
23    robot.Sleep(1000);
24    robot.DragTeachSwitch(1); // In Ziehemodus wechseln
25    robot.Sleep(1000);
26    ROBOT_STATE_PKG pkg = robot.GetRobotRealTimeState();
27    System.out.println("drag state : " + pkg.robot_state);
28    robot.Sleep(1000);
29    robot.DragTeachSwitch(0); // Ziehemodus verlassen
30    robot.Sleep(1000);
31    pkg = robot.GetRobotRealTimeState();
32    System.out.println("drag state : " + pkg.robot_state);
33
34    if (pkg.robot_state == 4){
35       System.out.println("Im Ziehemodus");
36    }else {
37       System.out.println("Nicht im Ziehemodus");
38    }
39}

3.15. Roboter-Softwareversion abrufen

1/**
2* @brief Gibt die Roboter-Softwareversionsinformationen zurück.
3* @param [out] robotModel Robotermodell (String).
4* @param [out] webVersion Web-Version (String).
5* @param [out] controllerVersion Controller-Version (String).
6* @return Fehlercode.
7*/
8int GetSoftwareVersion(String robotModel, String webVersion, String controllerVersion);

3.16. Roboter-Hardwareversion abrufen

 1/**
 2* @brief Gibt die Roboter-Hardwareversionsinformationen zurück.
 3* @param [out] ctrlBoxBoardVersion Hardwareversion der Steuerschrankplatine.
 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* @return Fehlercode.
12*/
13int GetHardwareVersion(String ctrlBoxBoardVersion, String driver1Version, String driver2Version, String driver3Version,
14                                      String driver4Version, String driver5Version, String driver6Version, String endBoardVersion);

3.17. Roboter-Firmwareversion abrufen

 1/**
 2* @brief Gibt die Roboter-Firmwareversionsinformationen zurück.
 3* @param [out] ctrlBoxBoardVersion Firmwareversion der Steuerschrankplatine.
 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* @return Fehlercode.
12*/
13int GetFirmwareVersion(String ctrlBoxBoardVersion, String driver1Version, String driver2Version, String driver3Version,
14                                      String driver4Version, String driver5Version, String driver6Version, String endBoardVersion);

3.18. Codebeispiel zum Abrufen von Roboter-Soft-/Firmware-Versionen

 1public static void main(String[] args)
 2{
 3    Robot robot = new Robot();
 4    robot.SetReconnectParam(true,20,500);//设置重连次数、间隔
 5    robot.LoggerInit(FrLogType.DIRECT, FrLogLevel.INFO, "D://log", 10, 10);
 6    int rtn = robot.RPC("192.168.58.2");
 7    if(rtn == 0)
 8    {
 9        System.out.println("RPC-Verbindung erfolgreich");
10    }
11    else
12    {
13        System.out.println("RPC-Verbindung fehlgeschlagen");
14        return;
15    }
16    String ctrlBoxBoardVersion = "";
17    String driver1Version = "";
18    String driver2Version = "";
19    String driver3Version = "";
20    String driver4Version = "";
21    String driver5Version = "";
22    String driver6Version = "";
23    String endBoardVersion = "";
24    robot.GetHardwareVersion(ctrlBoxBoardVersion ,driver1Version,  driver2Version,  driver3Version,
25             driver4Version,  driver5Version,  driver6Version,  endBoardVersion);
26
27    robot.GetFirmwareVersion(ctrlBoxBoardVersion, driver1Version, driver2Version, driver3Version,
28            driver4Version, driver5Version, driver6Version, endBoardVersion);
29}