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

Ergebnis 1 bis 4 von 4

Thema: Hilfe bei SCL

  1. #1
    Gast Gast

    Daumen runter


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo liebes Forum,

    ich hoffe mir kann hier wer helfen!!

    Ich muss für die Schule ein Programm in SCL schreiben und komm nicht weiter
    ´

    und zwar versuche ich einen Zähler(S_CUD) programmieren

    Der Zähler soll durch 16 Schalter von A0.0 bis A1.7 angsprochen werden

    das sieht dann bei mir so aus

    CU := A0.0 OR A0.1 OR A0.2 OR A0.3 OR A0.4 OR A0.5 OR A0.6 OR A0.7 OR A1.0 OR A1.1 OR A1.2 OR A1.3 OR A1.4 OR A1.5 OR A1.6 OR A1.7

    der Zählerstand wird dann in einer BCD-Anzeige ausgeben,

    nun das Problem

    wenn ich einen Schalter betätige zählt der zähler einen Hoch,doch wenn ich einen 2.ten betätigte passiert nichts, ich muss erst den 1. wieder umstellen und dann den nächsten betätigen damit hochgezählt wird!

    Wie kann ich dieses nun verbessern??

    Vielen Dank im Vorraus

    Mfg
    Patrick
    Zitieren Zitieren Hilfe bei SCL  

  2. #2
    gast Gast

    Standard

    Mal die Hilfe von Step7 bemühen da ist alles erklärt

  3. #3
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard

    Alten Wert des AWs merken, mit neuem Wert des AWs auf steigende Flanken prüfen und dann den Zähler hochzählen. In AWL ginge das einfach mit:

    Code:
    L AW 1  // hier steht der Wert, der die Flanke erzeugen soll
    L MW 1  // hier steht der Wert drin, vom letzten Zyklus (siehe unten)
    INVI    // 1er Komplement bilden
    UW
    L 0
    <>I
    // Hier erfolgt das hochzählen
    L AW 1  // Aktuellen Zustand laden 
    T MW 1  // sichert den Accu (Wert von AW 1) im MW 1 (für Vergleich im nächsten Zyklus)
    Mit SCL kenne ich mich leider überhaupt nicht aus, aber wenns in AWL so einfach geht, dann sollte es in SCL ja auch flutschen
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  4. #4
    Registriert seit
    06.10.2003
    Beiträge
    3.412
    Danke
    451
    Erhielt 506 Danke für 408 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Unter SCL könnte es so aussehen.

    Code:
     
    // Flankenbildung
    TEMP_WORD := (EW0 XOR MW0) AND EW0;
    IF TEMP_WORD <> 0 THEN
      TEMP := true;
      ELSE TEMP := false;
    END_IF;
     
    // Zähler
    TEMP_WORD := S_CU (C_NO:=Z0, CU:=TEMP);
     
    // Flankenmerker nachführen  
    MW0 := EW0;
    oder für Schreibfaule
    Code:
     
    TEMP := ((EW0 XOR MW0) AND EW0) <> 0;
    MW0 := EW0;
    TEMP_WORD := S_CU (C_NO:=Z0, CU:=TEMP);
    Mit XOR werden die Unterschiede (pos. und neg. Flanken) zwischen EW0 und MW0 erkannt, anschliessend werden mit AND EW0 die neg. Flanken herausgefiltert. Übrig bleiben nur die pos. Flanken.


    Wenn man den Zähler ein zweites mal mit VKE=0 aufruft, kann man auch in zwei aufeinanderfolgenden Zyklen zählen.
    Code:
     
    TEMP_WORD := S_CU (C_NO:=Z0, CU:=(((EW0 XOR MW0) AND EW0) <> 0));
    TEMP_WORD := S_CU (C_NO:=Z0, CU:=false);
    MW0 := EW0;

    Gruß, Onkel
    Geändert von Onkel Dagobert (30.05.2006 um 21:16 Uhr)
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

Ähnliche Themen

  1. Hilfe Hilfe - HMI Fehler
    Von vietha11 im Forum HMI
    Antworten: 7
    Letzter Beitrag: 04.05.2011, 07:53
  2. Antworten: 90
    Letzter Beitrag: 21.03.2010, 12:35
  3. Moeller 719 Hilfe Hilfe
    Von kacperowski im Forum Sonstige Steuerungen
    Antworten: 0
    Letzter Beitrag: 11.05.2009, 19:57
  4. Hilfe Hilfe FM353
    Von Holle6 im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 06.10.2005, 19:03
  5. Antworten: 15
    Letzter Beitrag: 01.03.2005, 22:25

Lesezeichen

Berechtigungen

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