Leider konnte ich auch nach einigem probieren noch keine Lösung finden, wie ich bei einem Modbus Register (Word) das Low- bzw. High-Byte einzeln auswerten kann. Zum Beispiel besteht eines der Register das ich lese aus einem Fehlerstatus (Low-Byte) und aus einem Kessestatus (High-Byte). Daher wäre es unsinnig den Wert als Word zu verarbeiten. Wenn ich aber als Einheit Byte in der Instanz wähle, kann ich nicht wählen welches Byte ich will, sondern ich bekomme nur das Low-Byte. Selbes Problem wird man vermutlich auch haben wenn man einzelne Bits aus einem Register (Word) auswerten will…
Am einfachsten wäre man könnte das entsprechende Byte/Bit wählen und ich kann für jedes eine eigene Instanz erzeugen.
Danke, werde es nochmal versuchen, aber bisher bin ich davon ausgegangen dass es sich bei der Leseadresse um die bei Modbus übliche Register-Adresse handelt daher (16Bit Word) daher kann ich über Modbus keine einzelnen Bytes lesen. Ich müsste aber zumindest für dieverse Modbus Geräte sowohl Bytes als auch Bits eines Word einzeln interpretieren können.Ist dies nicht gegeben ist die Lösung leider mit diversen Modbus Geräten nicht kompatibel mit denen ich beruflich zu tun habe…
Es gibt laut Spezifikation Seite 5-6 wie von mir erwähnt nur die Möglichkeit Register oder Bit-Werte zu adressieren.
Was ich leider nicht verstehe ist wie Symcon an der Stelle arbeitet und ich eben ein Register (16 Bit) lesen kann und die Bytes eben einzeln interpretieren kann da dies für viele Geräte zwingend erforderlich ist.
So mit Stellenverschiebung in einem Script könntest Du auch weiter kommen.
So wie ab diesem Beitrag im Pokeys gemacht. Ev. kann ich Dir mit einem Beispiel helfen.
So, für einen Modbus Slave konnte ich nun das Problem lösen indem ich das angeschlossene CAN auf Modbus Gateway entsprechend umprogrammiert habe und nun jeden Byte-Wert einzeln in ein eigenes Register geschrieben wird.
Da ein Byteswap der Temperaturwerte (Word-Werte, High-Low-Byte Swap) nur für alle Werte eines Modbus Gateways und nicht pro Wert einfach in IPS einzustellen war, musste ich dieses auch gleich im Gateway erledigen.
Mit der Wetterstation von Elsner habe ich jetzt leider das selbe Problem.
Wieder ein Register mit unterschiedlichem Dateninhalt für Low- und Highbyte… Hier kann ich aber die Wetterstation nicht umprogrammieren.
Es ist für mich extrem ärgerlich das IPS nicht in der Lage ist die Daten auf einfache Weise richtig zu interpretieren. Bin mir noch nicht sicher ob das IPS wirklich ein guter Kauf war…
Ich würde mir gerne einiges Arbeit ersparen die Daten der Wetterstation über die Wago-SPS zu schleifen um IPS dann jedes Byte einzeln in einem Register zur Verfügung zu stellen damit es dort verarbeitet werden kann, daher wäre ich wirklich dankbar um ein Beispiel.