CODESYS - das IEC 61131-3 Programmiersystem

Willkommen im offiziellen CODESYS - Forum von 3S-Smart Software Solutions | A member of the CODESYS Group
Deutsche Version English version russian version 
Aktuelle Zeit: Fr Okt 18, 2019 11:42 pm

Alle Zeiten sind UTC




Ein neues Thema erstellen  Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Profinet Azyklisch lesen
BeitragVerfasst: Di Feb 05, 2019 4:05 pm 
Offline

Registriert: Mi Okt 25, 2017 9:03 am
Beiträge: 7
Hallo zusammen,

ich habe Probleme bei der Verwendung des Beispiels ProfinetAcyclicSP9. Ich würde gerne Daten azyklisch aus einem Profinetgerät auslesen.
Das Gerät ist angebunden und funktioniert. Für den azyklischen Datendienst habe ich folgende Angabe:
Bild

Daraus folgt, dass ich von insgesamt 16 Byte die letzen 4 auslesen möchte, da dort die Daten stehen.
Daher würde ich den Code im obengenannten Beispiel wie folgt anpassen:

Code:
SysMemCpy(ADR(OrderID), ADR(buffer[12]), 4);

(OrderID ist vom Typ REAL)

Die auszulesende Variable habe ebenfalls angepasst zu rdrec.INDEX := TO_INT(16#123);

Bild

Das schöne ist, dass Daten gelesen werden, jedoch sollte der ausgelesene Wert 4 sein. Hier scheint der ausgelesene Wert 64 zu sein.
Was bedeutet der Wert der in OrderID steht (4,89*10^-41)? Müsste SysMemCpy nicht den Wert aus dem Buffer in OrderID schreiben?

Vielen Dank schon mal.

rKtiC


Nach oben
   
 Betreff des Beitrags: Re: Profinet Azyklisch lesen
BeitragVerfasst: Mi Feb 06, 2019 9:02 am 
Offline
Site Admin

Registriert: Mo Sep 05, 2005 8:42 am
Beiträge: 3493
Hallo,

ich weiß nicht wie die Gleitkommazahl „4.0“ binär aussieht, aber Profinet verwendet (genau wie) IEC ISO/IEC/IEEE 60559 Single precision.
D.h. Vorzeichen + 7 Bit Exponent + 23 Bit Mantisse (siehe https://de.wikipedia.org/wiki/IEEE_754)

Die Byte-Order ist bei Profinet immer Big-Endian !
(fürs Byte drehen gibt’s einen FB ByteBuffer in der MemUtils Lib)

Hoffe das hilft dir so weiter....
Grüße
Edwin


Nach oben
   
 Betreff des Beitrags: Re: Profinet Azyklisch lesen
BeitragVerfasst: Do Feb 07, 2019 9:16 am 
Offline

Registriert: Mi Okt 25, 2017 9:03 am
Beiträge: 7
Hallo,

das war der Fehler. Ein Tauschen der Bytereihenfolge brachte den Erfolg.
Vielen Dank!


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de