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}