Schreibschutz Datenbaustein

Buh

Level-1
Beiträge
28
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo miteinander,

gibt es eigentlich bei einer S7-300 eine Möglichkeit (z.B. SFC) um im Programmablauf den Schreibschutzstatus eines Datenbausteins zu verändern?

Gruß buh
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der Schreibschutz soll sowohl für das PG als auch für das AG gelten. Der Datenbaustein soll nur für die bewusste Veränderung der Daten beschreibbar gemacht werden. Nachdem die Daten geändert wurden soll der Baustein wieder geschützt werden.
 
Du kannst Den DB am Beginn des OB1 beschreiben.....

entweder mit

1)
L x
T DB.DB
usw.

oder

2)
oder mittels BLKMOVE von einem anderen DB.

sonst fällt mir nichts ein.

Variante 1 ist sicherer weil Dir ja in Variante 2 auch wer in den OriginalDB schreiben könnte.

lG
Karl
 
Also es geht auf jeden Fall du musst eine AWL Quelle benutzen dort ist dan ein Code den du entfernen musst ich habe das schon mal gemacht is aber lange her ich weis nicht mehr genau wie das ging aber damit kannst du den Siemens standarts den Schreibschutz klauen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du kannst Den DB am Beginn des OB1 beschreiben.....

entweder mit

1)
L x
T DB.DB
usw.

oder

2)
oder mittels BLKMOVE von einem anderen DB.

sonst fällt mir nichts ein.

Variante 1 ist sicherer weil Dir ja in Variante 2 auch wer in den OriginalDB schreiben könnte.

lG
Karl

Soll das wirklich mit einem schreibgeschützten DB gehen?
Auf welcher CPU?
 
Soll das wirklich mit einem schreibgeschützten DB gehen?
Auf welcher CPU?
Werte in einem als "schreibgeschützt in der AS" (Bausteineigenschaft: READ_ONLY) deklarierten DB wird keine S7-CPU überschreiben (aber jedes PG kann es).

Beim Vorschlag von borromeus wird nicht der DB als schreibgeschützt deklariert, sondern alle Werte werden am Anfang des OB1 immer wieder mit Vorgabewerten überschrieben, so daß ein Werte-ändern von extern (z.B. von Panel oder PG) keine Auswirkungen hat. Das Programm kann aber die Werte im DB nach der "Initialisierung" im OB1 überschreiben, die geänderten Werte gelten dann bis zur nächsten "Initialisierung" im nächsten OB1-Zyklus.

Die Bausteineigenschaft READ_ONLY kann meines Wissens nicht vom laufenden SPS-Programm geändert werden. Man kann zwar auf der MMC schreibgeschützte und nicht schreibgeschützte DB anlegen, diese DB aber nicht in Run in den Arbeitsspeicher kopieren, höchstens den Inhalt in einen anderen nicht schreibgeschützten DB kopieren.
Ob als schreibgeschützt gekennzeichnete DB gelöscht werden können, habe ich noch nicht ausprobiert.

Harald
 
Beim Vorschlag von borromeus wird nicht der DB als schreibgeschützt deklariert, sondern alle Werte werden am Anfang des OB1 immer wieder mit Vorgabewerten überschrieben, so daß ein Werte-ändern von extern (z.B. von Panel oder PG) keine Auswirkungen hat. Das Programm kann aber die Werte im DB nach der "Initialisierung" im OB1 überschreiben, die geänderten Werte gelten dann bis zur nächsten "Initialisierung" im nächsten OB1-Zyklus.
Das funktioniert aber nur bei den 300er Steuerungen zuverlässig. Bei den 400ern können über die OP-Funktionen auch Werte außerhalb des Zykluskontrollpunktes (also irgendwo im OB1 Zyklus) in die Steuerung geschrieben werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das funktioniert aber nur bei den 300er Steuerungen zuverlässig. Bei den 400ern können über die OP-Funktionen auch Werte außerhalb des Zykluskontrollpunktes (also irgendwo im OB1 Zyklus) in die Steuerung geschrieben werden.

Die neuen 300er CPUs ab Firmware >=V3.2 können (d.h. in HW-Konfig an-/abwählbar) auch außerhalb des Zykluskontrollpunkts schreiben (also im Zeitscheibenverfahren während des gesamten OB1-Ablaufs wie die 400er).

Gruß,
Flinn
 
Das funktioniert aber nur bei den 300er Steuerungen zuverlässig. Bei den 400ern können über die OP-Funktionen auch Werte außerhalb des Zykluskontrollpunktes (also irgendwo im OB1 Zyklus) in die Steuerung geschrieben werden.

Das ist mir schon klar, aber vielleicht meldet sich der TE nochmal und erklärt was eigentlich verhindert werden soll, bzw. wo seine Befürchtungen sind.

Vielleicht ist das "eigentliche" Problem ja anders lösbar.
 
Das ist mir schon klar, aber vielleicht meldet sich der TE nochmal und erklärt was eigentlich verhindert werden soll, bzw. wo seine Befürchtungen sind.

Vielleicht ist das "eigentliche" Problem ja anders lösbar.

Steht doch in Beitrag #3. Er will nur schreiben zulassen, wenn zuvor ein Baustein zur "Entriegelung" aufgerufen wurde. Und nach dem Schreiben will er einen Baustein zur "Verriegelung" aufrufen.
Er will der einzige sein, der Daten im DB ändert. Kein sonstiges Programm oder OP sollen das dürfen.

=> Meines Wissens nach geht das nicht
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was soll für es eine Lösung für AG geben....
dass nicht wer anderer kommt aus das Programm ändert?
Oder eine andere Steuerung vom Bus was beschreibt?
Eine Software muss schon in sich mal konsistent sein..... meine ich.

Vielleicht geht es ja darum, dass verhindert werden soll, dass einer mit dem PG draufschreibt, auf den DB.... dieses nun softwaremäßig verhindern zu wollen macht halt nicht viel Sinn, wenn der böse "Veränderer" ein PG hat und den Code ändern kann.

Darum ist diese Frage nach dem Grund aus meiner Sicht durchaus berechtigt, aber gerne.... feel free!
 
Zurück
Oben