Codesys 2.3 Merker

Beiträge
432
Reaktionspunkte
18
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich befasse mich momentan mit codesys. Mit Siemens habe ich angefangen. Bei Siemens kann ich die merkerbytes einstellen und im Belegungsplan schauen das sich keine AdressBereiche überlappen.
Bei codesys geht das nur mit den ein und Ausgängen in der steurungskonfiguration.

Verwaltet codesys die merker selbst?

Wenn ich z.b. im plcprg1 einen sr Baustein einfüge den mit sr1 beschrifte und im plcprg2 einen sr Baustein einfüge und den ebenfalls mit sr1 beschrifte, habe ich dann eine doppelbelgung wenn beide als lokalvariblen deklariert sind?

Danke
 
In Codes wird in der Regel symbolisch gearbeitet. Adress Überschneidungen kommen dabei nicht vor. Ausser man legt variabel entsprechend absolut an um dies zu provozieren
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn ich z.b. im plcprg1 einen sr Baustein einfüge den mit sr1 beschrifte und im plcprg2 einen sr Baustein einfüge und den ebenfalls mit sr1 beschrifte, habe ich dann eine doppelbelgung wenn beide als lokalvariblen deklariert sind?
Nein. Das ist vergleichbar mit einer STAT Variable in einem FB bei Siemens.
Ausnahme ist, wenn du einer Variablen mit AT %MW explizit einen Speicherplatz zuweist und diesen doppelt vergibst.
In den Compileroptionen lässt sich eine Prüfung auf doppelte Speicherplätze einschalten
Holger
 
Nein. Das ist vergleichbar mit einer STAT Variable in einem FB bei Siemens.
Ausnahme ist, wenn du einer Variablen mit AT %MW explizit einen Speicherplatz zuweist und diesen doppelt vergibst.
In den Compileroptionen lässt sich eine Prüfung auf doppelte Speicherplätze einschalten
Holger
Ich habe mittlerweile doch schon so manche "alten" V2.3 Programme gesehen, in denen man Variablen auf Merker gelegt hat (AT). Hat man dies in der Geburtsstunde von CS so gemacht, oder war da eher ein eingefahrener Siemens-Hase am Werk? Konnte mir das bis heute noch nicht erklären, wofür man sich solche Arbeit macht.
 
Die Gedanken sind natührlich frei. Das reicht von "Das haben wir schon immer so gemacht" bis "die wollen das so".:D

Aber es gibt durchaus auch Gründe dies so zu machen. Da die meisten Codesys Controller auch einen Modbusserver mitbringen ist es auf die Art natührlich sehr einfach von Außen (über eine SPS, PC oder Visu) Speicherstellen zu lesen und zu schreiben. Ob das toll ist, lass ich mal dahingestellt ( ich bin völlig dagegen)

Holger
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der Modbusserver ist auch für mich die einzige plausible Verwendung für Merker. Allerdings trifft das auf o.g. Projekte nicht zu, da dieser nicht verwendet wurde.

Wenn du allerdings schreibst, dass du völlig dagegen bist, was schlägst du dann als Lösung vor? Gegenwärtig habe ich nämlich genau diesen Fall mit einer Visu, und es ist relativ einfach die entsprechenden Daten auf Merkerbereiche zu schreiben/lesen.

Warum bist du dagegen?
 
Allerdings trifft das auf o.g. Projekte nicht zu, da dieser nicht verwendet wurde.
Woher weist du das?

Ich brauche die IP des Controllers und die Speicherstelle einer Variablen. Dann kann ich von jedem Netzwerkteilnehmer die Daten verändern, ohne das auch nur eine Zeile Code in der SPS nötig ist. Die SPS kann nicht feststellen ob Daten geschrieben wurden und wann die Daten geschrieben wurden. Außerdem kann die SPS nicht fesstellen von wem die Daten verändert wurden. Die sendende Seite weis nicht ob die Daten angekommen sind und verarbeitet wurden. Außerdem erfolgt der Zugriff asynchron, was zu Dateninkonsistenz führen kann.
Aus diesem Grund halte ich das Mapping für gefährlich.

Ich bin für eine saubere Kommunikation mit Handshake.:p
Holger
 
Woher weist du das?
Ich hatte das ausschließlich auf die Projekte bezogen, die ich in meiner Frage angeführt hatte, nicht auf vorherige Aussagen. Und bei diesen musste ich Anpassungen etc. durchführen, daher kenne ich die Programme und weiß auch, dass keine Modbuskopplung vorhanden ist.

Ich brauche die IP des Controllers und die Speicherstelle einer Variablen. Dann kann ich von jedem Netzwerkteilnehmer die Daten verändern, ohne das auch nur eine Zeile Code in der SPS nötig ist. Die SPS kann nicht feststellen ob Daten geschrieben wurden und wann die Daten geschrieben wurden. Außerdem kann die SPS nicht fesstellen von wem die Daten verändert wurden. Die sendende Seite weis nicht ob die Daten angekommen sind und verarbeitet wurden. Außerdem erfolgt der Zugriff asynchron, was zu Dateninkonsistenz führen kann.
Aus diesem Grund halte ich das Mapping für gefährlich.

Ich bin für eine saubere Kommunikation mit Handshake.:p
Holger
Danke für deine Ausführungen. Ich teile deine Meinung da grundsätzlich. Bei meinem Fall jedoch handelt es sich eher um eine kleine Anlage ohne große Funktionen und Sicherheitsstufen. Da ist eine einfache und unkomplizierte Lösung den Kosten entsprechend die einzige, wenn auch nicht saubere/sichere.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die Antworten,

ja wenn mann Modbus verwendet dann sind lt. Handbuch bestimmte Bereiche vorgegeben, diese muss ich also so beschrieben bzw. lesen.
Ok dann mache ich das schon richtig, ich adressiere in der Steuerungskonfiguration immer alles symbolisch.

Wenn ich mal bei der Visu bin dann weiß ich ja jetzt das es da fest zu adresieren ist
 
Zurück
Oben