3. Roboter-Grundlagen

3.1. Roboter instanziieren

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

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 trennen

1/**
2* @brief Trennt die Kommunikation mit der Robotersteuerung.
3* @return Fehlercode.
4*/
5int CloseRPC();

3.4. SDK-Version abfragen

1/**
2* @brief Fragt die SDK-Versionsnummer ab.
3* @param [out] version SDK-Versionsnummer.
4* @return Fehlercode.
5*/
6int GetSDKVersion(ref string version);

3.5. Controller-IP abrufen

1/**
2* @brief Gibt die Controller-IP zurück.
3* @param [out] ip Controller-IP.
4* @return Fehlercode.
5*/
6int GetControllerIP(ref 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(byte state);

3.7. Abfragen, ob sich der Roboter im Ziehemodus befindet

1/**
2* @brief Fragt ab, ob sich der Roboter im Ziehe-Teaching-Modus befindet.
3* @param [out] state 0-nicht im Ziehe-Teaching-Modus, 1-im Ziehe-Teaching-Modus.
4* @return Fehlercode.
5*/
6int IsInDragTeach(ref byte 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(byte 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

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

3.11. Codebeispiel

1private void button6_Click(object sender, EventArgs e)
2{
3    int rtn = robot.ShutDownRobotOS();
4    Console.WriteLine($"ShutDownRobotOS rtn is {rtn}");
5}

3.12. 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*/
7void SetReconnectParam(bool enable, int times, int period);

3.13. Codebeispiel

 1private void btnStandard_Click(object sender, EventArgs e)
 2{
 3    Robot robot = new Robot();
 4    robot.SetReconnectParam(true, 100, 20000); // Parameter für Wiederverbindung bei Verbindungsabbruch
 5    robot.RPC("192.168.58.2");
 6
 7    string ip = "";
 8    string version = "";
 9    byte state = 0;
10
11    robot.GetSDKVersion(ref version);
12    Console.WriteLine($"SDK version : {version}");
13    robot.GetControllerIP(ref ip);
14    Console.WriteLine($"controller ip : {ip}");
15
16    robot.Mode(1);
17    Thread.Sleep(1000);
18    robot.DragTeachSwitch(1);
19    int rtn = robot.IsInDragTeach(ref state);
20    Console.WriteLine($"drag state : {state}");
21    Thread.Sleep(3000);
22    robot.DragTeachSwitch(0);
23    Thread.Sleep(1000);
24    robot.IsInDragTeach(ref state);
25    Console.WriteLine($"drag state : {state}");
26    Thread.Sleep(3000);
27    robot.RobotEnable(0);
28    Thread.Sleep(3000);
29    robot.RobotEnable(1);
30
31    robot.Mode(0);
32    Thread.Sleep(1000);
33    robot.Mode(1);
34}

3.14. 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 = FrLogType.DIRECT, FrLogLevel logLevel = FrLogLevel.INFO, string filePath = "", int saveFileNum = 10, int saveDays = 10);

3.15. 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.16. Roboter-Softwareversion abrufen

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

3.17. 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(ref string ctrlBoxBoardVersion, ref string driver1Version, ref string driver2Version, ref string driver3Version, ref string driver4Version, ref string driver5Version, ref string driver6Version, ref string endBoardVersion);

3.18. 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(ref string ctrlBoxBoardVersion, ref string driver1Version, ref string driver2Version, ref string driver3Version, ref string driver4Version, ref string driver5Version, ref string driver6Version, ref string endBoardVersion);

3.19. Codebeispiel

 1private void btnGetVersions_Click(object sender, EventArgs e)
 2{
 3    string[] ver = new string[20];
 4    int rtn = 0;
 5    rtn = robot.GetSoftwareVersion(ref ver[0], ref ver[1], ref ver[2]);
 6    rtn = robot.GetHardwareVersion(ref ver[3], ref ver[4], ref ver[5], ref ver[6], ref ver[7], ref ver[8], ref ver[9], ref ver[10]);
 7    rtn = robot.GetFirmwareVersion(ref ver[11], ref ver[12], ref ver[13], ref ver[14], ref ver[15], ref ver[16], ref ver[17], ref ver[18]);
 8    Console.WriteLine($"robotmodel  is: {ver[0]}");
 9    Console.WriteLine($"webVersion  is: {ver[1]}");
10    Console.WriteLine($"controllerVersion  is: {ver[2]}");
11    Console.WriteLine($"Hard ctrlBox Version  is: {ver[3]}");
12    Console.WriteLine($"Hard driver1 Version  is: {ver[4]}");
13    Console.WriteLine($"Hard driver2 Version  is: {ver[5]}");
14    Console.WriteLine($"Hard driver3 Version  is: {ver[6]}");
15    Console.WriteLine($"Hard driver4 Version  is: {ver[7]}");
16    Console.WriteLine($"Hard driver5 Version  is: {ver[8]}");
17    Console.WriteLine($"Hard driver6 Version  is: {ver[9]}");
18    Console.WriteLine($"Hard end Version  is: {ver[10]}");
19    Console.WriteLine($"Firm ctrlBox Version  is: {ver[11]}");
20    Console.WriteLine($"Firm driver1 Version  is: {ver[12]}");
21    Console.WriteLine($"Firm driver2 Version  is: {ver[13]}");
22    Console.WriteLine($"Firm driver3 Version  is: {ver[14]}");
23    Console.WriteLine($"Firm driver4 Version  is: {ver[15]}");
24    Console.WriteLine($"Firm driver5 Version  is: {ver[16]}");
25    Console.WriteLine($"Firm driver6 Version  is: {ver[17]}");
26    Console.WriteLine($"Firm end Version  is: {ver[18]}");
27}