Autor Thema: OSCAT Libary 311 erzeugt in der TwinCat PLC Expression too complex Fehler  (Gelesen 17893 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

bergheimerfuchs

  • Gast
Hallo zusammen,

habe bei mir ein grosses Problem.
Ich habe als Entwicklungsumgebung für meine Beckhoffkomponenten eine Urversion von TwinCat X64 (Tc211x64Engineering_2110_2034) benutzt. Als ich Anfangs mit der libery von OSCAT 311 Version in die TwinCat PLC eingefügt habe gab es keine Probleme beim übersetzen. Nun habe ich mir die neue Version von TwinCat herunter geladen und nun kommt beim Übersetzen die Fehlermeldung ERROR 3117: ??? (-1): Expression too complex. No more register available.
Nun kann ich auch leider meinen CX9010 nicht mehr mit dem Programm bespielen.
Viele sagen jetzt sicher dann benutze das alte Programm, dass geht leider nicht , weil man mit dieser Version leider kein zweites SPS Bootprojekt unter dem Systemmanager einstellen kann. Die anderen Versionen von Beckhoff gehen leider auch alle nicht habe ich schon getestet . Diese haben andere Bags die das Safetyfile aufspielen auf eine EL6900 nicht ermöglichen.
Zu guter letzt habe ich beim Support von Beckhoff nachgefragt. Dort haben Sie mir am Anfang nicht geglaubt, nach Wochenlangen hin und her hat mir ein Entwickler geschrieben, (ich zitiere)

ich habe von unserem Support gehört, dass Sie Probleme bei der Verwendung der OSCAT Lib in Zusammenhang mit TwinCAT haben. Folgendes haben wir festgestellt:
-   Sollte nur auf den ARM Plattformen auftreten.(Habe ich)
-   Bei ARM ist die Anzahl der Register die vom Compiler verwendet werden können begrenzt.
-   In älteren Version hat der Compiler das nicht streng geprüft. Ob und welche Konsequenzen das gehabt haben mag, kann nur 3S beantworten.
-   In neueren Compilerversionen werden jetzt die Register kontrolliert. D.h. wenn die Anzahl der vom Compiler her notwendigen Register größer ist als die zur Verfügung stehenden, wird der Compile mit Fehler abgebrochen.
-   Einzige Chance besteht in einer Änderung des Codes (d.h. in der OSCAT Lib). D.h. es müssen an den Stellen mit sehr komplexen Ausdrücken Zwischenvariablen eingefügt werden.

Das gleiche Problem besteht bei der OSCAT Basic 333

Wo soll ich da in der OSCAT Lib ansetzen? Habt Ihr Anregungen?
Vielen Dank
Gruss bergheimerfuchs

Offline peewit

  • Moderator
  • *****
  • Beiträge: 2 378
    • Profil anzeigen
Re: OSCAT Libary 311 erzeugt in der TwinCat PLC Expression too complex Fehler
« Antwort #1 am: 24. September 2012, 22:11:17 »
hallo

ist das denn eine fehlermeldung die zu einem verursacher (baustein) führt
oder gibt es nur eine abbruchmeldung ?

wenn du die oscat.lib als projekt lädst und kompilierst, bekommst du dann auch schon fehlermeldungen

wenn ja, dann müsstest du durch gezieltes einzelnes bzw. gruppenweise löschen von beusteinen und kompilieren schauen ab wann der fehler weg ist. somit kannst du den (die) fehlerverursachenden bausteine finden

bei der anpassung der bausteine  können wir dir sicherlich helfen, ab finden musst du sie selber


bergheimerfuchs

  • Gast
Re: OSCAT Libary 311 erzeugt in der TwinCat PLC Expression too complex Fehler
« Antwort #2 am: 25. September 2012, 08:34:17 »
->Es ist eine reine Abbruchmeldung
wenn du die oscat.lib als projekt lädst und kompilierst, bekommst du dann auch schon fehlermeldungen
->ja die kommt bei einem neuen Projekt, wo ich nur die OSCAT lib lade und kompiliere.
Jetzt schau ich mal wenn ich Bausteine/Gruppen lösche was passiert.



bergheimerfuchs

  • Gast
Re: OSCAT Libary 311 erzeugt in der TwinCat PLC Expression too complex Fehler
« Antwort #3 am: 25. September 2012, 09:37:00 »
So jetzt läuft es, habe die lib so zusammengestrichen, dass nur die Funktionen vorhanden sind, die ich in meinem Projekt brauche.
Danke nochmal. ;D

master

  • Gast
Re: OSCAT Libary 311 erzeugt in der TwinCat PLC Expression too complex Fehler
« Antwort #4 am: 08. September 2013, 22:06:16 »
Hallo,

habe nun den gleichen Fehler 3117 mit der Oscat basic 333 lib.
Hast jemand den Fehlerverursachenden Baustein schon gefunden?

Gruß
Markus

schalck

  • Gast
Hi (sorry for my english)

I have that same problem when i try to build the OSCAT, and as far as i can see it is the FB SCALE_R there are a problem with...
Anybody know how to remove that from the build in TwinCat2?

Best regards
Michael Schalck

Cojote

  • Gast
Guten Abend,

ich habe ebenfalls den Fehler beim Kompilieren.

TwinCat2, CX9020 (ARM Core), Win CE,...

Der Baustein, der vor der Fehlermeldung angegeben ist, ist der bereits erwähnte Scale_R. Dieser müsste aus der Oscat Basic 333 kommen. Gefunden habe ich den Baustein aber in der .lib noch nicht um diesen zu löschen, ich weiss auch nicht ob das rasam ist, falls andere darauf zugreifen. Ich habe auch nocht nicht herausgefunden, wie ich einzelne Bausteine aus der eingeundenen Bibliotheke abwähle/lösche; kann nu gesamte Bibliothek löschen.

Erbitte Hilfe.

MfG
Cojote

Cojote

  • Gast
Abend die 2.

wenn ich die Oscat_Basic_333 direkt kompiliere tritt der Fehler nur auf, wenn ich in den Recourcen eine CX (ARM) anwähle.-> Deckt sich mit der Aussage des Beckhoff Technikers.

Ich fummel mal morgen dran rum und gebe bescheit wenn und wie Problem gelöst wurde.

MfG
Cojote

Aikapan

  • Gast
Gibt es schon Fortschritte?

Ich wollte sie heute in Twincat einbinden -> genau dieser Fehler..

Offline Christian_EWW

  • Newbie
  • *
  • Beiträge: 2
    • Profil anzeigen
    • Elektrizitätswerk Wels AG
Hallo.

Ich hatte das Problem auch, es liegt am SCALE_R Baustein.
Wenn man ihn folgendermaßen ändert, läuft er problemlos.

IF I_LO = I_HI THEN
   SCALE_R := O_LO;
ELSE
   TEMP := LIMIT(I_LO, X, I_HI);
   SCALE_R := (O_HI - O_LO) / (I_HI - I_LO) * (TEMP - I_LO) + O_LO;
END_IF;


(* revision history
hm   18. may. 2008   rev 1.0
   original version

hm   13. nov. 2008   rev 1.1
   corrected formula for negative gradient

hm   11. jan 2011   rev 1.2
   avoid division by 0

Christian Kreuzer
03.März 2013 rev 1.3
   splitted formula to avoid error "expression to complex" at Beckhoff ARM devices
*)


TEMP ist von Typ REAL

Viel Spaß damit,
Christian_EWW

ricko_niko

  • Gast
Re: OSCAT Libary 311 erzeugt in der TwinCat PLC Expression too complex Fehler
« Antwort #10 am: 30. November 2014, 13:56:31 »
Hallo in die Runde,

ich möchte eine Hausautomation mit einer Beckhoff CX9020 machen und möchte die Oscat Bausteine dafür nutzen.

Ich habe das gleiche Problem wie hier beschrieben und habe den Baustein wie oben beschrieben abgeändet (hört sich auch plausibel an)jedoch funktioniert es nicht mit dieser Änderung.

Es kommt folgender Fehlercode: Projektdatei korrupt 

>>wenn ich sie trotzdem lade kommt die Meldung : Die Bibliothek Basic wurde mit einer neueren Version erstellt.

Wenn jemand noch eine Idee bin ich über eine Antwort dankbar.

mfg
Enrico





Pessimister

  • Gast
I hope this problem will be fixed in the hext release.