Automatisiertes Erzeugen von PLC-S7-Programmen und Kunden-Dokumentation

GoAutomation

Level-1
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich möchte das Erstellen von Simatic-PLC-Projekten und Kundendokumentation mittels der Kommandoschnittstelle (COM/OLE-Schnittstelle) und einer eigenen VC- oder VB-Applikation automatisieren.
Vorab ich bin noch kein Profi in der COM-Programmierung. Dazu meine Fragen und Probleme

1 Ich habe verschiedene Maschinen, die den selben symbolischen Code aber eine andere Symboltabelle haben. Die Kommandoschnittstelle stellt die Methode zum Exportieren und neu kompilieren von AWL-Sourcen zur Verfügung. Wenn eine Source neu kompiliert wird, liegen die erzeugten Bausteine immer in AWL-Form vor. Unsere Kunden wünschen aber KOP. D. h. ich muss jetzt händisch jeden Baustein öffnen, die Ansicht in KOP ändern und speichern. Bei ca. 100 Bausteinen ist das mehr als mühsam. Es wäre schön, wenn man dem Compiler angeben könnte, in welche Ansicht (KOP/FUP/AWL) der Baustein kompiliert werden sollte. Gibs dazu eine Lösung?

2. Dokumentation / Drucken der Bausteine:
Unsere Kunden wünschen normalerweise das die einzelnen Bausteine auf Papier ausgedruckt werden. Da das ganze PLC-Programm mehrere Bundesordner füllen würde, beschränken wir uns jeweils auf die wichtigsten Bausteine. D. h. ich muss händisch im Step7-Manager die Bausteine selektieren, die gedruckt werden sollen. Die Kommandoschnittstelle stellt aber keine Methode "Print" zur Verfügung. Was gibt es für andere Lösungen, um ein Bausteine automatisiert auszudrucken?

3. Dokumentation / Eigenschaften vom Ausdruck:
Manche Kunden möchten die Ausdrucke in symbolischer Form, andere wieder in absoluter Form usw. Also alle Einstellungen die man im KOP/FUP/AWL-Editor unter "Extras->Einstellungen->Ansicht" vornehmen kann. Diese Sachen, nehme ich an, sind nicht projektspezifisch und somit irgendwo in einer ini-Datei oder in der Registry abgelegt, die wiederum von einer Applikation bearbeitet werden könnte. Ich bin sehr dankbar für jeden Hinweis der mir Licht in den „S7-Dateiensalat“ bringt!!

4. Welche Dateien braucht es, damit die Kommandoschnittstelle korrekt arbeitet:
Muss dass gesamte Step7 installiert sein , oder reichen bestimmte DLL's / OCX's aus?

Ich bring es einfach nicht fertig mich kurz zu fassen. Aber ich hoffe dennoch ihr habt euch durchgerungen und habt Tipps.:)

Gruss
GoAutomation
 
Ich habe verschiedene Maschinen, die den selben symbolischen Code aber eine andere Symboltabelle haben. Die Kommandoschnittstelle stellt die Methode zum Exportieren und neu kompilieren von AWL-Sourcen zur Verfügung. Wenn eine Source neu kompiliert wird, liegen die erzeugten Bausteine immer in AWL-Form vor. Unsere Kunden wünschen aber KOP. D. h. ich muss jetzt händisch jeden Baustein öffnen, die Ansicht in KOP ändern und speichern. Bei ca. 100 Bausteinen ist das mehr als mühsam. Es wäre schön, wenn man dem Compiler angeben könnte, in welche Ansicht (KOP/FUP/AWL) der Baustein kompiliert werden sollte. Gibs dazu eine Lösung?

Hallo GoAutomation,

es Grundsätzlich nicht möglich Bausteine in KOP zu kompilieren. KOP ist nur eine spezielle Darstellung eines Netzwerkes in Step7. Das heisst um ein Netzwerk in KOP darzustellen muss man bestimmte Bildoperationen und Befehlssequenzen verwenden.

Das kann man am besten sehen wenn man eine KOP-Netzwerk in AWL darstellen läßt.

Gruss Ligatschow
 
Zuviel Werbung?
-> Hier kostenlos registrieren
2. Dokumentation / Drucken der Bausteine:
Unsere Kunden wünschen normalerweise das die einzelnen Bausteine auf Papier ausgedruckt werden. Da das ganze PLC-Programm mehrere Bundesordner füllen würde, beschränken wir uns jeweils auf die wichtigsten Bausteine. D. h. ich muss händisch im Step7-Manager die Bausteine selektieren, die gedruckt werden sollen. Die Kommandoschnittstelle stellt aber keine Methode "Print" zur Verfügung. Was gibt es für andere Lösungen, um ein Bausteine automatisiert auszudrucken?

Es besteht die Möglichkeit mit VB (6.0/5.0) Befehle an eine Fenster zu senden. Damit könnte es möglich sein den SimaticManager so zu beeinflussen das die entsprechenden Bausteine gedruckt werden. Das wäre ein Weg an der Automationschnittstelle vorbei. Der Befehl heisst SendKey.

Gruss Ligatschow
 
4. Welche Dateien braucht es, damit die Kommandoschnittstelle korrekt arbeitet:
Muss dass gesamte Step7 installiert sein , oder reichen bestimmte DLL's / OCX's aus?

Da die Kommandoschnittstelle eine "spezielle Art" der API ist muss Step7 installiert sein. Man könnte auch sagen das Programm wird ferngesteuert.

Es kann sein das es nur eine DLL ist aber es gibt eben auch ActiveX-EXE Applikationen wie z.B. Excel, Word, oder Visual Basic selber. Die ActiveX-EXE registriert sich ebenfalls in der Registry.

Gruss Ligatschow
 
Zuletzt bearbeitet:
4. Welche Dateien braucht es, damit die Kommandoschnittstelle korrekt arbeitet:
Muss dass gesamte Step7 installiert sein , oder reichen bestimmte DLL's / OCX's aus?

Da die Kommandoschnittstelle eine "spezielle Art" der API ist muss die Step7 installiert sein. Man könnte auch sagen das Programm wird ferngesteuert.

Es kann sein das es nur eine DLL ist aber es gibt eben auch ActiveX-EXE Applikationen wie z.B. Excel, Word, oder Visual Basic selber. Die ActiveX-EXE registriert sich ebenfalls in der Registry.

Gruss Ligatschow

Hallo Ligatschow,

es gibt rechts unten in der Ecke den Button Zitieren (mit Zitat antworten). :idea:

Gruß Kai
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@GoAutomation

Es gibt in Step7 eine API, die einen Zugriff auf die COM-Objekte der Software ermöglicht. Die Dokumentation findest Du auf der Installations-CD (s. Kommandoschnittstelle).
Das Erstellen eines COM-AddIns für Step7 ist jedoch meiner Meinung nach bisher nicht möglich.

Ich würde folgendermaßen vorgehen:
1.) Erstellen eines COM-Addins für Excel, um von einer Symbolik in Tabellenform direkt auf die Eingänge Deiner Bausteine schließen zu können.
2.) Dieses COM-Addin erstellt aus der Excel-Tabelle einen AWL-Quellcode für jeden benötigten Baustein incl. Symbolikdatei
3.) Die erstellten Quellen werden über die Step7 API in das gewünschte Projekt importiert und ebenfalls über die API übersetzt.
4.) Die API ermöglicht sogar das Anlegen der Hardwarekonfig, wenn gewünscht. Nach dem Übersetzen der Bausteine könntest Du über die API und Excel sogar die Steuerung laden


Der Aufwand lohnt sich jedoch nur, wenn Du wirklich nachzu identische Projekte hast. Ich habe das Ganze mal für eine kleine Anlage durchgespielt und es lief.
 
@GoAutomation

Es gibt in Step7 eine API, die einen Zugriff auf die COM-Objekte der Software ermöglicht. Die Dokumentation findest Du auf der Installations-CD (s. Kommandoschnittstelle).
Das Erstellen eines COM-AddIns für Step7 ist jedoch meiner Meinung nach bisher nicht möglich.

Ich würde folgendermaßen vorgehen:
1.) Erstellen eines COM-Addins für Excel, um von einer Symbolik in Tabellenform direkt auf die Eingänge Deiner Bausteine schließen zu können.
2.) Dieses COM-Addin erstellt aus der Excel-Tabelle einen AWL-Quellcode für jeden benötigten Baustein incl. Symbolikdatei
3.) Die erstellten Quellen werden über die Step7 API in das gewünschte Projekt importiert und ebenfalls über die API übersetzt.
4.) Die API ermöglicht sogar das Anlegen der Hardwarekonfig, wenn gewünscht. Nach dem Übersetzen der Bausteine könntest Du über die API und Excel sogar die Steuerung laden


Der Aufwand lohnt sich jedoch nur, wenn Du wirklich nachzu identische Projekte hast. Ich habe das Ganze mal für eine kleine Anlage durchgespielt und es lief.

Im voraus vielen Dank für die Antworten,

Kay, das deine Lösung funktioniert bezweifle ich nicht. Aber ich habe so quasi bereits ein Master S7-Projekt. Davon will ich einfach Projekte erzeugen mit dem selben symbolischen Code, aber mit anderer Symboltabelle. Im Masterprojekt hat die Funktion "TüreAuf" z.B. den Eingang E4.1 in der anderen Symboltabelle z.B. den E5.6.
Nun kann ich mit den COM-Methoden "Quelle erzeugen" und "Neu kompilieren" das neue S7-Projekt erzeugen.
Nur was mich stört ist, dass im neuen Projekt alle Bausteine in AWL erzeugt werden und ich nun händisch alle Bausteine aufmachen und die Ansicht in KOP ändern muss.:mad:

Ich ärgere mich ganz einfach über den folgenden Fakt: Wenn man sich mit einer "Hochsprachen-Sicht" dem Thema Automatisation nähert, stösst man immer wieder auf Probleme, die in der Hochsprache bereits vor Jahrzehnten gelöst wurden. Die Automation ist einfach eine ganz andere Welt... womit ich wohl leben muss.:(

Gruss und Dank
GoAutomation
 
Wenn eine Source neu kompiliert wird, liegen die erzeugten Bausteine immer in AWL-Form vor. Unsere Kunden wünschen aber KOP. D. h. ich muss jetzt händisch jeden Baustein öffnen, die Ansicht in KOP ändern und speichern. Bei ca. 100 Bausteinen ist das mehr als mühsam. Es wäre schön, wenn man dem Compiler angeben könnte, in welche Ansicht (KOP/FUP/AWL) der Baustein kompiliert werden sollte. Gibs dazu eine Lösung?

Habe dasselbe Problem! Ein bisschen einfacher geht es, wenn man den Editor auf Standardansicht "KOP" (bei mir "FUP"!) einstellt, immer 15 Bausteine markiert, öffnet, STRG-S (speichern) drückt, STRG-F4 (schließen) drückt.

Gruß
Flinn
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Im voraus vielen Dank für die Antworten,

Kay, das deine Lösung funktioniert bezweifle ich nicht. Aber ich habe so quasi bereits ein Master S7-Projekt. Davon will ich einfach Projekte erzeugen mit dem selben symbolischen Code, aber mit anderer Symboltabelle. Im Masterprojekt hat die Funktion "TüreAuf" z.B. den Eingang E4.1 in der anderen Symboltabelle z.B. den E5.6.
Nun kann ich mit den COM-Methoden "Quelle erzeugen" und "Neu kompilieren" das neue S7-Projekt erzeugen.
Nur was mich stört ist, dass im neuen Projekt alle Bausteine in AWL erzeugt werden und ich nun händisch alle Bausteine aufmachen und die Ansicht in KOP ändern muss.:mad:

Wenn es nur die Symboltabelle betrifft: Die kann man ja exportieren und importieren. Dann könntest du dein Projekt einfach kopieren (was alle Bausteine in KOP belässt), und importierst einfach nur eine neue Symboltabelle. Und die lässt sich glaube ich im Texteditor ändern, dafür müsste man sich ein kleines Tool schreiben können.

Ich ärgere mich ganz einfach über den folgenden Fakt: Wenn man sich mit einer "Hochsprachen-Sicht" dem Thema Automatisation nähert, stösst man immer wieder auf Probleme, die in der Hochsprache bereits vor Jahrzehnten gelöst wurden. Die Automation ist einfach eine ganz andere Welt... womit ich wohl leben muss.:(

Gruss und Dank
GoAutomation

Das kommt meiner Meinung nach hauptsächlich von anderen Ansätzen, wie man ein Problem löst. Wer so wie ich als Geselle angefangen hat und dann von der technischen Seite in S7 eingestiegen ist, dann den Techniker gemacht hat (ich mache ihn jetzt noch, bin bald fertig) und jetzt mit Step7 arbeitet, geht anders an die Sache heran wie jemand, der mit C, C++, VB o.ä. groß geworden ist (wie ein Kumpel von mir). Step7 lässt viele Wege offen, ist aber, denke ich, auf technische Anwender zugeschnitten.

@Flinn: Alt+F4 war glaube ich schließen.

Gruß, Tobias
 
Habe dasselbe Problem! Ein bisschen einfacher geht es, wenn man den Editor auf Standardansicht "KOP" (bei mir "FUP"!) einstellt, immer 15 Bausteine markiert, öffnet, STRG-S (speichern) drückt, STRG-F4 (schließen) drückt.

Vielen Dank Flinn. Das bringt mich möglicherweise auf eine Idee. Mit der Methode "Edit" kann der entsprechende Baustein im KOP/FUP/AWL-Editor geöffnet werden, um ihn anschliessend mit den VB-Befehl SendKeys "speichern und schliessen" wieder zu schliessen.
Jetzt müsste der KOP/FUP/AWL-Editor nur in der richtigen Ansicht geöffnet werden. Wie ich das von Flinn gesehen habe, ist das eine Einstellungssache im Editor.
Diese Einstellung muss doch irgendwo von aussen beeinflussbar sein. Ich nehme an die Einstellung liegt irgendwo in der Step7-Registry oder in einem INI-File. Nur Wo???:confused:

Gruss
GoAutomation
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielen Dank Flinn. Das bringt mich möglicherweise auf eine Idee. Mit der Methode "Edit" kann der entsprechende Baustein im KOP/FUP/AWL-Editor geöffnet werden, um ihn anschliessend mit den VB-Befehl SendKeys "speichern und schliessen" wieder zu schliessen.
Jetzt müsste der KOP/FUP/AWL-Editor nur in der richtigen Ansicht geöffnet werden. Wie ich das von Flinn gesehen habe, ist das eine Einstellungssache im Editor.
Diese Einstellung muss doch irgendwo von aussen beeinflussbar sein. Ich nehme an die Einstellung liegt irgendwo in der Step7-Registry oder in einem INI-File. Nur Wo???:confused:

Gruss
GoAutomation

Wenn du den Baustein öffnen willst und mit SendKey dann "speichern und schließen", kannst du doch vorher auch noch mit Sendkey die Ansicht wechseln (Ctrl+3 für FUP).
 
Aber ich habe so quasi bereits ein Master S7-Projekt. Davon will ich einfach Projekte erzeugen mit dem selben symbolischen Code, aber mit anderer Symboltabelle. Im Masterprojekt hat die Funktion "TüreAuf" z.B. den Eingang E4.1 in der anderen Symboltabelle z.B. den E5.6.
Nun kann ich mit den COM-Methoden "Quelle erzeugen" und "Neu kompilieren" das neue S7-Projekt erzeugen.

als ich die überschrifft gelesen habe, dachte ich dass du dir einen schönen codegenerator schreiben willst. du bastellst dir in einer schönen klickibunti oberfläche deine anlage und das tool schmeisst abhängig davon eine quelle mt fertigem code raus. ist praktisch da der verkäufer die anlage quasi während dem kundegespräch "programmieren" kann und du dir nen job suchen kannst der dich mehr fordert...

aber wenn ich das richtig verstehe ist "grund" code immer gleich und du willst nur die ea belegung anpassen?
findest du das sich der aufwand lohnt? also ohne den simatic manager zu loben, aber das kann man nur mit ihm ohne zusätzliche tools realisieren...
(warum habe immer so ein komisches gefühl wenn ich in diesem forum das wort "tools" schreibe?)

eine quelle aus allen bausteinen erzeugen (symbolisch!)
in der symboltabelle die adressen anpassen (blos nicht die symbole ändern)
die quelle wieder übersetzen - fertig

was das drucken angeht:
1. denke ich das die selektion der gewünschten bausteine im simatic manager genauso schnell geht wie extern.

2. könntest du den symbolischen bausteinnamen der zum ausdruck gewünschten bausteine mit dem attrbut "d_" beginnen lassen. so kannst du sie auf knopfdruck untereinander anordnen und du siehst bei telefonaten im servicefall gleich welche bausteine dem kunden als ausdruck voliege und welche nicht.

3. wenn dir das mit dem "d_" nicht gefällt, dann kannst du in dein projekt ja einen zusätzlichen bausteinordner einfügen in den du nur die bausteine kopierst die gedruckt werden sollen. eventuell in dein masterprojekt für jeden kunden einen ordner mit den gewünschten bausteinen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
also ohne den simatic manager zu loben, aber das kann man nur mit ihm ohne zusätzliche tools realisieren...
(warum habe immer so ein komisches gefühl wenn ich in diesem forum das wort "tools" schreibe?)

Hi.
Bei etwas umfangreicheren Projekten oder Serienprojekten mit wenigen Abweichungen macht es schon Sinn, über externe Tools nachzudenken. Ich finde die Methode - und insbesondere sein Anliegen - von GoAutomation schon richtig: Infos einholen, und dann die Tools selbst schreiben. Ist meist nicht schwierig, aber nützlich. [Kaufen würde ich die Tools sowieso nirgendswo.]

Wenn ich von meiner kommenden IBN wieder da bin, werde ich mich mal mit "SendKeys" beschäftigen.

Gruß
Flinn
 
Ich möchte das Erstellen von Simatic-PLC-Projekten und Kundendokumentation mittels der Kommandoschnittstelle (COM/OLE-Schnittstelle) und einer eigenen VC- oder VB-Applikation automatisieren.
Vorab ich bin noch kein Profi in der COM-Programmierung. Dazu meine Fragen und Probleme

2. Dokumentation / Drucken der Bausteine:
Unsere Kunden wünschen normalerweise das die einzelnen Bausteine auf Papier ausgedruckt werden. Da das ganze PLC-Programm mehrere Bundesordner füllen würde, beschränken wir uns jeweils auf die wichtigsten Bausteine. D. h. ich muss händisch im Step7-Manager die Bausteine selektieren, die gedruckt werden sollen. Die Kommandoschnittstelle stellt aber keine Methode "Print" zur Verfügung. Was gibt es für andere Lösungen, um ein Bausteine automatisiert auszudrucken?

3. Dokumentation / Eigenschaften vom Ausdruck:
Manche Kunden möchten die Ausdrucke in symbolischer Form, andere wieder in absoluter Form usw. Also alle Einstellungen die man im KOP/FUP/AWL-Editor unter "Extras->Einstellungen->Ansicht" vornehmen kann. Diese Sachen, nehme ich an, sind nicht projektspezifisch und somit irgendwo in einer ini-Datei oder in der Registry abgelegt, die wiederum von einer Applikation bearbeitet werden könnte. Ich bin sehr dankbar für jeden Hinweis der mir Licht in den „S7-Dateiensalat“ bringt!!

Gruss
GoAutomation

Schau dir einfach einmal dafür DocPro von Siemens an.
 
Zurück
Oben