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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 20 von 20

Thema: Moeller PS4 151 + S40 als Zeituhr

  1. #11
    Registriert seit
    16.11.2007
    Beiträge
    179
    Danke
    11
    Erhielt 53 Danke für 39 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Ralf,

    das mit den EVG´s is manchmal nicht ohne, ich denke bei der 1-10V Schnittstelle der EVG´s (Stromsenke) brauchst Du noch einen Trennverstärcker, z.B. http://www.rinck-electronic.de/rinck...NP-SPS_EVG.PDF.

    mfG Jan

  2. #12
    loonys ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    15.04.2009
    Beiträge
    14
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    ich hatte Zeit mich mit deinem Programm ein wenig auseinanderzusetzen. Da mir die Programmierung in FBS leichter fällt habe ich versucht es in FBS umzusetzen.
    Das ist mir auch teilweise gelungen. Ich stehe nur bei dieser Zeile vor einem Rätsel :

    Uhr_erzeugen_hour :=USINT_TO_UINT(Uhr_lesen_hour);
    Uhr_erzeugen_min :=USINT_TO_UINT(Uhr_lesen_min);
    Uhr_erzeugen_sec :=USINT_TO_UINT(Uhr_lesen_sec);


    Gibt es eine Möglichkeit diese auch in FBS zu konvertieren. Wenn ich es genauso in AWL eingebe funktioniert zwar das Programm aber ich komme nicht mehr in den FBS Modus zurück.

    g

    ralf

  3. #13
    loonys ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    15.04.2009
    Beiträge
    14
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    hier mal mein programm, es funktioniert soweit. Leider schalte der Zyklus aber nur einmal. D.h. wenn ich die Uhr der SPS per Test&Inbetriebnahme ändere schalten die Ausgänge nacheinander ein und wieder aus. Nach diesem einem Durchlauf / Abfolge schaltet nichts mehr, erst nach Neustart der SPS. Gibt es dafür eine Erklärung bzw. Korrektur an meinem Programm ?

    (*** Uhrzeit lesen und generieren ***)
    CAL Uhr_lesen(

    |
    := Year,
    := Month,
    := Day,
    := Weekday,
    Uhr_lesen_hour := Hour,
    Uhr_lesen_min := Minute,
    Uhr_lesen_sec := Second
    )


    Uhr_erzeugen_hour :=USINT_TO_UINT(Uhr_lesen_hour);
    Uhr_erzeugen_min :=USINT_TO_UINT(Uhr_lesen_min);
    Uhr_erzeugen_sec :=USINT_TO_UINT(Uhr_lesen_sec);


    CAL Uhrzeit_erzeugen(
    MilliSecond := Uhr_erzeugen_milisec,
    Second := Uhr_erzeugen_sec,
    Minute := Uhr_erzeugen_min,
    Hour := Uhr_erzeugen_hour
    |
    td_aktuelle_Uhrzeit := OutputTOD,
    := Error
    )



    (*** Beleuchtungsgruppe 1 Auto ein- / ausschalten ***)

    IF (td_aktuelle_Uhrzeit > TOD#09:00:00) AND (td_aktuelle_Uhrzeit < TOD#23:00:00) Then
    Bel1auto:=true;
    END_IF;

    IF (td_aktuelle_Uhrzeit > TOD#23:00:00) Then
    Bel1auto_off:=true;
    END_IF;


    (*** Beleuchtungsgruppe 2 Auto ein- / ausschalten ***)
    IF (td_aktuelle_Uhrzeit > TOD#11:00:00) AND (td_aktuelle_Uhrzeit < TOD#22:00:00) Then
    Bel2auto:=true;
    END_IF;


    IF (td_aktuelle_Uhrzeit > TOD#22:00:00) Then
    Bel2auto_off:=true;
    END_IF;


    (*** Beleuchtungsgruppe 3 Auto ein- / ausschalten ***)
    IF (td_aktuelle_Uhrzeit > TOD#14:00:00) AND (td_aktuelle_Uhrzeit < TOD#21:30:00) Then
    Bel3auto:=true;
    END_IF;


    IF (td_aktuelle_Uhrzeit > TOD#21:30:00) Then
    Bel3auto_off:=true;
    END_IF;


    (*** Beleuchtungsgruppe 1 ein- / ausschalten ***)
    LD Bel1_Hdein
    OR Bel1auto
    S BelGr1


    LD Bel_Hdaus
    OR Bel1auto_off
    R BelGr1

    (*** Beleuchtungsgruppe 2 ein- / ausschalten ***)
    LD Bel2_Hdein
    OR Bel2auto
    S BelGr2


    LD Bel_Hdaus
    OR Bel2auto_off
    R BelGr2

    (*** Beleuchtungsgruppe 3 ein- / ausschalten ***)
    LD Bel3_Hdein
    OR Bel3auto
    S BelGr3


    LD Bel_Hdaus
    OR Bel3auto_off
    R BelGr3

  4. #14
    Registriert seit
    16.11.2007
    Beiträge
    179
    Danke
    11
    Erhielt 53 Danke für 39 Beiträge

    Standard

    Hallo loonys,

    die Zeile

    Uhr_erzeugen_hour :=USINT_TO_UINT(Uhr_lesen_hour);

    ist nur ein Typcast(umwandlung) der Datentypen damit die FB´s entsprechend beschalten werden können. Keine Ahnung wie das in FBS aussieht, in AWL jedenfalls dann so:

    LD Uhr_lesen_hour
    USINT_TO_UINT
    ST Uhr_erzeugen_hour

    und zu deinem zweiten Problem:

    (*** Beleuchtungsgruppe 1 Auto ein- / ausschalten ***)
    IF (td_aktuelle_Uhrzeit > TOD#09:00:00) AND (td_aktuelle_Uhrzeit < TOD#23:00:00) Then
    Bel1auto:=true;
    ELSE
    Bel1auto:=false;
    END_IF;

    Hatte bei meinem kleinen Testprogramm vergessen das Licht auszuschalten.

    mfG Jan

  5. #15
    loonys ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    15.04.2009
    Beiträge
    14
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    das heißr ich kann den Typcast weglassen ?

    g

    ralf

  6. #16
    loonys ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    15.04.2009
    Beiträge
    14
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    ich habe das programm wie folgt geändert :

    (*** Beleuchtungsgruppe 1 Auto ein- / ausschalten ***)
    IF (td_aktuelle_Uhrzeit > TOD#09:00:00) AND (td_aktuelle_Uhrzeit < TOD#23:00:00) Then
    Bel1auto:=true;
    Else
    Bel1auto_off:=true;
    END_IF;


    Der Erfolg ist, das die Beleuchtung nacheinander ein- und ausschalten, aber nur in einem Ablauf. Wenn ich nachdem die letzte Gruppe aus geschaltet hat die SPS Uhr wieder auf die Sartzeit der ersten Gruppe setze steht bei den Variabeln Bel1auto:=true;
    Bel1auto_off:=true;
    im Online Zustandsanzeige Modus eine 1 an. Erst nach Neustart ist wieder ein Ablauf möglich.

    Wo liegt der Fehler ?

    g

    Ralf

  7. #17
    loonys ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    15.04.2009
    Beiträge
    14
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Jan,

    die Steuerung der Beleuchtung mittels der Zeituhrfunktion funktionirt dank Deiner Hilfe mitlerweile optimal, inklusive Hand- / Automatikbetrieb.
    Jetzt zu meinem 2. Problem. Ich habe vor den 1-10V Analogausgang zu Regelung der Pumpenleistung über eine Rampe zu realisieren.
    Leider komme ich malwieder nicht weiter und bräuchte eine Unterstützung in Form eines Beispiels wie ich den Analogausgang an sich ansteuern kann ( Variabeln, Funktionsbaustein, etc.)
    Trotz mehrmaligem studieren der Hilfefunktion komme ich nicht weiter.

    g

    ralf

  8. #18
    Registriert seit
    16.11.2007
    Beiträge
    179
    Danke
    11
    Erhielt 53 Danke für 39 Beiträge

    Standard

    Hallo Ralf,

    die PS4 hat einen 12-Bit Analogausgang d.h. 0V entsprechen 0 und 10V entsprechen 4095. Kleines Beispiel für 5V am QA, wenn I0 true.

    Code:
     
    VAR
     
    Eingang_0            AT %I0.0.0.0.0     :BOOL;
    Analogausgang     AT %QAW0.0.0.0   :UINT;
     
    END_VAR
     
     
    IF Eingang_0 = true  Then
             Analogausgang:= 2047;
    Else    Analogausgang:= 0;
    END_IF;
    mfG Jan
    Zitieren Zitieren Analogausgang  

  9. #19
    loonys ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    15.04.2009
    Beiträge
    14
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Jan,

    vielen Dank für die schnelle Hilfe. Den Grundaufbau habe ich soweut verstanden. Jetzt möchte ich den Ausgang über einen definierten Zeitraum von 1V - 8V hochfahren, dann wieder im gleichen Zeitraum abfallen lassen bis auf 1V. Danach geht der Zyklus von vorne los.
    Ich dachte das läßt sich über eine Rampe realisieren, aber leider finde ich diese Funktion in der S40 Hilfe nicht. Dort ist die Rampenzeit nur in Verbindung mit einem FU annährend beschrieben.
    Ich bräuchte einen Tip.

    g

    ralf

  10. #20
    Registriert seit
    16.11.2007
    Beiträge
    179
    Danke
    11
    Erhielt 53 Danke für 39 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Ralf,

    das könntest Du mittels eines Zählers und eines Taktgenerators lösen.
    Der Takt bestimmt dann die Steilheit deiner Rampe. Ein Rampen-baustein
    befindet sich auch in der Reglungstecknik-Toolbox, die man sich kostenlos bei Moeller downloaden kann.

    mfG Jan.
    Zitieren Zitieren Rampe  

Ähnliche Themen

  1. moeller xc-cpu
    Von SnuppeDeluxe im Forum Sonstige Steuerungen
    Antworten: 1
    Letzter Beitrag: 26.08.2009, 17:30
  2. Moeller PS2 ????
    Von AndreasNeuhaus im Forum Sonstige Steuerungen
    Antworten: 1
    Letzter Beitrag: 17.01.2007, 08:02
  3. SPS von Moeller
    Von csommi im Forum Sonstige Steuerungen
    Antworten: 1
    Letzter Beitrag: 03.10.2005, 14:04
  4. Moeller SPS
    Von Heinz im Forum Stammtisch
    Antworten: 1
    Letzter Beitrag: 18.04.2005, 22:40
  5. Moeller SPS PS4-151-MM1
    Von RadiTr im Forum Suche - Biete
    Antworten: 0
    Letzter Beitrag: 17.11.2004, 14:18

Lesezeichen

Berechtigungen

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