Fehler beim Auslesen eines Parameters mit L_ParRead()

Betrifft welche Produkte?
Bibliothek LenzeDrivexxxx.lib

ECS Application B-SW ab V8.0
EVS93xx-EI  (Servo PLC) ab V8.0
EVS93xx-ET  (Servo PLC mit Technologiefunktion) ab V8.0
EPL-10200 EI (Drive PLC) ab V8.0

Wie sieht die Reaktion aus?
Parameter (Codestelle bzw. CAN-Index) eines CAN-Teilnehmers kann mit L_ParRead() nicht ausgelesen werden. Der Ausgang bFail wird TRUE und über den Ausgang wFailNumber wird die Fehlermeldung 1 (= Fehler bei der Datenübertragung über Systembus (CAN)) ausgegeben.

Wann tritt das Problem auf?
Im Vergleich zur Vorgängerversion wurde das Anforderungstelegramm (Read Request) für den Wert eines Parameters vom Funktionsbaustein L_ParRead() von 8 Byte auf 4 Byte verringert. Nicht jeder CAN-Teilnehmer unterstützt Parameter-Telegramme kleiner 8 Byte.

Diagnosemöglichkeiten?
keine

Kurzfristige Maßnahmen/Empfehlungen?
In der Lenze Application Knowledge Base befindet sich die Bibliothek LenzeCanOpenSdoDrv.lib (Beitrags-Nr.: 200807534). Mit dem Baustein IndexRead aus dieser Bibliothek kann auf Basis der Bibliothek LenzeCanDrv.lib ein Parameter eines CAN-Teilnehmers gelesen werden. Dazu sendet der Baustein ein 8 Byte langes Anforderungstelegramm.

Bewertung:
Die meisten Lenze-Geräte mit CAN-Schnittstelle unterstützen auch 4-Byte-lange Anforderungstelegramme (Read Request). Durch den Einsatz der Bibliothek LenzeCanOpenSdoDrv.lib kann die Funktionseinschränkung umgangen werden.

URL zur Verlinkung dieses AKB-Artikels: https://www.lenze.com/de-de/go/akb/201107775/0/
Kontaktformular