Modbus Device - Instanzkonfiguration Datentyp 6

Hallo, ich habe folgende Dokumentation zu einem Modbus Device:

Die Frage ist nun, wie muss ich diese in IPS konfigurieren? In der Doku finde ich keinen Datentyp 6… Danke für eure Hilfe.

Grüße

Modbus Read Input Register (Mode4) und dann die Bit’s mit einem Script rausfiltern,
das müßte gehen?

image

Bedeutet ich muss dann die Systemzustände so auswerten?
image

Schöner wäre natürlich, wenn das die Instanz direkt könnte…

Hier hat jemand eine ähnliche Fragestellung: Modbus Bits auslesen.

Und Lösung gibt es hier:

Oder hier:

Ist ja nicht so daß diese Frage neu wäre, wie man aus einer Zahl einzelne Bits extrahiert.
Michael

Danke Dir. Die beiden habe ich auch gefunden. Ich habe gehofft, dass es mittlerweile möglich ist, über die Instanz direkt zu konfigurieren…

Hallo,
ich habe diesen Beitrag gerade erst zufällig gelesen.
Der Screenshot ist von einer Stiebel Anlage oder? Besteht noch Handlungbedarf?

Ich steuere ebenfalls eine LWZ und habe speziell für den „Betriebsstatus“ fertige Skripte…
VG Andreas

würde mich mal interessieren

Mich auch :wink: - über Modbus gelöst?

Ich habe das integrierte ModBusModul verwendet, folgende Instanz Einstellungen für den Betriebsstatus.

Erzeuge damit eine Integer Variable… (Im Script die $quellID)
ACHTUNG: Die ModbusAdresse in der Stiebel Doku ist 2001, im Modul muss immer 1 abgezogen werden. (k.A. warum)

Ich habe zwei einfache Skripte… Das untenstehende vollständige Skript erzeugt eine HTML Box
Beim zweiten ist der obere Teil gleich, setze dann allerdings mit

SetValue(45006, $betriebsstatus ['EVU-SPERRE']);

direkt eine Variable. In diesem Beispiel kann ich dann testen, wie oft mein EVU die Sperre tatsächlich setzt (Archivierung)…
Denkbar sind natürlich so auch alle anderen Variablen, mir reicht allerdings derzeit nocht die HTML Box für die anderen Parameter.

Die Skripte führe ich immer automatisiert bei Änderung der Ursprungsvariable aus.
Ist vielleicht noch nicht sooo schön, aber das kann sich ja jeder selber anpassen.
Design follows function :smiley:

<?php

// Skript zum Auslesen der Bitwerte von Stiebel LWZ Modbus Adresse 2001
$quellID    = 43507; // kommt aus ModBusModul, Integerwert
$zielID     = 12545; // Muss eine HTML Box sein

$word= GetValue($quellID);

$bit = array();
// Shifte durch $word und fülle Array
for ($i=15; $i>=0; $i--){
    $bit[$i] = ($word >> $i) & 1;          
}

//Lege Array an mit dem Status
$betriebsstatus= array(
'SCHALTPROGRAMM-AKTIV' => $bit[0],
'VERDICHTER' => $bit[1],
'HEIZEN' => $bit[2],
'KUEHLEN' => $bit[3],
'WARMWASSERBEREITUNG' => $bit[4],
'ELEKTRISCHE-NACHERWAERMUNG' => $bit[5],
'SERVICE' => $bit[6],
'EVU-SPERRE' => $bit[7],
'FILTERWECHSEL-BEIDE' => $bit[8],
'LUEFTUNG' => $bit[9],
'HEIZKREISPUMPE' => $bit[10],
'ABTAUEN-VERDAMPFER' => $bit[11],
'FILTERWECHSEL-ABLUFT' => $bit[12],
'FILTERWECHSEL-ZULUFT' => $bit[13],
'AUFHEIZPROGRAMM-AKTIV' => $bit[14]
);

// Erzeuge HTML BOX
$tr="";
foreach($betriebsstatus as $key => $value){
    $temp = $value?"An":"";
    $tr .= "<tr><td>".$key."</td><td>".$temp."</td></tr>";
}

$htmlbox ="<table>".$tr."</table>";

SetValue ($zielID,$htmlbox);

Ich hoffe, das hilft weiter… Ist ja nichts weltbewegendes, aber ein Anfang…
Bei Fragen: gerne…

Die ID müssen natürlich angepasst werden, aber das ist ja eigentlich klar…

Andreas

1 „Gefällt mir“