Ralle schrieb:
...und wird von einem Compiler in AWL-Code umgesetzt.
Hi Ralle
Das kann ich auf grund meiner neuesten Erkenntnisse so nicht stehen lassen. Der SCL-Compiler erzeugt MC7-Code und nicht AWL-Text-Code.
Mir ist das in der letzten Woche aufgefallen, als ich eine in SCL geschriebene Funktion im AWL-Editor nachbearbeiten wollte. Siemens verwendet da beim SCL-Compiler nicht veröffentlichten Code und Methoden, der bzw. die vom AWL-Editor nicht erkannt werden. Z.B. kann es passieren, das bei der Einbindung von SFC-Bausteinen, der SCL-Compiler das nicht mit einem normalen "CALL" übersetzt, sondern er setzt den Befehl "UC" ein! Obwohl "UC" entsprechend Siemens nur für parameterlose Funktionen angewendet werden sollte! Der SCL-Compiler fügt Code ein, mit dem er zunächst das Adressregister "AR1" sichert. Die Parameter, die z.B. einer SFC-Funktion übergeben werden müssen, wandelt der SCL-Compiler in Ladebefehle um, die vor der Ausführung die Werte in eine bestimmten Bereich der Lokaldaten ablegen. Dann folgte eine Veränderung des Adressregister "AR1" mit einem Offset, der spannenderweise der Adresse der Lokaldaten entspricht, an denen zuvor die Parameter abgelegt wurden. Schlussendlich folgt der Sprung in die SFC-Funktion mit "UC". Bis jetzt habe ich aber (mangels Zeit) noch nicht heraus gefunden, wie die Rückgabe von Parameter erfolgt. Das ist die eine Geschichte.
Etwas unangenehmer ist die Tatsache, das offensichtlich vom SCL-Comiler hin und wieder auch mal nicht veröffentlichter MC7-Code eingebaut wird. Wenn solcher Code vorhanden ist, dann scheitert jeder Versuch, den Baustein in AWL nachzubearbeiten.
wiebke schrieb:
Hallo
ich möchte bereits in AWL geschriebene Funktionen aus einem Step7 Projekt jetzt in ein PCS7 Projekt einbinden. Dabei möchte ich aber nicht die Bausteine so verwenden, sondern die Funktionen in SCL konvertieren, um anschließend diese mit Erweiterungen zu modifizieren.
Gefunden habe ich nur eine Möglichkeit der Generation von AWL Quellen, die sehen aber wieder anders aus, als die SCL Quellen.
Gibt es eine Möglichkeit die SCL Quelle aus AWL zu erzeugen, ohne sich die Finger wund zu tippen :?:
Danke schon mal!
Hi wiebke
Ich würde dir empfehlen, die in AWL geschriebenen Bausteine so zu belassen wie sie sind. SCL kann schon gar nicht alles, was man in AWL ggf. so alles machen kann. Sofern notwendig, kann man die AWL-Bausteine auch im AWL-Editor PCS7-like anpassen, das ist zwar etwas mühsamer als in SCL, aber es geht.
Ich beschäftige mich zur Zeit mit einem Projekt, um für die S7 einen C-Compiler zu bauen. Dazu haben sich einige Leute hier aus dem Forum zusammengefunden, die Sache gedeiht. Aber es wird noch ein lange Weg sein, bis das eine runde Sache ist. Die Idee mit dem C-Compiler für S7 ist bei mir deswegen entstanden, weil SCL eigentlich nur eine magere Sache ist und den AWL-Befehlsvorrat nicht ausschöpft.
Gruß Barnee