Vai al contenuto
PLC Forum


Comunicazione tra un S7-1200 e HMI esterno a Siemens


tecnoAB

Messaggi consigliati

Salve a tutti,

 

sono nuovo sul forum. Sono un ragazzo. Lavoro su S7-1200 in tutti i progetti che faccio. 

In questo periodo sto facendo delle prove di comunicazione tra 2 CPU (una S7-1200 1212C DC/DC/DC aggiornata al firmware 4.3.1 e l'altra una CPU S7-1200 1212C DC/DC/RLY aggiornata anche lei alla versione 4.3.1 del firmware). Oltre a questo sto cercando di fare comunicare un PLC e un HMI marcato Fuji Electric, modello TS1071i.

Vi presento i miei problemi:

 

1- Comunicazione tra PLC

Sto facendo mille prove, ma non comunicano, o meglio i blocchi GET e PUT non fanno niente. Durante la sperimentazione ho scaricato il programma creato dai tecnici Siemens, in cui creano un collegamento S7 con GET e PUT (Fortunatamente le CPU erano le stesse solo con il firmware vecchio, quindi ho aggiornato sul progetto fornito le due CPU con i nuovi firmware).

Qualche giorno fa il programma scaricato dal sito Siemens ha funzionato, ma oggi non va. Anche dei progetti che ho fatto io di prova non funzionano, ma magari ho fatto qualche errore io, può essere, ma è strano perché le due funzioni GET e PUT non ciclano neanche, come nel programma scaricato dal sito Siemens.

Vi è mai successo? Come posso risolvere? 

Entrambi i PLC sono collegati tra loro e al PC tramite uno Switch TP_Link.

 

 

2- Comunicazione con HMI Fuji Electric

Sto provando a far comunicare una CPU S7-1200 (Precisamente la versione S7-1200 1212C DC/DC/RLY aggiornata alla versione 4.3.1 del firmware) con un HMI fornitomi dalla mia ditta, il modello è il MONITOUCH TS1071i marcato Fuji Electric. Guardando il datasheet di questo dispositivo non si capisce bene che protocollo di comunicazione utilizza, nella sezione 'Siemens' di questo datasheet dice che quello che viene utilizzato con comunicazione PROFINET è ISO on TCP.

Nelle mie prove, sono riuscito a caricare un programma sul questo HMI, e sul PLC ho provato ad utilizzare sia il blocco MB_Client, sia i blocchi TCON, TSEND_C e TRCV_C. Li avevo inseriti in un blocco unico e ho fatto che se attivavo un ingresso disattivavo il blocco MB_CLIENT e attivavo le altre funzioni di comunicazione prima citate, e viceversa. Non comunicava, ma da un momento all'altro i due dispositivi si sono messi a comunicare. Infatti sull'HMI ho visto la disposizione che avevo creato, con un errore di comunicazione (Probabilmente dovuto ad una variabile inserita male nel suo programma di messa a punto). Sono andato avanti con altri programmi, per poi riprovarci, anche con altri programmi simili, ma non c'è verso di comunicare tra di loro, anche utilizzando il programma in cui ero riuscito a farli comunicare.

Qualcuno ci ha mai avuto a che fare con questo dispositivo? Sa darmi qualche consiglio su come farli comunicare? O sulla comunicazione con dispositivi esterni a Siemens?

Lo chiedo da inesperto dato che sto studiando ancora alcune cose del PLC, qual è la differenza tra ad esempio il blocco MB_Client e i blocchi TCON, TSEND e TRCV, e tra  TSEND, TRCV e TSEND_C ,TRCV_C?

 

Ringrazio anticipatamente delle risposte, e mi scuso della lunghezza del mio testo, ma ho cercato di essere il più chiaro possibile.

Link al commento
Condividi su altri siti


15 minuti fa, tecnoAB ha scritto:

ma magari ho fatto qualche errore io

Ritengo questa ipotesi molto probabile, ma vorrei capire come possiamo trovare l'errore senza vedere il programma.

 

 

Link al commento
Condividi su altri siti

Si, ha ragione.

Questo è la funzione PUT che ho creato oggi. Il blocco rimane cosi, sia con M0.0 attivo o disattivo.

 

image.thumb.png.991268744aae099368ed712fc7ebcd1e.pngimage.thumb.png.1b90e1607c74c471a0de31ae0f21bb0b.pngimage.thumb.png.0ba97765583973f2dba7a99a0d7637be.png

 

 

 

image.png

Modificato: da tecnoAB
Link al commento
Condividi su altri siti

intanto il put o il get funzionano solo con fronte di salita, quindi inizia a sostituire il bit m0.0 con un bel clock e poi vedi se cambia qualcosa a livello di bit di errore

Poi verifica che i DB siano del tipo non ottimizzato e sulle due CPU sull'hardware hai abilitato la spunta "Consenti comunicazione PUT e Get ecc ecc".

Poi dall'Online che hai messo si vede che la comunicazione dice che è differente Offline da Online.

Clicca sul progetto e ritrasferisci anche l'hardware

Modificato: da 84paolo
Link al commento
Condividi su altri siti

Si, non l'ho fatto vedere nel programma, ma il bit M0.0 si 'azionato' da un merker di clock. 

Si, avevo già attivato la spunta "Consenti comunicazione PUT/GET ... ", e i DB non erano di tipo ottimizzato.

Sono riuscito a farli comunicare, avevo fatto un errore sui DB, avevo messo sui DB un'array di bool, ma a quanto ho capito i bool non si possono passare tutti insieme in un blocco, devo farlo a livello di byte, quindi ho convertito l'array in una di byte e ho associato ad ogni byte un bit tramite delle IF in SCL. 

Ho ricaricato le configurazioni hardware delle 2 CPU e si sono messe a comunicare.

Grazie.

 

Per quanto riguarda il collegamento con dispositivi esterni a Siemens avete qualche consiglio?

 

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