Während Laufzeit GSDML Module oder Slave-Konfigurationen für dasselbe Gerät austauschen

Cama

Member
Beiträge
5
Punkte Reaktionen
1
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo Zusammen,
kann in Codesys für dasselbe Profinetgerät während der Laufzeit die Konfiguration geändert werden?

Ich habe ein Profinet-IRT Slave mit dem ich Textdaten austauschen kann. Aus der GSDML habe ich mehrere Textpuffergrößen für den Sende- und Empfangspuffer zur Auswahl. Ich hänge dann je ein Modul an und verknüpfe es mit Variablen aus Codesys.
Der Slave passt sich automatisch durch remapping an den Master an.

Wenn sich die Puffergrößen Ändern, muss ich jetzt jedesmal Codesys starten, Runtime stoppen, GSDML Module löschen, neue laden, Variablen verknüpfen und wieder das Programm laden.
Kann ich das automatisieren? Am liebsten über meine Codesys Runtime Visualisierung?

Vielen Dank schonmal fürs Durchlesen.
Mit freundlichen Grüßen
Marius
 
OP
C

Cama

Member
Beiträge
5
Punkte Reaktionen
1
Kann man den Stationsnamen eines Profinet Teilnehmers zur Laufzeit ändern? Dann könnte ich vielleicht mehrere Versionen meines Profinet Slaves Projektieren und durch die Zuweisung des Namens zur Laufzeit das benötigte Setup aktivieren.
 
OP
C

Cama

Member
Beiträge
5
Punkte Reaktionen
1
Zuviel Werbung?
->Hier kostenlos registrieren
Ich habe eine Lösung gefunden die für meinen Fall Funktioniert. Eventuell profitieren andere davon, deshalb poste ich sie hier rein:

Die Lösung ist relativ trivial. Man Projektiert im Codesys denselben Slave mehrfach mit den unterschiedlichen Ausführungen. Jeder Slave bekommt eine andere IP und Stationname. Das Projekt wird geladen und ausgeführt. Zur Laufzeit wird dem Slave eine der projektierten IP und Stationname vergeben (z.B. SinecPNI). Die Verbindung zwischen Master und Slave wird automatisch hergestellt und der Slave stellt durch remapping seine Puffergrößen passend zur SPS ein.
Die nicht verwendeten projektierten Slavevarianten schalten beim Master auf rot, weil sie keine Verbindung aufbauen können. Das wird in diesem Fall nicht als Fehler behandelt.

Falls jemandem eine andere Lösung einfällt würde ich mich weiterhin über Input freuen.
Grüße
 

NieZuSpaet

Well-known member
Beiträge
129
Punkte Reaktionen
16
Ich frage mich, warum sich während der Laufzeit die Puffergrößen ändern soll? Wenn sich die Texte ändern (also unterschiedlich lang sind), würde ich ja den maximal nötigen Puffer parametrieren und in der Software abfragen, wie viel davon belegt ist / benutzt wurde.
 
OP
C

Cama

Member
Beiträge
5
Punkte Reaktionen
1
Ich frage mich, warum sich während der Laufzeit die Puffergrößen ändern soll? Wenn sich die Texte ändern (also unterschiedlich lang sind), würde ich ja den maximal nötigen Puffer parametrieren und in der Software abfragen, wie viel davon belegt ist / benutzt wurde.
Hallo NieZuSpaet,
so wird es in der Praxis nachher auch sein. Als Entwickler der GSDML und des Slave Treibers habe ich einen Sonderfall und muss ein Testsystem aufbauen, dass die verschiedenen Fälle beherrscht. Darüber hinaus gibt es die Anforderung, dass das Testsystem jemand anderes komfortabel nutzen kann ohne Codesys KnowHow mitzubringen. Das heisst in der Praxis, dass er nur noch in der SPS angibt, welche Puffergrößen gefahren werden sollen.
Je nach Ausführung der SPS und Projektgröße haben die SPSen unterschiedliche Speicher zur Adressierung an Bytes zur Verfügung. Daher kann ich den Wert für die Textpuffergrößen nicht pauschal z.B. nur auf 255 Bytes legen. Das könnte bei mancher SPS schon die hälfte der möglichen Adressen einnehmen. Daher gibt es mehrere Textpuffergrößen über die GSDML zur Auswahl.
 

olliew

Well-known member
Beiträge
132
Punkte Reaktionen
22
Die nicht verwendeten projektierten Slavevarianten schalten beim Master auf rot, weil sie keine Verbindung aufbauen können. Das wird in diesem Fall nicht als Fehler behandelt.
Die meiste SPSen die ich kenne haben dafür ein 'deaktiviere Teilnehmer' Baustein, keine Ahnung ob es bei codesys auch so etwas gibt.
 
OP
C

Cama

Member
Beiträge
5
Punkte Reaktionen
1
Die meiste SPSen die ich kenne haben dafür ein 'deaktiviere Teilnehmer' Baustein, keine Ahnung ob es bei codesys auch so etwas gibt.
Hallo,
danke für den Hinweis. Ich vermute es handelt sich um die Funktion "D_ACT_DP" aus der TIA Welt? Ich kann leider kein Gegenstück in Codesys finden.
Wenn es das gibt, muss es anders heißen.
 
Oben