Hallo Alle,
mein Umsetzprogramm ist fertig.
Die Zuli wird aus einer Pilz-Export-Datei ( Trennzeichen TAB) generiert,
die Adressen werden umgerechnet ( M 1.17 -> M 6.1 ) und eine Import-Datei
erzeugt.
Das Programm:
erzeugt aus einer Pilz *.paf-Datei eine S7-AWL-Quelle.
Ich habe u.a.noch ein paar Sachen eingebaut,die ich bei S5Convert vermisse.
Das Programm kann u.a. Folgendes:
- für alle Bausteine die aufgerufen werden, im Programm aber nicht vorhanden sind
( Die System-SBs) wird ein Dummy-Baustein generiert, damit der AWL-Editor nicht
meckert.
- Alle Bausteine werden umsortiert: Der Aufgerufene liegt vor dem Aufrufenden,
damit der AWL-Editor den Baustein schon mal kennt.
- IN-OUT-Problematik : Wie die S5 arbeitet die PSS bei der Parameterübergabe
auch mit called-by-reference. Daher:
Alle Formalparameter werden so umsortiert, dass IN, OUT, INOUT auch stimmt.
Die Bausteinaufrufe werden entsprechend geändert.
- Alle DB-bezogenen Variablen werden, soweit möglich, in vollqualifizierte
Variable umgesetzt. ( PSS : A DB 23 ... L DW 3 ) -> S7: L DB23.DBW 6 )
( Bei einem Label endet natürlich der Spass )
- Alle Befehle, die nicht direkt per Befehlszeile umgesetzt werden können:
( incrementiere Variable: I MW 16.00 ,indirekte Adressierung etc. )
werden durch S7-Sequenzen ersetzt.
- Indirekte Adressierung: Die Adressumrechnung wurde dem Typ der indizierten
Variablen angepasst und scheint ( s.u.) auch zu funktionieren.
- Überflüssige Labels werden gelöscht.
( Der Ersteller der PSS-Prgramme ist nicht nur gesprungen wie ein Weltmeister,
er hat Labels auch als Quasi-Überschriften benutzt. Die mussten allein schon wg.
dem vollqualifizierten Zugriff auf DB-Variable weg. )
- Nicht generell lösbar, ohne die Funktionalität einzuschränken:
Soweit es geht, werden PSS-Zeiten zu S7-Zeiten umgerechnet, da eine PSS-Zeit
aber 32767 Minuten kann, die S7-Zeit aber nur 9990 Sekunden, geht das nur bei
Zeiten, bei denen Zeitwert und Zeitbasis bekannt ist.
PSS-Zähler können -32768 bis 32767, S7-Zähler nur 0..999
Da habe ich auf's umsetzen vezichtet. Zähler sind ohnehin selten.
Zur S7-Seite:
ich habe 2 Programme durch den AWL-Editor gejagt, wurden problemlos übersetzt.
Anschliessend in S7-PLCSim.
Es hat eher weniger Zeit gebraucht, bis ein Programm rund gelaufen ist,
als wenn es mit S5Konvert übersetzt worden wäre.
Sieht also gut aus.
Wer mal Bedarf hat, soll sich bei mir melden.
Bin per Benutzername und Unterschrift in Internet gut zu finden.
( Ich wollte es einfach nochmal wissen:
vor ca. 25 Jahren habe ich mal einen 68000-Assembler mit Turbo-Pascal geschrieben
und wollte mal schauen, ob es noch geht. -> Geht noch.
Jetzt Free Pascal:
Affenschneller Compiler, sehr konkrete Fehlermeldungen, übersetzt mein Programm
in unter einer Sekunde.
Ich habe nix optimiert, aber mein Programm jagt die ca. 46000 Zeilen PSS-Programm
in ca. einer Sekunde durch!
d.h.: die Free-Pascal-Bauer generieren ausserdem sehr effizienten Code.
Ich bin ja immer am rum-mosern, aber wenn mal einer ( Florian Klaempfl ) einen
Super-Job gemacht hat, muss das auch mal gesagt werden.
BTW: Pascal:
In Netz gibt's ein Interview mit Nikolaus Wirth, dem Erfinder von Pascal.
Typischer Schweizer: redet bedächtig .. ( <- denkt nach, bevor er redet )
Der ist über 80, top-fit, .. und sagt, vieles, was ich nach wie vor als zukunftsweisend empfinde.
Schaut mal rein, das ist einer von den GANZ GROSSEN in unserem Geschäft.
Gruss Werner