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

Ergebnis 1 bis 10 von 10

Thema: Initialisierungsimpuls - Einfach ein Bit für den "ersten Zyklus" setzen

  1. #1
    Registriert seit
    28.01.2010
    Beiträge
    76
    Danke
    5
    Erhielt 3 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,

    ich stehe irgendwie auf dem Schlauch: ich möchte einfach beim Neustart der SPS einen "Initialisierungs-Impuls" für den ersten Zyklus setzen - sollte eigentlich kein Problem sein, aber ich bekomme es nicht hin!

    In 'Main' habe ich eine Boolsche Variable mittels bInit: BOOL := TRUE; deklariert, welche ich im letzten Netzwerk von 'Main' mittels 'Reset' wieder ablösche. In den Netzwerken dazwischen rufe ich nun verschiedene Programme auf, welche dann mittels 'MAIN.bInit' auf diese Variable zugreifen sollen. Allerdings ist die Variable in den aufgerufenen Programmen immer False, obwohl das Rücksetzen erst später passiert. In 'Main' selbst ist die Variable auch gesetzt - warum in den Aufgerufenen Programmen nicht? Wenn ich den Reset weglasse, sehe ich auch in den aufgerufenen Programmen, dass die Variable TRUE ist - warum bei der "1.Zyklus-Variante" nicht? Werden Aufgerufene Programme Asynchron zu 'MAIN' ausgeführt?!

    Vielen Dank für Eure Hilfe
    Gruß Mike
    Zitieren Zitieren Initialisierungsimpuls - Einfach ein Bit für den "ersten Zyklus" setzen  

  2. #2
    Registriert seit
    06.07.2007
    Beiträge
    2.811
    Danke
    174
    Erhielt 274 Danke für 253 Beiträge

    Standard

    Warum nimmst du nicht die Variable "SystemTaskInfoArr[1].firstCycle" aus der Lib "TcSystem.lib"? Die bildet genau das ab!
    A programmer is just a tool which converts caffeine into code.

  3. Folgender Benutzer sagt Danke zu Cerberus für den nützlichen Beitrag:

    FrankVonWelt (28.02.2012)

  4. #3
    Registriert seit
    28.01.2010
    Beiträge
    76
    Danke
    5
    Erhielt 3 Danke für 1 Beitrag

    Standard

    ...weil ich die bisher noch nicht kannte

    Aber wie bekomme ich das blöde Ding eingebuden?! In der Doku steht
    "Systemflags sind implizit deklarierte Variablen, die von Ihrer speziellen Steuerung abhängig sind. Um herauszufinden, welche Systemflags Ihr System besitzt, wählen Sie den Befehl 'Einfügen''Operand', es erscheint der Eingabehilfedialog, hier wählen Sie die Kategorie System Variable."

    Der Befehl "Einfügen" hat aber kein "Operand" und auch sonst finde ich nichts wie das funktionieren soll?!

  5. #4
    Registriert seit
    10.08.2010
    Beiträge
    18
    Danke
    3
    Erhielt 2 Danke für 1 Beitrag

    Standard

    Wenn es um eine Art "Initialisierung" geht, kannst du auch ein Programmblock schreiben und den ausführen lassen, bevor die SPS mit dem PLC_PRG beginnt. Schreibe einfach ein Programm (z.B. init) und trage es unter Resourcen -> Taskkonfiguration -> System-Ereignisse bei 'start' dann rechts unter 'aufgerufener POU' ein.

  6. #5
    Registriert seit
    06.07.2007
    Beiträge
    2.811
    Danke
    174
    Erhielt 274 Danke für 253 Beiträge

    Standard

    Zitat Zitat von MikeJ Beitrag anzeigen
    Aber wie bekomme ich das blöde Ding eingebuden?!
    Einfach eintragen?!
    A programmer is just a tool which converts caffeine into code.

  7. #6
    Registriert seit
    28.01.2010
    Beiträge
    76
    Danke
    5
    Erhielt 3 Danke für 1 Beitrag

    Standard

    Hi

    'Einfach eintragen' geht - da hätte ich auch selbst drauf kommen können! Bin davon ausgegangen, dass ich erst eine Variable anlegen muss.
    Aber: das mit der Initialisierungsroutine geht nicht. Bei mir gibt es kein "System-Ereignisse bei Start" - kann das damit zusammenhängen, dass ich eine Lokale Runtime verwende?!

    Gruß Mike

  8. #7
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    750
    Danke
    27
    Erhielt 164 Danke für 142 Beiträge

    Standard

    Zitat Zitat von MikeJ Beitrag anzeigen
    Bei mir gibt es kein "System-Ereignisse bei Start" - kann das damit zusammenhängen, dass ich eine Lokale Runtime verwende?!
    Nein, das hängt damit zusammen, dass es das bei Beckhoff nicht gibt.

  9. #8
    Registriert seit
    26.08.2007
    Beiträge
    22
    Danke
    0
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Hi Mike,

    am Ende vom Main einfach einen Merker setzen.
    neustart.PNG

    ist dann im ersten Zyklus "false"

    Gruß Markus

  10. #9
    Registriert seit
    28.01.2010
    Beiträge
    76
    Danke
    5
    Erhielt 3 Danke für 1 Beitrag

    Standard

    Hi Markus,

    das ist es ja, was ich ursprünglich vorhatte - aber aus irgendwelchen Gründen nicht geht. Die Variable ist in den FB´s schon FALSE, obwohl Main noch nicht das Ende erreicht hat.
    Habe es jetzt mit der Systemvariablen wie von Cerberus empfohlen gelöst - funktioniert einwandfrei.

    Viele Grüße
    Mike

  11. #10
    Registriert seit
    17.04.2007
    Ort
    Kiel
    Beiträge
    496
    Danke
    162
    Erhielt 67 Danke für 63 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich verstehe das Problem nicht. Du legst zwei globale Variblen an. Zum Beispiel RUN und START. Am Anfang vom zyklischen Programm schreibst Du:

    START:= NOT RUN;
    RUN:= TRUE;

    Sollte eigentlichen bei jeder SPS funktionieren, bei der die Variblen beim normiert werden.
    So einfach wie möglich – so kompliziert wie nötig.

Ähnliche Themen

  1. Step7 - Merker nur im ersten Zyklus setzen
    Von blue dun im Forum Simatic
    Antworten: 28
    Letzter Beitrag: 17.01.2015, 10:41
  2. Wozu ist die "Bewertung" für ein Thema?
    Von Unregistrierter gast im Forum Stammtisch
    Antworten: 3
    Letzter Beitrag: 14.07.2006, 13:15
  3. Timer hängen nach dem "ersten Mal"
    Von rs-plc-aa im Forum Simatic
    Antworten: 26
    Letzter Beitrag: 26.05.2006, 12:58
  4. Komando in SCL für den BEFEHL "ITB"
    Von Anonymous im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 07.10.2004, 18:16

Lesezeichen

Berechtigungen

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