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

Seite 3 von 6 ErsteErste 12345 ... LetzteLetzte
Ergebnis 21 bis 30 von 60

Thema: Zähler in SCL

  1. #21
    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
    … ich danke euch für die Geduld. Übrigens, könnte einer der Moderatoren bitte unter meinem Namen die Wörter "Erfahrener Benutzer" wegnehmen?

    Nochmals zum Verständnis; ich hatte ja Folgendes programmiert:

    Code:
    IF NOT Eingang AND fm THEN
       TAKT := 1;
    END_IF;
    fm := Eingang;


    Also die Variable TAKT, die als Eingangs-Variable deklariert ist, dauerhaft auf 1 gesetzt.

    So, nun wird im nächsten Zyklus diese Eingangsvariable TAKT eingelesen; allerdings nicht als 1 sondern als 0, da der eigentliche Status 1 von TAKT nicht nach außen an die Schnittstelle übergeben werden kann.

    Das ist auch der Grund, warum das Beispiel funktioniert; da das Programm beim erneuten Durchlauf die Variable TAKT als 0 ansieht.

    Kann man das so sagen?
    LG
    spirit

  2. #22
    Registriert seit
    09.08.2006
    Beiträge
    3.626
    Danke
    911
    Erhielt 656 Danke für 542 Beiträge

    Standard

    Zitat Zitat von spirit Beitrag anzeigen
    Kann man das so sagen?
    Kommt halt drauf an, ob und wie Du die Eingangsvariable aussen beschaltet hast.

    Wenn sie beschaltet ist, nimmt sie natürlich den Wert der "Beschaltung" an. Wenn sie unbeschaltet ist, behält sie den Wert (den Du intern verändert hast) bei.

    Gruß.

  3. #23
    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 ducati,

    also mit beschaltet meinst du, wenn z.B. ein Eingang auf 1 ist, oder?

    Und unbeschaltet wäre ja das von mir aufgezeigte Beispiel und dann würde mein "Erklärungsversuch" soweit stimmen???

    Eine unbeschaltete InVariable behält doch den Wert nicht bei, sondern erhält ihn erst wieder, wenn das Programm erneut durchlaufen wird; so zumindest hatte ich Ralle jetzt verstanden.
    LG
    spirit

  4. #24
    Registriert seit
    09.08.2006
    Beiträge
    3.626
    Danke
    911
    Erhielt 656 Danke für 542 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Dein Baustein wird also abgearbeitet, der Eingang wird eingelesen (hier 0),
    ...
    Wenn dein Baustein dran ist, wird der Eingang eingelesen, der ist immer noch 0, denn du hast ihn zwar intern auf 1 geschrieben, aber das wird nicht nach Außen an die wirkliche Eingangsvariable witergegeben.
    Zitat Zitat von spirit Beitrag anzeigen
    Eine unbeschaltete InVariable behält doch den Wert nicht bei, sondern erhält ihn erst wieder, wenn das Programm erneut durchlaufen wird; so zumindest hatte ich Ralle jetzt verstanden.
    Doch...

    Ralle ist davon ausgegangen, das der Eingang auch (mit 0) verschaltet ist.

  5. #25
    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

    Ok, glaube jetzt gebe ich auf!

    Verstehe momentan echt nur noch Bahnhof...

    Ich hatte lediglich TAKT intern fest auf 1 gesetzt und TAKT als Eingangs-Variable deklariert. Nicht mehr und nicht weniger; keine Ahnung ob ich da irgend einen Eingang verschaltet habe oder nicht. Und so wie ich das (bisher) verstanden hatte, orientiert sich die SPS beim Einlesen des Eingangs nicht welchen Wert die Variable TAKT intern (fest) hat, sondern liest den Eingang mit dem Status 0 ein, da er nicht auf 1 gesetzt (z.B. E0.0 = 1) ist.

    Aber offensichtlich habe ich das alles falsch verstanden.
    LG
    spirit

  6. #26
    Registriert seit
    09.08.2006
    Beiträge
    3.626
    Danke
    911
    Erhielt 656 Danke für 542 Beiträge

    Standard

    probier es doch einfach mal aus. will mich da jetzt lieber nicht 100%ig festnageln. ist ganz schön warm heute...

    Gruß

  7. #27
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.712
    Danke
    398
    Erhielt 2.398 Danke für 1.998 Beiträge

    Standard

    ... mir ist es noch nicht zu warm ...

    Wenn du TAKT als IN-Variable nimmst dann ist sie trotzdem eine "ganz normale" Variable (wie auch eine STAT-Variable) in deinem Instanz-DB.
    Du kannst (auch wenn über die Schnittstelle anders zugewiesen) der Variablen im weiteren Code einen anderen (als den übergebenen) legalen Wert zuweisen.
    Dieser Wert wird dann, zumindestens bis zum nächstens Aufruf des Bausteins oder bis zu einer neuerlichen Manipulation im folgenden Code, beibehalten.

    Aber grundsätzlich (wie schon von Ralle erläutert) : Eine IN-Variable nimmt beim Start des Baustein den Wert der äußeren Beschaltung an.

    Trotzdem würde ich dir empfehlen, zu tun, wie schon Ducati schreibt : Ausprobieren hilft ...

    Gruß
    Larry

  8. #28
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Zitat Zitat von spirit Beitrag anzeigen
    Ok, glaube jetzt gebe ich auf!

    Verstehe momentan echt nur noch Bahnhof...

    Ich hatte lediglich TAKT intern fest auf 1 gesetzt und TAKT als Eingangs-Variable deklariert. Nicht mehr und nicht weniger; keine Ahnung ob ich da irgend einen Eingang verschaltet habe oder nicht. Und so wie ich das (bisher) verstanden hatte, orientiert sich die SPS beim Einlesen des Eingangs nicht welchen Wert die Variable TAKT intern (fest) hat, sondern liest den Eingang mit dem Status 0 ein, da er nicht auf 1 gesetzt (z.B. E0.0 = 1) ist.

    Aber offensichtlich habe ich das alles falsch verstanden.

    Also nochmal, ich habs dann mal gerade getestet mit PLCSIM.

    Egal ob du den INPUT beschaltest oder nicht, was immer du damit (wenn du ihn im FB symbolisch als normale Input-Variable ansprichst) machst, er wird am Anfang der Abarbeitung des FB eingelesen und hat da den Wert, der von Außen angelegt ist. Ist nichts angelegt, dann hat die VAriable den Wert, der bei der Deklaration als Anfangswert vorgegeben wurde (hat man da nichts geändert, ist das False).
    Also alles im grünen und somit logischen Bereich.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  9. #29
    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

    Habe schon viel rumprobiert... kann aber leider die Ergebnisse nicht immer deuten; daher ja auch meine (vielen) doofen Fragen!

    Zusammenfassung (erneuter Versuch):

    Wenn ich an einen Eingang von Außen kein Signal anlege, dann ist dieser unbeschaltet. Im FB deklariere ich eine InVariable TAKT, die fest den Status 1 besitzt.
    Beim Einlesen hat der INPUT jedoch trotzdem 0, da nicht beschaltet und auch der vorgegebene Anfangswert nicht geändert wurde. Erst beim Durchlauf des Programmes erhält die InVariable wieder den Status 1, da ja TAKT fest auf 1 gesetzt ist. Stimmt's jetzt?
    LG
    spirit

  10. #30
    Registriert seit
    31.03.2010
    Beiträge
    335
    Danke
    3
    Erhielt 33 Danke für 32 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Jetzt hört sich das ganze doch gut an!
    Wenn du jedoch als Anfangswert für deine Eingangsvariable Takt True gesetzt hast und aussen nichts verlinkst ist die Eingangsvariable Takt beim Beginn des Bausteins erstmal True!
    Das ganze gilt jedoch nur sollange du nie etwas am Baustein verlinkst! Sobald hier einmal ein 0 Signal also False verlinkt wurde ist die Variable beim Beginn ebenso False
    Sollange du sie nicht abnullst bzw. im Baustein wieder setzt!


    Mfg
    Geändert von SCM (16.07.2013 um 18:21 Uhr)
    Wer aufhört, besser zu werden, hat aufgehört, gut zu sein!

Ähnliche Themen

  1. SCL Zähler/Timerproblem
    Von bayernburn im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 14.06.2012, 08:18
  2. Betriebsstunden Zähler / max. Zähler Anzahl.
    Von superkato im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 03.12.2010, 16:38
  3. SCL Zähler...ewiges problem^^
    Von Chris_the_new im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 27.10.2009, 09:59
  4. Zähler in SCL
    Von Felse im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 09.03.2009, 16:49
  5. Maximalzählwert Zähler S7-300 + maximale Zähler CPU
    Von DennisBerger im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 02.07.2007, 10:54

Lesezeichen

Berechtigungen

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