andreapier Inserito: 23 febbraio 2020 Segnala Share Inserito: 23 febbraio 2020 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 More sharing options...
andreapier Inserita: 25 febbraio 2020 Autore Segnala Share Inserita: 25 febbraio 2020 Buongiorno di nuovo, nessuno mi sa dare qualche dritta? Link al commento Condividi su altri siti More sharing options...
marco1278 Inserita: 25 febbraio 2020 Segnala Share Inserita: 25 febbraio 2020 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 More sharing options...
andreapier Inserita: 25 febbraio 2020 Autore Segnala Share Inserita: 25 febbraio 2020 (modificato) 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: Risultato: Modificato: 25 febbraio 2020 da andreapier Correzione immagine Link al commento Condividi su altri siti More sharing options...
alessandropa Inserita: 25 febbraio 2020 Segnala Share Inserita: 25 febbraio 2020 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 More sharing options...
andreapier Inserita: 25 febbraio 2020 Autore Segnala Share Inserita: 25 febbraio 2020 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: Hardware: Link al commento Condividi su altri siti More sharing options...
alessandropa Inserita: 25 febbraio 2020 Segnala Share Inserita: 25 febbraio 2020 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 More sharing options...
andreapier Inserita: 25 febbraio 2020 Autore Segnala Share Inserita: 25 febbraio 2020 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)? Link al commento Condividi su altri siti More sharing options...
alessandropa Inserita: 25 febbraio 2020 Segnala Share Inserita: 25 febbraio 2020 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 More sharing options...
alessandropa Inserita: 25 febbraio 2020 Segnala Share Inserita: 25 febbraio 2020 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 More sharing options...
andreapier Inserita: 25 febbraio 2020 Autore Segnala Share Inserita: 25 febbraio 2020 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: Hardware: Link al commento Condividi su altri siti More sharing options...
alessandropa Inserita: 26 febbraio 2020 Segnala Share Inserita: 26 febbraio 2020 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 More sharing options...
andreapier Inserita: 26 febbraio 2020 Autore Segnala Share Inserita: 26 febbraio 2020 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 More sharing options...
alessandropa Inserita: 26 febbraio 2020 Segnala Share Inserita: 26 febbraio 2020 Nell ultima foto che hai postato nella process image degli ingressi il primo bit è a 1 Link al commento Condividi su altri siti More sharing options...
andreapier Inserita: 26 febbraio 2020 Autore Segnala Share Inserita: 26 febbraio 2020 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 More sharing options...
andreapier Inserita: 26 febbraio 2020 Autore Segnala Share Inserita: 26 febbraio 2020 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 More sharing options...
andreapier Inserita: 29 febbraio 2020 Autore Segnala Share Inserita: 29 febbraio 2020 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 More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora