Vai al contenuto
PLC Forum


Espressione Scl


Colonial54

Messaggi consigliati

Salve a tutti

Sto (re)imparando SCL ed avrei una domanda:

Il codice sottoriportato, solo un blocco di esempio, mi da un errore, ma non riesco a capire di cosa si tratta; ho letto i manuali, lo faccio di sera in hotel, ma non ci salto fuori; sapreste aiutarmi a capire che cosa c'e' di sbagliato?

Nella DB32, DBW2 e DBW4 sono dichiarati come INT.

FUNCTION FC32 : VOID

VAR_TEMP
Flag : BOOL;
END_VAR

VAR
Cnt : INT;
END_VAR

BEGIN

IF %M1.0

THEN %DB32.DBW2 := %DB32.DBW2 + %DB32.DBW4; // Riga con errore: Tipo di operando non ammesso

ELSE %DB32.DBW2 := 0;

END_IF;

END_FUNCTION

Un grazie a tutti

Link al commento
Condividi su altri siti


io lo farei così

FUNCTION "Blocco_1" : Void
{ S7_Optimized_Access := 'FALSE' }
VERSION : 0.1
VAR_INPUT
trig : Bool;
END_VAR
VAR_IN_OUT
var2 : Int;
var1 : Int;
END_VAR
BEGIN
IF #trig
THEN
#var1 := #var1 + #var2; // Riga con errore: Tipo di operando non ammesso
ELSE
#var1 := 0;
END_IF;
END_FUNCTION
poi andrai ad assegnare a
trig m1.0
var1 db32.dbw2
var2 db32.dbw4
Link al commento
Condividi su altri siti

  • 1 month later...

per fare quello che dici sopra devi usare il simbolico , dai un nome al DB e un nome al dato e vedrai che funziona .E poi cerca di essere piu corretto e sintatticamente preciso con gli if

IF condizione THEN

assegnazione ;

ELSE

altro ;

END_IF ;

Non serve passare per le variabili locali richiedendo in ingresso il dato desiderato

SCL non accetta che l'operatore somma "+" agisca su variabili assolute , le prende come word e non come interi

Il concetto e' che SCL va inteso come un linguaggio tipo pc , non devi dare indirizzi assoluti

Io ho sempre usato variabili con simbolico al DB e ai suoi dati interni e non ho mai avuto problemi

 "DB_Dati".dato1 := "DB_Dati".dato2 + "DB_Dati".dato3;
Modificato: da walterword
Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...