Beiträge von Kotik

    Hallo,


    ich bin`s wieder mal. Ich möchte was neues machen und komm da nicht weiter. Kann mir einer helfen oder sogar das ganze vereinfachen?


    Ich möchte nur eine Zeile schreiben, wo dann alles unbemerkt passiert :
    rPosKontrolle GetTooldata("to_GrGeb_"+strProKurz{gi_ProduktNummer}),wo_Vorr,pUms3_BiegeVorr,"Vorr_HIN";


    Damit ich keine Signale (um Position des Rob. zu erfragen muss) / rBoxDef nicht mehr benutze, wollte ich es auf dieser Weise lösen...


    Die Func und Routine möchte ich in dem Logik.mod haben und der Aufruf der Routine passiert in dem Bearbeitungsmodul (wo auch die Tool (für jewieligen Produkt) dekl. sind).


    Vielen Dank im Voraus!


    P.S.: An den ProgrammierSklaven: Du hast bestimmt eine elegantere Lösung???


    Fehler:


    /RobZelle2/RAPID/T_ROB1/TEACH_R60_R4(241,23): Fehler 40123 : Argumentfehler : Argument für 'PERS'-Parameter tLocTool ist kein Verweis auf eine Persistenteoder ist schreibgeschützt. 30.03.2011 18:08:20 RAPID



    Danke für die schnelle Antwort.


    Ich meinte die Flexpendant-SDK und die Option für den Rob. hab ich schon.


    Mit der VS 2008 geht es auch, hatte extra nachgefragt.


    Und über die Robot Aplication Builder klappt mein Vorhaben nicht. Ich möchte gerne Bilder, Diagramme verknüpfen. Dazu brauche ich C#/++

    Hallo,


    ich bin neu in dieser Abteilung :hilfe: und suche Hilfe von den Experten hier.


    Die IRC5 Steuerung kenne ich eigentlich gut, programiere schon seit 6 Jahren ABB. Jetzt wollte ich mich in Sachen Application Weiterbilden.


    Mein Problem:


    Ich kann leider keine C# + SDK programmieren.


    Suche eine Anleitung, Schritt für Schritt (am besten auf Deutsch). Wie man ein Projekt von Anfang an bis zum Schluß erstellt.


    Oder, weiss einer wo ich die Schulungen dafür kriege???


    Vielen Dank im Voraus!

    Hab`s mir gedacht. Ich habe immer zu spezielle Sachen... :uglyhammer_2:


    Dein vorschlag ist nur für einen Waituntil, oder?


    Ich weiß nicht, ob ich verständlich das ganze beschrieben habe...


    z.B.:


    Jetzt - WaitUntil (di_FRG_Be_=1 AND di_BeladeFRG=1 AND di_MatEin=1);


    Jetzt - WaitUntil (di_FRG_Be_=1 AND (di_BeladeFRG=1 OR bLoc);


    iwatch iTimer (nach 60sec. Trap)
    möchte - WaitUntil (di_FRG_Be_=1 AND di_BeladeFRG=1 AND di_MatEin=1);
    iSleep Itimer


    iwatch iTimer (nach 60sec. Trap)
    möcht- WaitUntil (di_FRG_Be_=1 AND (di_BeladeFRG=1 OR bLoc);
    iSleep Itimer


    ect...


    trap


    bTimerStop;


    endtrap



    Damit ich dies nicht bei jedem Waituntil mache, dachte ich mir , eine kleine Funkt. bauen. Was wie es aussihet gar nicht geht.


    Wenn das mein Meister schon sagt, dann gib`s keine Möglichkeit mehr.
    :biggrins:
    Itime

    Hallo Michael,


    ich glaube, dass was ich möchte geht gar nicht :uglyhammer_2:


    Dann muss ich doch mit ITimer arbeiten...


    Mein Gedanke:


    Hallo,


    ich möchte die Standzeit von dem Roboter mit aufzeichnen. d.h.: Ich kann nur die Zeit starten, wenn der PZ nicht mehr läuft oder eine Variable gesetzt ist (wie im meinem Beispiel).


    Da ich aber, nicht mit Maxtime arbeiten (in gewiessen Positionen, muss warten bis etwas erfüllt wird) kann, wollte ich in einem Unterprog. die Variable nach gewiesser Zeit setzen.


    Es gibt eine Möglichkeit mit Itimer, aber dazu muss ich ein Interruppt vor dem WaitUn. aufwäcken und danach wieder schlafen legen.


    Das ist viel zu viel an Zeilen :biggrins:

    Hallo,


    ich habe wieder mal was spezielles.


    Da ich sehr viele Waituntils habe, möchte ich eine Routine bastelln wo ich die einzelene Signale/Variablen übergeben kann und dann in der Routine dementsprechend was mache.


    z.B.:


    rWaitUntil (di_FRG_Be_Entladung,1,AND,di_Streck_BeladeFRG,=1 AND di_Mat_Anf_Ein=1);


    !-------------------------------------
    !--Ablauf fürs ablegen auf die Biege--
    !-------------------------------------
    PROC rWaitUntil(
    \signaldi di_Loc1,
    \signaldi di_Loc2,
    \signaldi di_Loc3,
    \signaldo do_Loc1,
    \signaldo do_Loc2,
    \signaldo do_Loc3,
    \bool bLoc1,
    \bool bLoc2,
    \bool bLoc3,
    \and oder or mit dabei...)


    VAR bool bWeiter;

    ClkReset clZeit;
    ClkStart clZeit;
    WHILE (NOT bWeiter)
    IF (Present(di_Loc1),Present(di_Loc2),Present(di_Loc3),Present(do_Loc1));
    bWeiter:=TRUE;
    ENDIF

    IF ClkRead(clZeit)>60 StopTask:=TRUE;
    ENDWHILE
    ENDPROC

    Hallo,


    ich möchte gerne eine Zeitumstellung am BP ausgeben, wenn es soweit ist. Damit der Bediener die Zeit im TP manuel umstellen kann (da es automatisch nicht geht).


    Ein Ex-Kollege hatte mal eine Funktion geschrieben.
    Diese Funk. meldet auch 2 mal im Jahr die Umstellung, aber an den falschen Tagen/Monaten.


    FUNC bool fSommerWinterTag ()

    VAR bool bLocHilf;
    VAR bool bLocZeitUmstellen;
    VAR bool bLocWechselMerker;
    VAR num nLocSommer;
    VAR num nLocWinter;
    VAR num nLocSommerZWB;
    VAR num nLocWinterZWB;
    VAR string strLocPart;
    VAR num nLocZahl1;
    VAR num nLocZahl2;
    VAR num nLocZahl3;
    VAR num strLocStdNeu;

    !--Aktuelle Uhrzeit und Datum auslesen
    strUhrNeu:=CTime();
    strDatNeu:=CDate();
    bLocHilf:=StrToVal(StrPart(strDatNeu,9,2),nTagNeu);
    bLocHilf:=StrToVal(StrPart(strDatNeu,6,2),nMonNeu);
    bLocHilf:=StrToVal(StrPart(strDatNeu,1,4),nJahNeu);
    bLocHilf:=StrToVal(StrPart(strUhrNeu,1,2),strLocStdNeu);
    !
    nLocSommerZWB:=(nJahNeu-2002)+(Trunc((nJahNeu-2000)*0.25));
    nLocSommer:=31-(Round(7*((nLocSommerZWB/7)-Trunc(nLocSommerZWB/7))));
    nLocWinterZWB:=(nJahNeu-2004)+(Trunc((nJahNeu-2004)*0.25));
    nLocWinter:=31-(Round(7*((nLocWinterZWB/7)-Trunc(nLocWinterZWB/7))));
    !
    nLocZahl1:=(nMonNeu)+(nTagNeu/100);
    nLocZahl2:=(nMonNeu)+(nLocSommer/100);
    nLocZahl3:=(nMonNeu)+(nLocWinter/100);
    IF (nLocZahl1>=nLocZahl2) AND (nLocZahl1<nLocZahl3) THEN
    nStdNeu:=strLocStdNeu;
    strLocPart:=StrPart(strUhrNeu,3,6);
    strUhrNeu:=NumToStr(nStdNeu,0)+strLocPart;
    bLocZeitUmstellen:=TRUE;
    ELSE
    nStdNeu:=strLocStdNeu;
    strLocPart:=StrPart(strUhrNeu,3,6);
    strUhrNeu:=NumToStr(nStdNeu,0)+strLocPart;
    !--Merker, dass man die Zeit beim Start von Main einstellen soll.
    !--Die Zeit sollte (egal ob im Sommer oder Winter) nach Winterzeit (für Michael: nach Normalzeit)
    !--eingestellt werden, sonnst wird das ganze verkehrt abgespeichert!
    bLocZeitUmstellen:=FALSE;
    ENDIF
    bLocWechselMerker:=bZeitUmstellen<>bLocZeitUmstellen;
    bZeitUmstellen:=bLocZeitUmstellen;
    RETURN bLocWechselMerker;
    !
    ENDFUNC


    Kann mir da einer Helfen? :nocheck:

    Ich habe zumindest manchmal das Problem, wenn ich im Automatik über Wlan was reingespielt hatte und vergessen habe den Schreibzugrief raus zunehmen, dann starte ich die Anlage über SPS und es passiert nix. Man kommt aber nicht sofort auf den Gedanken, dass das SZ noch aktive ist.


    d.h. Man mit SZ die Roboter nicht starten und (kaum was ausrichten am Rechner) wenn man während die Roboter sich bewegen SZ anfordert, dann stoppt sofort alles!!!

    Das stimmt so nicht!


    Du kannst im Hand, den SZ anfordern und musst den auch über BP gewähren. Aber, du brauchst es nicht im Automatikbetrieb am BP gewähren!


    Im Automatik geht es auch ohne der Zustimmung!


    Und das ist eigentlich die größte Sorge, weil man es nicht direkt sieht und auch garnicht drauf guckt!

    Vielen Dank für Eure Hilfe!


    Damit ich nicht noch eine Thema eröffne, möchte ich hier erfragen.


    Ich suche ein FTP Programm, wo ich das kopieren der Backup`s aus den Roboter auf den Server und PC automatisch bewerkstellige.


    Hat da einer schon Erfahrungen?

    Oh ja... :biggrins:


    Ich möchte kein neues Thema eröffnen und deshalb hier die Frage:


    Ist es möglich eine bestimmte Routine so zu sperren, dass die Punkte in dieser Routine nicht mehr umteachen könne, für den Default User (mit wenig Rechten).


    Ich weiß, dass man dem User das teachen untersagen kann, dies ist aber für alle Positionen.


    Ich möchte, aber das nur eine Position für den Bediner sperren und wenn ich mich anmelde, dass es automatisch aktive (zum teachen frei) ist.


    Vielen Dank im Voraus!


    :mrgreen:


    Jetzt weiß ich nicht wie ich es mit mehreren User mich verbinde.


    Ich nehme alles zurück! Es klappt super! :danke: :danke: :danke:


    Komischerweise klappt es bei allen Zellen. Hab mich mit dem Benutzernamen (Vollzugrief) und Passwort angemeldet und plötzlich geht. Ich verstehe nix mehr!


    Vorher ging es nicht und jetzt plötzlich.


    Großen Dank an alle!!!! :danke: