Das verstehe ich nicht so recht.
Am Request Eingang einen Und Baustein mit 3 Eingängen? Busy Negieren? Done nicht Negieren? Und einen Merker der als Startimpuls (Steuern auf 0 oder 1) dient?
Da es läuft die Bedingungen etwas ändern:
entweder)
NOT Busy damit der REQ wenn Busy kommt neu getriggert wird. Dadurch wird ein Mehrfachaufruf vermieden.
Der Startimpuls und das Done werden am 2. &-Eingang verodert. Dadurch kann entweder der Startimpuls oder aber das Done den Baustein neu triggern wenn er einmal gestartet wurde.
oder)
Wenn Du unbedingt willst geht es natürlich auch mit einem Clock, dann aber nur die Flanke auswerten, das Busy auf jeden Fall einbinden.
in beiden Fällen sollte ein wiederholt auftretender Fehler angezeigt werden und die Kommunikation ausgesetzt, das erspart weitere Folgeprobleme durch überfüllte Verbindungen.
Die Werte werden mir ja jetzt als Beobachtungswert in Hex angezeigt.
Ich bräuchte jetzt noch einen Baustein um aus dem DB die Daten als Ganzzahl anzeigen zu lassen oder?
Theoretisch ja. Aber Du könntest genauso gut eine UDT-Tabelle erstellen mit dem richtigen Format und den richtigen Bezeichnern. Dann wird eben RcvData kein Array of Byte sondern nur das UDT.
Die einzelnen Deklarationen im UDT sind recht schnell abgetippt, eine Vorlage gibt es so nicht die ich kenne.
In 99% aller Fälle werden die Register richtig konvertiert.
Du hast ein Array of Byte. Das ist nicht richtig. Ein Register ist ein Word, also 2 Byte. Wenn ein Float dargestellt werden soll dann werden 4 Byte in 2 Registern gesendet, also 2 Word. Der MB_Client kann diese 2 Register in ein REAL schreiben, da er indirekt adressiert arbeitet.
Versuch es einfach mal: Anstelle des Arrays schreibst Du dort einen Merker als REAL deklariert hinein. Aber nur die eine Adresse lesen. Dann sollte bereits der richtig formatierte Wert dargestellt werden.