I need help for Comp File programming

More
6 years 9 months ago #154139 by ChironFZ16
Hallo

I have old Comp file for Programming Linuxcnc 2.5.x , they worked until linuxcnc 2.8, but with the newer 2.9 masters I always get error messages and some functions when changing tools do not work anymore.
I would be very grateful if someone could help me.
I have tried a little bit, but I can't see the forest for the trees. ;)
Especially syntax and variables, whether they are correct.

Wekzeugwechsler.comp
Code:
component WZW " Wechselt Werkzeuge "; // Ausgänge /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// pin out bit Klemmung-auf = false " Klemmung öffnen "; pin out bit Spindel-an = false " Spindel an 150 U/min "; pin out bit Ausblasen-an = false " WKZKegel Ausblasen starten "; pin out bit Korb-rauf = false " Korb hoch fahren "; pin out bit Korb-runter = false " Korb runter fahren "; pin out bit Alle-WKZ-rauf = false " Alle Werkzeuge nach oben fahren "; pin out bit WKZ-runter-##[13] = false " Werkzeug ## runterfahren "; pin out bit WZW-Beendet = false " Beendet den Werkzeugwechsel"; pin out float Meldung = 0 " Ausgang für Meldecodeausgabe "; // Eingänge /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// pin in bit IS-MAN = false " Manueller Modus ausgewählt "; pin in s32 Aktuelle-WKZ-Nummer = 0 " Eingang für das Signal der aktuellen WKZ Nummer "; pin in s32 Naechste-WKZ-Nummer = 0 " Eingang für das Signal der naechsten WKZ Nummer "; pin in bit Werkzeugwechsel-Start = false " Eingang für das WZWStartSignal "; pin in bit Werkzeug-Beladen-Start-Stopp = false " Eingang für das Werkzeug-Beladen Start Signal "; pin in bit Schluesselschalter = false " Eingang für das Werkzeug-Beladen Sicherheitssignal "; pin in bit Taster-WKZ-##[13] = false " Grafischer Taster Auswahl Werkzeug 1 "; pin in bit Sensor-Klemmung-auf = false " Sensor für offene Klemmung "; pin in bit Sensoren-Korb-unten = false " Sensor für Korb unten "; pin in bit Sensoren-Korb-oben = false " Sensor für Korb oben "; pin in bit Sensor-WKZ-##[13] = false " Sensoren der einzelnen Arme für Werkzeug oben "; pin in bit Sensoren-Ein-WKZ-unten = false " Sensor des gewhlten Werkzeugs untere Endlage "; pin in bit Sensoren-Alle-WKZ-oben = false " Sensoren aller Werkzeuge obere Endlage "; pin in float Drehzahl = 0 " aktuelle Spindel Drehzahl "; pin in float Spindel-Position = 0 " aktuelle Spindel Position "; // Setp-einstellbare Variablen ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// param rw float Verzoegerung = 1 " Verzögerung in ms bevor Klemmung schließt "; // Interne Variablen /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// variable int Schrittnummer = 0; // Gibt den aktuellen Schritt an variable int Werkzeug = 0; // Gibt das nächste Werkzeug an variable float Pausentimer = 0; // variable Zeitzähler variable float Fehlerzeit = 0; // Dauer des Vorgangs variable int Meldecode = 0; // Hilfsvariable zur Fehlerausgabe variable float Zeit = 0; // Anzeigezeit der Fehlerausgabe variable float Spindelpos = 0; // Position der Spindel vor dem drehen // Programmkopf ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// option singleton yes; function _ "Wechselt Werkzeuge"; license "GPL"; ;; enum mystates {WarteSignal=0, Spezialwechsel1, Spezialwechsel2, KlemmungOeffnen, KorbRunterfahren, WerkzeugeHochfahren, WerkzeugRunter, SpezialWerkzeug1, KorbHochfahren, SpezialWerkzeug2, KlemmungSchliesen, WZWBeenden, Fehlerfall}; FUNCTION(_) { int co; // Direkte Signaldurchführungen //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Meldung = Meldecode; // Ausgang = Variable // Automatik Ablauf //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// switch(Schrittnummer) { case WarteSignal: if(!Werkzeugwechsel_Start) { WZW_Beendet = false; //Reset durch das System nach jedem Durchgang } if(Werkzeug_Beladen_Start_Stopp && Schluesselschalter && IS_MAN && (Drehzahl <= 120) && !Sensoren_Alle_WKZ_oben && (Aktuelle_WKZ_Nummer <= 12)) //WZW Beladen wird gestartet { Schrittnummer = KlemmungOeffnen; break; } if(Werkzeugwechsel_Start && Naechste_WKZ_Nummer && !WZW_Beendet && (Drehzahl <= 10)) //WZW Auto wird gestartet { if(((Aktuelle_WKZ_Nummer >= 13) && (Aktuelle_WKZ_Nummer <= 20)) || (Sensoren_Alle_WKZ_oben && Aktuelle_WKZ_Nummer != 21)) //Spezialwechsel { Werkzeug = Naechste_WKZ_Nummer; Spindelpos = Spindel_Position; Schrittnummer = Spezialwechsel1; break; } else // Normaler wechsel { Werkzeug = Naechste_WKZ_Nummer; Schrittnummer = KlemmungOeffnen; break; } } break; case KlemmungOeffnen: Klemmung_auf = true; Ausblasen_an = true; Schrittnummer = KorbRunterfahren; break; case KorbRunterfahren: Fehlerzeit += period * 0.000000001; if(Sensor_Klemmung_auf) { Fehlerzeit = 0; Korb_runter = true; Schrittnummer = WerkzeugeHochfahren; } break; case WerkzeugeHochfahren: Fehlerzeit += period * 0.000000001; if(Sensoren_Korb_unten) { Fehlerzeit = 0; Korb_runter = false; Alle_WKZ_rauf = true; if(Schluesselschalter && IS_MAN) //WZW Beladen Auswahl wird gestartet { Ausblasen_an = false; for(co=0;co<13;co++) //Taster suchen { if(Taster_WKZ(co)) { Werkzeug = co; //Taster wird Werkzeug zugewiesen Schrittnummer = WerkzeugRunter; break; } } break; } if(Werkzeugwechsel_Start && Werkzeug <= 12) { Schrittnummer = WerkzeugRunter; break; } if(Sensoren_Alle_WKZ_oben && ((Werkzeugwechsel_Start && Werkzeug >= 13) && (Werkzeugwechsel_Start && Werkzeug <= 20))) { Spindelpos = Spindel_Position; Korb_rauf = true; Ausblasen_an = false; Schrittnummer = SpezialWerkzeug1; break; } if(Werkzeugwechsel_Start && (Werkzeug == 21) && Sensoren_Alle_WKZ_oben) { Alle_WKZ_rauf = false; Schrittnummer = KorbHochfahren; break; } } break; case WerkzeugRunter: Fehlerzeit += period * 0.000000001; if((Sensoren_Alle_WKZ_oben && Naechste_WKZ_Nummer) || (Sensoren_Alle_WKZ_oben && Schluesselschalter && IS_MAN)) { Fehlerzeit = 0; Alle_WKZ_rauf = false; WKZ_runter(Werkzeug) = true; //Ausgewähltes Werkzeug runterfahren Schrittnummer = KorbHochfahren; } break; case KorbHochfahren: if(Sensoren_Ein_WKZ_unten && Naechste_WKZ_Nummer) { for(co=0;co<13;co++) WKZ_runter(co) = false; //Werkzeugrunter im Bereich 0-12 reseten Korb_rauf = true; Spindel_an = true; Pausentimer = Verzoegerung; Schrittnummer = KlemmungSchliesen; break; } if(Sensoren_Ein_WKZ_unten && Schluesselschalter && Werkzeug_Beladen_Start_Stopp && IS_MAN) { Ausblasen_an = true; for(co=0;co<13;co++) WKZ_runter(co) = false; //Werkzeugrunter im Bereich 0-12 reseten Korb_rauf = true; Spindel_an = true; Pausentimer = Verzoegerung; Schrittnummer = KlemmungSchliesen; break; } if(Sensoren_Ein_WKZ_unten && Schluesselschalter && IS_MAN) { Ausblasen_an = false; for(co=0;co<13;co++) //Taster suchen { if(Taster_WKZ(co)) { Werkzeug = co; //Taster wird Werkzeug zugewiesen for(co=0;co<13;co++) WKZ_runter(co) = false; //Werkzeugrunter im Bereich 0-12 reseten Alle_WKZ_rauf = true; Schrittnummer = WerkzeugRunter; break; } } } if(Werkzeug == 21) { Korb_rauf = true; Pausentimer = 0; Schrittnummer = KlemmungSchliesen; break; } break; case KlemmungSchliesen: Fehlerzeit += period * 0.000000001; if(Sensoren_Korb_oben) { Fehlerzeit = 0; Korb_rauf = false; if(Pausentimer > 0) { Pausentimer -= period * 0.000000001; break; } Klemmung_auf = false; Schrittnummer = WZWBeenden; } break; case WZWBeenden: Fehlerzeit += period * 0.000000001; if(!Sensor_Klemmung_auf) { Fehlerzeit = 0; Ausblasen_an = false; Spindel_an = false; WZW_Beendet = true; Schrittnummer = WarteSignal; } break; // Spezialwerkzeugwechsel ablauf //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// case Spezialwechsel1: if((Spindel_Position >= (Spindelpos + 0.2)) || (Spindel_Position <= (Spindelpos - 0.2))) { Klemmung_auf = true; Schrittnummer = Spezialwechsel2; } break; case Spezialwechsel2: if(Sensor_Klemmung_auf && Werkzeug_Beladen_Start_Stopp) { Schrittnummer = KlemmungOeffnen; } break; case SpezialWerkzeug1: if(Sensoren_Korb_oben && ((Spindel_Position >= (Spindelpos + 0.2)) || (Spindel_Position <= (Spindelpos - 0.2)))) { Korb_rauf = false; Klemmung_auf = false; Schrittnummer = SpezialWerkzeug2; } break; case SpezialWerkzeug2: if(Werkzeug_Beladen_Start_Stopp) { Schrittnummer = WZWBeenden; } break; // Fehlerfälle ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// case Fehlerfall: break; default: //Fehler! Schrittnummer = Fehlerfall; } // Meldecodeausgabe ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ((Werkzeug_Beladen_Start_Stopp && (Schrittnummer == WarteSignal)) && (Sensoren_Alle_WKZ_oben || (Aktuelle_WKZ_Nummer >= 13))) { Meldecode = 1; Zeit = 0.5; } if (Schrittnummer == Fehlerfall) { Meldecode = 2; Zeit = 0.5; } if ((Schrittnummer == KorbHochfahren) && Schluesselschalter && Werkzeug_Beladen_Start_Stopp) { Meldecode = 3; Zeit = 0.5; } if (Werkzeug_Beladen_Start_Stopp && !Schluesselschalter && (Schrittnummer == WarteSignal) && (Schrittnummer != SpezialWerkzeug2 || Spezialwechsel2)) { Meldecode = 4; Zeit = 0.5; } if (Werkzeug_Beladen_Start_Stopp && !IS_MAN && (Schrittnummer != SpezialWerkzeug2 || Spezialwechsel2)) { Meldecode = 5; Zeit = 0.5; } if (Werkzeug_Beladen_Start_Stopp && (Drehzahl > 120) && (Schrittnummer != SpezialWerkzeug2 || Spezialwechsel2)) { Meldecode = 6; Zeit = 0.5; } if ((Schrittnummer == KorbRunterfahren) && (Fehlerzeit >= 10)) { Meldecode = 7; Zeit = 0.5; } if ((Schrittnummer == WerkzeugeHochfahren) && (Fehlerzeit >= 10)) { Meldecode = 8; Zeit = 0.5; } if ((Schrittnummer == WerkzeugRunter) && (Fehlerzeit >= 10)) { Meldecode = 9; Zeit = 0.5; } if ((Schrittnummer == KlemmungSchliesen) && (Fehlerzeit >= 10)) { Meldecode = 10; Zeit = 0.5; } if ((Schrittnummer == WZWBeenden) && (Fehlerzeit >= 10)) { Meldecode = 11; Zeit = 0.5; } if (Schrittnummer == Spezialwechsel1) { Meldecode = 12; Zeit = 0.5; } if (Schrittnummer == Spezialwechsel2) { Meldecode = 13; Zeit = 0.5; } if (Schrittnummer == SpezialWerkzeug1) { Meldecode = 14; Zeit = 0.5; } if (Schrittnummer == SpezialWerkzeug2) { Meldecode = 15; Zeit = 0.5; } if(Zeit > 0) { Zeit -= period * 0.000000001; } if(Zeit <= 0) { Zeit = 0; Meldecode = 0; } }

Meldung. comp
Code:
component Meldung " Gibt Meldungen aus wenn Fehler anstehen "; // Eingaenge //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// pin in bit Not-AUS = false " ( Pin: halui.estop.is-activated ) Not-Aus aktiviert "; pin in bit Endschalter = false " ( Pin: motion.on-soft-limit ) Endschalter angefahren "; pin in bit X-Fehler-1 = false " ( Pin: joint_0.error ) Fehler X-Achse "; pin in bit Y-Fehler-1 = false " ( Pin: joint_1.error ) Fehler Y-Achse "; pin in bit Z-Fehler-1 = false " ( Pin: joint_2.error ) Fehler Z-Achse "; pin in bit X-Fehler-2 = false " ( Pin: halui_joint.0.has-fault ) Fehler X-Achse 2 "; pin in bit Y-Fehler-2 = false " ( Pin: halui_joint.1.has-fault ) Fehler Y-Achse 2 "; pin in bit Z-Fehler-2 = false " ( Pin: halui_joint.2.has-fault ) Fehler Z-Achse 2 "; pin in bit X-Endsch-Rechts = false " ( Pin: halui.joint_0.on-soft-max-limit ) X-Achse Endschalter Rechts "; pin in bit Y-Endsch-Vorne = false " ( Pin: halui.joint_1.on-soft-max-limit ) Y-Achse Endschalter Vorne "; pin in bit Z-Endsch-Oben = false " ( Pin: halui.joint_2.on-soft-max-limit ) Z-Achse Endschalter Oben "; pin in bit X-Endsch-Links = false " ( Pin: halui.joint_0.on-soft-min-limit ) X-Achse Endschalter Links "; pin in bit Y-Endsch-Hinten = false " ( Pin: halui.joint_1.on-soft-min-limit ) Y-Achse Endschalter Hinten "; pin in bit Z-Endsch-Unten = false " ( Pin: halui.joint_2.on-soft-min-limit ) Z-Achse Endschalter Unten "; pin in float Spindel-Fehler = 0 " ( Pin: Spindel.Meldung ) Rückmeldepin für den Spindel Fehlercode "; pin in float WZW-Fehler = 0 " ( Pin: WZW.Meldung ) Rückmeldepin für den WZW Fehlercode "; pin in float WSW-Fehler = 0 " ( Pin: WSW.Meldung ) Rückmeldepin für den WSW Fehlercode "; pin in float SF-Fehler = 0 " ( Pin: SF.Meldung ) Rückmeldepin für den SF Fehlercode "; // Ausgaenge //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// pin out bit Taster-Fehler-Reset = false " ( Pin: halui.abort ) Taster für Fehler Reset "; pin out bit Programm-Pause = false " ( Pin: halui.program.pause ) Programm wird pausiert "; pin out bit Programm-weiter = false " ( Pin: halui.program.resume ) Programm wird fortgesetzt "; // Interne Variablen //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// variable int Axis_warten1 = true; // Verriegelvariable 1 variable int Axis_warten2 = true; // Verriegelvariable 2 variable int Axis_warten3 = true; // Verriegelvariable 3 variable int Axis_warten4 = true; // Verriegelvariable 4 variable int Axis_warten5 = true; // Verriegelvariable 5 variable int Axis_warten6 = true; // Verriegelvariable 6 variable int Axis_warten7 = true; // Verriegelvariable 7 variable int Axis_warten8 = true; // Verriegelvariable 8 variable int Axis_warten9 = true; // Verriegelvariable 9 variable int Axis_warten10 = true; // Verriegelvariable 10 variable int Axis_warten11 = true; // Verriegelvariable 11 variable int Axis_warten12 = true; // Verriegelvariable 12 variable int Axis_warten13 = true; // Verriegelvariable 13 variable int Axis_warten14 = true; // Verriegelvariable 14 variable int Spindel_warten = true; // Verriegelvariable Spindel variable int WZW_warten = true; // Verriegelvariable WZW variable int WZW_warten1 = true; // Verriegelvariable WZW Spezialwechsel variable int WZW_warten2 = true; // Verriegelvariable WZW Spezialwerkzeug variable int WSW_warten = true; // Verriegelvariable WSW variable int SF_warten = true; // Verriegelvariable SF // Programmkopf //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// option singleton yes; function _ " Gibt RTAPI Meldungen aus "; license "GPL"; ;; FUNCTION(_) { // Fehler Axis //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (Not_AUS && Axis_warten1) { rtapi_print_msg(RTAPI_MSG_ERR, "Achtung: Not-Aus aktiviert!"); Axis_warten1 = false; } if (Endschalter && Axis_warten2) { rtapi_print_msg(RTAPI_MSG_ERR, "Achtung: Endschalter angefahren!"); Axis_warten2 = false; } if (X_Fehler_1 && Axis_warten3) { rtapi_print_msg(RTAPI_MSG_ERR, "Achtung: Fehler X-Achse!"); Axis_warten3 = false; } if (Y_Fehler_1 && Axis_warten4) { rtapi_print_msg(RTAPI_MSG_ERR, "Achtung: Fehler Y-Achse!"); Axis_warten4 = false; } if (Z_Fehler_1 && Axis_warten5) { rtapi_print_msg(RTAPI_MSG_ERR, "Achtung: Fehler Z-Achse!"); Axis_warten5 = false; } if (X_Fehler_2 && Axis_warten6) { rtapi_print_msg(RTAPI_MSG_ERR, "Achtung: Fehler X-Achse 2!"); Axis_warten6 = false; } if (Y_Fehler_2 && Axis_warten7) { rtapi_print_msg(RTAPI_MSG_ERR, "Achtung: Fehler Y-Achse 2!"); Axis_warten7 = false; } if (Z_Fehler_2 && Axis_warten8) { rtapi_print_msg(RTAPI_MSG_ERR, "Achtung: Fehler Z-Achse 2!"); Axis_warten8 = false; } if (X_Endsch_Rechts && Axis_warten9) { rtapi_print_msg(RTAPI_MSG_ERR, "Achtung: X-Achse Endschalter Rechts!"); Axis_warten9 = false; } if (X_Endsch_Links && Axis_warten10) { rtapi_print_msg(RTAPI_MSG_ERR, "Achtung: X-Achse Endschalter Links!"); Axis_warten10 = false; } if (Y_Endsch_Vorne && Axis_warten11) { rtapi_print_msg(RTAPI_MSG_ERR, "Achtung: Y-Achse Endschalter Vorne!"); Axis_warten11 = false; } if (Y_Endsch_Hinten && Axis_warten12) { rtapi_print_msg(RTAPI_MSG_ERR, "Achtung: Y-Achse Endschalter Hinten!"); Axis_warten12 = false; } if (Z_Endsch_Oben && Axis_warten13) { rtapi_print_msg(RTAPI_MSG_ERR, "Achtung: Z-Achse Endschalter Oben!"); Axis_warten13 = false; } if (Z_Endsch_Unten && Axis_warten14) { rtapi_print_msg(RTAPI_MSG_ERR, "Achtung: Z-Achse Endschalter Unten!"); Axis_warten14 = false; } if (!Not_AUS) { Axis_warten1 = true; } if (!Endschalter) { Axis_warten2 = true; } if (!X_Fehler_1) { Axis_warten3 = true; } if (!Y_Fehler_1) { Axis_warten4 = true; } if (!Z_Fehler_1) { Axis_warten5 = true; } if (!X_Fehler_2) { Axis_warten6 = true; } if (!Y_Fehler_2) { Axis_warten7 = true; } if (!Z_Fehler_2) { Axis_warten8 = true; } if (!X_Endsch_Rechts) { Axis_warten9 = true; } if (!X_Endsch_Links) { Axis_warten10 = true; } if (!Y_Endsch_Vorne) { Axis_warten11 = true; } if (!Y_Endsch_Hinten) { Axis_warten12 = true; } if (!Z_Endsch_Oben) { Axis_warten13 = true; } if (!Z_Endsch_Unten) { Axis_warten14 = true; } // Fehler Spindel ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (Spindel_Fehler == 1 && Spindel_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Fehler: MAN-Modus nicht angewaehlt!"); Spindel_warten = false; } if (Spindel_Fehler == 2 && Spindel_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Fehler: M19 P Parameter > 2!"); Spindel_warten = false; } if (Spindel_Fehler == 3 && Spindel_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Fehler: M19 R Parameter > 360!"); Spindel_warten = false; } if (Spindel_Fehler == 4 && Spindel_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Achtung: Orient Offset zu groß!"); Spindel_warten = false; } if (Spindel_Fehler == 5 && Spindel_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Fehler: Eingegebene Drehzahl zu hoch!"); Spindel_warten = false; } if (Spindel_Fehler == 0) { Spindel_warten = true; } // Fehler WZW ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (WZW_Fehler == 1 && WZW_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Fehler: Beladen nicht moeglich Spezialwerkzeug zuerst mit M6 T21 entfernen!"); WZW_warten = false; } if (WZW_Fehler == 2 && WZW_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Achtung: Falscher Schritt in WZW.comp!"); WZW_warten = false; } if (WZW_Fehler == 3 && WZW_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Fehler: Zuerst Schluesselschalter abschalten!"); WZW_warten = false; } if (WZW_Fehler == 4 && WZW_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Fehler: Zuerst Schluesselschalter einschalten!"); WZW_warten = false; } if (WZW_Fehler == 5 && WZW_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Fehler: Zuerst in manuellen Modus wechseln!"); WZW_warten = false; } if (WZW_Fehler == 6 && WZW_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Fehler: Zuerst Spindel abschalten!"); WZW_warten = false; } if (WZW_Fehler == 7 && WZW_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Fehler: Klemmung oeffnet nicht oder Sensor reagiert nicht!"); WZW_warten = false; } if (WZW_Fehler == 8 && WZW_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Achtung: Korb faehrt nicht runter oder Sensoren reagieren nicht!"); WZW_warten = false; } if (WZW_Fehler == 9 && WZW_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Fehler: Werkzeuge fahren nicht hoch oder ein Sensor reagiert nicht!"); WZW_warten = false; } if (WZW_Fehler == 10 && WZW_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Fehler: Korb faehrt nicht hoch oder Sensoren reagieren nicht!"); WZW_warten = false; } if (WZW_Fehler == 11 && WZW_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Fehler: Klemmung schließt nicht oder Sensor faellt nicht ab!"); WZW_warten = false; } if (WZW_Fehler == 12 && WZW_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Achtung: Werkzeug entnehmen!"); WZW_warten = false; } if (WZW_Fehler == 13 && WZW_warten1) { rtapi_print_msg(RTAPI_MSG_ERR, "Achtung: Entnahme mit Taster WZW Beladen beenden!"); WZW_warten1 = false; } if (WZW_Fehler == 14 && WZW_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Achtung: Werkzeug einlegen!"); WZW_warten = false; } if (WZW_Fehler == 15 && WZW_warten2) { rtapi_print_msg(RTAPI_MSG_ERR, "Achtung: Einlage mit Taster WZW Beladen beenden!"); WZW_warten2 = false; } if (WZW_Fehler == 0) { WZW_warten = true; } if (WZW_Fehler != 13) { WZW_warten1 = true; } if (WZW_Fehler != 15) { WZW_warten2 = true; } // Fehler WSW ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (WSW_Fehler == 1 && WSW_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Fehler: Zuerst Schluesselschalter einschalten!"); WSW_warten = false; } if (WSW_Fehler == 2 && WSW_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Fehler: Seite 1 bereits angewaehlt!"); WSW_warten = false; } if (WSW_Fehler == 3 && WSW_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Fehler: Seite 2 bereits angewaehlt!"); WSW_warten = false; } if (WSW_Fehler == 4 && WSW_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Fehler: MAN-Modus erforderlich!"); WSW_warten = false; } if (WSW_Fehler == 5 && WSW_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Achtung: Z Position zu niedrig Crashgefahr!"); WSW_warten = false; } if (WSW_Fehler == 6 && WSW_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Achtung: Z nicht referenziert Crashgefahr!"); WSW_warten = false; } if (WSW_Fehler == 7 && WSW_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Achtung: Tisch entriegelt nicht oder Sensor reagiert nicht!"); WSW_warten = false; } if (WSW_Fehler == 8 && WSW_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Achtung: Drehbewegung zu langsam evtl. durch Druckmangel oder Sensor reagiert nicht!"); WSW_warten = false; } if (WSW_Fehler == 9 && WSW_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Achtung: verriegelt nicht oder Sensor reagiert nicht!"); WSW_warten = false; } if (WSW_Fehler == 0) { WSW_warten = true; } // Fehler SF ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (SF_Fehler == 1 && SF_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "Achtung: Spaenfoerderer deaktiviert!"); SF_warten = false; } if (SF_Fehler == 0) { SF_warten = true; } }

Spinde.comp
Code:
component Spindel " Steuert die Spindel an mit Orientieren und manueller Kontrolle "; // Eingaenge //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// pin in bit IS-MAN = false " ( Pin: IS-MAN) MAN Modus angewählt "; pin in bit IS-MDI = false " ( Pin: IS-MDI) MDI Modus angewählt "; pin in bit IS-AUTO = false " ( Pin: IS-AUTO) AUTO Modus angewählt "; pin in bit Taster-Spindel-EIN = false " ( Pin: hm2_5i20.x.gpio.0xx.in ) Taster Spindel ein "; pin in bit Taster-schneller = false " ( Pin: hm2_5i20.x.gpio.0xx.in ) Erhöht die Spindelgeschwindigkeit "; pin in bit Taster-langsamer = false " ( Pin: hm2_5i20.x.gpio.0xx.in ) Verlangsamt die Spindelgeschwindigkeit "; pin in bit Spindel-ist-EIN = false " ( Pin: halui.spindle.is-on ) Rückmeldung Spindel ist eingeschaltet "; pin in bit Spindel-Freigabe = false " ( Pin: motion.spindle-on ) Freigabe für die Spindel "; pin in float Eingabe-Drehzahl-rpm = 0 " ( Pin: motion.spindle-speed-out ) Eingabe Drehzahl von EMC in Umdrehungen pro Minute "; pin in float Eingabe-Drehzahl-rps = 0 " ( Pin: motion.spindle-speed-out-rps ) Eingabe Drehzahl von EMC in Umdrehungen pro Sekunde "; pin in float Ausgabe-Drehzahl-rps = 0 " ( Pin: hm2_5i20.0.encoder.03.velocity ) Ausgabe Drehzahl von EMC "; pin in float Spindel-Position = 0 " ( Pin: hm2_5i20.0.encoder.03.position ) Aktuelle Spindelposition vom Encoder in Einheiten/Umdrehung "; pin in s32 Werkzeugnummer = 0 " ( Pin: Aktuelles-Werkzeug ) Aktuelle Werkzeugnummer "; // Ausgaenge //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// pin out bit Umrichterfreigabe = false " ( Pin: hm2_5i20.x.gpio.0xx.out ) Spindel Umrichter Freigabepin "; pin out bit manuell-Start = false " ( Pin: halui.spindle.start ) Spindel EIN per Taster manuell "; pin out bit manuell-Stop = false " ( Pin: halui.spindle.stop ) Spindel AUS per Taster manuell "; pin out bit OR-schneller = false " ( Pin: halui.spindle-override.increase ) Spindelübersteuerung- wird schneller "; pin out bit OR-langsamer = false " ( Pin: halui.spindle-override.decrease ) Spindelübersteuerung- wird langsamer "; pin out float Uebersteuerung = 0 " ( Pin: halui.spindle-override.scale ) Drehzahlübersteuerung "; pin out float Ausgabe-Drehzahl-rpm = 0 " ( Pin: pyvcp.XXXX ) Drehzahlrückmeldung in rpm für pyvcp "; pin out bit Drehzahl-erreicht = false " ( Pin: motion.spindle-at-speed ) Rückmelde Pin für Spindle at speed Signal "; pin out bit PWM-Freigabe = false " ( Pin: hm2_5i20.0.pwmgen.03.enable ) PWM Freigabepin "; pin out float PWM-Eingabe = 0 " ( Pin: hm2_5i20.0.pwmgen.03.value ) PWM Sollwerteingabe "; pin out float Meldung = 0 " ( Pin: Meldung.Spindel-Fehler ) Ausgang für Meldecodeausgabe "; // Setp-einstellbare Variablen //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// param rw float Uebersteuerungsbereich = 1 " Uebersteuerungsbereich Drehzahl "; // Interne Variablen //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// variable int Meldecode = 0; // Hilfsvariable zur Fehlerausgabe variable float Entprellen = 0; // Zeitvariable zum entprellen variable float Zeit = 0; // Anzeigezeit der Fehlerausgabe variable float Drehzahlabweichung = 0; // Aktuelle Drehazhlabweichung variable float PositionV = 0; // Aktuelle Spindelposition in grad // Programmkopf //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// option singleton yes; option fp yes; function _ "Steuert die Spindel an mit Orientieren und manueller Kontrolle"; license "GPL"; ;; FUNCTION(_) { // Direkte Signaldurchführungen //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Ausgabe_Drehzahl_rpm = Ausgabe_Drehzahl_rps * 60 * 1; // Umdrehungen pro Sekunde => Umdrehungen pro Minute Uebersteuerung = Uebersteuerungsbereich; // Durchführung der Einstellung für das Spindle override scale Meldung = Meldecode; // Ausgang = Variable Drehzahlabweichung = Eingabe_Drehzahl_rps - (Ausgabe_Drehzahl_rps * 1); // Spindelfreigabe //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ((Werkzeugnummer != 13) && Spindel_Freigabe) { PWM_Freigabe = true; Umrichterfreigabe = true; } if (!Spindel_Freigabe) { PWM_Freigabe = false; Umrichterfreigabe = false; } // Manuelle Steuerung der Spindel //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (IS_MAN) { if (Taster_Spindel_EIN && !Spindel_ist_EIN && (Entprellen == 0)) { manuell_Stop = false; manuell_Start = true; Entprellen = 0.5; } if (Taster_Spindel_EIN && Spindel_ist_EIN && (Entprellen == 0)) { manuell_Start = false; manuell_Stop = true; Entprellen = 0.5; } if (Taster_langsamer) { OR_langsamer = true; } if (Taster_schneller) { OR_schneller = true; } if (!Taster_langsamer) { OR_langsamer = false; } if (!Taster_schneller) { OR_schneller = false; } } if(Entprellen > 0) // Entprellen > 0 { Entprellen -= period * 0.000000001; // Zeitablauf Entprellen 1 Sekunde } if(Entprellen < 0) // Entprellen < 0 { Entprellen = 0; // Entprellen zurück auf 0 setzen } // IST-Drehzahl Überwachung //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (Spindel_Freigabe) { if (Spindel_Freigabe && Eingabe_Drehzahl_rpm <= 4500) { PWM_Eingabe = Eingabe_Drehzahl_rpm; } if (Spindel_Freigabe && Eingabe_Drehzahl_rpm > 4500) { PWM_Eingabe = 4500; } if (Drehzahlabweichung * Drehzahlabweichung < 0.1) { Drehzahl_erreicht = true; } if (Drehzahlabweichung * Drehzahlabweichung > 0.1) { Drehzahl_erreicht = false; } } // Meldecodeausgabe ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if (!IS_MAN && Taster_Spindel_EIN) { Meldecode = 1; Zeit = 0.5; } if (Eingabe_Drehzahl_rpm > 4500) { Meldecode = 5; Zeit = 0.5; } if(Zeit > 0) { Zeit -= period * 0.000000001; } if(Zeit <= 0) { Zeit = 0; Meldecode = 0; } }

Please Log in to join the conversation.

More
6 years 9 months ago #154142 by tommylight
Ales mit "spindle" mus "spindle.0" sein.

Please Log in to join the conversation.

More
6 years 9 months ago #154367 by andypugh
The .comp files should not care about pin names.
(except in the case where there is a pin-name clash)

Please Log in to join the conversation.

More
6 years 9 months ago #154551 by ChironFZ16
Hallo

Ich bekomme immer diese Fehlermeldungen und weiß nicht mehr weiter, irgendwo ist der Wurm drinnen.
Gibt es Tools/logging für API-Calls aufrufe?

I always get these error messages and don't know what to do, the worm is in there somewhere.
Are there tools/logging calls for API calls?
Any idea ?

Linuxcnc
Code:
LINUXCNC - 2.9.0-pre0-939-gadb5ab425

Turn it on from Konsole
Code:
linuxcnc -d -k -v linuxcnc/configs/chironFZ16/chiron.ini >error21.txt

Attachment not found




complete errorfile:
Code:
linuxcnc -d -k -v linuxcnc/configs/chironFZ16/chiron.ini >error21.txt LINUXCNC - 2.9.0-pre0-939-gadb5ab425 Machine configuration directory is '/home/chiron/linuxcnc/configs/chironFZ16' Machine configuration file is 'chiron.ini' Starting LinuxCNC... [EMCIO] CYCLE_TIME not found in /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini; using default 0.100000 Found file(REL): ./hm2-servo.hal hm2: loading Mesa HostMot2 driver version 0.15 hm2_pci: loading Mesa AnyIO HostMot2 driver version 0.7 hm2_pci: discovered 5i25 at 0000:04:00.0 hm2/hm2_5i25.0: Low Level init 0.15 hm2/hm2_5i25.0: Smart Serial Firmware Version 43 hm2/hm2_5i25.0: 34 I/O Pins used: hm2/hm2_5i25.0: IO Pin 000 (P3-01): StepGen #0, pin Direction (Output) hm2/hm2_5i25.0: IO Pin 001 (P3-14): StepGen #0, pin Step (Output) hm2/hm2_5i25.0: IO Pin 002 (P3-02): StepGen #1, pin Direction (Output) hm2/hm2_5i25.0: IO Pin 003 (P3-15): StepGen #1, pin Step (Output) hm2/hm2_5i25.0: IO Pin 004 (P3-03): StepGen #2, pin Direction (Output) hm2/hm2_5i25.0: IO Pin 005 (P3-16): StepGen #2, pin Step (Output) hm2/hm2_5i25.0: IO Pin 006 (P3-04): StepGen #3, pin Direction (Output) hm2/hm2_5i25.0: IO Pin 007 (P3-17): StepGen #3, pin Step (Output) hm2/hm2_5i25.0: IO Pin 008 (P3-05): StepGen #4, pin Direction (Output) hm2/hm2_5i25.0: IO Pin 009 (P3-06): StepGen #4, pin Step (Output) hm2/hm2_5i25.0: IO Pin 010 (P3-07): IOPort hm2/hm2_5i25.0: IO Pin 011 (P3-08): IOPort hm2/hm2_5i25.0: IO Pin 012 (P3-09): IOPort hm2/hm2_5i25.0: IO Pin 013 (P3-10): IOPort hm2/hm2_5i25.0: IO Pin 014 (P3-11): IOPort hm2/hm2_5i25.0: IO Pin 015 (P3-12): IOPort hm2/hm2_5i25.0: IO Pin 016 (P3-13): IOPort hm2/hm2_5i25.0: IO Pin 017 (P2-01): IOPort hm2/hm2_5i25.0: IO Pin 018 (P2-14): IOPort hm2/hm2_5i25.0: IO Pin 019 (P2-02): IOPort hm2/hm2_5i25.0: IO Pin 020 (P2-15): IOPort hm2/hm2_5i25.0: IO Pin 021 (P2-03): IOPort hm2/hm2_5i25.0: IO Pin 022 (P2-16): IOPort hm2/hm2_5i25.0: IO Pin 023 (P2-04): IOPort hm2/hm2_5i25.0: IO Pin 024 (P2-17): IOPort hm2/hm2_5i25.0: IO Pin 025 (P2-05): IOPort hm2/hm2_5i25.0: IO Pin 026 (P2-06): IOPort hm2/hm2_5i25.0: IO Pin 027 (P2-07): IOPort hm2/hm2_5i25.0: IO Pin 028 (P2-08): IOPort hm2/hm2_5i25.0: IO Pin 029 (P2-09): IOPort hm2/hm2_5i25.0: IO Pin 030 (P2-10): IOPort hm2/hm2_5i25.0: IO Pin 031 (P2-11): IOPort hm2/hm2_5i25.0: IO Pin 032 (P2-12): IOPort hm2/hm2_5i25.0: IO Pin 033 (P2-13): IOPort hm2/hm2_5i25.0: registered hm2_5i25.0: initialized AnyIO board at 0000:04:00.0 hm2_pci: discovered 5i20 at 0000:06:00.0 hm2/hm2_5i20.0: Low Level init 0.15 hm2/hm2_5i20.0: 72 I/O Pins used: hm2/hm2_5i20.0: IO Pin 000 (P2-01): PWMGen #0, pin Not-Enable (Output) hm2/hm2_5i20.0: IO Pin 001 (P2-03): Muxed Encoder #0, pin Muxed A (Input) hm2/hm2_5i20.0: IO Pin 002 (P2-05): Muxed Encoder #0, pin Muxed B (Input) hm2/hm2_5i20.0: IO Pin 003 (P2-07): Muxed Encoder #0, pin Muxed Index (Input) hm2/hm2_5i20.0: IO Pin 004 (P2-09): Muxed Encoder #1, pin Muxed A (Input) hm2/hm2_5i20.0: IO Pin 005 (P2-11): Muxed Encoder #1, pin Muxed B (Input) hm2/hm2_5i20.0: IO Pin 006 (P2-13): Muxed Encoder #1, pin Muxed Index (Input) hm2/hm2_5i20.0: IO Pin 007 (P2-15): Muxed Encoder #2, pin Muxed A (Input) hm2/hm2_5i20.0: IO Pin 008 (P2-17): Muxed Encoder #2, pin Muxed B (Input) hm2/hm2_5i20.0: IO Pin 009 (P2-19): Muxed Encoder #2, pin Muxed Index (Input) hm2/hm2_5i20.0: IO Pin 010 (P2-21): Muxed Encoder Select #0, pin Mux Select 0 (Output) hm2/hm2_5i20.0: IO Pin 011 (P2-23): PWMGen #0, pin Out0 (PWM or Up) (Output) hm2/hm2_5i20.0: IO Pin 012 (P2-25): PWMGen #0, pin Out1 (Dir or Down) (Output) hm2/hm2_5i20.0: IO Pin 013 (P2-27): PWMGen #1, pin Out0 (PWM or Up) (Output) hm2/hm2_5i20.0: IO Pin 014 (P2-29): PWMGen #1, pin Out1 (Dir or Down) (Output) hm2/hm2_5i20.0: IO Pin 015 (P2-31): PWMGen #2, pin Out0 (PWM or Up) (Output) hm2/hm2_5i20.0: IO Pin 016 (P2-33): PWMGen #2, pin Out1 (Dir or Down) (Output) hm2/hm2_5i20.0: IO Pin 017 (P2-35): PWMGen #3, pin Out0 (PWM or Up) (Output) hm2/hm2_5i20.0: IO Pin 018 (P2-37): PWMGen #3, pin Out1 (Dir or Down) (Output) hm2/hm2_5i20.0: IO Pin 019 (P2-39): PWMGen #4, pin Out0 (PWM or Up) (Output) hm2/hm2_5i20.0: IO Pin 020 (P2-41): PWMGen #4, pin Out1 (Dir or Down) (Output) hm2/hm2_5i20.0: IO Pin 021 (P2-43): PWMGen #5, pin Out0 (PWM or Up) (Output) hm2/hm2_5i20.0: IO Pin 022 (P2-45): PWMGen #5, pin Out1 (Dir or Down) (Output) hm2/hm2_5i20.0: IO Pin 023 (P2-47): PWMGen #0, pin Not-Enable (Output) hm2/hm2_5i20.0: IO Pin 024 (P3-01): IOPort hm2/hm2_5i20.0: IO Pin 025 (P3-03): IOPort hm2/hm2_5i20.0: IO Pin 026 (P3-05): IOPort hm2/hm2_5i20.0: IO Pin 027 (P3-07): IOPort hm2/hm2_5i20.0: IO Pin 028 (P3-09): IOPort hm2/hm2_5i20.0: IO Pin 029 (P3-11): IOPort hm2/hm2_5i20.0: IO Pin 030 (P3-13): IOPort hm2/hm2_5i20.0: IO Pin 031 (P3-15): IOPort hm2/hm2_5i20.0: IO Pin 032 (P3-17): IOPort hm2/hm2_5i20.0: IO Pin 033 (P3-19): IOPort hm2/hm2_5i20.0: IO Pin 034 (P3-21): IOPort hm2/hm2_5i20.0: IO Pin 035 (P3-23): IOPort hm2/hm2_5i20.0: IO Pin 036 (P3-25): IOPort hm2/hm2_5i20.0: IO Pin 037 (P3-27): IOPort hm2/hm2_5i20.0: IO Pin 038 (P3-29): IOPort hm2/hm2_5i20.0: IO Pin 039 (P3-31): IOPort hm2/hm2_5i20.0: IO Pin 040 (P3-33): IOPort hm2/hm2_5i20.0: IO Pin 041 (P3-35): IOPort hm2/hm2_5i20.0: IO Pin 042 (P3-37): IOPort hm2/hm2_5i20.0: IO Pin 043 (P3-39): IOPort hm2/hm2_5i20.0: IO Pin 044 (P3-41): IOPort hm2/hm2_5i20.0: IO Pin 045 (P3-43): IOPort hm2/hm2_5i20.0: IO Pin 046 (P3-45): IOPort hm2/hm2_5i20.0: IO Pin 047 (P3-47): IOPort hm2/hm2_5i20.0: IO Pin 048 (P4-01): IOPort hm2/hm2_5i20.0: IO Pin 049 (P4-03): IOPort hm2/hm2_5i20.0: IO Pin 050 (P4-05): IOPort hm2/hm2_5i20.0: IO Pin 051 (P4-07): IOPort hm2/hm2_5i20.0: IO Pin 052 (P4-09): IOPort hm2/hm2_5i20.0: IO Pin 053 (P4-11): IOPort hm2/hm2_5i20.0: IO Pin 054 (P4-13): IOPort hm2/hm2_5i20.0: IO Pin 055 (P4-15): IOPort hm2/hm2_5i20.0: IO Pin 056 (P4-17): IOPort hm2/hm2_5i20.0: IO Pin 057 (P4-19): IOPort hm2/hm2_5i20.0: IO Pin 058 (P4-21): IOPort hm2/hm2_5i20.0: IO Pin 059 (P4-23): IOPort hm2/hm2_5i20.0: IO Pin 060 (P4-25): IOPort hm2/hm2_5i20.0: IO Pin 061 (P4-27): IOPort hm2/hm2_5i20.0: IO Pin 062 (P4-29): IOPort hm2/hm2_5i20.0: IO Pin 063 (P4-31): IOPort hm2/hm2_5i20.0: IO Pin 064 (P4-33): IOPort hm2/hm2_5i20.0: IO Pin 065 (P4-35): IOPort hm2/hm2_5i20.0: IO Pin 066 (P4-37): IOPort hm2/hm2_5i20.0: IO Pin 067 (P4-39): IOPort hm2/hm2_5i20.0: IO Pin 068 (P4-41): IOPort hm2/hm2_5i20.0: IO Pin 069 (P4-43): IOPort hm2/hm2_5i20.0: IO Pin 070 (P4-45): IOPort hm2/hm2_5i20.0: IO Pin 071 (P4-47): IOPort hm2/hm2_5i20.0: registered hm2_5i20.0: initialized AnyIO board at 0000:06:00.0 hm2_pci: discovered 5i20 at 0000:06:01.0 hm2/hm2_5i20.1: Low Level init 0.15 hm2/hm2_5i20.1: 72 I/O Pins used: hm2/hm2_5i20.1: IO Pin 000 (P2-01): IOPort hm2/hm2_5i20.1: IO Pin 001 (P2-03): IOPort hm2/hm2_5i20.1: IO Pin 002 (P2-05): IOPort hm2/hm2_5i20.1: IO Pin 003 (P2-07): IOPort hm2/hm2_5i20.1: IO Pin 004 (P2-09): IOPort hm2/hm2_5i20.1: IO Pin 005 (P2-11): IOPort hm2/hm2_5i20.1: IO Pin 006 (P2-13): IOPort hm2/hm2_5i20.1: IO Pin 007 (P2-15): IOPort hm2/hm2_5i20.1: IO Pin 008 (P2-17): IOPort hm2/hm2_5i20.1: IO Pin 009 (P2-19): IOPort hm2/hm2_5i20.1: IO Pin 010 (P2-21): IOPort hm2/hm2_5i20.1: IO Pin 011 (P2-23): IOPort hm2/hm2_5i20.1: IO Pin 012 (P2-25): IOPort hm2/hm2_5i20.1: IO Pin 013 (P2-27): IOPort hm2/hm2_5i20.1: IO Pin 014 (P2-29): IOPort hm2/hm2_5i20.1: IO Pin 015 (P2-31): IOPort hm2/hm2_5i20.1: IO Pin 016 (P2-33): IOPort hm2/hm2_5i20.1: IO Pin 017 (P2-35): IOPort hm2/hm2_5i20.1: IO Pin 018 (P2-37): IOPort hm2/hm2_5i20.1: IO Pin 019 (P2-39): IOPort hm2/hm2_5i20.1: IO Pin 020 (P2-41): IOPort hm2/hm2_5i20.1: IO Pin 021 (P2-43): IOPort hm2/hm2_5i20.1: IO Pin 022 (P2-45): IOPort hm2/hm2_5i20.1: IO Pin 023 (P2-47): IOPort hm2/hm2_5i20.1: IO Pin 024 (P3-01): IOPort hm2/hm2_5i20.1: IO Pin 025 (P3-03): IOPort hm2/hm2_5i20.1: IO Pin 026 (P3-05): IOPort hm2/hm2_5i20.1: IO Pin 027 (P3-07): IOPort hm2/hm2_5i20.1: IO Pin 028 (P3-09): IOPort hm2/hm2_5i20.1: IO Pin 029 (P3-11): IOPort hm2/hm2_5i20.1: IO Pin 030 (P3-13): IOPort hm2/hm2_5i20.1: IO Pin 031 (P3-15): IOPoFound file(REL): ./ios.hal Found file(REL): ./loadrt.hal Found file(REL): ./Maschine.hal Found file(REL): ./Spindel.hal Found file(REL): ./Bedienfeld.hal Found file(REL): ./Werkstueckwechsler.hal Found file(REL): ./Werkzeugwechsler.hal Found file(REL): ./Handrad.hal Found file(REL): ./Meldung.hal Found file(REL): ./6i25.hal Starting TASK program: milltask Starting DISPLAY program: gmoccapy + for KILL_PID in $KILL_PIDS + /bin/ps -o comm= 8874 + /bin/grep -q '<defunct>' + /bin/kill 8874 + WAIT=20 + '[' 20 -gt 1 ']' ++ /bin/ps -o comm= 8874 ++ /bin/grep -v '<defunct>' ++ wc -l + NPROCS=0 + '[' 0 -gt 0 ']' + WAIT=0 + '[' 0 -gt 1 ']' + '[' 0 -gt 0 ']' + '[' 0 -gt 0 ']' + KILL_PIDS= + KILL_TASK= + for KILL_TASK in linuxcncsvr milltask + /bin/pidof -x milltask 8946 + KillTaskWithTimeout + '[' '!' -n '' ']' ++ /bin/pidof -x milltask + KILL_PIDS=8946 + '[' '!' -n 8946 ']' + local NPROCS + for KILL_PID in $KILL_PIDS + /bin/ps -o comm= 8946 + /bin/grep -q '<defunct>' + /bin/kill 8946 + WAIT=20 + '[' 20 -gt 1 ']' ++ /bin/ps -o comm= 8946 ++ /bin/grep -v '<defunct>' ++ wc -l + NPROCS=1 + '[' 1 -gt 0 ']' + WAIT=19 + sleep .1 + '[' 19 -gt 1 ']' ++ /bin/ps -o comm= 8946 ++ /bin/grep -v '<defunct>' ++ wc -l + NPROCS=0 + '[' 0 -gt 0 ']' + WAIT=0 + '[' 0 -gt 1 ']' + '[' 0 -gt 0 ']' + '[' 0 -gt 0 ']' + KILL_PIDS= + KILL_TASK= + echo 'Stopping realtime threads' Stopping realtime threads + halcmd -k stop + echo 'Unloading hal components' Unloading hal components + halcmd -k unload all RTAPI_PCI: Unmapped 65536 bytes at 0x7ff771b40000 RTAPI_PCI: Unmapped 65536 bytes at 0x7ff771b30000 RTAPI_PCI: Unmapped 65536 bytes at 0x7ff77199f000 ++ seq 10 + for i in `seq 10` ++ wc -w ++ halcmd -k list comp + '[' 3 = 1 ']' + sleep .2 + for i in `seq 10` ++ halcmd -k list comp ++ wc -w + '[' 3 = 1 ']' + sleep .2 + for i in `seq 10` ++ halcmd -k list comp ++ wc -w + '[' 1 = 1 ']' + break + echo 'Removing HAL_LIB, RTAPI, and Real Time OS modules' + /etc/init.d/realtime stop Note: Using POSIX realtime + echo 'Removing NML shared memory segments' + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + ipcrm -M 1001 + read b x t x x x x x x m x + case $b$t in + ipcrm -M 1002 + read b x t x x x x x x m x + case $b$t in + ipcrm -M 1003 + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + ipcrm -M 1004 + read b x t x x x x x x m x + case $b$t in + ipcrm -M 1005 + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + '[' -f /tmp/linuxcnc.lock ']' + rm /tmp/linuxcnc.lock + exit 0 + ErrorCheck + result=0 + '[' '!' -z :0.0 ']' + echo 'catch {send -async popimage destroy .}; destroy .' + /usr/bin/wish8.6 + '[' 0 -ne 0 ']' + rm -f /dev/fd/2 /dev/fd/1 + exit 0 chiron@chiron:~$ linuxcnc -d -k -v linuxcnc/configs/chironFZ16/chiron.ini >error21.txt Debug mode on + getopts dvlhkr opt + case "$opt" in + DASHK=-k + getopts dvlhkr opt + case "$opt" in + tty -s + PRINT_FILE=/dev/fd/1 + echo 'Verbose mode on' + getopts dvlhkr opt + shift 3 + case "" in + '[' -z ']' + tty -s + trap ErrorCheck EXIT + '[' '!' -z linuxcnc/configs/chironFZ16/chiron.ini ']' + case "$1" in ++ pwd + INIFILE=/home/chiron/linuxcnc/configs/chironFZ16/chiron.ini + shift + EXTRA_ARGS= + RUN_IN_PLACE=no + echo RUN_IN_PLACE=no + LINUXCNCVERSION=2.9.0-pre0-939-gadb5ab425 + export LINUXCNCVERSION + INIVAR=inivar + HALCMD='halcmd -k' + PICKCONFIG='/usr/bin/wish8.6 /usr/lib/tcltk/linuxcnc/bin/pickconfig.tcl' + LINUXCNC_EMCSH=/usr/bin/wish8.6 + echo LINUXCNC_DIR= + echo LINUXCNC_BIN_DIR=/usr/bin + echo LINUXCNC_TCL_DIR=/usr/lib/tcltk/linuxcnc + echo LINUXCNC_SCRIPT_DIR= + echo LINUXCNC_RTLIB_DIR=/usr/lib/linuxcnc/modules + echo LINUXCNC_CONFIG_DIR= + echo LINUXCNC_LANG_DIR=/usr/lib/tcltk/linuxcnc/msgs + echo INIVAR=inivar + echo HALCMD=halcmd -k + echo LINUXCNC_EMCSH=/usr/bin/wish8.6 + export LINUXCNC_TCL_DIR + export LINUXCNC_EMCSH + export LINUXCNC_HELP_DIR + export LINUXCNC_LANG_DIR + export REALTIME + export HALCMD + export LINUXCNC_NCFILES_DIR + '[' -z ']' + echo 'LINUXCNC - 2.9.0-pre0-939-gadb5ab425' + '[' '!' -z '' ']' + '[' '!' -n /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini ']' + '[' '!' -n /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini ']' ++ handle_includes /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini ++ hdr='# handle_includes():' ++ inifile=/home/chiron/linuxcnc/configs/chironFZ16/chiron.ini +++ dirname /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini ++ cd /home/chiron/linuxcnc/configs/chironFZ16 ++ /bin/grep '^#INCLUDE' /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini ++ status=1 ++ '[' 1 -ne 0 ']' ++ echo /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini ++ return 0 + INIFILE=/home/chiron/linuxcnc/configs/chironFZ16/chiron.ini + INI_NAME=chiron.ini + INI_DIR=/home/chiron/linuxcnc/configs/chironFZ16 + CONFIG_DIR=/home/chiron/linuxcnc/configs/chironFZ16 + export CONFIG_DIR + export PATH=/home/chiron/linuxcnc/configs/chironFZ16/bin:/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games + PATH=/home/chiron/linuxcnc/configs/chironFZ16/bin:/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games + '[' -z ']' + echo 'Machine configuration directory is '\''/home/chiron/linuxcnc/configs/chironFZ16'\''' + echo 'Machine configuration file is '\''chiron.ini'\''' + '[' '!' -f /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini ']' + echo INIFILE=/home/chiron/linuxcnc/configs/chironFZ16/chiron.ini + retval= + GetFromIni VERSION EMC + name=VERSION ++ inivar -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var VERSION -sec EMC + retval=1.1 + '[' '!' -n VERSION ']' + echo VERSION=1.1 + '[' 1.1 '!=' 1.1 ']' + /usr/bin/tclsh8.6 /usr/share/linuxcnc/hallib/check_config.tcl /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini + exitval=0 + case "$exitval" in + GetFromIni PARAMETER_FILE RS274NGC + name=PARAMETER_FILE ++ inivar -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var PARAMETER_FILE -sec RS274NGC + retval=hm2-servo.var + '[' '!' -n PARAMETER_FILE ']' + echo PARAMETER_FILE=hm2-servo.var + RS274NGC_PARAMFILE=hm2-servo.var + GetFromIniEx MOT MOT EMCMOT EMCMOT motmod + original_var='[MOT]MOT' + '[' 5 -ge 2 ']' ++ inivar -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var MOT -sec MOT + retval= + shift 2 + '[' 3 -ge 2 ']' ++ inivar -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var EMCMOT -sec EMCMOT + retval=motmod + return + EMCMOT=motmod.so + GetFromIniEx IO IO EMCIO EMCIO io + original_var='[IO]IO' + '[' 5 -ge 2 ']' ++ inivar -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var IO -sec IO + retval= + shift 2 + '[' 3 -ge 2 ']' ++ inivar -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var EMCIO -sec EMCIO + retval=io + return + EMCIO=io + GetFromIni TASK TASK + name=TASK ++ inivar -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var TASK -sec TASK + retval=milltask + '[' '!' -n TASK ']' + echo TASK=milltask + EMCTASK=milltask + '[' milltask = emctask ']' + EMCSERVER=linuxcncsvr + GetFromIniQuiet HALUI HAL + name=HALUI ++ inivar -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var HALUI -sec HAL + retval=halui + '[' '!' -n HALUI ']' + echo HALUI=halui + HALUI=halui + GetFromIni DISPLAY DISPLAY + name=DISPLAY ++ inivar -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var DISPLAY -sec DISPLAY + retval=gmoccapy + '[' '!' -n DISPLAY ']' + echo DISPLAY=gmoccapy ++ set -- gmoccapy ++ echo gmoccapy + EMCDISPLAY=gmoccapy ++ set -- gmoccapy ++ shift ++ echo + EMCDISPLAYARGS= + case $EMCDISPLAY in + GetFromIniEx NML_FILE LINUXCNC NML_FILE EMC /usr/share/linuxcnc/linuxcnc.nml + original_var='[LINUXCNC]NML_FILE' + '[' 5 -ge 2 ']' ++ inivar -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var NML_FILE -sec LINUXCNC + retval= + shift 2 + '[' 3 -ge 2 ']' ++ inivar -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var NML_FILE -sec EMC + retval= + shift 2 + '[' 1 -ge 2 ']' + '[' 1 -eq 0 ']' + retval=/usr/share/linuxcnc/linuxcnc.nml + NMLFILE=/usr/share/linuxcnc/linuxcnc.nml + export NMLFILE + GetFromIni COORDINATES TRAJ + name=COORDINATES ++ inivar -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var COORDINATES -sec TRAJ + retval='X Y Z' + '[' '!' -n COORDINATES ']' + echo 'COORDINATES=X Y Z' + TRAJ_COORDINATES='X Y Z' + export TRAJ_COORDINATES + GetFromIni KINEMATICS KINS + name=KINEMATICS ++ inivar -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var KINEMATICS -sec KINS + retval=trivkins + '[' '!' -n KINEMATICS ']' + echo KINEMATICS=trivkins + KINS_KINEMATICS=trivkins + export KINS_KINEMATICS + KILL_TASK= + KILL_TIMEOUT=20 + LOCKFILE=/tmp/linuxcnc.lock + '[' -f /tmp/linuxcnc.lock ']' + echo Starting LinuxCNC... + trap 'Cleanup ; exit 0' SIGINT SIGTERM + cd /home/chiron/linuxcnc/configs/chironFZ16 + touch /tmp/linuxcnc.lock ++ inivar -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var INTRO_GRAPHIC -sec DISPLAY + img=linuxcnc.gif ++ inivar -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var INTRO_TIME -sec DISPLAY + imgtime=2 + '[' 2 = '' ']' + '[' linuxcnc.gif '!=' '' ']' + '[' -e linuxcnc.gif ']' + '[' -e /home/chiron/linuxcnc/configs/chironFZ16/linuxcnc.gif ']' + '[' -e /usr/share/linuxcnc/linuxcnc.gif ']' + img=/usr/share/linuxcnc/linuxcnc.gif + '[' /usr/share/linuxcnc/linuxcnc.gif '!=' '' ']' + '[' -x /usr/lib/tcltk/linuxcnc/bin/popimage ']' + /usr/lib/tcltk/linuxcnc/bin/popimage /usr/share/linuxcnc/linuxcnc.gif 2 + echo 'Starting LinuxCNC server program: linuxcncsvr' + program_available linuxcncsvr + type -path linuxcncsvr + export INI_FILE_NAME=/home/chiron/linuxcnc/configs/chironFZ16/chiron.ini + INI_FILE_NAME=/home/chiron/linuxcnc/configs/chironFZ16/chiron.ini + linuxcncsvr -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini + echo 'Loading Real Time OS, RTAPI, and HAL_LIB modules' + /etc/init.d/realtime start + export HAL_RTMOD_DIR=/usr/lib/linuxcnc/modules + HAL_RTMOD_DIR=/usr/lib/linuxcnc/modules + '[' io '!=' '' ']' + echo 'Starting LinuxCNC IO program: io' + program_available io + type -path io + halcmd -k loadusr -Wn iocontrol io -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini + '[' -n halui ']' + echo 'Starting HAL User Interface program: halui' + program_available halui + type -path halui + halcmd -k loadusr -Wn halui halui -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini ++ inivar -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var TWOPASS -sec HAL -num 1 + TWOPASS= + '[' -n '' ']' + NUM=1 ++ inivar -tildeexpand -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var HALFILE -sec HAL -num 1 + CFGFILE=hm2-servo.hal + '[' -n hm2-servo.hal ']' + IFS='\ ' + read CFGFILE CFGFILE_ARGS + foundmsg= + saveIFS=' ' + IFS=: + explicit_file_in_hallib=hm2-servo.hal + '[' -z hm2-servo.hal ']' + '[' hm2-servo.hal '!=' hm2-servo.hal ']' + '[' h = / ']' + for pathdir in $HALLIB_PATH + foundfile=./hm2-servo.hal + '[' -r ./hm2-servo.hal ']' + '[' . = . ']' + foundmsg='Found file(REL): ./hm2-servo.hal' + break + '[' -d ./hm2-servo.hal ']' + IFS=' ' + '[' -z 'Found file(REL): ./hm2-servo.hal' ']' + echo 'Found file(REL): ./hm2-servo.hal' + CFGFILE=./hm2-servo.hal + case $CFGFILE in + halcmd -k -i /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -f ./hm2-servo.hal Note: Using POSIX realtime + NUM=2 ++ inivar -tildeexpand -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var HALFILE -sec HAL -num 2 + CFGFILE=ios.hal + '[' -n ios.hal ']' + IFS='\ ' + read CFGFILE CFGFILE_ARGS + foundmsg= + saveIFS=' ' + IFS=: + explicit_file_in_hallib=ios.hal + '[' -z ios.hal ']' + '[' ios.hal '!=' ios.hal ']' + '[' i = / ']' + for pathdir in $HALLIB_PATH + foundfile=./ios.hal + '[' -r ./ios.hal ']' + '[' . = . ']' + foundmsg='Found file(REL): ./ios.hal' + break + '[' -d ./ios.hal ']' + IFS=' ' + '[' -z 'Found file(REL): ./ios.hal' ']' + echo 'Found file(REL): ./ios.hal' + CFGFILE=./ios.hal + case $CFGFILE in + halcmd -k -i /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -f ./ios.hal + NUM=3 ++ inivar -tildeexpand -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var HALFILE -sec HAL -num 3 + CFGFILE=loadrt.hal + '[' -n loadrt.hal ']' + IFS='\ ' + read CFGFILE CFGFILE_ARGS + foundmsg= + saveIFS=' ' + IFS=: + explicit_file_in_hallib=loadrt.hal + '[' -z loadrt.hal ']' + '[' loadrt.hal '!=' loadrt.hal ']' + '[' l = / ']' + for pathdir in $HALLIB_PATH + foundfile=./loadrt.hal + '[' -r ./loadrt.hal ']' + '[' . = . ']' + foundmsg='Found file(REL): ./loadrt.hal' + break + '[' -d ./loadrt.hal ']' + IFS=' ' + '[' -z 'Found file(REL): ./loadrt.hal' ']' + echo 'Found file(REL): ./loadrt.hal' + CFGFILE=./loadrt.hal + case $CFGFILE in + halcmd -k -i /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -f ./loadrt.hal + NUM=4 ++ inivar -tildeexpand -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var HALFILE -sec HAL -num 4 + CFGFILE=Maschine.hal + '[' -n Maschine.hal ']' + IFS='\ ' + read CFGFILE CFGFILE_ARGS + foundmsg= + saveIFS=' ' + IFS=: + explicit_file_in_hallib=Maschine.hal + '[' -z Maschine.hal ']' + '[' Maschine.hal '!=' Maschine.hal ']' + '[' M = / ']' + for pathdir in $HALLIB_PATH + foundfile=./Maschine.hal + '[' -r ./Maschine.hal ']' + '[' . = . ']' + foundmsg='Found file(REL): ./Maschine.hal' + break + '[' -d ./Maschine.hal ']' + IFS=' ' + '[' -z 'Found file(REL): ./Maschine.hal' ']' + echo 'Found file(REL): ./Maschine.hal' + CFGFILE=./Maschine.hal + case $CFGFILE in + halcmd -k -i /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -f ./Maschine.hal + NUM=5 ++ inivar -tildeexpand -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var HALFILE -sec HAL -num 5 + CFGFILE=Spindel.hal + '[' -n Spindel.hal ']' + IFS='\ ' + read CFGFILE CFGFILE_ARGS + foundmsg= + saveIFS=' ' + IFS=: + explicit_file_in_hallib=Spindel.hal + '[' -z Spindel.hal ']' + '[' Spindel.hal '!=' Spindel.hal ']' + '[' S = / ']' + for pathdir in $HALLIB_PATH + foundfile=./Spindel.hal + '[' -r ./Spindel.hal ']' + '[' . = . ']' + foundmsg='Found file(REL): ./Spindel.hal' + break + '[' -d ./Spindel.hal ']' + IFS=' ' + '[' -z 'Found file(REL): ./Spindel.hal' ']' + echo 'Found file(REL): ./Spindel.hal' + CFGFILE=./Spindel.hal + case $CFGFILE in + halcmd -k -i /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -f ./Spindel.hal + NUM=6 ++ inivar -tildeexpand -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var HALFILE -sec HAL -num 6 + CFGFILE=Bedienfeld.hal + '[' -n Bedienfeld.hal ']' + IFS='\ ' + read CFGFILE CFGFILE_ARGS + foundmsg= + saveIFS=' ' + IFS=: + explicit_file_in_hallib=Bedienfeld.hal + '[' -z Bedienfeld.hal ']' + '[' Bedienfeld.hal '!=' Bedienfeld.hal ']' + '[' B = / ']' + for pathdir in $HALLIB_PATH + foundfile=./Bedienfeld.hal + '[' -r ./Bedienfeld.hal ']' + '[' . = . ']' + foundmsg='Found file(REL): ./Bedienfeld.hal' + break + '[' -d ./Bedienfeld.hal ']' + IFS=' ' + '[' -z 'Found file(REL): ./Bedienfeld.hal' ']' + echo 'Found file(REL): ./Bedienfeld.hal' + CFGFILE=./Bedienfeld.hal + case $CFGFILE in + halcmd -k -i /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -f ./Bedienfeld.hal + NUM=7 ++ inivar -tildeexpand -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var HALFILE -sec HAL -num 7 + CFGFILE=Werkstueckwechsler.hal + '[' -n Werkstueckwechsler.hal ']' + IFS='\ ' + read CFGFILE CFGFILE_ARGS + foundmsg= + saveIFS=' ' + IFS=: + explicit_file_in_hallib=Werkstueckwechsler.hal + '[' -z Werkstueckwechsler.hal ']' + '[' Werkstueckwechsler.hal '!=' Werkstueckwechsler.hal ']' + '[' W = / ']' + for pathdir in $HALLIB_PATH + foundfile=./Werkstueckwechsler.hal + '[' -r ./Werkstueckwechsler.hal ']' + '[' . = . ']' + foundmsg='Found file(REL): ./Werkstueckwechsler.hal' + break + '[' -d ./Werkstueckwechsler.hal ']' + IFS=' ' + '[' -z 'Found file(REL): ./Werkstueckwechsler.hal' ']' + echo 'Found file(REL): ./Werkstueckwechsler.hal' + CFGFILE=./Werkstueckwechsler.hal + case $CFGFILE in + halcmd -k -i /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -f ./Werkstueckwechsler.hal + NUM=8 ++ inivar -tildeexpand -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var HALFILE -sec HAL -num 8 + CFGFILE=Werkzeugwechsler.hal + '[' -n Werkzeugwechsler.hal ']' + IFS='\ ' + read CFGFILE CFGFILE_ARGS + foundmsg= + saveIFS=' ' + IFS=: + explicit_file_in_hallib=Werkzeugwechsler.hal + '[' -z Werkzeugwechsler.hal ']' + '[' Werkzeugwechsler.hal '!=' Werkzeugwechsler.hal ']' + '[' W = / ']' + for pathdir in $HALLIB_PATH + foundfile=./Werkzeugwechsler.hal + '[' -r ./Werkzeugwechsler.hal ']' + '[' . = . ']' + foundmsg='Found file(REL): ./Werkzeugwechsler.hal' + break + '[' -d ./Werkzeugwechsler.hal ']' + IFS=' ' + '[' -z 'Found file(REL): ./Werkzeugwechsler.hal' ']' + echo 'Found file(REL): ./Werkzeugwechsler.hal' + CFGFILE=./Werkzeugwechsler.hal + case $CFGFILE in + halcmd -k -i /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -f ./Werkzeugwechsler.hal + NUM=9 ++ inivar -tildeexpand -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var HALFILE -sec HAL -num 9 + CFGFILE=Handrad.hal + '[' -n Handrad.hal ']' + IFS='\ ' + read CFGFILE CFGFILE_ARGS + foundmsg= + saveIFS=' ' + IFS=: + explicit_file_in_hallib=Handrad.hal + '[' -z Handrad.hal ']' + '[' Handrad.hal '!=' Handrad.hal ']' + '[' H = / ']' + for pathdir in $HALLIB_PATH + foundfile=./Handrad.hal + '[' -r ./Handrad.hal ']' + '[' . = . ']' + foundmsg='Found file(REL): ./Handrad.hal' + break + '[' -d ./Handrad.hal ']' + IFS=' ' + '[' -z 'Found file(REL): ./Handrad.hal' ']' + echo 'Found file(REL): ./Handrad.hal' + CFGFILE=./Handrad.hal + case $CFGFILE in + halcmd -k -i /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -f ./Handrad.hal + NUM=10 ++ inivar -tildeexpand -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var HALFILE -sec HAL -num 10 + CFGFILE=Meldung.hal + '[' -n Meldung.hal ']' + IFS='\ ' + read CFGFILE CFGFILE_ARGS + foundmsg= + saveIFS=' ' + IFS=: + explicit_file_in_hallib=Meldung.hal + '[' -z Meldung.hal ']' + '[' Meldung.hal '!=' Meldung.hal ']' + '[' M = / ']' + for pathdir in $HALLIB_PATH + foundfile=./Meldung.hal + '[' -r ./Meldung.hal ']' + '[' . = . ']' + foundmsg='Found file(REL): ./Meldung.hal' + break + '[' -d ./Meldung.hal ']' + IFS=' ' + '[' -z 'Found file(REL): ./Meldung.hal' ']' + echo 'Found file(REL): ./Meldung.hal' + CFGFILE=./Meldung.hal + case $CFGFILE in + halcmd -k -i /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -f ./Meldung.hal + NUM=11 ++ inivar -tildeexpand -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var HALFILE -sec HAL -num 11 + CFGFILE=6i25.hal + '[' -n 6i25.hal ']' + IFS='\ ' + read CFGFILE CFGFILE_ARGS + foundmsg= + saveIFS=' ' + IFS=: + explicit_file_in_hallib=6i25.hal + '[' -z 6i25.hal ']' + '[' 6i25.hal '!=' 6i25.hal ']' + '[' 6 = / ']' + for pathdir in $HALLIB_PATH + foundfile=./6i25.hal + '[' -r ./6i25.hal ']' + '[' . = . ']' + foundmsg='Found file(REL): ./6i25.hal' + break + '[' -d ./6i25.hal ']' + IFS=' ' + '[' -z 'Found file(REL): ./6i25.hal' ']' + echo 'Found file(REL): ./6i25.hal' + CFGFILE=./6i25.hal + case $CFGFILE in + halcmd -k -i /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -f ./6i25.hal + NUM=12 ++ inivar -tildeexpand -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var HALFILE -sec HAL -num 12 + CFGFILE= + '[' -n '' ']' + echo 'Starting TASK program: milltask' + program_available milltask + type -path milltask + NUM=1 + halcmd loadusr -Wn inihal milltask -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini ++ inivar -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var HALCMD -sec HAL -num 1 + HALCOMMAND= + '[' -n '' ']' + halcmd -k start + run_applications + NUM=1 ++ inivar -tildeexpand -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var APP -sec APPLICATIONS -num 1 + APPFILE= + '[' -z '' ']' + return + echo 'Starting DISPLAY program: gmoccapy' + result=0 + case $EMCDISPLAY in + program_available gmoccapy + type -path gmoccapy + gmoccapy -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini /usr/bin/gmoccapy:325: GtkWarning: Invalid icon size 48 self.widgets.window1.show() (gmoccapy:9203): GtkSourceView-CRITICAL **: gtk_source_language_manager_set_search_path: assertion 'lm->priv->ids == NULL' failed + result=0 + Cleanup + echo 'Shutting down and cleaning up LinuxCNC...' + for KILL_TASK in linuxcncpanel iosh linuxcncsh linuxcncrsh linuxcnctop mdi debuglevel gmoccapy gscreen + /bin/pidof -x linuxcncpanel + for KILL_TASK in linuxcncpanel iosh linuxcncsh linuxcncrsh linuxcnctop mdi debuglevel gmoccapy gscreen + /bin/pidof -x iosh + for KILL_TASK in linuxcncpanel iosh linuxcncsh linuxcncrsh linuxcnctop mdi debuglevel gmoccapy gscreen + /bin/pidof -x linuxcncsh + for KILL_TASK in linuxcncpanel iosh linuxcncsh linuxcncrsh linuxcnctop mdi debuglevel gmoccapy gscreen + /bin/pidof -x linuxcncrsh + for KILL_TASK in linuxcncpanel iosh linuxcncsh linuxcncrsh linuxcnctop mdi debuglevel gmoccapy gscreen + /bin/pidof -x linuxcnctop + for KILL_TASK in linuxcncpanel iosh linuxcncsh linuxcncrsh linuxcnctop mdi debuglevel gmoccapy gscreen + /bin/pidof -x mdi + for KILL_TASK in linuxcncpanel iosh linuxcncsh linuxcncrsh linuxcnctop mdi debuglevel gmoccapy gscreen + /bin/pidof -x debuglevel + for KILL_TASK in linuxcncpanel iosh linuxcncsh linuxcncrsh linuxcnctop mdi debuglevel gmoccapy gscreen + /bin/pidof -x gmoccapy + for KILL_TASK in linuxcncpanel iosh linuxcncsh linuxcncrsh linuxcnctop mdi debuglevel gmoccapy gscreen + /bin/pidof -x gscreen + program_available axis-remote + type -path axis-remote + '[' '!' -z :0.0 ']' + axis-remote --ping + '[' '' = other ']' ++ inivar -ini /home/chiron/linuxcnc/configs/chironFZ16/chiron.ini -var SHUTDOWN -sec HAL + SHUTDOWN= + '[' -n '' ']' + for KILL_TASK in linuxcncsvr milltask + /bin/pidof -x linuxcncsvr 9127 + KillTaskWithTimeout + '[' '!' -n '' ']' ++ /bin/pidof -x linuxcncsvr + KILL_PIDS=9127 + '[' '!' -n 9127 ']' + local NPROCS + for KILL_PID in $KILL_PIDS + /bin/ps -o comm= 9127 + /bin/grep -q '<defunct>' + /bin/kill 9127 + WAIT=20 + '[' 20 -gt 1 ']' ++ /bin/ps -o comm= 9127 ++ /bin/grep -v '<defunct>' ++ wc -l + NPROCS=0 + '[' 0 -gt 0 ']' + WAIT=0 + '[' 0 -gt 1 ']' + '[' 0 -gt 0 ']' + '[' 0 -gt 0 ']' + KILL_PIDS= + KILL_TASK= + for KILL_TASK in linuxcncsvr milltask + /bin/pidof -x milltask 9199 + KillTaskWithTimeout + '[' '!' -n '' ']' ++ /bin/pidof -x milltask + KILL_PIDS=9199 + '[' '!' -n 9199 ']' + local NPROCS + for KILL_PID in $KILL_PIDS + /bin/ps -o comm= 9199 + /bin/grep -q '<defunct>' + /bin/kill 9199 + WAIT=20 + '[' 20 -gt 1 ']' ++ /bin/ps -o comm= 9199 ++ /bin/grep -v '<defunct>' ++ wc -l + NPROCS=1 + '[' 1 -gt 0 ']' + WAIT=19 + sleep .1 + '[' 19 -gt 1 ']' ++ /bin/ps -o comm= 9199 ++ /bin/grep -v '<defunct>' ++ wc -l + NPROCS=0 + '[' 0 -gt 0 ']' + WAIT=0 + '[' 0 -gt 1 ']' + '[' 0 -gt 0 ']' + '[' 0 -gt 0 ']' + KILL_PIDS= + KILL_TASK= + echo 'Stopping realtime threads' Stopping realtime threads + halcmd -k stop + echo 'Unloading hal components' Unloading hal components + halcmd -k unload all RTAPI_PCI: Unmapped 65536 bytes at 0x7fad44eeb000 RTAPI_PCI: Unmapped 65536 bytes at 0x7fad44edb000 RTAPI_PCI: Unmapped 65536 bytes at 0x7fad44d4a000 ++ seq 10 + for i in `seq 10` ++ wc -w ++ halcmd -k list comp + '[' 4 = 1 ']' + sleep .2 + for i in `seq 10` ++ halcmd -k list comp ++ wc -w + '[' 1 = 1 ']' + break + echo 'Removing HAL_LIB, RTAPI, and Real Time OS modules' + /etc/init.d/realtime stop Note: Using POSIX realtime + echo 'Removing NML shared memory segments' + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + ipcrm -M 1001 + read b x t x x x x x x m x + case $b$t in + ipcrm -M 1002 + read b x t x x x x x x m x + case $b$t in + ipcrm -M 1003 + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + ipcrm -M 1004 + read b x t x x x x x x m x + case $b$t in + ipcrm -M 1005 + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + case $b$t in + read b x t x x x x x x m x + '[' -f /tmp/linuxcnc.lock ']' + rm /tmp/linuxcnc.lock + exit 0 + ErrorCheck + result=0 + '[' '!' -z :0.0 ']' + echo 'catch {send -async popimage destroy .}; destroy .' + /usr/bin/wish8.6 + '[' 0 -ne 0 ']' + rm -f /dev/fd/2 /dev/fd/1 + exit 0 chiron@chiron:~$

Please Log in to join the conversation.

More
6 years 9 months ago #154578 by andypugh
Do you know _which_ .comp file is causing the problem?

Please Log in to join the conversation.

More
6 years 9 months ago #154600 by ChironFZ16

andypugh wrote: Do you know _which_ .comp file is causing the problem?


Ja, hängt irdendwie mit den manuellen Werkzeugwechsel zusammen, der Schluesselschalter dient als Sicherungsfunktion.Ich habe einen 12Korbwechsler und kann damit jedes Werkzeug per Hand in MAN-Mode einwechslen, indem ich auf Werkzeug 1 oder Werkzeug 2 klicke.
Irgendwo in der WZW.comp ist ein Fehler drinnen der von der Linuxcnc 2.9 master nicht mehr unterstützt wird.
Oder es kann auch ein Fehler sein von Linuxcnc 2.9 master

Yes, it is somehow related to the manual tool change, the key switch serves as a safety function, I have a 12 basket changer and can change any tool manually in MAN mode by clicking on tool 1 or tool 2.
Somewhere in the WZW.comp there is a bug in there that is no longer supported by the Linuxcnc 2.9 master.
Or it could be a bug of Linuxcnc 2.9 master.

Korbwechsler

Attachment not found



if :
Code:
if (WZW_Fehler == 3 && WZW_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "24 Fehler: Zuerst Schluesselschalter abschalten!"); WZW_warten = false; } if (WZW_Fehler == 4 && WZW_warten) { rtapi_print_msg(RTAPI_MSG_ERR, "25 Fehler: Zuerst Schluesselschalter einschalten!"); WZW_warten = false; }


Here is somewhere the worm inside or linuxcnc has a bug ;)
Code:
if (Werkzeug_Beladen_Start_Stopp && !Schluesselschalter && (Schrittnummer == WarteSignal) && (Schrittnummer != SpezialWerkzeug2 || Spezialwechsel2)) { Meldecode = 4; Zeit = 0.5; } if (Werkzeug_Beladen_Start_Stopp && !IS_MAN && (Schrittnummer != SpezialWerkzeug2 || Spezialwechsel2)) { Meldecode = 5; Zeit = 0.5; }

Please Log in to join the conversation.

More
6 years 9 months ago #154607 by andypugh
Which user interface are you using?
It seems unlikely that the C-code is behaving any differently.

Please Log in to join the conversation.

More
6 years 9 months ago #154622 by ChironFZ16

andypugh wrote: Which user interface are you using?
It seems unlikely that the C-code is behaving any differently.


Hallo

LINUXCNC - 2.9.0-pre0-939-gadb5ab425 + Gmoccapy ;)

Please Log in to join the conversation.

More
6 years 9 months ago #154623 by andypugh
The error output looks to be more Python-like than C-like, so I would suspect that there is a problem with interaction with Gmoccapy.

What happens if you switch [DISPLAY] to the Axis GUI?
(I suspect that a lot of HAL connections will break, in practice, and it won't be a simple test)

I don't think that the Gmoccapy author reads this section of the forum, it might be worth asking the same question in the Gmoccapy section (or linking to here)
Also, as an advantage, Norbert speaks better German than me.

Please Log in to join the conversation.

More
6 years 9 months ago #154629 by ChironFZ16
Okay, I'm gonna go torture Norbert with this ;)

Please Log in to join the conversation.

Time to create page: 0.993 seconds
Powered by Kunena Forum