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




Fc In Scl Errore Indirizzo Di Una Variabile


Messaggi consigliati

Inserito:

Ho una FC scritta in SCL, compilo tutto ok, ma quando viene eseguita vedo che la CPU va in errore (led rosso ); nel buffer di diagnostica dice qualcosa del tipo errore indirizzamento o variabile non corretta in quell FC; compilando l'FC senza errori cosa vado a cercare? cose del tipo True al posto di 1 ,False al posto di 0 per le Bool?


Inserita:

Ciao

Domanda ovvia che cosa usi per programmare v11 o v12 , usi variabili in / out. .?

Inserita:

Se vuoi risposte, devi fornire informazioni.

Con quelle che hai dato, serve un indovino.

Inserita: (modificato)

uso la v11 e uso sia in/out, input, output e temp (come indice di ciclo FOR) ; l' errore è dovuto all' evento 16# 20:2253; errore in lettura FC16, sembra che ci sia una variabile che va fuori dalla dimensione prevista, magari indirizzata con un indice

Modificato: da aleb2
Inserita:

sembra che ci sia una variabile che va fuori dalla dimensione prevista, magari indirizzata con un indice

Probabile, ma siamo ancora al punto di partenza.

Senza vedere il codice, come possiamo capire se ci sono errori nel codice?

Inserita:

Io mi sono dimenticato di chiederlo, ma anche specificare se si tratta di un S7-1200 o di un S7-300 non sarebbe stata una cattiva idea, non ti pare?

Nel codice che hai fornito manca la struttura della variabile Input "MEDIA_H_NF_ARRAY".

Per il resto, da un veloce controllo non ho trovato errori di indici.

Resta da vedere cosa colleghi come parametri alla FC quando la richiami.

Per esempio, se passi un valore #J = 0, nella riga con il codice

IF (#MEDIA_H_NF_ARRAY[#J].N_CAMP-#MEDIA_H_NF_ARRAY[#J+1].N_CAMP<7200) THEN
punteresti alla variabile #MEDIA_H_NF_ARRAY[0].N_CAMP che non esiste.

Dovresti quindi aggiungere un controllo sul valore della variabile #J

Se mi posso permettere un'osservazione poi, noto che nel tuo codice non esiste una sola riga di commento.

Trovo questa una bruttissima abitudine da perdere immediatamente, anche se si tratta solo di una FC di prova.

C'è addirittura chi sostiene che un programma dovrebbe essere formato dal 50% di codice e dal 50% di commenti.

Io non dico di prendere queste percentuali come regola assoluta, ma i commenti devono essere sempre parte rilevante di un programma.

Poi, ovviamente, molto dipende dalla complessità del codice. Ci possono essere 10 righe di codice con 1 riga di commento, ma ci possono essere anche tre righe di codice con 10 righe di commento.

In ogni caso, non dovrebbe mai esistere una riga di codice senza commento.

Inserita:

Si consiglio senz'altro da seguire quello dei commenti, comunque mi hai acceso una lampadina in effetti l'indice J non ha un controllo che sia diverso da zero; guardo meglio;

intanto grazie

  • 1 month later...
Inserita:

proprio cosi'; il problema era sulla variabile #j che aveva come valore di avvio nella DB, zero e generava quell'errore;

grazie batta

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