Programmcodefrage

The Spirit

Level-1
Beiträge
76
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi.
Bin heute beim ansehen unserer alten Programme über einen kurzen Codeteil gefallen wo mir nicht ganz klar ist, wofür dieser gut ist.
Da im KOP hier als Bild im Anhang.
Vielleicht kann mir da jemand sagen ob ich da was übersehe, aber meinern Meinung nach kann ich das doch auch weglassen, oder?
Danke
 

Anhänge

  • prog.JPG
    prog.JPG
    3,7 KB · Aufrufe: 56
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

Code:
U "MotorEin"
= "AnzeigeMotorEin"

jetzt will ich die Anzeige testen

Code:
U "MotorEin"
ON "MotorEin" // Testzweck
= "AnzeigeMotorEin"

oder "hübscher" mit IBN 1Bit

Code:
U "MotorEin"
O "immer1Bit" // Testzweck
= "AnzeigeMotorEin"


So kann mans machen.
Nicht vergessen : IBN 1bit bzw ON MotorEin wieder rauszunehmen


Grüße
 
Na klar, das ist ein Noder

Hallo,

The Spirit schrieb:
kurzen Codeteil gefallen wo mir nicht ganz klar ist, wofür dieser gut ist.

Das ist ein klassischer Fall eines "Noder-Gliedes" :ROFLMAO:

Ist nur wenigen Leuten bekannt. Das kennen nur ich und ein Kollege aus China, aber der ist schon lange tot :ROFLMAO:

Aber Spass beiseite, in diesem Zusammenhang ist mir eingefallen, das es mal eine witzige Zusammenstellung von völlig unmöglichen Logiken wie "NAber" und allem möglichen Spassbezeichnungen gab. Finde aber gerade keine passenden Link dazu.
Kann mir da jemand weiterhelfen ?

Gruß

Question_mark
 
Zuletzt bearbeitet:
Ich mache das dann, wenn ich noch nicht absolut sicher bin, ob ich den Schließer wirklich löschen will oder ihn doch noch benötige. Dann kommt ein Öffner parallel dazu, der Code kann erst einmal stehen bleiben und ergibt immer 1, egal ob der betreffende Merker 0 oder 1 ist. Später fliegt so etwas dann aber irgendwann endgültig raus.
 
wann macht sowas (temporär) sinn?

SIMATIC S5 und S7 haben keine Systemmerker, die ständig '0' oder '1' sind. Deshalb ist es üblich, sich diese in einem Projekt fest vorzugeben. In Fremdprogrammen habe ich festgestellt, dass sich ein "Hilfsstandard" [ ca. 80% ] eingebürgert hat, der meistens im Anlauf M0.0 = '0' u. M0.1 = '1' setzt. Häufig wird als Anlaufmerker M 0.7 verwendet.

Ich leiste mir den Luxus und verwende MB 0 u. MB 1 nicht und beginne ab M2.0 = '0' ; M2.1 = '1' u. M2.7 als Anlaufmerker.
Hintergrund:
Wenn man FC's erstellt und diese einsetzt, weiss man oft noch nicht die richtigen Eingangssignale. Man muss aber die roten Fragezeichen festlegen. Dazu benutze ich dann M0.0 , MB0 ,MW0. Wenn das Programm fortgeschritten ist und ich die richtige Belegung weiss, werden diese Hilfmerker korrigiert.
Um keinen zu vergessen, ist ein Querverweis auf den Merker '0' sehr hilfreich.

Da die Erstellung von feste '0' und feste '1' oft unterschiedlich gehandhabt wird, macht es Sinn, in FC's oder FB's intern diese als Temporäre Merker zu erstellen:

TEMP: s, t_eins , t_null

O #s
ON #s
= #t_eins / logisch '1'
//
U #s
UN #s
= #t_null / logisch '0'

Damit ist sichergestellt, dass unabhängig davon, welchen Wert '#s' beim Bausteinaufruf hat, das Ergebnis immer richtig ist.

Das gilt dann natürlich immer nur in dem jeweiligen Baustein!
Dieser ist dann aber auch unabhängig von "Hilfsstandards" und damit universell einsetzbar.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,



und immer schön darauf achten, daß das Standard Taktmerkerbyte von Siemens MB0 ist, wenns aktiviert wird.


Noch etwas genauer:

Taktmerkerbyte: MB 3
positive Flanken von MB3 ==> MB4
negative Flanken von MB3 ==> MB5

und ab MB10 - Projektmerkerbereich.
So sehen meine Neuprojekte aus.


Gruß Kalle
 
Zurück
Oben