S7Anfänger
Level-2
- Beiträge
- 267
- Reaktionspunkte
- 2
Wenn PLCnext der direkte Nachfolger von PCWorx ist und aus der selben Quelle kommt basiert es nicht auf Codesys.Da PLCnext wohl auf Codesys3 basiert, sollte das mit einer UNION
OK, wundert mich aber etwas, weil soweit ich das richtig im Kopf hab, hatte Phönix damals die Firma auf dessen Software PCWorx basierte gekauft.
Woher stammt die Info?PCWorx, Produkt von Klöpper und Wiege, die gehören nun zu Claas.
Ich hatte damit während der Umschulung oder der Techniker Schule zu tun und fand es nicht so schlecht.Kann sein, das die wieder weiterverkauft wurden. Mir persönlich hatte PCWorx eh nie gefallen, kenne das schon seit Interbus-S Zeiten.
Kannst du das etwas erklären? Habe mit dieser Programmiersprache absolut keine Erfahrung.Da PLCnext wohl auf Codesys3 basiert, sollte das mit einer UNION gehen...
https://stefanhenneken.net/2017/06/17/iec-61131-3-additional-language-extensions/
Die PLC next ist ja eine offene Steuerungsplattform von Phoenix.
PCWorx, Produkt von Klöpper und Wiege, die gehören nun zu Claas.
Code:wTest := to_word(iTest); b0 := wTest.B0; b1 := wTest.B1;
Byte1 := SHR(INT_TO_WORD(iTest), 8) AND 16#FF; //H-Byte isolieren/ausmaskieren
Byte2 := INT_TO_WORD(iTest) AND 16#FF; //L-Byte isolieren/ausmaskieren
OK. Ich glaube das ich das begriffen habe.Das sollte man nicht nur aus Neugier wissen wollen, sondern als Programmierer von Maschinen und Anlagen sollte man überhaupt verstehen was man da programmiert...
Ich habe keine Ahnung ob der Code von kafiphai bei Codesys oder Deiner Phoenix Software überhaupt unterstützt wird, aber bei Siemens nennt sich das Slice-Zugriff auf die einzelnen Bytes von Bitstring-Datentypen (Word, DWord, ...)
Was immer und in jeder SPS geht: die Bytes ausmaskieren, vorher sollte eine Wandlung von INT nach WORD nötig sein, weil man das Maskieren nicht auf INT anwenden darf/sollte.
(Syntax kann im Detail abweichen)Code:Byte1 := SHR(INT_TO_WORD(iTest), 8) AND 16#FF; //H-Byte isolieren/ausmaskieren Byte2 := INT_TO_WORD(iTest) AND 16#FF; //L-Byte isolieren/ausmaskieren
Harald
Ups, Vorsicht. Ein Integer hat auch kein echtes Vorzeichen Bit. Aufgrund der Ablage einer Integerzahl als Zweierkomplement ist bei negativen Zahlen das oberste Bit immer 1, das macht es aber nicht zu einem Vorzeichen Bit. Du erhälst bei einer -1, wenn Du das oberste Bit auf 0 setzt keine 1.OK. Ich glaube das ich das begriffen habe.
Aber ein WORD hat doch keine Vorzeichen oder doch?
Ich könnte das Vorzeichen Bit aber auch extra ansteuern. Das wäre vielleicht sogar einfacher.
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?