-> Hier kostenlos registrieren
Ich hab mit dem Thema schon in meinem alten Thread angefangen. Auf Wunsch von Thomas_v2.1 hier nun die Abspaltung des Themas in einen eigenen Thread.
Thema:
Mit dem Siemens S7-PCT Tool (Step7 v5 oder Step7 v10-16 (TIA)) kann die Siemens IO-Link Master Baugruppe auf einer ET200 (ProfiBus/ProfiNet) parametriert werden und auch die Daten der Angeschlossenen Sensoren ausgelesen werden. Interessant dabei ist, dass das Programmiergerät (PC) lediglich per Netzwerk mit der Steuerung (in meinem Fall eine 840d sl (NCU 730.3 PN mit einer 317F-3 PN/DP)) verbunden ist.
Es gibt bereits von einigen Herstellern Software die mit ProfiNet IO-Link Mastern kommunizieren, wobei das ProfiNet-Netzwerk dabei als "normales" TCP/IP Netz verwendet wird. Damit ist jedoch kein Zugriff auf ProfiBus Master oder auf die Siemens ET200 Master möglich.
Was jedoch immer funktioniert ist der klassische Weg über die PLC. Dies hat jedoch einen Großen Programmieraufwand + Parametrieraufwand zur Folge. Auch ist der Speicher der PLC recht begrenzt.
Ich habe mir daraufhin die Kommunikation der S7-PCT Tools angesehen und darin s7comm Pakete entdeckt. Da ich zusammen mit dem Thomas_v2.1 schon die NC Kommunikation in die LibNoDave integriert habe ist das Ziel nun auch den IO-Link Part mit aufzunehmen.
Verlauf aus dem Thema "DotNetSiemensPLCToolBoxLibrary (LibNoDave) Zugriff auf Dual-Port RAM / FB15"
DotNetSiemensPLCToolBoxLibrary (LibNoDave) Zugriff auf Dual-Port RAM / FB15
Thema:
Mit dem Siemens S7-PCT Tool (Step7 v5 oder Step7 v10-16 (TIA)) kann die Siemens IO-Link Master Baugruppe auf einer ET200 (ProfiBus/ProfiNet) parametriert werden und auch die Daten der Angeschlossenen Sensoren ausgelesen werden. Interessant dabei ist, dass das Programmiergerät (PC) lediglich per Netzwerk mit der Steuerung (in meinem Fall eine 840d sl (NCU 730.3 PN mit einer 317F-3 PN/DP)) verbunden ist.
Es gibt bereits von einigen Herstellern Software die mit ProfiNet IO-Link Mastern kommunizieren, wobei das ProfiNet-Netzwerk dabei als "normales" TCP/IP Netz verwendet wird. Damit ist jedoch kein Zugriff auf ProfiBus Master oder auf die Siemens ET200 Master möglich.
Was jedoch immer funktioniert ist der klassische Weg über die PLC. Dies hat jedoch einen Großen Programmieraufwand + Parametrieraufwand zur Folge. Auch ist der Speicher der PLC recht begrenzt.
Ich habe mir daraufhin die Kommunikation der S7-PCT Tools angesehen und darin s7comm Pakete entdeckt. Da ich zusammen mit dem Thomas_v2.1 schon die NC Kommunikation in die LibNoDave integriert habe ist das Ziel nun auch den IO-Link Part mit aufzunehmen.
Verlauf aus dem Thema "DotNetSiemensPLCToolBoxLibrary (LibNoDave) Zugriff auf Dual-Port RAM / FB15"
DotNetSiemensPLCToolBoxLibrary (LibNoDave) Zugriff auf Dual-Port RAM / FB15
Hab mir das PCT-Tool vom Step7 angesehen und das kann vom PC Step7 Manager unter Zuhilfenahme der Hardwarekonfig mit IO-Link Master Baugruppen auf der ET200 kommunizieren.
Bei meinem Versuchsaufbau hab ich an der 840d sl (PLC 317) eine ET200 per ProfiBus und auf dieser nen Siemens 4-Port IO-Link Master.
Hab mal die Kommunikation mit geschrieben.
Anhang anzeigen 49831
Ich hab noch mal nen schrieb von der Kommunikation gemacht und ein paar Screenshots der Übertragenen Werte.
Auch hab ich die IODD (Beschreibungsdatei IO-Link) auch mit rein gepackt.
Allgemein zu IO-Link:
vendorId = Eindeutige Herstellernummer (Global eindeutig)
deviceId = Eindeutige Gerätezuordnung (Herstellerspezifisch eindeutig)
Anhang anzeigen 49852
Das was da im Datenteil transportiert wird, scheint zumindest sehr speziell zu sein. Vom PCT werden öfters die gleichen Anfragen geschickt, aber in der Antwort kommt immer etwas anderes zurück. Das scheint auf den ersten Blick irgendwie zustandsabhängig zu sein was dort zurückkommt, oder es kann so etwas wie ein Verzeichnis gebrowst werden. Es gibt auch nur ganz selten mal eine Längenangabe vorab, der dann genau diese Anzahl an Bytes folgen.
Ich habe auch schon mal in die Spezifikation geschaut, auf den ersten Blick sehe ich da auch keine Anhaltspunkte. Mit wem spricht die PCT Software denn da, mit dem Master, oder gibt es auch Durchgriff auf die angeschlossenen Geräte?
PCT Tool muss, zumindest über den Master, mit dem Druckschalter IFM reden, da nur er die ganzen actual Daten hat.
IO-Link verfügt über Zyklische Prozessdaten zur PLC und einen Asynchronen Kommunikationskanal. Dieser Asynchrone Kommunikationskanal kann auch aus der PLC heraus genutzt werden um weitere Daten auszulesen oder z.B. Schaltpunke einzustellen.
Aufbau:
PC -> 840dsl (10.172.26.192) -> Slot? (2->PLC, 4->NC, 5->CP, 6->HMI) -> DP (Adresse 2) -> ET200 (Adresse 3) -> IO-Link Master (Steckplatz 8 ) -> Port1 -> Druckschalter
Ok, mit deinem letzten Logfile kommt man weiter, und es lässt sich ein Zusammenhang zur IO-Link Spezifikation herstellen.
Z.B. in #257 kommt die Seriennummer zurück. In #248 scheint dieser Datensatz vorselektiert zu werden, mit der 0x15 die sich am Ende findet. 0x15 ist laut Spec der Index für Serial-Number.
Passt auch mit #224 überein. Dort kommt der Produktname zurück, der in #216 mit 0x12 vorgewählt wird.
Es sieht so aus als müsste man vorher etwas anwählen und dann einen Ausführ-Befehl geben. Mal sehen ob der restliche Aufbau sich auch aus der IOL Spezifikation ableiten lässt.
Kann mir auch keinen Reim draus machen.
Hab noch mal ne Aufzeichnung gemacht. Diesmal hab ich in der Hardware Konfig den Parameter des IO-Link Masters auf "Ohne PCT" gestellt. Somit ist kein Download der Beschreibung erforderlich und andererseits kennt das PCT somit die Beschreibung nicht und zeigt nur die Empfangenen Parameter an.
Hab auch ein kleines Video vom PCT Tool mit angehängt.
Anhang anzeigen 49861
Die Angaben Index und Subindex und den Wert in der Antwort findet sich wieder. Das entspricht aber nicht dem Aufbau aus dem IO-Link PDF. Es scheint, das ist eine Mixtur aus IO-Link Standard und einem Eigengewächs drumherum.
Auf IO-Link Ebene wird so wie ich das gesehen habe viel mit einzelnen Bits, Nibbles und Bytes und hantiert um das Ganze effektiv zu halten. Das macht vermutlich kein Sinn das alles bis auf Master-Ebene durchzureichen. In den Nutzdaten auf Netzwerkebene stehen an vielen Stellen in einem Byte nur entweder eine 1 oder eine 0. Ich habe auch schon vermutet ob dort vlt. einzelne Bits in einem ganzen Byte untergebracht werden. Da fehlt aktuell der Startpunkt an dem sich ansetzen lässt. Das einzige was man sicher finden kann sind die Indizes/Subindizes und die Daten der Antwort.
CAP:
Siemens spezifisch: 227
Andere Hersteller (Master): 0xB400 (-19456)
ID: Adresse in der HW-Konfig
Anhang anzeigen 49872
Beispiel für den Sensorname Index 18
Anhang anzeigen 49871 Anhang anzeigen 49870
Hab noch nicht rausgefunden ob das mit dem PCT Tool überhaupt geht. Soweit ich sehe kann man nur die IODD zum Master schreiben/lesen und online nur die Parameter betrachten.
Zuletzt bearbeitet: