Beiträge von Sliwka

    CWRITE($CMD,STAT,MODE,"RUN /R1/Hintergrundtask() >3")


    Hintergrundtask() ist der Name der Sub (EX1) Routine.


    Wie meinste du das mit anderes Modul EX1 zuweisen?


    Wenn ich es richtig verstehe willst du der Variable $PRO_I_O_PROC_ID3.MODULE[] ein Modulnamen zuweisen? $PRO_I_O_PROC_ID3.MODULE[] hinter der Variable ist die Subroutine hinterlegt.


    Soweit ich es mal gestestet habe, ging das nicht, da dies eine Systemvariable ist. Man kann diese nur auslesen.

    Also ich bin ehrlich, würdest du einen Programmierer für 2 Tage bestellen, wäre dir schneller geholfen.


    1. Tag: Programmierarbeiten.

    2. Tag: Step by Step das Programm mit dir durchgehen und dir das ganze in Ruhe erklären.


    Das würd dir mehr helfen in der Situation als im Forum Programmschnipsel zusammen zu kleben und Tagelang zu testen und probieren.

    Hi Brgs,


    probier mal im Ordner:

    C:\KRC\BIN


    Die Datei vxWorks.freeze zu löschen und dann neuzustarten.


    Dieses hatte mir mal geholfen.


    Viele Grüße

    Hi,
    einerseits schreibst du, du verstehst es langsam mit den Variablen, aber 2 Zeilen weiter schreibst du wie du die Variable Beckenlänge deklarieren willst, obwohl diese längst deklariert ist, da du ansonsten Syntaxfehler hättest?
    Irgendwie verstehe ich deine Frage nicht.

    Dann solltest du eine neue Position erstellen oder ein Frame.


    slin P1

    POS_P1 = P1

    POS_P1_temp = P1


    POS_P1.y = POS_P1_temp .y + OFFSET


    oder machst ein Frame


    DECL FRAME fOffset

    fOffset = $NULLFRAME


    SLIN POS_P1


    ;P1

    SLIN fOffset:POS_P1


    SLIN POS_P1


    ;P2

    fOffset.y = Offset

    SLIN fOffset:POS_P1


    SLIN POS_P1


    ;P3

    fOffset.y = Offset * 2

    SLIN fOffset:POS_P1


    usw.


    Finde mit Frames arbeiten sehr übersichtlich. Kannst auch so nicht ausversehen Punkte überschreiben.

    Hi MedRob,


    Kannst du beschreiben, was du genau vor hast? Finde die Informationen sind verwirrend und zu wenig.

    Wenn ich dich richtig verstanden habe könnte das Programm wie folgt ausschauen.


    slin P1

    POS_P1 = P1


    ; Position 1 anfahren

    POS_P1.y = POS_P1.y + OFFSET

    slin POS_P1


    slin p1


    ; Position 2 anfahren

    POS_P1.y = POS_P1.y + 2*OFFSET

    slin POS_P1


    slin p1


    ; Position 3 anfahren

    POS_P1.y = POS_P1.y + 3*OFFSET

    slin POS_P1

    Einfacher wäre es, wenn du im Programm Temporäre Positionen teachen könnte.


    Diese Temporäre Positionen kannst du in deinem Verfahrprogramm mit den Originalenpunkten überschreiben.


    z.B.
    xEntnahme.Z = xTemp_Entnahme.Z


    Die restlichen Werte werden dann unverändert bleiben.

    Stopnoaprox läuft nur in T2/Automatik.