Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Janitza Modbus
#1
Kann ich in Visam 9 auch Daten von Typ Float 4 Byte (IEEE754) einlesen ?
Hab schon versucht aber mit int geht es nicht ?? ??




Danke für ihre Hilfe
Antworten
#2
Hallo Geothermie,

Der Type Float (Single) oder auch REAL genannt wird von VISAM/VBASE unterstützt.
Es kann jedoch sein das der Hersteller eine andere Folge der Wörter/Bytes vorgibt.
(siehe auch BIG-Endian,little Endian Byte/Wort Reihenfolge)
http://de.wikipedia.org/wiki/Byte-Reihenfolge .

Wir haben das in der Vergangenheit auch schon einmal bei einem
MODBUS-Teilnehmer vorgefunden.
Um dennoch den FLOAT richtig anzuzeigen müssen sie die Bytes drehen.
Also mit einer Kopie im VDF arbeiten, per Script die Bytes an die richtige
Stelle transferieren.
Antworten
#3
(02.02.2015, 11:28)S.Rings schrieb: Danke für ihre Antwort

Hätten sie dazu noch ein Beispiel


Danke
Hallo Geothermie,

Der Type Float (Single)  oder auch REAL genannt wird von VISAM/VBASE unterstützt.
Es kann jedoch sein das der Hersteller eine andere Folge der Wörter/Bytes vorgibt.
(siehe auch BIG-Endian,little Endian Byte/Wort Reihenfolge)
http://de.wikipedia.org/wiki/Byte-Reihenfolge .

Wir haben das in der Vergangenheit auch schon einmal bei einem
MODBUS-Teilnehmer vorgefunden.
Um dennoch den FLOAT richtig anzuzeigen müssen sie die Bytes drehen.
Also mit einer Kopie im VDF arbeiten, per Script die Bytes an die richtige
Stelle transferieren.
Antworten
#4
Sehr geehrte Herren


Wie kann ich eine Adresse jenseits von 32000 eingeben. Word Offset.
Janitza gibt nählich auf z.B. 52761 auch Werte aus.
Antworten
#5
Hallo geothermie,

Adressen mit einem Offset >30000 können sie im Editor/VDF über die den Datenbereich VDF vornehmen.
Dort gibt es Einstellungen für :

- R/W Multiple Register (0/16) mit Offset 30000
- R/W Multiple Register (0/16) mit Offset 40000
- R Input Register (4) mit Offset 30000
- R Input Register (4) mit Offset 40000

da wird dann entsprechend zu ihrem Offset 30000 oder 40000 hinzuaddiert.

High/Low-Wort drehen für den kompletten Kanal funktioniert entweder
über mit dem Scriptbefehl vok.vkk32B_HL

oder über einen Eintrag in der "VisamVOK.INI"

[VKK32BitPV]
Vkk1=1

(siehe auch Hilfe zu Projekt-Eigenschaften)

Wörter drehen kann man mit Script , wenn man
die Funktion vdf.readint/vdf.writeint nutzt
oder mit vdf.readbitb/vdf.writebitb .
Antworten


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste