Einschaltmerker für 1. Zyklus

Jiss

Level-1
Beiträge
13
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

ich möchte einen EInschaltmerker haben, welcher nur während des 1. Zyklus TRUE ist.
Im OB1 hab ich den folgenden Code geschrieben:

Code:
      L     #OB1_SCAN_1
      L     B#16#3
      <>I   
      =     A      3.1
Wenn ich das Ganze in PLCSIM simuliere, dann wird der Ausgang A3.1 jedoch niemals TRUE. Was mache ich falsch?

Hier der Ausschnitt aus der Hilfe, wonach es doch so funktionieren müsste
Code:
B#16#01: Abschluß des  Neustarts (Warmstarts) 
B#16#02: Abschluß des  Wiederanlaufs 
B#16#03: Abschluß des freien Zyklus 
B#16#04: Abschluß des  Kaltstarts 
B#16#05: Erster OB 1-Zyklus der neuen Master-CPU nach Master-Reserve-Umschaltung und STOP des bisherigen Masters
 
es gibt doch einen OB für Neustart, Wiederanlauf usw... kannst du den nicht nehmen? Die Nr. weiß ich allerdings nicht auswendig
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ja die gibts, da hast du recht. Ich möchte jedoch nicht allen Code, der beim einschalten ausgeführt werden soll in den OB101 schreiben. Denn bestimmte funktionen sollen beim einschalten und auch bei dem drücken einer bestimmten taste ausgeführt werden.
 
Setz doch einfach einen Merker in dem Start OB.
Den fragt du in deiner Hauptschleife ab, machst deine Abarbeitung und setzt ihn zurück.
 
Hallo

OB1

UN M 20.0
= M 30.0 <------ nur eine Zykluszeit "1"
.
.hier, das gesamte Programm
.
.
UN M 20.0
S M 20.0
BE



 
Zuviel Werbung?
-> Hier kostenlos registrieren
In den Parametern des OB 1 gibt es doch einen Parameter für den ersten Zyklus, oder nicht?
Nachtrag:
Wurde bei PLCSim Stop/Run durchgeführt? Verhält sich PLCSim hier eventuell anders als eine Hardware SPS?
 
Zuletzt bearbeitet:
Ich würde auch im OB100 einen "Anlaufmerker" setzen.
Den kannst du dann überall verwenden.
Am Ende vom OB1 setzt du den wieder zurück.
Der ist dann immer nur im 1. Zyklus True und dann immer False.

Code:
im OB100

SET
S  "Anlaufmerker"
Code:
im letzten NW im OB1

SET
R  "Anlaufmerker"
 
Hi,

das ist mir klar, dass ich das mit einem merker machen kann, den ich am ende des OB1 wieder zurücksetze. Ich möchte jedoch einen Merker haben, den ich nicht wieder zurücksetzen muss. Also den Merker möchte ich im ersten Netzwerk einmal entsprechend setzen lassen und ab dem 2. Zyklus bleibt dieser auf False. Ich versteh nicht, wieso das mit dem OB1_SCAN_1 nicht geht. Funktioniert hier das Simulation nicht entsprechend der realen SPS?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute

Ich machs immer so,

im OB 1, erstes NW

UN M 0.1
= M 0.2 // Restart CPU

SET
S M 0.1 // immer logik 1

aber vorher in der HW-Konfig Remanenz ändern, da diese Merker nicht gespeichert werden dürfen sonst funzt es nicht.
 
ich versteh dein Problem nicht ganz, der einfachste Weg ist:

Im OB100

S Mx.x

=======

Im OB1

call FC"Neuanlauf" // ich mag im OB1 nur Bausteinaufrufe, keinen sonstigen Code

==========

Im FC"Neuanlauf"

UN Mx.x
BEA

// hier dein Code

R Mx.x

=====================

Ist einfach und mit überschaubarer Struktur

Gruß Bär
 
Zuviel Werbung?
-> Hier kostenlos registrieren
1. Zyklus

Welchen 1. Zyklus meinst du denn überhaupt:

a) den 1. Zyklus nach Urlöschen und Laden des Programms in die CPU
b) den 1. Zyklus immer wenn Stop->Run
c) den 1. Zyklus bei automatischem Wiederanlauf (in RUN, nach Spannungsausfall)
 
Zuletzt bearbeitet:
Code:
Netwerk 1

  L     #OB1_SCAN_1
  L     B#16#3
  <>I   
  =     M      0.2

Netzwerk 2

  U     M      0.2
  S     A      3.1
@Jiss funktionieren tut das schon mit PLCSIM
der A3.1 wird bei Anlauf gesetzt und lässt sich
dann jederzeit zurücksetzen.
 
... funktionieren tut das schon mit PLCSIM
der A3.1 wird bei Anlauf gesetzt und lässt sich
dann jederzeit zurücksetzen.
Bei mir zeigt PLCSIM komischerweise den gesetzten Merker nicht an, auch wenn ich nur einen Zyklus durchlaufen lasse.
Im Beobachten-Modus des Baustein-Editors wird der Eins-Zustand dagegen angezeigt. - Seltsam:confused:
 
Zurück
Oben