Jump to content

Operator not supported: __lt???


Empfohlene Beiträge

Hallo zusammen,

ich habe ein Problem mit einer Containerverladung. Sobald der Containerkran starten soll, sagt das Ereignisprotokoll Operator not supported: __lt. Also Operator wird nicht unterstützt. Was ich nicht verstehe, da das Ereignis nur eine Variable auf einen bestimmten Wert setzen soll.

Hier mal die Anlage als Datei Test Containerverladung.mbp , die Anlage ist mit V8.5 erstellt. Zum Starten einfach eins der Sperrsignale auf Sh1 (Fahrt) stellen.

Danke im voraus.

Bearbeitet von Wüstenfuchs
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 46 Minuten schrieb Wüstenfuchs:

Also Operator wird nicht unterstützt.

Als Operatoren bezeichnet man die Zeichen, die etwas verbinden.
Beispielsweise Rechenzeichen
Oder Zeichen, die Textbausteine zusammenfügen.
Oder solche, die Wahrheitsgehalte logisch miteinander verknüpfen. 

Und nicht jeder Operator passt zu jeder Variablen.
Beispiel: Textbausteine kann man nicht multiplizieren.

Und du kannst leider auch nicht zu einem Namen eine Zahl hinzuaddieren. Sorry, ich hatte da nicht richtig hingeschaut!

NameplusZahl.jpg.98c0ca5a0de3504c151fe04af29f0586.jpg

Diese Zuweisung ist in Ordnung!

Viele Grüße
Götz

Bearbeitet von Goetz
Falschaussage berichtigt
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 3 Minuten schrieb Wüstenfuchs:

das die Variable eine Textvariable ist

Ne, ist sie nicht. Ich hatte mich vertan. Bin wohl doch müder als ich dachte.
Der wahre Verursacher muss an anderer Stelle sitzen.
Ich hatte den Variablennamen mit einem Objektnamen verwechselt. Sorry!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @Wüstenfuchs

Jetzt glaube ich den wahren Übeltäter gefunden zu haben.

Das hier ist das Ereignis, zu dem mich die Fehlermeldung führt:

unbekannterOperator.jpg.ee943be9bcba76cf816cf249984d1f81.jpg

Und in der markierten Bedingung prüfst du, ob eine Liste (Abladen Zug) größer ist als eine Zahl.
Eigentlich möchtest du wissen, ob die Anzahl Elemente in dieser Liste größer als die angegebene Zahl ist.
Das kannst du meines Wissens in der grafischen EV nicht angeben. Du müsstest stattdessen eine Skriptbedingung verwenden:

local Liste = $("Kleiner Container-Brückenkran").variables["Abladen Zug"]
return #Liste > 1 -- mit vorangestelltem # bekommt man die Anzahl Elemente in der Liste

Dasselbe benötigst du in der Bedingung gleich darunter noch ein zweites Mal. Da vergleichst du genauso eine Liste mit einer Zahl.

Viele Grüße
Götz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @Wüstenfuchs,

wenn Du im event trace einen Doppelklick machst, dann bis Du in dem Ereignis, in dem der Fehler aufgetreten ist (siehe Bild). Ich habe geschaut, was Du mit was vergleichst. Und siehe da: "Verladung Zug" (erste Zeile) ist eine boolsche Variable, also ok,  aber "Abladen Zug" (zweite Zeile) ist eine Liste, die darfst Du nicht mit einer Zahl vergleichen. Deshalb die Meldung "Operator not supported". Vermutlich wolltest Du mit der (vorhandenen) Variablen "Index Abladen Zug" vergleichen, wie weiter unten (vierte Zeile) beim Aufladen auch.

Screenshot2024-01-12004555.thumb.jpg.99a5f66de7372cadc394948f6bea3e9e.jpg

Ich habe noch andere Stellen gesehen, bei denen Du das (glaube ich) auch verwechselt hast.

Mein Tipp: Doppelklick und dann genau hinschauen, ob da wirklich steht, was Du wolltest.

Beste Grüße

Phrontistes

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 18 Stunden schrieb Phrontistes:

Vermutlich wolltest Du mit der (vorhandenen) Variablen "Index Abladen Zug" vergleichen, wie weiter unten (vierte Zeile) beim Aufladen auch.

Genau das wollte ich. Hab den Fehler aber auch schon gefunden. Momentan Ärgern mich aber noch die folgenden Befehle, da ich die Arbeitsschritte erst in mehrere Befehle Aufgeteilt habe (ist Übersichtlicher beim Überprüfen), waren es natürlich etliche Einträge mit den gleichen Auslöser. Was blöd ist, da die Anlage ein Modul für eine größere ist. Mit den Einzelbefehlen klappte die Verladung auch, Nachdem ich die Befehle mit gleichen Auslöser in einen Befehl zusammengefasst habe zickt die EV rum. Also zurück auf Anfang und noch ein mal, oder kann man eventuelle Performances Probleme umgehen, wenn man die Einträge als Skript umwandelt?

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 17 Minuten schrieb Wüstenfuchs:

kann man eventuelle Performances Probleme umgehen, wenn man die Einträge als Skript umwandelt?

Nein, so oder so werkelt im Betrieb der Anlage das Skript, welches du nach Umwandlung sehen würdest.
Die grafischen Bausteine machen es dir nur bequemer, diese Skriptteile zusammenzusetzen. Im Betrieb spielt die grafische Darstellung keine Rolle.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen.

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...