Buongiorno,
sto utilizzando un modulo da 10 ingressi analogici PCB126C130 per l’acquisizione di 5 termocoppie, collegate agli ingressi 0-3 e 5.
Succede che all’avvio del plc leggo correttemente i valori di temperatura, però dopo circa 5 secondi i blocchi funzione SysGetAnInp vanno tutti in fault con il codice 9983150, e non si riprendono più. Faccio un Warm Restart e succede la stessa cosa, funzionano per 5 secondi e poi vanno in fault. Mi capita anche se abilito uno solo degli ingressi.
Il mio codice è ridotto all’osso, gira in task Back:
IF Init THEN
Init := FALSE;
// Impostazione analogiche
FOR i:= 0 TO AN_INPUT_MAX_IDX DO
FB_GetAnInput[i].Address := 0;
FB_GetAnInput[i].Channel := TO_USINT(i);
FB_GetAnInput[i].Mode := AD_THERMOCOUPLE_K;
END_FOR;
END_IF;
//——————————————————————-
// Acquisizione analogiche scheda di espansione
FB_GetAnInput[i]();
IF FB_GetAnInput[i].Done THEN
ErrorCode[i] := 0;
analog_input_exp[i] := FB_GetAnInput[i].Value;
ELSIF FB_GetAnInput[i].Fault THEN
ErrorCode[i] := SysGetLastError(TRUE);
END_IF;
i := (i+1);
IF i > AN_INPUT_MAX_IDX THEN
i := 0;
END_IF;
Quale può essere il motivo?