Vai al contenuto
PLC Forum


Lettura/Scrittura I/O moduli


andreapier

Messaggi consigliati

Buongiorno a tutti, chiedo il vostro aiuto per un problema che non riesco a risolvere da ormai 2 giorni.

Ho un wago 750-842 con 1 modulo 750-530 (8 DO), 1 modulo 750-430 (8 DI) e 1 modulo 750-461 (2 AI PT100).

Premetto che so per certo che l'hardware funziona correttamente perchè riesco a leggere e scrivere gl I/ tramite modbus.

 

Ho scritto un semplicissimo programma in ST che trovate di seguito e configurato codesys in quesot modo:

K-BUS

|____ 750-530 (canali da AT %QX0.0 a %QX0.8)

|____ 750-430 (canali da AT %IX0.0 a %IX0.8)

|____ 750-461 (canali AT %IW0 e %IW1)

 

Il programma è il seguente (ST):

VAR

i_ch_1 AT %IX0.0 : BOOL;

i_pt100_1 AT %IW0 : INT;

o_ch_1 AT %QX0.0 : BOOL;

o_ch_2 AT %QX0.1 : BOOL;

END_VAR

 

o_ch_1 := i_ch_1; (*DO 1 acceso se DI 1 acceso, altrimenti spento*)

o_ch_2 := i_pt100_1 > 100; (*DO 2 acceso se temperatura > 20°*)

 

I problemi che riscontro sono 2:

  • La variabile i_ch_1 rimane sempre a FALSE, a prescindere dal fatto che sul PLC l'ingresso sia alto o basso
  • Le variabili o_ch_1 e o_ch_2 rimangono sempre a FALSE

 

Per qualche motivo invece l'ingresso analogico viene letto correttamente (vedo i valori quando eseguo il debug del programma).

 

Come faccio a leggere i valori degli ingressi e scrivere le uscite? Cosa sto sbagliando?

Grazie in anticipo a tutti.

Link al commento
Condividi su altri siti


Prova a dichiarare solo le variabili nella testata e poi fai := all'ingresso/uscita nel corpo del programma a inizio per gli ingressi e fine per le uscite. 

 

Ciao

 

 

Link al commento
Condividi su altri siti

Grazie per l'interessamento, ma non sono sicuro di aver capito cosa mi suggerisci di fare.

Devo togliere la configurazione del k-bus?

Ho provato con questo programma estremamente banale ma ancora non funziona!

Ho provato anche a impostare direttamente l'indirizzo %QX0.0 senza risultato.

Nemmeno lasciando il modulo configurato in k-bus e dichiarando una variabile che punta all'indirizzo %QX0.0 ci sono state differenze.

 

Altri consigli?

 

PROGRAM PLC_PRG
VAR
    output1 AT %QX0.0:BOOL;
END_VAR

 

output1 := TRUE;

 

Debug:

immagine.thumb.png.fda972b87a17ee0de9bf1b3fc6be75bc.png

 

Risultato:

 

immagine.png.df8a5db932db79a29af6dfc0d1a8695a.png

Modificato: da andreapier
Correzione immagine
Link al commento
Condividi su altri siti

Di che plc si tratta?

Secondo me l errore sta nel fatto che le variabili  cosi come le dichiari tu van bene per variabili globali o locali.

Mentre per gli ingressi e uscite fisici devi rifarti alla configurazione hardware che non capisco bene nel tuo caso dove si trova

Link al commento
Condividi su altri siti

Si tratta di un wago 750-842.

La configurazione harware l'ho rimossa per dare seguito al suggerimento di marco1278 (sempre che ho capito cosa intendeva).

Ho riprovato con questa configurazione, e come dicevo anche nel primo post non ottengo risultati.

Come puoi vedere dalle immagini l'editor mi dice che l'uscita è attiva, ma il plc non l'ha attivata.

Per completezza aggiungo che l'editor lo eseguo direttamente sul PLC, non con il simulatore ma non credo che la cosa faccia differenza.

Mi sai dire se la confgurazione hardware è corretta?


 

PROGRAM PLC_PRG
VAR
END_VAR


output1 := TRUE;

 

Debug:

immagine.thumb.png.b8399966ec2777365ce4ece6a333f41c.png

 

Hardware:

immagine.png.3248ec1133fc8659d26e1fe293924b4b.png

Link al commento
Condividi su altri siti

Ora sembra gia meglio,almeno hai hardware.

Non conosco bene wago ma provo a dirti cio che pare a me.

Nella sezione hardware vedo solo la scheda uscite non è che ci va anche la cpu per processare il tuo prog?

 

Inoltre il programma lo compili e lo scarichi?

Link al commento
Condividi su altri siti

Nella sezione hardware non posso inserire la cpu, ma l'ho già selezionata in precedenza tramite un'altra form che riporto qui di seguito.

Ho ricontrollato ma le uniche cose che posso gestire nella sezione hardware sono i moduli di I/O.

 

Il programma va compilato e poi scaricato nel PLC. Ho anche provato a generare un programma di boot (cioè che viene caricato nella EEPROM del PLC) e scaricarlo ma non cambia nulla.

 

Nel target setting ho provato diverse combinazioni dei vari flag ma non ho notato alcuna differenza di comportamento.

 

Secondo te è possibile che la comunicazione con i moduli vada necessariamente fatta in modbus anche dal PLC stesso (su localhost o qualcosa del genere)?

 

immagine.png.7742fed063879ea7eadfd84c0fbcfaa6.png

Link al commento
Condividi su altri siti

No non credo che ti serva il mod bus in quanto cpu wago e moduli wago hanno bus proprio su cui comunicano il quale passa attraverso le piedinature a contatto poste sul lato, a proposito hai verificato che sui lati hai lo stesso numero di pin tra cpu e modulo DO?

Prova a connettere e configurare anche il modulo DI vediamo se ti rileva l ingresso.

Ripeto non comosco bene wago ho lavorato con altri dispositivi codesys ma mi sembra strano nel menu a tendina hardware che non ci sia la CPU

Link al commento
Condividi su altri siti

L output 1 nella foto precedente è blu perche l hai selezionata o perche l hai messa true?

Sotto la voce fieldbus variabiles cosa puoi aggiungere? Anche se quello è il bus di campo non credo centri, le variabili con voce AT per me son corrette

Link al commento
Condividi su altri siti

Ho aggiunto il modulo di input e l'ho configurato.

l'output_1 è blu perchè il programma lo imposta a TRUE, io non ho selezionato nulla.

Nella voce fieldbus variables posso aggiungere variabili di ingresso e uscita di vario tipo (BOOL, BYTE, WORD, ecc.). Ho provato anche utilizando quelle ma senza risultato.

 

Programma

PROGRAM PLC_PRG
VAR
END_VAR

output1:=input_1;

l'output_1 rimane fisso a FALSE anche se input_1 è TRUE. Quindi l'input non viene rilevato.

Nel primo post ho scritto che l'input analogico viene rilevato correttamente, e lo confermo anche ora. L'ho appena riprovato.

I piedini sono corretti, infatti in modbus riesco ad attivare le uscite e leggere gli ingressi.

 

Non so più cosa altro provare... l'I/O dovrebbe essere una cosa piuttosto immediata in un PLC.

 

Debug:

immagine.thumb.png.2d36c028e0aa610270d24775136854d1.png

 

Hardware:

immagine.thumb.png.d12321c4589e8444951681b81c4bcd8f.png

Link al commento
Condividi su altri siti

Strano gli ingressi quindi vengono processati ma le uscite non vengono scritte.

Hai provato anche con il ladder? Forse non centra nulla ma qualche volta è sbagliata la sintassi

Link al commento
Condividi su altri siti

Scusa ma penso di non essermi spiegato bene.

Solo gli ingressi analogici vengono processati, quelli digitali no! Che è ancora più strano a mio avviso.

In pausa pranzo provo con il ladder e faccio sapere.

Link al commento
Condividi su altri siti

Cerco di spiegarmi meglio.

Il problema è che il programma non rileva gli ingressi digitali infatti gli screenshot mostrano il DO1 a 1 nella process image, ma a FALSE nell'editor.

La stessa cosa vale per le uscite digitali. La process image mostra le uscite a 0, mentre nell'editor sono a TRUE.

Gli ingressi analogici invece vengono rilevati sia nella process image che nell'editor.

Non ho nessun modulo AO a disposizione, quindi non riesco a verificare cosa succede in questo caso.

è come se ci fosse un problema di comunicazione o di configurazione che però si verifica solo con gli I/O digitali.

Link al commento
Condividi su altri siti

Mi viene in mente che forse si tratta di un problema di alimentazione.


Io ho collegato la testa con un modulo di alimentazione 750-613 e di seguito i 3 mobili I/O. Infine il modulo terminatore 750-600.


Ovviamente la testa è collegata ad un alimentatore da 24V, così come il modulo di alimentazione.


Penso sia tutto corretto giusto?

Link al commento
Condividi su altri siti

Scusate l'insistenza ma mi sembra troppo strano non riuscire a leggere gli ingressi e scrivere le uscite di un PLC...

C'è qualcuno che mi sa dare qualche spunto?

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