Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 2 von 2

Thema: Programmierhilfe für SPS EPOS 2P 24/5 - einfache Drehzahlgeschichte

  1. #1
    Registriert seit
    18.06.2008
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,
    ich habe ein kleines Problem beim Programmieren der internen SPS von der EPOS 2P 24/5 Steuerung.
    Das Freigeben der Steuerung über den Funktionsbaustein 'MCpower' und das Einlesen des Analogeingangs 1 mit 'getAnalogInput' funktioniert sehr gut.
    Jetzt möchte ich mit folgender Logik den Antrieb steuern:

    Analogeingang1 < 2V --> Antrieb dreht rechts
    Analogeingang1 > 2,5V --> Antrieb dreht links
    2V< Analogeingang1 > 2,5V --> Antrieb steht

    Entweder eine Case-Anweisung oder IF-Schleife werde ich hierfür verwenden. Das ist auch nicht das Problem, sondern die Funktion zum Ansteuern des Antriebes.
    Hier stelle ich mir das so vor, den Antrieb mit einem Funktionsbaustein in Drehzahlregelung zu stellen und die Drehzahl und Drehrichtung diesem Funktionsbaustein zu übergeben. 'MCMoveVelocity' (glaub so heißt diese Funktion') hab ich schon ausprobiert, nur muss ich hier für die Drehrichtung einen ENUM Parameter ('MCpositive' und 'MCnegative') eingeben und diesen kann ich nicht als Variable anlegen. Zumindest weiß ich nicht wie das geht und ob überhaupt. Habe dies schon als String Variable versucht, bekomme aber dann den Fehler das Typ nicht übereinstimmen
    Vielleicht ist das ja gar nicht notwendig, da es einen einfacheren Funktionsbaustein gibt?!? Wie gesagt stelle ich mir das so vor: Velocity Mode, Antrieb freigeben und dann mit der IF-Schleife einfach die Drehzahl (Drehrichtung mit Vorzeichen?) in eine Variable für einen 'Velocity'-Funktionsbaustein zu übergeben. +2000rpm Antrieb dreht rechts, -2000rpm Antrieb dreht links, 0rpm Antrieb steht. Ist dies machbar? wenn ja wie?

    Oder gibt es eine andere Lösung mit den Funktionsbausteinen? Hat jemand dazu eine schöne Lösung, die funktioniert?
    Für Eure Hilfe und Unterstützung danke ich euch schon mal.

    Gruß
    Smather
    Zitieren Zitieren Programmierhilfe für SPS EPOS 2P 24/5 - einfache Drehzahlgeschichte  

  2. #2
    Smather ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    18.06.2008
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hier noch kurz vielleicht Möglichkeiten, wobei ich die zweite Favorisiere, aber ich keine einfache Funktion kenne um den Antrieb einfach in Drehzahlregelung zu fahren !! Bei Variante 1 muss die Funktion in der IF-Schleife aufgerufen werden, da ich nicht weiß wie ich einen ENUM Parameter (hier Direction!) als Variable angeben kann! Oder gibt es noch eine andere Möglichkeit??

    Variante 1 ?!?


    (* Variable Declaration *)

    VAR

    execute1 : Bool;
    myAxis : AXIS_REF := (AxisNo := 0);
    fbPower : MC_Power;
    fbReset : MC_Reset;
    fbGetAnalogInput : MU_GetAnalogInput;
    fbVelo1 : MC_MoveVelocity;
    fbVelo2 : MC_MoveVelocity;
    fbStop : MC_Stop;
    Start1 : BOOL := FALSE;
    Start2 : BOOL := FALSE;
    Start3 : BOOL := FALSE;

    END_VAR



    fbPower(Axis := myAxis, Enable := TRUE);
    fbReset(Axis := myAxis, Execute := execute1);
    fbGetAnalogInput(Axis := myAxis, Enable := TRUE, Number :=1);

    start1:=false;
    Start2:=false;
    Start3:=false;

    if fbGetAnalogInput.value < 2000 then
    start1:=true;
    fbVelo1(Axis := myAxis, Execute := Start1, Velocity := 2000, Acceleration := 10000,
    Deceleration := 10000, Direction := MCpositive);

    elsif fbGetAnalogInput.value >2500 then
    Start2:=true;
    fbVelo2(Axis := myAxis, Execute := Start2, Velocity := 2000, Acceleration := 10000,
    Deceleration := 10000, Direction := MCnegative);

    else
    Start3:=true;
    fbStop(Axis := myAxis, Execute := Start3, Deceleration := 10000);

    end_if






    Variante 2:

    (* Variable Declaration *)

    VAR

    execute1 : Bool;
    myAxis : AXIS_REF := (AxisNo := 0);
    fbPower : MC_Power;
    fbReset : MC_Reset;
    fbGetAnalogInput : MU_GetAnalogInput;
    velocity: DINT;

    END_VAR


    fbPower(Axis := myAxis, Enable := TRUE);
    fbReset(Axis := myAxis, Execute := execute1);
    fbGetAnalogInput(Axis := myAxis, Enable := TRUE, Number :=1);


    einfach in Drehzahlregelung schalten, Funktion????? mit Velocityeingabe



    if fbGetAnalogInput.value < 2000 then
    velocity:=+2000;

    elsif fbGetAnalogInput.value >2500 then
    velocity:=-2000;

    else
    velocity:=0;

    end_if
    Zitieren Zitieren Anmerkung  

Ähnliche Themen

  1. Programmierhilfe für CoDeSys
    Von Pubi im Forum CODESYS und IEC61131
    Antworten: 16
    Letzter Beitrag: 01.03.2010, 02:08
  2. Suche Handbuch für Programmierhilfe S0L4B22
    Von Klaus.Ka im Forum Suche - Biete
    Antworten: 0
    Letzter Beitrag: 11.09.2008, 17:02
  3. Maxon - Motorsteuerung mit EPOS P und zwei EPOS Controllern
    Von MoodyMammoth im Forum Sonstige Steuerungen
    Antworten: 0
    Letzter Beitrag: 27.03.2007, 12:23
  4. Programmierhilfe für S7
    Von Joe.Baer im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 26.04.2005, 13:29
  5. Suche einfache Programme für LOGO für Azubi' 1. Lehrjahr
    Von Nachbar im Forum Sonstige Steuerungen
    Antworten: 6
    Letzter Beitrag: 15.09.2004, 16:29

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •