TIA Prozessdaten vom I/O Link Sensor lesen

Drumfan159

Level-2
Beiträge
53
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich komme einfach auf kein Ergebnis. Habe eine Liquiphanten von E&H Fabrikat FTL31 I/O-Link. (CPU: ET200SP in TIA V16.0)
Nun möchte ich die Gabelfrequenz auslesen. Er gibt mir laut Beschreibung den Messwert zyklisch im 16-Bit-Format aus.
Dabei ist das Bit 14 und Bit 15 jeweils ein digitaler Schaltausgang, also benötige ich nur die Daten von 0-13.

Habe nun schon alles versucht...LSB und MSB tauschen und Shifting Rechts und Links.....komme einfach nicht auf mein Ergebnis!

Hat jemand eine Lösung hierfür??

Grüße, Drumfan.
 
wie wär's denn mit einem einfachen UW Befehl

mit 00111111 11111111 oder 11111111 00111111

je nachdem wie der der E&H das ausgibt.
 
Hm... im Prinzip bekommst du nen INT/Word rein und musst entweder direkt

INT.%X14 := FALSE;
INT.%X15 := FALSE;

und dann den Wert auswerten. Oder noch nen SWAP davor.
Weiß nicht ob es mehr Möglichkeiten gibt...
Ansonsten mal ganz abgesehen davon: Kenn das Gerät nicht, aber manche IO-Linkteilnehmer muss man irgendwo in den Parametern einstellen, was sie überhaupt ausgeben! Kenn da Analogabstandssensoren die man z.B. auf pure Digitalausgaben umstellen kann. Dann gibt es da auch keinen Wert mehr zum auslesen!
 
dann mach das doch so wie ich es beschrieben habe. Lade das Eingangswort und mach eine UW Verknüpfung mit dem Bitmuster,
damit wird Bit 14+15 ausgeblendet und speicher das Ergebnis ab.

was hast du für eine CPU?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Das ist eine ET200SP.
@Geisterkarle ja kenn ich schon, dass man die Ausgänge auf HNO oder Analog z.B. parametrieren kann. Dieser Sensor jedeoch hat alle Infos in einem WORD verpackt. Hat leider immer noch nicht funktioniert bei mir. Ich müsste einen Wert von 0-100% bekommen, laut Anleitung, ich bin aber immer ganz wo anders unterwegs.
 
Dann einfache Frage: Was machst du im Programm damit und was kommt raus? Aktuell ist schwer dir Hilfestellung zu geben, da bisher nicht zu erkennen ist, wie du es umgesetzt hast.

Gerne Screenshots vom Programm beim Beobachten, in der VAT vom Eingangswort und was du für einen Wert erwarten würdest.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Kann da @UDP nur zustimmen. Müsste man mal sehen.
@Geisterkarle ja kenn ich schon, dass man die Ausgänge auf HNO oder Analog z.B. parametrieren kann. Dieser Sensor jedeoch hat alle Infos in einem WORD verpackt. Hat leider immer noch nicht funktioniert bei mir. Ich müsste einen Wert von 0-100% bekommen, laut Anleitung, ich bin aber immer ganz wo anders unterwegs.
Nur zum Verständnis, was ich meine, weil es zwei Ebenen gibt:
Es gibt Sensoren, da kann man irgendwo direkt dran "herumdrücken" und dann E/A oder Analog oder sonstwas einstellen.
Zudem gibt es Bauteile, wo man im IO-Link Konfigurator (bei dir vermutlich S7-PCT) direkt in einen Prozesswert auf dem Gerät gehen musst, um das einzustellen!

Ansonsten wegen dem Wert: Das ist aber kein Siemenssensor und geht von 0-16383? :p
 
Anhang anzeigen 60282
So steht es in der Beschreibung, bin mir aber nicht sicher wie ich das in TIA so lösen muss.
Z.B. in SCL:
Code:
#rGabelfrequenz := INT_TO_REAL( WORD_TO_INT(#wWordVomFTL AND 16#3FFF) ) / REAL#10.0;
Falls Du auch Werte mit Int14 und 2 Statusbits hast, wo die 14 Bits auch negative Werte enthalten können, da geht das isolieren des Int14 und wandeln in Int16 so:
Code:
#iMyInt := WORD_TO_INT( SHL(IN:=#wInt30, N:=2) ) / 4;


INT.%X14 := FALSE;
INT.%X15 := FALSE;
An den Bits von Int spielt man nicht mit Bit-Operationen rum

Harald
 
Eine Frage dazu habe ich noch....ist das bei Siemens nicht eigentlich so, dass man MSB und LSB vertauschen muss? Zumindest so wie in meinem Fall, da es vom Sensor eigentlich ja genau andersrum zur CPU übertragen wird?
 
Wenn man E/A-Geräte in der Gerätekonfig einbindet, dann erhält man die Werte in der Regel im Siemens-üblichen big-endian und muß keine Bytes tauschen. Bei Feldbussen ist meistens die Network-Byteorder fest vorgegeben. Nur wenn man mit Fremdgeräten z.B. per Send/Receive und eigenem Protokoll kommuniziert, dann muß man die Byte-Reihenfolge mit dem Kommunikationspartner vereinbaren.

Wo steht eigentlich, daß der Sensor "genau andersrum überträgt"? :unsure:

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
OK diese Info ist schon mal sehr aussagekräftig.
Ich habe weiter oben einen Screenshot der Sensorbeschreibung eingefügt. Dort steht ja wie die 16 Bit von E&H aufgebaut sind und die Wort bei Siemens arbeitet ja eigentlich andersherum was MSB und LSB angeht?
 
Ich habe weiter oben einen Screenshot der Sensorbeschreibung eingefügt. Dort steht ja wie die 16 Bit von E&H aufgebaut sind und die Wort bei Siemens arbeitet ja eigentlich andersherum was MSB und LSB angeht?
Die Tabelle zeigt nichts darüber, in welcher Reihenfolge die Bits in einem Wort liegen und an die Steuerung übertragen werden. Es ist einfach nur eine Auflistung der Bits in waagerechter Tabellenform. Vermutlich wurde die Tabelle von jemandem "gemalt" der schöne Dokumentationen im Firmenstyle fertigen kann, aber kein Programmierer ist. Der also nicht wusste, daß die Bits nicht einfach von vorne/links nach hinten/rechts nummeriert sind, sondern in aufsteigender Wertigkeit/Zweierpotenz, und mit der niederwertigsten Ziffer/Potenz von rechts nach links notiert werden, wie in Zahlensystemen üblich. Vielleicht hat der Dokumentationsschreiber sogar eine Liste mit den Bits in Zeilen von oben nach unten erhalten und zur Platzersparnis selbständig die Liste in die Waagerechte gedreht. Bestimmt gut gemeint. Wir wissen es nicht... Du kannst ja E+H mal mitteilen, daß Du diese Darstellung für irreführend hältst, und wie es besser/üblicher aussehen würde. ;)

PS: wenn Du Dir die Bit-Beschreibungs-Tabelle anschaust, wie kommst Du da auf die Idee, daß da Bytes getauscht werden müssten? Wenn schon, dann müsste die Reihenfolge der Bits komplett umgedreht werden (REVERSE). Zusätzlich steht da auch noch daß Bit 0 das "(lsb)" und Bit 15 das "(msb)" ist.

Harald
 
Zuletzt bearbeitet:
hmmm ja hab ich dann wohl komplett falsch interpretiert, muss dann wohl auch so sein wie du es beschreibst ;)
Wie dem auch sei....meine Betrachtungsweise wurde um einige Level erhöht und ich bekomme nun einen vernünftigen Wert in mein Programm...vielen Dank noch mal dafür!

Grüße Markus.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Auch bei Siemens sind die Bits in den Beschreibungen meist durchnummeriert.
Hier ein Beispiel wie das Zustandswort im Starter beschrieben wird und wie es im Datenwort ankommt.

gruß rlw
 

Anhänge

  • ZSW.png
    ZSW.png
    60 KB · Aufrufe: 34
Zurück
Oben