Hallo allerseits.
Ich habe mal wieder ein paar spannende Fragen.
Ich möchte vier mögliche Meldungen aus einem Baustein per Modbus übergeben.
Es wird Wortweise übergeben und ich habe um die 20 Instanzen, in denen diese Meldungen auftreten können.
Da ja zwei Bits reichen würden, um die vier Meldungen zu codieren, wäre es ja eine Verschwendung, pro Kanal ein ganzes Wort zu verwenden.
Wenn ich die zwei Statusbits aneinander reihen würde, könnte ich in einem Wort 8 Kanäle übergeben.
Aber wie würde ich sie dann auf der Empfängerseite wieder auseinanderbekommen?
Wenn ich Kanal 1 auf Bits 0 und 1 lege, bekomme ich die möglichen Werte 0,1,2,3.
Kanal auf Bits 2 und 3 ergäbe dann 0, 4, 8, 16.
Wenn Meldungen aus diesen beiden Kanälen gleichzeitig kämen, würden sich die Zahlen zu irgendwas dazwischen addieren.
Ich kann doch nicht für jeden Bitzustand im Wort eine Definition hinterlegen...
Wie wird so ein Problem in der Praxis gelöst?
Die in der OSCAT.LIB implementierten ESR-Funktionen sind doch auch ein Lösungsansatz für diese Problem, oder?
Gruss
McNugget