TIA Rezept automatisiert aus DB/udt erstellen

hucki

User des Jahres 2014
Beiträge
6.888
Reaktionspunkte
2.564
Zuviel Werbung?
-> Hier kostenlos registrieren
TIA V16 (könnte aber auch noch upgraden)
TP1500 Comfort Pro / KTP700 Mobile
S7-1214C DC/DC/DC


Ich habe einem optimierten DB, der auf einem UDT basiert.
Der DB enthält ca. 1000 Variablen, aber da kommen gerne mal zwischendurch von einer Maschine zur nächsten und auch mittendrin welche hinzu.
Der UDT besteht zum Teil aus weiteren UDTs.

Ich möchte diesen DB komplett in ein Rezept übernehmen.
Der DB ist im HMI als eine (Gesamt-) Variable vom Typ UDT eingefügt, wodurch im HMI auch bei Änderungen immer alle enthaltenen Variablen verfügbar sind.


Im Rezept muss ich ja leider jede Variable einzeln eintragen.
Lässt sich das Eintragen ins Rezept irgendwie automatisieren (vor allem, um mich als Fehlerquelle auszuschließen)?



Ich habe leider auch schon Probleme nur beim brauchbaren Exportieren der ganzen einzelnen Variblen aus dem DB, um sie händisch per Copy/Paste ins Rezept einzutragen.

Wenn ich den DB als Quelle (einschließlich abhängige Bausteine) exportiere, erhalte ich die Variablen nicht mit vollen Namen, sondern zerlegt aufgelistet in die einzelnen Strukturen, z.B.:
Code:
TYPE "typeMachineCfgS71200"
VERSION : 0.1
   STRUCT
      blockLength : USInt := 16;   // 4 + (Anzahl der Slots * Byte für Slot)
      blockID : USInt := 196;   // 196
      "version" : USInt := 5;   // 1= ET 200S/ ET 200pro;  2= ET 200SP(CPU);  ;2.1 =ET200AL; 3= ET 200MP; 4 = S7-1500, 5 = S7-1200
      versionSub : USInt := 0;   // 0 für alle, außer 1 für ET200AL
      slot1CPU : USInt := 1;   // CPU Signalboard. 0: Modul nicht vorhanden; 255: Modul nicht konfiguriert
      slot2 : USInt := 2;   // Slot 2-9 Signalmodul hinter der CPU. 0: Modul nicht vorhanden; 255: Modul nicht konfiguriert; 2-max. Slotnr: realer Slot
      slot3 : USInt := 0;   // Slot 2-9 Signalmodul hinter der CPU. 0: Modul nicht vorhanden; 255: Modul nicht konfiguriert; 2-max. Slotnr: realer Slot
      slot4 : USInt := 0;   // Slot 2-9 Signalmodul hinter der CPU. 0: Modul nicht vorhanden; 255: Modul nicht konfiguriert; 2-max. Slotnr: realer Slot
      slot5 : USInt := 0;   // Slot 2-9 Signalmodul hinter der CPU. 0: Modul nicht vorhanden; 255: Modul nicht konfiguriert; 2-max. Slotnr: realer Slot
      slot6 : USInt := 0;   // Slot 2-9 Signalmodul hinter der CPU. 0: Modul nicht vorhanden; 255: Modul nicht konfiguriert; 2-max. Slotnr: realer Slot
      slot7 : USInt := 0;   // Slot 2-9 Signalmodul hinter der CPU. 0: Modul nicht vorhanden; 255: Modul nicht konfiguriert; 2-max. Slotnr: realer Slot
      slot8 : USInt := 255;   // Slot 2-9 Signalmodul hinter der CPU. 0: Modul nicht vorhanden; 255: Modul nicht konfiguriert; 2-max. Slotnr: realer Slot
      slot9 : USInt := 255;   // Slot 2-9 Signalmodul hinter der CPU. 0: Modul nicht vorhanden; 255: Modul nicht konfiguriert; 2-max. Slotnr: realer Slot
      slot101 : USInt := 255;   // Tatsächlicher Kommunikations-Slot oder  255: Modul nicht konfiguriert
      slot102 : USInt := 255;   // Tatsächlicher Kommunikations-Slot oder  255: Modul nicht konfiguriert
      slot103 : USInt := 255;   // Tatsächlicher Kommunikations-Slot oder  255: Modul nicht konfiguriert
   END_STRUCT;

END_TYPE
Das nützt mir leider nicht mal für ein mühsames manuelles Einfügen der gesamten Variablen in das Rezept wirklich etwas.

Wenn ich den DB dagegen als Quelle (nur selektierte Bausteine) exportiere, erhalte ich zwar die Variablen im DB so aufgelistet, wie ich sie eigentlich möchte, z.B.:
Code:
Config.S7.Central.Cfg.slot1CPU := 1
aber nur ca. 100 Variablen werden exportiert und auch teilweise nur einzelne willkürliche Variablen der enthaltenen UDTs. Vom obigen UDT z.B. nur das aufgeführte ...slot1CPU.

Der Export wird bei mir auf 2 verschiedenen Rechnern für mich so fast unbrauchbar ausgeführt. :(
Nur das brauchbare Auflisten der gesamten Variablen des DBs ist für mich also auch schon sehr hilfreich.



Vielen Dank für Hilfe bereits im Voraus.


Grüße
hucki
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei der S7 gibt es doch auch Rezept-DBs.
https://support.industry.siemens.com/cs/mdm/91696622?c=58898978955&lc=de-DE

Hab ich noch nie produktiv eingesetzt ... aber vielleicht kannst du was damit anfangen.
Zumindest sollte damit CSV Ex- und Import funktionieren.
Damit habe ich eine *.csv auf einer SD-Karte in der CPU, oder?

Wenn ja, bekommt man die dann auch irgendwie zum USB des Panels ohne den Schaltschrank zu öffnen?
Also vom Panel aus gesteuert.
 
Damit habe ich eine *.csv auf einer SD-Karte in der CPU, oder?

Wenn ja, bekommt man die dann auch irgendwie zum USB des Panels ohne den Schaltschrank zu öffnen?
Also vom Panel aus gesteuert.

Das grenzt ja schon an Kinderüberraschung ... Erst Export und jetzt auch noch vom geschlossenen Schaltschrank über Panel und USB
:D
Kannst ja mal schauen, ob die Variablen im DB in ein Variablenarchiv bekommst. Von da aus mit der Funktion "Archiv kopieren". Du kannst aber auch den Netzwerkanschluß nach aussen legen und dann über die Webseite der Steuerung downloaden
 
Das grenzt ja schon an Kinderüberraschung ... Erst Export und jetzt auch noch vom geschlossenen Schaltschrank über Panel und USB...
🤷‍♂️
Für das Rezept im Panel ist die ganze Chose fertig, nur die Variablen müssen im Rezept vervollständigt werden (oder halt ein komplett neues Rezept und dieses dann einfach austauschen).

Mit Deinem Vorschlag muss ich mich mit allem Drum und Dran neu beschäftigen.
 
Zurück
Oben