I need help for Comp File programming

More
06 Jan 2020 10:56 #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
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
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
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 or Create an account to join the conversation.

More
06 Jan 2020 12:24 #154142 by tommylight
Ales mit "spindle" mus "spindle.0" sein.
The following user(s) said Thank You: ChironFZ16

Please Log in or Create an account to join the conversation.

More
09 Jan 2020 00:27 #154367 by andypugh
The .comp files should not care about pin names.
(except in the case where there is a pin-name clash)
The following user(s) said Thank You: ChironFZ16

Please Log in or Create an account to join the conversation.

More
10 Jan 2020 14:38 #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
LINUXCNC - 2.9.0-pre0-939-gadb5ab425

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




complete errorfile:
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:~$ 
Attachments:

Please Log in or Create an account to join the conversation.

More
10 Jan 2020 20:53 #154578 by andypugh
Do you know _which_ .comp file is causing the problem?

Please Log in or Create an account to join the conversation.

More
11 Jan 2020 08:06 - 11 Jan 2020 09:58 #154600 by ChironFZ16

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



if :
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 ;)
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;
        }
Attachments:
Last edit: 11 Jan 2020 09:58 by ChironFZ16.

Please Log in or Create an account to join the conversation.

More
11 Jan 2020 14:03 #154607 by andypugh
Which user interface are you using?
It seems unlikely that the C-code is behaving any differently.

Please Log in or Create an account to join the conversation.

More
11 Jan 2020 15:48 #154622 by ChironFZ16

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 or Create an account to join the conversation.

More
11 Jan 2020 15:59 #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.
The following user(s) said Thank You: ChironFZ16

Please Log in or Create an account to join the conversation.

More
11 Jan 2020 18:31 #154629 by ChironFZ16
Okay, I'm gonna go torture Norbert with this ;)

Please Log in or Create an account to join the conversation.

Time to create page: 0.219 seconds
Powered by Kunena Forum