Fehler im SCL Code

Felse

Level-1
Beiträge
221
Reaktionspunkte
10
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
habe folgendes Problem, ich habe einen Baustein programmiert und möchte diesen jetzt gerne testen. Allerdings bekomm ich beim Übersetzen ständig eine Fehlermeldung. Hab nun schon einiges versucht, aber irgendwie hab ich wohl die Übersicht verloren...? Die Fehlermeldung "Ungültige Zuweisung" tritt in den markierten Zeilen auf. Wer hat denn ne Idee was hier nicht stimmt?
Code:
[COLOR=red]IF (Manu=1 AND (WORD_TO_INT ("71A1 Planscheibe SOLL") > 0)[/COLOR]
 
AND "71A1 Planscheibe bereit"=true
 
AND FREIGABE_LEITER AND FRG_AN_PS_PAPIER) OR                   
 
[COLOR=red](Auto= true  AND (WORD_TO_INT ("71A1 Planscheibe SOLL") > 0)[/COLOR]       
 
AND S_aktiv=1 AND "71A1 Planscheibe bereit"= true                   
 
AND FREIGABE_LEITER AND FRG_AN_PS_PAPIER) OR                           
 
GU_PLANSCHEIBE_AKTIV = true
 
THEN    "71A1 Plansch. Freigabe"    := true;  
ELSE    "71A1 Plansch. Freigabe"    := false; 
END_IF;

Schonmal im Voraus danke für jede Hilfe.
 
IF (Manu=1) AND (WORD_TO_INT ("71A1 Planscheibe SOLL") > 0)

AND "71A1 Planscheibe bereit"=true

AND FREIGABE_LEITER AND FRG_AN_PS_PAPIER) OR

(Auto= true) AND (WORD_TO_INT ("71A1 Planscheibe SOLL") > 0)

AND S_aktiv=1 AND "71A1 Planscheibe bereit"= true

AND FREIGABE_LEITER AND FRG_AN_PS_PAPIER) OR

GU_PLANSCHEIBE_AKTIV = true

THEN "71A1 Plansch. Freigabe" := true;
ELSE "71A1 Plansch. Freigabe" := false;
END_IF;

Hallo Felse,
vielleicht mal so versuchen ...
Der Fehler liegt bei den Klammern ...!

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das hab ich mir auch gedacht, aber wenn ich dein Bsp übernehme, bekomm ich noch mehr Fehler angezeigt...:confused: Ich werds weiter versuchen, wenn das nicht klappt, mach ich das einfach im FUP.
 
Hallo zusammen,
habe folgendes Problem, ich habe einen Baustein programmiert und möchte diesen jetzt gerne testen. Allerdings bekomm ich beim Übersetzen ständig eine Fehlermeldung. Hab nun schon einiges versucht, aber irgendwie hab ich wohl die Übersicht verloren...? Die Fehlermeldung "Ungültige Zuweisung" tritt in den markierten Zeilen auf. Wer hat denn ne Idee was hier nicht stimmt?
Code:
[COLOR=red]IF (Manu=1 AND (WORD_TO_INT ("71A1 Planscheibe SOLL") > 0)[/COLOR]
 
AND "71A1 Planscheibe bereit"=true
 
AND FREIGABE_LEITER AND FRG_AN_PS_PAPIER[B][COLOR=red])[/COLOR] [/B]OR   [COLOR=red]was ist mit der[/COLOR]            
 
[COLOR=red](Auto= true  AND (WORD_TO_INT ("71A1 Planscheibe SOLL") > 0)[/COLOR]       
 
AND S_aktiv=1 AND "71A1 Planscheibe bereit"= true                   
 
AND FREIGABE_LEITER AND FRG_AN_PS_PAPIER[COLOR=red][B])[/B][/COLOR] OR     [COLOR=red]und mit der Klammer??                      [/COLOR]
 
GU_PLANSCHEIBE_AKTIV = true
 
THEN    "71A1 Plansch. Freigabe"    := true;  
ELSE    "71A1 Plansch. Freigabe"    := false; 
END_IF;

wo öffnest du diese Klammern??
 
Code:
[COLOR=#ff0000]IF (Manu=1 AND (WORD_TO_INT ("71A1 Planscheibe SOLL") > 0)[/COLOR]
 
AND "71A1 Planscheibe bereit"=true
 
AND FREIGABE_LEITER AND FRG_AN_PS_PAPIER[B][COLOR=red])[/COLOR] [/B]OR  [COLOR=blue]diese gleich hinter dem IF            [/COLOR]
 
[COLOR=red](Auto= true  AND (WORD_TO_INT ("71A1 Planscheibe SOLL") > 0)[/COLOR]       
 
AND S_aktiv=1 AND "71A1 Planscheibe bereit"= true                   
 
AND FREIGABE_LEITER AND FRG_AN_PS_PAPIER[COLOR=red][B])[/B][/COLOR] OR   [COLOR=blue]vor der Variable Auto (Anfang der 2. roten Zeile)[/COLOR]
GU_PLANSCHEIBE_AKTIV = true
 
THEN    "71A1 Plansch. Freigabe"    := true;  
ELSE    "71A1 Plansch. Freigabe"    := false; 
END_IF;
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... da sind auch noch mehr Klammer-Fehler drin ...
Geh das doch mal systematisch an - jede Klammer, die du aufmachst musst du auch wieder sinnvoll schliessen :
Code:
[COLOR=black]IF [COLOR=red]([/COLOR]Manu=1[COLOR=red])[/COLOR] AND (WORD_TO_INT ("71A1 Planscheibe SOLL") > 0)
AND [COLOR=red]([/COLOR]"71A1 Planscheibe bereit"=true[COLOR=red])
[/COLOR]AND FREIGABE_LEITER AND FRG_AN_PS_PAPIEROR  
((Auto= true)  AND (WORD_TO_INT ("71A1 Planscheibe SOLL") > 0)       
 AND [COLOR=red]([/COLOR]S_aktiv=1[COLOR=red])[/COLOR] AND [COLOR=red]([/COLOR]"71A1 Planscheibe bereit"= true [COLOR=red])[/COLOR]                  
AND [COLOR=red]([/COLOR]FREIGABE_LEITER AND FRG_AN_PS_PAPIER OR    
[COLOR=red]([/COLOR]GU_PLANSCHEIBE_AKTIV = true[COLOR=red]))[/COLOR]
 
THEN    "71A1 Plansch. Freigabe"    := true;  
ELSE    "71A1 Plansch. Freigabe"    := false; 
[/COLOR]END_IF;
SCL mußt du schon sagen, wie die Varaiblen verknüpft werden sollen ...
 
SCL mußt du schon sagen, wie die Varaiblen verknüpft werden sollen ...

Ja das ist schon klar doch die Fehlermeldungen bleiben die gleichen, wenn ich die oben markierten Zeilen aus dem Text entferne funktionierts ja, daher hab ich gedacht, dass etwas an der Schreibweise oder Syntax nicht OK ist. Ich probier noch ein bißchen rum. Trotzdem Danke.
 
Zuletzt bearbeitet:
"71A1 Planscheibe SOLL" war in der Symboltabelle als PAW deklariert... Hab das einfach in AW geändert, jetzt funktioniert das auch, aber ergeben sich daraus noch weitere Sachen die ich beachten muss?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
:confused::confused::confused:

PAW's kann man nicht einlesen ... PEW's kann man nicht beschreiben ...
Ob das für deine Funktion OK ist, wenn du statt PAW dann AW (sofern im Prozess-Abbild) nimmst kann ich nicht sagen - das würde voraussetzen, dass ich weiß, was du da vorhast ...
 
Davon hab ich leider nicht soviel Ahnung... Der Wert beschreibt eine Geschwindigkeit, welche über ein Fußpedal (wie beim Auto) reguliert wird. Naja ich werd ja sehen ob das geht.
 
Wo steht denn der Wert von "71A1 Planscheibe SOLL"?
In einem MW?In einem DBW?Oder eventuell in einem PEW einer AI Baugruppe?
Solltest schon wissen von wo der Wert vorgegeben wird.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Dieser Wert soll von einer AO Baugruppe (also PAW) zum Eingang eines Frequenzumrichters gehen, der dann die Geschwindigkeit des Motors regelt.
 
... dann solltest du mit einer Zwischen-Variablen arbeiten, in der du den errechneten Wert abspeicherst und deren Inhalt du dann auf das PAW schreibst ...

Gruß
LL
 
Zurück
Oben