..., deshalb muß er die 4 Bytes zu einem REAL zusammenbasteln - also erst 4 Bytes zu 32 Bit DWORD zusammenstellen und dann das Bitmuster des DWORD in eine REAL-Variable schreiben.
Ja, das macht allerdings Sinn. Nur das hatte ich anfangs aus der Aufgabenstellung nicht herausgelesen. Ich hatte die SCL-Variante mit der Schieberei einfach ignoriert und im AWL-Code keinerlei Schieberei gesehen (man sieht lediglich an den Werten, dass sie bereits passend geschoben sind).
Bin ausserdem voll auf die VariablenNamen hereingefallen, die nicht gerade das aussagen, was die Variablen beinhalten/bedeuten und man sieht die Deklaration der Variablen nicht.
Anscheinend hatte der Compiler ähnliche Probleme damit, was das Erraten der erforderlichen, impliziten DatenTypWandlungen betrifft.
Die ODER wird pro bit aufgeführt. Nicht als ein einzelne BOOL. Man nennt das 'Word-Logik' (in diesen Fall 'Byte-Logik' ?).
Ja, das kenne ich zur Genüge. Das nennt man (für meine Begriffe irreführenderweise) "bitweise Verknüpfung".
In diesem Fall also weder Byte-Logik noch Word-Logik, sondern DoppelWortLogik.
Volker's verfahren sollte funktionieren.
Im Prinzip ja, wenn die nicht gezeigten Befehle tatsächlich vorhanden sind und wenn nicht die entsprechenden DatenTypKonvertierungen fehlen würden.
Harald's verfahren ist viel einfacher.
Ja, weil er Schreibweisen nutzt, die aber nicht jeder Compiler kennt. Die Schöpfer der Compiler haben mittlerweile anscheinend eingesehen, dass ein Bedarf dafür herrscht, aber leider unterschiedliche Lösungswege realisiert.
Kann die IO-Link daten nicht als REAL deklariert werden, anstatt als 4 BYTEs ? Oder ist die BYTE Reihenfolge vertauscht ?
Kann man (z.B. per UDT), aber wahrscheinlich muss Volker trotzdem selbst vorher dafür sorgen, dass die Bytes auch dort landen, wo sie hingehören.