REAL-Konvertierungen und numerische Funktionen liefern falsche Ergebnisse oder führen zu einem CCr- oder PEr-Trip (behoben ab Vx.x)

Behoben ab:
ECS Achsmodul B-SW V6.7

Verhalten der neuen Version ?




Betrifft welche Produkte?
ESP-DDS2-x (Drive PLC Developer Studio V2.x)
EPL-1020x (Drive PLC V6.x)
ECSxA (ECS Achsmodul <=V6.6)

Wie sieht die Reaktion aus?
  • Die Konvertierung von Datentypen z. B. von REAL_TO_INT… führt zu fehlerhaften Ergebnissen.
  • Die Ausführung von numerischen Funktionen, z.B. SIN, EXP, SQRT,… führt zu fehlerhaften Ergebnissen bzw. zu einem CCr-Trip oder PEr-Trip.

Wann tritt das Problem auf?
  • Wird eine der beiden Funktionen L_MemReadDINT oder L_MemReadDWORD aus den Bibliotheken LenzeMemDrv.lib bzw. LenzeMemDrv0101.lib aufgerufen, dann führt eine Datentypkonvertierung von REAL in einen anderen Datentyp (REAL_TO_xxx) in der gleichen Task zu einem inkorrekten Ergebnis.
  • Wird eine der beiden Funktionen L_MemReadDINT oder L_MemReadDWORD aus den Bibliotheken LenzeMemDrv.lib bzw. LenzeMemDrv0101.lib aufgerufen und werden in der gleichen Task numerische Funktionen, die den Datentyp REAL erfordern, ausgeführt, dann gibt die Funktion ein fehlerhaftes Ergebnis aus bzw. es tritt ein CCr-Trip oder PEr-Trip auf.

Die PLC-Zielsysteme Drive PLC V1.x und V2.x sind von dieser Funktionseinschränkung nicht betroffen, da von ihnen die Bibliothek LenzeMemDrv nicht unterstützt wird.

Diagnosemöglichkeiten?
Überprüfen Sie mit der Querweisliste von DDS (Menü Projekt>Querverweisliste ausgeben), ob eine der Funktionen L_MemReadDINT oder L_MemReadDWORD im Projekt verwenden werden. Wählen Sie dazu im Dialog Querverweise die Kategorie Baustein.
Wird eine dieser Funktionen im Projekt verwendet, überprüfen Sie, ob in der gleichen Task Datentypkonvertierungen oder numerische Berechnung durchgeführt werden.

Kurzfristige Maßnahmen/Empfehlungen?
Verwenden Sie nicht die Funktionen L_MemReadDINT oder L_MemReadDWORD.

Mit dem Service Pack 1 des DDS V2.3 wird die überarbeitete Bibliothek LenzeMemDrv0102.lib installiert, mit der diese Funktionseinschränkung behoben wird. Ersetzen Sie im Dialog Bibliotheksverwalter (Menü Fenster>Bibliotheksverwaltung) die existierende LenzeMemDrv.lib bzw. LenzeMemDrv0101.lib durch die neue Bibliothek LenzeMemDrv0102.lib.

Bewertung:
Die Datentypkonvertierungen REAL_TO_xxx und numerische Funktionen, die den Datentyp REAL erfordern, liefern inkorrekte Ergebnisse bzw. führen zu einem CCr-Trip / PEr-Trip, wenn in der gleichen Task eine der Funktionen L_MemReadDINT oder L_MemReadDWORD ausgeführt wird. REAL-Berechnungen sowie die Datenkonvertierung REAL_TO_xxx dürfen nur in der zyklischen Task verwendet werden. Die Bibliothek LenzeMemDrv, die die Funktionen L_MemReadDINT und L_MemReadDWORD enthält, wird sehr selten für die PLC-Zielsysteme Drive PLC und ECS genutzt.

URL zur Verlinkung dieses AKB-Artikels: https://www.lenze.com/de-de/go/akb/200506357/0/
Contact form