SCL Vergleichsoperation . Hilfe!!

Django2012

Level-1
Beiträge
157
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

ich bin absoluter SCL Neuling. Probiere mich seit ein paar Wochen mit SCL einiges hat auch schon geklappt.
Nur folgendes bereitet mir Kopfschmerzen.

Also: ich habe nen DB1 gemacht, 0.0 -8.0 sind Int

folgendes Funktioniert, wenn ich den db "symbolisch" anspreche

FUNCTION FC100 : INT

IF motor_m1.soll_1 > 20 THEN
a8.0 :=1;
END_IF
FC100 := 100;
;
END_FUNCTION

ABER: Warum geht es nicht wenn ich den DB direkt eingebe? (motor_m1.soll_1 ist im Db, bzw Awl: db1.dbw4

If db1.dw4 > 20 Then
usw usw

Als fehler bringt er mir immer : 1) unzulässige Operandentypen 2) der Ausdruck muss vom Datentyp BOOL sein.

Versteh´s nicht, warum geht´s symbolisch??
 
Die Erklärung dafür ist ziemlich lapidar, wenn du symbolisch programmierst, wird der Datentyp INT entsprechend berücksichtigt,
folglich stehen dir auch sämtliche Vergleichertypen zur Verfügung.

Wenn du direkt, also DB1.DW4 wird der Wert immer als WORD interpretiert, und folglich kannst du nur auf "=" bzw. "<>" vergleichen.

Also müsstest du noch eine Typwandlung vornehmen: IF WORD_TO_INT(DB1.DW4) > 20 THEN ...

Mfg
Manuel
 
Danke, hab nur schnell ne Bausteinvorlage im Editor eingefügt und dann hier rein. Der Tipp von dir, hat mich auch schon mal 2 Stunden beschäftigt:) SCL totaler beginner
 
Zurück
Oben