Closed SecurityCheck closed 4 years ago
Danke für den Hinweis! Wir werden Ihren Korrekturvorschlag überprüfen und integrieren, wenn keine Gründe auftauchen, die dagegen sprechen.
Für eine schnelle Überprüfung von gemeldeten Abweichungen von der IO-Link-Spezifikation wäre es hilfreich, wenn Sie uns auch die Stelle(n) in der IO-Link-Spezifikation angeben könnten, auf welche Sie sich beziehen.
Sie können Verbesserungsvorschläge am Code gerne direkt per Pull Request einreichen -- vorzugsweise auf den Branch develop.
Ich bin dem Hinweis kurz nachgegangen. Da haben Sie recht, der MC (IO-Link Spezifikation A.1.2) für eine Abfrage der Prozessdaten müsste 0x80 entsprechen. 0xF1 entspricht einer ISDU Abfrage mit IDLE 1, sprich keiner ISDU Übertragung. Ich habe die beiden Varianten kurz mit einem Sensor BUS004P von der Balluff AG ausgemessen. Er reagiert auf beide Abfragen, jedoch bei der ISDU Abfrage mit einer "No Service" I-Service Antwort 0x0 (IO-Link Spezifikation A.5.2). Der Bedeutung von 0x81 als Antwort auf die Prozessdaten Abfrage muss noch nachgegangen werden. Um den Spezifikationen gerecht zu werden, muss dies also angepasst werden. Aus persönlicher Erfahrung kann ich sagen, dass ich, auch von käuflichen Master, eine Abfrage der Prozessdaten mit 0xF1 beobachtet habe.
Dass die anderen Makros wie Page_Read/Write etc. noch nicht implementiert wurden, hängt damit zusammen, dass die Bibliothek momentan nur über die grundlegenden Funktionen, welche zum Betreiben des "Demonstrators" notwendig sind, verfügt. Sie können sich aber über einen baldigen Ausbau der Bibliothek freuen.
Danke für Ihre Antworten. Das gleiche ist mir auch beim BCM002 von Balluff aufgefallen. Es werden Prozessdaten sowohl bei 0xF1 als auch bei 0x80 übertragen. Bei richtiger Längenangabe werden immer OD+PD-Daten übertragen. Leider funktioniert das Auslesen der Prozessdaten nicht wenn der Sensor Prozessdaten empfangen kann(PDin). So kann ich keine Werte beim BOS026R(https://www.balluff.com/local/de/productfinder/#/ca/A0001/cg/G0103/product/F1327/variant/PV511939) von Balluff auslesen, da dieser laut Datenblatt folgende Spezifikation hat. Prozessdaten IN 1 Byte Prozessdaten OUT 3 Byte
Ich vermute das ich erst Prozessdaten zum Sensor schicken muss um anschließend die Prozessdaten des Sensors auszulesen. Bin mir dabei aber nicht sicher.
@CrazyGecko: Merged PR #12 fixed only part of this issue (PD_READ). @SecurityCheck also listed other commands, which need to be considered.
@maehne This is correct, there are other commands listed. But these commands are, at this time, not included in the library. Since I'm reworking the library, these commands will automatically be included, as needed. I think this Issue can be marked as closed, because the "issue" is fixed.
Im File iolink.h stehen falsche Mastercommands für PD und Write.
Korrekt laut IO-Link Spezifikation müsste dort folgendes stehen: