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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Übergabewert wird nicht Null

  1. #1
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Lächeln


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ... das hier bitte Löschen!!!

    Danke.
    Geändert von spirit (18.12.2015 um 09:09 Uhr)
    LG
    spirit
    Zitieren Zitieren Wie Array "Nullen"?  

  2. #2
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Hallo,

    ich habe in einem FB folgende Zeile programmiert:

    Code:
    #Alarm[#iSchritt] := #TON.Q;   // Alarm => Array[0..13] of Bool
    Nun wird beispielsweise in Schritt 4 der Alarm ausgelöst - das klappt auch prima!

    Frage:

    Was müsste ich aber programmieren, dass - egal welcher Schritt den Alarm ausgelöst hat - der Alarm wieder rückgesetzt wird, wenn die SK wieder in Schritt 0 steht?

    Anders gefragt - wie kann das ganze Array "genullt" werden?
    Geändert von spirit (18.12.2015 um 09:12 Uhr)
    LG
    spirit

  3. #3
    Registriert seit
    06.01.2012
    Ort
    Papenburg
    Beiträge
    114
    Danke
    25
    Erhielt 27 Danke für 13 Beiträge

    Standard

    Hallo,

    du könntest in Schritt 0 dein Array über eine "for Scheife" wieder zurück setzen.

    Gruß
    Sascha

  4. Folgender Benutzer sagt Danke zu Zersch für den nützlichen Beitrag:

    spirit (18.12.2015)

  5. #4
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Danke Sascha,

    das heißt die Elemente eines Arrays können IMMER nur über eine Schleife auf Null gesetzt werden?
    LG
    spirit

  6. #5
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    775
    Erhielt 646 Danke für 492 Beiträge

    Standard

    nö du kannst auch ein gleichartiges Array welches schon 0 hat draufmoven (Blockmove)

    in SCL
    Code:
    #Alarm := #Alarmleer;
    Bei grösseren Arrays ist das Zyklusfreundlicher. Bei Boolarrays kann es sinn machen ein Array aus DWORD oder Word per Sicht draufzulegen und dann per Schleife das WORDArray zu überarbeiten.

    mfG René

  7. Folgender Benutzer sagt Danke zu vollmi für den nützlichen Beitrag:

    spirit (18.12.2015)

  8. #6
    Registriert seit
    05.11.2004
    Ort
    Schweiz
    Beiträge
    1.135
    Danke
    224
    Erhielt 127 Danke für 85 Beiträge

    Standard

    Bei einem FB in SCL kannst du folgendes schreiben:

    Code:
    VAR
       Alarm : ARRAY[0..12] OF BOOL;
       Reset_Alarm : ARRAY[0..12] OF BOOL := [13(FALSE)];
    END_VAR
    
    BEGIN
       Alarm := Reset_Alarm;
    Geändert von Krumnix (18.12.2015 um 10:07 Uhr)
    Kommt Zeit.... Kommt Rat.... In der Tat.
    Gartenlampe mit Windenergie anstelle von Solar? Bei Interesse -> PN

  9. Folgender Benutzer sagt Danke zu Krumnix für den nützlichen Beitrag:

    spirit (18.12.2015)

  10. #7
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Noch eine Verständnisfrage hierzu:

    Warum bleibt denn eigentlich das jeweilige Bit aus dem Array, z.B.

    Code:
    #Alarm[4] := #TON.Q;
    gesetzt, wenn der Timer wieder "FALSE" wird? Es handelt sich hier doch "nur" um eine Zuweisung und nicht um ein Setzen!
    LG
    spirit

  11. #8
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    775
    Erhielt 646 Danke für 492 Beiträge

    Standard

    Wenn die Zuweisung abgearbeitet wird, dann wird das Entsprechende Bit sicher False werden wenn TON.Q false ist.

    mfG René

  12. #9
    Registriert seit
    05.11.2004
    Ort
    Schweiz
    Beiträge
    1.135
    Danke
    224
    Erhielt 127 Danke für 85 Beiträge

    Standard

    Wenn die Zuweisung nur im Schritt 4 erfolgt und danach keine mehr, dann ändert sich an dem Zustand des Alarm-Bits nichts. Erst, wenn der Schritt 4 wieder aktiv wird, ändert sich das Bit, falls TON.Q sich verändert hat.
    Kommt Zeit.... Kommt Rat.... In der Tat.
    Gartenlampe mit Windenergie anstelle von Solar? Bei Interesse -> PN

  13. #10
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Krumnix Beitrag anzeigen
    Wenn die Zuweisung nur im Schritt 4 erfolgt und danach keine mehr, dann ändert sich an dem Zustand des Alarm-Bits nichts. Erst, wenn der Schritt 4 wieder aktiv wird, ändert sich das Bit, falls TON.Q sich verändert hat.
    Danke,

    aber wenn die Zuweisung im Schritt 4 erfolgt und danach - z.B. durch Quittieren - der Schritt 0 eingenommen wird und dadurch auch der Timer wieder "FALSE" wird, dann wäre das doch eine NEUE Zuweisung für das Alarm-Bit, oder nicht?

    Es bleibt aber trotzdem auf "TRUE".

    Erst durch eine Schleife, oder Ähnliches wird es wieder auf Null gesetzt!
    LG
    spirit

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 19.05.2015, 13:03
  2. Antworten: 2
    Letzter Beitrag: 30.04.2011, 13:58
  3. KL5152 kann nicht auf null gesetzt werden?
    Von Bührer im Forum CODESYS und IEC61131
    Antworten: 0
    Letzter Beitrag: 03.07.2009, 15:52
  4. Zielsystem wird nicht gefunden
    Von timod79 im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 06.04.2009, 14:06
  5. Antworten: 0
    Letzter Beitrag: 09.09.2008, 11:39

Lesezeichen

Berechtigungen

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