"name nicht als unterprogramm vereinbart"

  • hallo!
    also ich hab, wie in der ueberschrift schon angedeutet, das problem, dass mein neues "unterprogramm" nicht aufgerufen wird und in der "cell" der oben genannte fehler angezeigt wird.
    im original werden die unterprogramm mit switch - case angewaehlt. jetzt habe ich einfach eines geloescht und ein neues erstellt namens "test". aber wenn ich dieses "test" mit test ( ) nach case 2 aufrufen will, gehts nicht. was fuer eine kleinigkeit habe ich da schon wieder uebersehen? muss ich "test" irgendwo vorher als unterprogramm deklarieren?
    danke im voraus
    henni

  • Schritt für Schritt zum Roboterprofi!
  • Hi,
    oben in der DEF als EXT bekannt machen!??


    DEF CELL ( )
    ;EXT EXAMPLE1 ( )
    ;EXT EXAMPLE2 ( )
    EXT TEST ( )

  • hallo titan!
    aber dann muessten die anderen "unterprogramme" doch auch dort angegeben sein ...
    hier mal ein auszug aus der "cell" :


    DEF CELL ( )
    ;FOLD INIT
    DECL CHAR DMY[3]
    DMY[]="---"
    ;ENDFOLD (INIT)
    ;FOLD BASISTECH INI
    GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
    INTERRUPT ON 3
    BAS (#INITMOV,0 )
    ;ENDFOLD (BASISTECH INI)
    ;FOLD CHECK HOME
    $H_POS=XHOME
    IF CHECK_HOME==TRUE THEN
    ; P00 (#CHK_HOME,#PGNO_GET,DMY[],0 ) ;Testing Home-Position
    ENDIF
    ;ENDFOLD (CHECK HOME)
    GoHome()
    ;FOLD AUTOEXT INI
    P00 (#INIT_EXT,#PGNO_GET,DMY[],0 ) ; Initialize extern mode
    ;ENDFOLD (AUTOEXT INI)
    LOOP
    GoHome()
    PGNO=0
    REPEAT
    P00 (#EXT_PGNO,#PGNO_GET,DMY[],0 )
    UNTIL PGNO<>0
    SWITCH PGNO ; Select with Programnumber
    CASE 1
    P00 (#EXT_PGNO,#PGNO_ACKN,DMY[],0 ) ; Reset Progr.No.-Request
    Teil_A ( ) ; Call User-Program Dichtung Deckel
    CASE 2
    P00 (#EXT_PGNO,#PGNO_ACKN,DMY[],0 ) ; Reset Progr.No.-Request
    test ( ) ; Call User-Program testversion
    CASE 3
    .
    .
    .

  • ... du musst die DEF Zeile sichtbar machen, Konfiguration, Extras, DEF Zeile einblenden oder so in der Art, oder *.src mit Notepad mal öffnen!

  • ... yes da hast du wohl recht, ansonsten in der $config.dat unter,


    ;==================================
    ; Userdefined Externals
    ;==================================
    EXT _meldung (MELDUNGSTYP :IN,INT :IN )
    EXT _greifer (FUNKTION_ :IN )


    EXT TEST ( )


    was für eine KSS Version?

  • hmmm, auch in der config.dat fehlanzeige ... keinerlei programme zu finden sort, nur sowas hier:


    ;==================================
    ; Userdefined Externals
    ;==================================
    SIGNAL E_ReinigenFertig $IN[20]
    SIGNAL E_LinkeDuese $IN[21]
    SIGNAL E_Gedreht $IN[22] TO $IN[24]
    ;SIGNAL E_TeileAnz $IN[25] TO $IN[32]
    SIGNAL E_Speed1 $IN[41] TO $IN[48]
    SIGNAL E_Speed2 $IN[49] TO $IN[56]
    SIGNAL E_Speed3 $IN[57] TO $IN[64]
    SIGNAL E_Speed4 $IN[65] TO $IN[72]
    SIGNAL E_Speed5 $IN[73] TO $IN[80]
    SIGNAL E_Speed6 $IN[81] TO $IN[88]
    SIGNAL E_Speed7 $IN[89] TO $IN[96]
    SIGNAL E_Speed8 $IN[97] TO $IN[104]


    .
    .
    .




    KRC V5.4.14 .... ich hoffe, das hilft ...

  • Hallo henni,


    was in deiner config.dat steht ist die Deklaration der Eingänge die dort auch stehen sollte wenn sie denn vom Programm verwendet werden. Das muss in deinem Fall aber nicht sein.
    Du kannst darin auch Ausgänge oder Variablen jeden Typs deklarieren damit sie global sind.


    Schreib einfach in diesem Teil rein was dir Titan geantwortet hat:


    EXT test()


    und schon ist dein Fehler weg.
    Die anderen beiden externen Unterprogramme müssen da nicht stehen. Das sollte wohl eher als Beispiel dienen.

    Gruß Roland


    Wie poste ich falsch?

    Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Ich bin wie ich bin. Die Einen kennen mich, die Anderen können mich.

    Konrad Adenauer

  • ok, ich werds gleich mal ausprobieren. aber irgendwie isses fuer mich absolut unlogisch ... die anderen unterprogramme muessen doch auch irgendwo deklariert werden

  • ... bei deiner Version sollte es eigentlich auch nicht mehr nötig sein die Unterprogramme bekannt zu machen, dein test.src ist auch fehlerfrei und lauffähig in T1, sind die anderen vielleicht als GLOBAL DEF TEIL_A ( ) deklariert!??

  • ja. das programm laeuft im t1 prima. und hab schon den saemtlichen inhalt der datensicherung nach "teil_bl" durchsuchen lassen, aber nichts weiter zu finden ... versteh ich net ...



  • ich könnt mir vielleicht vorstellen, dass Du ev. das test() zuerst in die cell eingetippert hast und dann erst die test.src erstellt hast. Dies natürlich alles auf den KWB (in Fachkreisen Auch KCP gennant). Compiler könnte da ein wenig Probleme machen. Wissen tu ich das natürlich nicht.


    Gruß Rene

  • ich hab in der config.dat, wie von euch gesagt, einfach das programm test mal auf extern deklariert und siehe da, es funzt! also verstehen geht anders .. aber es laeuft jetzt! puh schnauf ....
    habt vielen vielen dank fuer eure schnelle hilfe, ich kann jetzt endlich feierabend machen ;)
    nen schicken abend noch gewuenscht!
    henni

  • guten morgen alle zusammen!
    ich muss mal eben das thema nochmal aufgreifen, weil es mir noch immer an dem noetigen verstaendnis fehlt.
    hmmm, wieso muss ich mein neues unterprogramm denn extra deklarieren,wenn doch alle anderen (von meinem vorgaenger) schon verhandenen unterprogramm ganz ohne diese deklaration auskommen? :nocheck: ich wuerds gern verstehen und vielleicht hat ja jemand von euch eine brauchbare erklaerung ....
    viele gruesse
    henni

  • ich glaube kaum, dass die anderen programme ohne bekanntmachung (EXT ...) funktioniert haben.
    ich denke, du wirst nur die stelle noch nicht gefunden haben, wo dein vorgänger das gemacht hat.


    mfg speed

    200% Override ... irgendwas klingt hier komisch ... und irgendwie riecht es auch ...<br /><br />Abkühlzeit Bremsen Achse 2: 57 Sekunden :D

  • tachn speddy!
    ich hab in der datensicherung komplett alles nach alten unterprogrammnamen (zb. "Teil_A") in den dateien durchsuchen lassen, und nichts gefunden. lediglich in einer "modsize.***" datei hab ich was gefunden, das scheint aber nur eine groessenzuordnung zu sein. es ist mir einfach raetselhaft, ich mein, haett ich vorher schon was von deklarationen der unterprogramme in meinen sicherungen gefunden, haett ich doch sofort mein zaubertestprogramm ;) dort ergaenzt ....

  • Diese Bekanntmachung von Unterprogrammen mit EXT ist definitiv nicht mehr notwendig (war bei KRC1 noch so)! Würdest du jetzt diesen Eintrag wieder rückgängig machen würde es auch wieder funktionieren denk ich, denn dir hat wahrscheinlich nur eine erneutes compilieren gefehlt und das wird bei KUKA dann gemacht, wenn irgendeine Änderung im Programm geschieht und das Programm geschlossen wird (z.B. auch nur eine Leerzeile mehr oder weniger in src oder dat - hilft sehr oft :genau:).


    Ich denke du hast wie von anderen erwähnt zuerst den Programm-Namen reingeschrieben und dann das Programm erstellt oder das Programm umbenannt, oder sowas ähnliches - dies erfordert aber ein neues compilieren des Programms, damit alles wieder richtig erkannt wird und wieder stimmt.


    Gruß,
    RoboSensei

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden