Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Operazione Matematica


Messaggi consigliati

Inserito:

Scusate, ma ho bisogno di aiuto, non mi riesce di fare una semplice divisione.

Sotto è postato il codice, mi da sempre lo stesso errore, "Tipo di operando non ammesso"

Se qualcuno mi può aiutare, ringrazio anticipatamente.

FUNCTION FC102 : VOID

VAR_TEMP
n : INT;
MEM : BOOL;
END_VAR

VAR_INPUT
DBn : BLOCK_DB;
Dur : BLOCK_DB;
Dw : INT;
START : BOOL;
END_VAR

BEGIN
IF n < 500 THEN
IF START AND NOT MEM THEN
n := 0;
DB4.dw[n] := DBn.dw[n]/Dur.dw[Dw];
n := n+2;
MEM := TRUE;
ELSIF START AND MEM THEN
DB4.dw[n] := DBn.dw[n]/"Dati".Durata;
n := n+2;
END_IF;
ELSE
IF NOT START THEN
n := 0;
MEM := FALSE;
END_IF;
END_IF;


END_FUNCTION

DATA_BLOCK DB4
STRUCT

DB_VAR : ARRAY [0..500] OF INT;

END_STRUCT
BEGIN

END_DATA_BLOCK


Inserita:

DBn .... ?

Prova a dare un nome ai DB ed usa il simbolo invece di accedervi direttamente al indirizzo assoluto

Inserita:

DBn.dw[n]/"Dati".Durata;

Ho provato anche con il simbolico, "Dati.Durata, è il simbolico di Db10.dbw312.

La prima parte della divisione me la accetta, la seconda parte mi da errore, anche se scrivo un numero.


Ho provato anche

"Corsa".dw[n]/"Dati".Durata

sempre errore...

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...