Step 7 RS Bitverknüpfung in STEP 7 MicroWIN - Fehlermeldung beim Symbolzuordnung.

thomasdeldiaz

Level-1
Beiträge
47
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo lieber SPS Forum Mitglieder,

Ich bin ziemlich neu im Thema SPS Programmierung. Zurzeit beschaffe ich mich mit einer S7-200 SPS und dazugehörigem MicroWIN Programmiersoftware. Nun bin ich auf ein Problem gestoßen, und zwar es handelt sich um RS Bitverknüpfung und Zuordnung des Symbols von einem Eingang des Bausteins - sehe Foto. Über dem RS Block normalerweise erscheinen drei rote Fragezeichen "??.?", wenn ich jetzt dort ein Symbol einfüge, dann kommt solche Fehlermeldung, genauer zu sein, ein Unterstreichen mit einer gewellten Linie.

Kann mir jemand sagen was hat das zu bedeuten, woran liegt es ? :confused:

Danke sehr...
 

Anhänge

  • SPS-1.PNG
    SPS-1.PNG
    19,6 KB · Aufrufe: 50
Ich habe schon lange nicht mehr mit Micropwin gearbeitet.
Es könnte sein, das du anstelle einer Out-Variable eine In-Out-Variable brauchst.
Die RS-Funktion muss den Zustand ja über den Programmzyklus hinaus sichern können.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei den RS/SR-Flipflops ist L als Speicherbit nicht zulässig.
Du könntest es als klassische Selbsthaltung programmieren, das Speicherbit muß IN_OUT sein.
Code:
LD #START
O  #LED_Signal
UN #STOP
=  #LED_Signal

Harald
 
Bei den RS/SR-Flipflops ist L als Speicherbit nicht zulässig.
Wenn man das Flipflop in 2 Netzwerke (also eins für S und eins für R) zerlegt, gehen auch lokale Variablen.

Nichts desto trotz muss man den Zustand des Flipflops natürlich trotzdem außerhalb der Subroutine speichern, wie es meine Vorredner bereits angemerkt haben. Also entweder direkt INOUT verwenden oder ggf. auf eine solche bzw. eine globale Variable übertragen.
 
Hallo,

Vielen Dank für eure Mühe.

Jetzt es ist alles klar für mich geworden, glaube ich. Also ich habe dieses Problem folgendermaßen gelöst, nämlich habe ich einen Merker eingetragen (Hilfsmerker_03), dass der RS Baustein sein aktuellen Zustand irgendwo speichern kann. Den Ausgang L4.3 habe ich über zusätzliche Spule nach dem OUT verknüpft - sehe Foto. Es sollte jetzt funktionieren.

Ich bitte um eventuelle Kommentare.

SPS-2.PNG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also ich habe dieses Problem folgendermaßen gelöst, nämlich habe ich einen Merker eingetragen (Hilfsmerker_03), dass der RS Baustein sein aktuellen Zustand irgendwo speichern kann.
Dadurch verlierst du die Möglichkeit, die SBR für mehrere Instanzen zu nutzen, weil dann alle Instanzen mit dem selben Flipflop-Speicherbit arbeiten. Du darfst die SBR nur einmal aufrufen.

Harald
 
SBR = Subroutine = Unterprogramm = Dein Baustein

Dein Code steht doch in einem Programmbaustein, der die Nummer SBR.. hat, und den Baustein rufst Du doch irgendwo auf (in MAIN/OB1?).
Wenn der Baustein OHNE globale Variablen (M..., V..., T..., Z...) auskommt, dann kann er für viele gleichartige Objekte/Funktionen benutzt werden, sprich mehrmals aufgerufen werden mit jedesmal anderen Aufrufparametern ==> mehrere Instanzen.

Wenn Du z.B. mehrere Ventile hättest, dann könntest Du eine SBR schreiben, in der die gesamte Funktionalität eines Ventils programmiert ist. Diesen Baustein könntest Du für jedes gleichartige Ventil (= Ventil-Instanz) mit entsprechend anderen Input/Output aufrufen.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Harald,

OK, jetzt ist mit jetzt mehr klar geworden. Also in diesem Fall werde ich den Baustein nur für ein Aktor benutzen müssen, also mehrere Instanzen sind eigentlich nicht vorgesehen, kann ich deswegen an die globale Variablen angreifen - übrigens habe ich den Hilfsmerker in Gedächtnis als V Variable zugeordnet anstatt normalen Merker.

Was würdest du jetzt vorschlagen wenn ich doch mehrere Instanzen einsetzen wollen würde, ein TEMP Variable verwenden ??? Es macht kein sinn. Oder ohne SR/RS FlipFlops programmieren und einfach in zwei Netzwerke zerlegen, heißt ein S und ein R.
 
Wenn Du mehrere Instanzen einsetzen willst, dann mußt Du das Speicherbit über die Bausteinschnittstelle übergeben. Entweder in IN_OUT oder irgendwie (unsauber) über Schmiermerker umkopieren.

Wenn das SR/RS-Flipflop mit einzelnen S und R in 2 aufeinanderfolgenden Netzwerken programmiert wird, dann halte ich das für in Ordnung und überschaubar, weil es leider nicht anders geht. Man braucht sich ja nur die Netzwerkgrenze wegdenken.
Falls es Vorgaben gibt, daß das in nur 1 Netzwerk programmiert werden MUSS, dann gibt es die Möglichkeit, es als Selbsthaltung zu programmieren (siehe Beitrag #3).

Bei anderen SPS ist so ein FUP/KOP-SR/RS/-Flipflop intern oft als AWL-Makro mit der Selbsthaltevariante programmiert. Ich würde gerne mal wissen wollen, was die TI-Leute geraucht hatten, als sie die AWL-Makros für die S7-200 als Selbsthaltung mit mehreren = programmiert haben ... ;)

Eigentlich schade daß Siemens/TI kurzsichtig festgelegt hat, daß das Speicherbit bei SR/RS nicht L... sein darf bzw. nicht zwischen L-TEMP und L-IN_OUT unterscheidet. Wenn ich unbedachten Blödsinn programmieren will, dann darf ich das ja trotzdem mit S/R auf L... tun.

Harald
 
Was würdest du jetzt vorschlagen wenn ich doch mehrere Instanzen einsetzen wollen würde, ein TEMP Variable verwenden ??? Es macht kein sinn. Oder ohne SR/RS FlipFlops programmieren und einfach in zwei Netzwerke zerlegen, heißt ein S und ein R.
Ich hab' in der Vergangenheit die Variante mit 2 Netzwerken (eins für S und eins für R) mit einer InOut-Variablen bevorzugt. Der globale Merker kommt dann beim Aufruf der SBR zum Einsatz. So blieb' die SBR mehrfach aufrufbar, auch wenn das zu Beginn der Programmerstellung noch nicht erforderlich war. Wünsche ändern sich bekanntlich auch mal.

Insbesondere zu Beginn meiner "Programmierer-Karriere" fiel es mir so auch leichter, die beiden Funktionen später wieder zu verstehen, da die klare Trennung durch die Netzwerkgrenze vorhanden ist.
 
Hi,
@Harald, bei den von Dir genannten Kleinigkeiten (in meinen Augen) tust Du aber zumindest TI Unrecht, das 200er Programmiersystem war zu seinem Höhepunkt in Hinsicht intuitive Programmierung Step 7 meilenweit voraus.
Es hat scharfe Grenzen bereits bei mittleren Projektgrößen und noch einige andere kleine Problemchen, die Flankenmerker in Unterprogrammen schätze ich da wesentlich kritischer ein. Aber es sollte ja für eine kleine Lösung sein und die Aufgabe war in meinen Augen voll erfüllt.

Gruß
Mario
 
@Harald, bei den von Dir genannten Kleinigkeiten (in meinen Augen) tust Du aber zumindest TI Unrecht
Ich verstehe nicht ganz, womit ich TI unrecht tue... an der S7-200 sind wirklich nur Kleinigkeiten zu bemängeln

das 200er Programmiersystem war zu seinem Höhepunkt in Hinsicht intuitive Programmierung Step 7 meilenweit voraus.
Ja, das meine ich auch :D Seit 1996 habe ich die S7-200 oft und gerne eingesetzt.

Harald
 
Zurück
Oben