Befehle Step7 / Codesys / IEC61131-3

momo99

Level-2
Beiträge
54
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
hoffe das Thema passt hier rein:

Ich suche eine möglichst übersichtliche Aufstellung aller Befehle, idealerweise ausgehend von der Norm IEC61131, in der Gegenüberstellung mit Codesys und Step7 (was geht / was geht nicht).
Fein wären natürlich auch noch Unterteilungen in SCL / AWL / FUP / CFC...

Entstanden aus folgendem Problem: Ich wollte einen Filter 1. Ordnung in Step7 mit SCL programmieren, leider checkt das S7 den Befehl TIME_TO_REAL (im Gegensatz zu Codesys) nicht.
Wenn ich das richtig verstehe geht hier nur der Umweg über TIME_TO_DINT, dann DINT_TO_DWORD und dann DWORD_TO_REAL???

Gruss
Momo
 
Schau doch mal zu WWW.OSCAT.DE vorbei.

Lade dir die LIB für die Step 7 runter.


Alles im SCL-Quellcode.


Schau dir die Funktion FT_PT1 an.
(Filter 1-Ordnung)

Ich denke, das ist das was du suchst ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Oscat.lib hab ich schon (trotzdem danke für den Tip!), wollte den Filter ja auch nur für mich basteln.

Es geht mir wirklich hauptsächlich um die Befehle...

Arbeite dzt. das IEC-61131-3 - Buch vom Franzis-Verlag durch, da sind eben einige Beispiele in der Norm programmiert und die Umsetzung auf Codesys bzw. Step7 fehlt zum Teil und geht eben manchmal nicht, weil man einige Befehle nicht 1:1 übernehmen kann..

Gruss
momo
 
Dann schau doch mal in den genannten Code hinein.


Da wirst du alle Befehle für den Baustein, den du schreiben willst finden.
 
Code:
out := out + (in * K - out) * DINT_TO_REAL(DWORD_TO_DINT(Tx) 
- DWORD_TO_DINT(last)) / DINT_TO_REAL(TIME_TO_DINT(T)) * 1E-3;
Es ist ja, wie gesagt, eine generelle Frage, die eben bei diesem Beispiel aktuell geworden ist.

Für die Zukunft wäre es eben schön in eine Tabelle zu schauen und zu sehen: Aha, diesen Befehl aus IEC61131 gibt es für S7 eben nicht.

Ich gehe nicht davon aus, daß TIME_TO_REAL die einzige Ausnahme ist...

Im Buch ist auch eine Aufstellung im Anhang dabei, allerdings dürfte die nicht ganz vollständig sein
z.B. wird angegeben:
Datentypumwandlung *_TO_**
CoDeSys: ja
STEP7:
nein

Stimmt ja so nicht ganz, denn andere Typumwandlungen sind bei Step7 ja möglich (siehe Code).

Gruss
Momo
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Momo,

da ich die Portierung der Oscat.lib für Step7 verbrochen habe und alles aus der Onlinehilfe von CoDeSys rauslesen musste, könnte ich dir Helfen müsstest nur die Aufstellung aus dem Buch abklopfen oder Scannen, dann kann ich Dir die Datentypumwandlung von Step7 im vergleich zu CoDeSys ergänzen.

Gruss Daniel
 
Hallo Momo,

da ich die Portierung der Oscat.lib für Step7 verbrochen habe und alles aus der Onlinehilfe von CoDeSys rauslesen musste, könnte ich dir Helfen müsstest nur die Aufstellung aus dem Buch abklopfen oder Scannen, dann kann ich Dir die Datentypumwandlung von Step7 im vergleich zu CoDeSys ergänzen.

Gruss Daniel

Also ich fände so eine Komplett-Gegenüberstellung des Befehlssatzes auch interessant.
Ich habe mal in das Siemens-SCL PDF reingeschaut, aber da müsste man sich die einzelnen Befehle auch aus den verschiedenen Abschnitten zusammensuchen.

Ich habe ein IEC-Buch in dem am Anfang steht, dass die Norm nicht verbindlich ist sondern nur als Anhaltspunkt gilt. Ob das wirklich so ist weiß ich nicht, aber so etwas wie einen kleinsten gemeinsamen Nenner müsste es doch zumindest geben.

Die Normbeschreibung an sich ist ja leider nicht kostenlos erhältlich.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Lustig ist nur die Konvertierung REAL_TO_DWORD und DWORD_TO_REAL unter CoDeSys da hier der DWORD Wert als ganze Zahl interpretiert wird und nicht wie bei Siemens nur eine übernamme der Bits erfolgt.

Ein grosses Problem ist das mit SCL auch nicht mit dem DWORD Werten gerechnet werden kann und immer erst eine Typumwandlung erfolgen muss, wobei hier dann wieder das Problem mit dem Blöden Vorzeichen beim DINT besteht.

Gruss Daniel
 
Zuletzt bearbeitet:
@D.Albinus:

Ich kann die Aufstellung abfotografieren und dir dann als Pdf schicken (Bitte schick mir eine kurze Message ob und wie wir das abwickeln wollen, möchte nur keine Probs mit Copyright bekommen !?).
Abtippen ist etwas aufwendig, es sind 6 Seiten.

Allerdings ist fraglich ob die Aufstellung im Buch vollständig ist, wie man am Beispiel "*_TO_**" sieht...

By the way: Kann mir jemand verraten, wie ich die Bausteine aus der Oscat-Bibliothek im Codesys zur Bearbeitung geöffnet kriege?

Gruss
Momo
 
Hallo Momo,

einfach die oscat.lib für CoDeSys herunterladen und mit doppelklick öffnen.
Auf der linken Seite in CoDeSys sollten dann die Bausteinverzeichnisse sein.

Gruss Daniel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@D.Albinus:
Danke für den Tip bez. Oscat und Codesys (hatte immer versucht die Bausteine aus der Bibliothek eines bestehenden Projektes heraus zu öffnen).

Die Befehlsübersicht schicke ich bis heute abend - muß mir erst noch das Skispringen zu Ende ansehen!

Gruss
Momo
 
Zurück
Oben