Quellen-Standardisierung auf Siemens, Rockwell & Beckhoff System gleichzeitig

Plea

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute!
Also ich möchte in allen drei Steuerungen den gleichen Code verwenden. Hierzu möchte ich nun in ST (Structured Text) meine FB's und FC's formulieren und diese dann in das jeweilige Zielsystem einbinden. Somit sollte ja eine gewisse Softwarepflege möglich sein.

Einmal möchte ich gerne eure Meinung zu diesem Thema erfahren und desweiteren ob es in diesem Bereich schon fertige Dinge bzw. Erfahrungen gibt?

Vielen Dank für eure Antworten.

BYE
 
Fertig gibt's da soweit mir bekannt ist gar nichts.
Bei uns läuft das so: Bausteine werden (naturgemäß) in der am häufigsten eingesetzen Software geschrieben und gepflegt(in Deutschland oft S7). Bei Bedarf wird in die beiden anderen Versionen übersetzt. FB in S7 wird zu einer AOI in Rockwell. Beim Programmieren nach Möglichkeit den kleinsten gemeinsamen Nenner suchen, 8 BOOLs und dann ein INT/DINT/REAL-Array kommt in Rockwell als UDT nicht gut (zumindest bei Kommunikation mit Fremdsystemen über Profibus und dergleichen), wenn man da beim Erstellen des FB's bereits darauf achtet ist die "Übersetzung" nicht mehr so tragisch. Manche Sachen kann man evtl. über suchen und Ersetzen anpassen (z.B. Timer.Q durch Timer.DN ersetzen), manche Sachen gehen nicht (z.B. Konstante in CASE Abfrage oder Pointer), da muss man eine andere Lösung finden. Da findet sich aber oft auch eine Lösung, statt z.B. im Baustein per Pointer auf eine Profibus Ausgangsadresse zwei INTs zu schreiben kann man diese auch als Ausgang an den FB legen, dann wird der eben außerhalb des Bausteins auf die Profibus Adresse gegeben. auch eine Struct aus ein paar BOOL-Arrays und beschreiben in einer Schleife kann manchmal besser als Array einer BOOL-Struct gehandhabt werden. Strings sind auch ein Klassiker für Handarbeit (auch wieder bei Kommunikation mit Fremdsystemen), 3S definiert die Länge mit 0 auf dem ersten freien Buchstaben, der String hat benötigt maximale Stringlänge + 1 Byte als Daten, Siemens benötigt maximale Striglänge + 2 Bytes (max-Länge + tatsächliche Länge), Rockwell benötigt Stringlänge + 4 Bytes (tatsächliche Länge als DINT).
Hardware Besonderheiten müssen sowieso von Hand betrachtet werden, so geht ein Baustein in S7 vielleicht davon aus, dass nach Spannungsausfall die Lokalvariablen erst mal 0 sind, bei Rockwell behalten sie ihren Wert auch bei Spannungsausfall und müssen dann in der AOI im ersten Zyklus auf 0 gesetzt werden (anders herum natürlich eine ähnliche Problematik).

Zusammenfassend kann ich nur sagen: Automatische Übersetzung nur mit Nacharbeit von Hand, Pflege muss so aussehen dass Codeänderung in der einen Software dokumentiert werden muss (welche Zeilen in welcher Version warum geändert), dann können die Änderungen (von Hand) in die andere Software übernommen werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Für die Sprache ST gibt es in der IEC61131 ein festgelegtes ASCII-Datenaustauschformat, welches sowohl Beckhoff als auch Siemens unterstützen. Ein paar Anpassungen muss man zwar machen, aber dafür kann man sich ein kleines Programm schreiben, welches die Dateien parst und die Änderungen vornimmt (hab dafür mit Test 2 Tage gebraucht). Rockwell unterstützt dieses Format allerdings nicht.
Wie von Oberchefe geschrieben, muss man aber auf Hardware-Besonderheiten achten und diese noch von Hand im Code nachpflegen (oder das Konvertierungstool wird deutlich komplexer :))
 
gutes Thema ...

Mit dem Gedanken spielte ich auch schon. Ich muss nur noch den Rest der Menschheit davon überzeugen, dass KOP/FUP sterbende Sprachen sind :? (und AWL halt überhaupt nicht portierbar)
 
Der Gedanke ist zwar gut wird aber meiner Meinung nach auf Dauer schwer umzusetzen sein.
Denke da gerade an die Portierung auf die Rockwell, da hier ja schon ziemliche Unterschiede zum Step 7 vorherschen.
Keine DB´s stadtdessen globale und lokale Variablen. Das wird schon recht arbeits intensiv werden alle 3 Systeme immer
auf gleichem Stand zu halten. Einfach hin und her kopieren ist ja nicht möglich.

Gruß DiX
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hmm, sowas wird schnell schwierig...

Ich habe mal bei einer Firma das Programm EasyCode gesehen. Da wird mit einem anderen Programm programmiert, und am Schluss übersetzt. Ich glaube das Tool hiess Easycode oder ähnlich. Weiss aber nicht ob das Siemens, TwinCAT und Rockwell unterstützt!

Alternativ den kleinsten gemeinsamen Nenner suchen, das wird wohl AWL sein... - Um die Unterschiede auszugelichen, könntest du halt für jeden Datentyp eine Konvertierungsfunktion schreiben, und diese vor und hinter der Baustein klemmen.
 
Zurück
Oben