Vai al contenuto
PLC Forum


Scambio Dati Tra Cpu Con Porta Pn Integrata


TRC

Messaggi consigliati

Buon giorno a tutti, ho letto già i post della comunicazione tra CPU Siemens e il manual funzioni di sistema Siemens.

Ho 3 macchine già funzionanti CPU 317 PN e Step 7 v5.4, devo scambiare 100 byte tra le 3 macchine, le 3 macchine sono collegate tra loro tramite Ethernet nelle porte integrate del PLC

non ho nessuna scheda CP. Quello che vorrei fare è creare 3 DB identici in ogni CPU e successivamente far leggere alle varie CPU i blocchi delle altre

A legge B e C

B legge A e C

C legge A e B

Per far questo ho trovato 3 blocchi che sembrano fare al caso mio

FB13 BRCV

FB14 GET

SFC67 X_GET (questo può essere usato solo con MPI ?)

Più in generale, per ogni configurazione HW ho una CPU collegata in Ethernet TCP/IP a uno SCADA, una rete Profibus collegata ai vari dispositivi a bordomacchina e una rete MPI collegata a un paio

di pannellini operatore a bordomacchina, lo scambio dati in MPI non è accettato tra le opzioni.

Per lo scambio dati tra CPU devo integrare i 3 software in un unico progetto ?

Ho fatto delle prove tipo creando un multiprogetto, oppure copiando e incollando in un nuovo progetto le sottocartelle delle CPU e dei pannelli, in net pro ho collegato le 3 cpu in Ethernet e ho creato

3 reti profibus differenti, facendo così, quando mi collego alle CPU devo ricaricare le 3 configurazioni HW. E' possibile scambiare i dati tra CPU non cambiando niente nella configurazione HW?

Ho provato un esempio Siemens con PUT e GET ma non ho capito dove impostare l'indirizzo IP. Grazie

Modificato: da TRC
Link al commento
Condividi su altri siti


Io ho utilizzato un paio di anni or sono i blocchi FB 15 e FB 14 PUT e GET, quindi nel netpro ho dichiarato un collegamento S7 dove chi gestisce la comunicazione è anche chi inizializza il collegamento. Per comodità il PLC che non gestisce il collegamento non fa nulla, ma si trova i flag cambiati nel DB dichiarato come scambio dati, quindi un watchdog è semplice da controllare, basta copiare un flag che ti arriva nella DB sulla DB si spedizione. Entrambi i partecipanti sono quindi in grado di verificare se lo scambio dati avviene correttamente semplicemente con un timer.

tutti i PLC devono stare nello stesso progetto ovvimente, il numero di ID del collegamento DEVE coincidere per forza con il parametro della FB.

Esisteranno sicuramente sistemi più furbi, ma questo ti assicuro che è un paio di anni che funziona.

pigroplc

Link al commento
Condividi su altri siti

Il numero ID del blocco DB cos'è ? E' l'ultimo numero dell'indirizzo IP, è un numero associato ad unindirizzo IP (se si dove si associano il numero e l'indirizzo IP), grazie.

Link al commento
Condividi su altri siti

Il numero di ID nel blocco FB è il numero di corrispondenza dell'assegnazione del collegamento sul netpro:

a livello netpro dichiari il collegamento dal plc1 al plc2 con la caratteristica S7 (lo dichiari all'inizio della procedura). Nei vari passaggi c'è una specie di box dove viene inserito in ingresso il numero di identificazione che deve combaciare livello di richiamo della FB (per default dovrebbe essere = 1)

pigroplc

Link al commento
Condividi su altri siti

Mi ricordo di aver avuto difficoltà dovute a versioni precedenti delle FB in questione, ho ripescato il progetto e ho verificato che la versione per entrambe è 1.1, mentre la lunghezza per FB14 è 5652 byte e la lunghezza per FB15 è 5536 byte. Se usi le stesse non ti garantisco che funziona ma almeno parti da una configurazione che funziona davvero. Casomai verifica se ce ne sono di più aggiornate.

pigroplc

Link al commento
Condividi su altri siti

Ho sentito un programmatore "Senior" che mi ha sconsigliato di usare PUT e GET e mi ha risolto il problema usando OC Wizard e usando una comunicazione UDP, è una soluzione un pò invasiva (nel senso che sono stati aggiunti diversi blocchi FB, DB d'istanza e SFC) però il tutto funziona. Con altre marche di PLC mi sarei aspettato di spuntare qualche opzione nella dichiarazione delle TAG per renderle condivise con altri PLC e il tutto sarebbe finito li, con la Siemens invece mi trovo con questo inutile numero di blocchi... tanto per rendere complesso ciò che per altri costruttori è banale...

Link al commento
Condividi su altri siti

Forse non sono stato abbastanza convincente, forse non sono abbastanza "senior" come programmatore, visto che lo faccio "solamente" dal 1984, forse non ho capito bene le tue esigenze, ma la soluzione che ti ho suggerito funziona di sicuro e non devi aggiungere blocchi o fare delle cose particolarmente impegnative.

Quanto al criticare Siemens nei miei pochi anni di esperienza ho utilizzato anche altre marche e potrei dire che il PLC ideale non esiste (purtroppo).

Sono a questo punto curioso di sapere come risolverai la tua applicazione.

pigroplc

Link al commento
Condividi su altri siti

Personalmente avrei preferito la tua soluzione e son convinto che avrebbe funzionato... non riuscendo a farla funzionare al primo colpo, quasi ancor prima di aver scritto questo post, è stato interpellato il nostro fornitore di plc (non da me) che avendo già sviluppato una comunicazione tra cpu, ha preso i blocchi già fatti in un'altra applicazione e li ha caricati nel mio progetto, ha detto al mio capo ufficio che funziona e a me che PUT e GET non vanno bene e di non toccare niente... anche se non so cosa ci sia scritto in quella 15ina di blocchi che non hanno niente a che vedere col resto della struttura del mio progetto...

Link al commento
Condividi su altri siti

A mio avviso l'importante è il risultato, quindi se la tua soluzione funziona tanto meglio, sarebbe interessante capire in dettaglio il suo funzionamento, a suo tempo avevo inizialmente valutato una libreria di funzioni "LCom" fornita con gli esempi per la comunicazione con Simotion. Purtroppo il fatto che non sono riuscito a farla funzionare alla svelta mi ha fatto abbandonare l'esperimento e mi ha fatto propendere per la soluzione che ti ho proposto. Il vantaggio dei blocchi della libreria LCom permettevano la trasmissione dati senza dichiarazioni sul NetPro e quindi solamente dichiarando l'indirizzo IP. Ovviamente la mancanza di tempo per "giocare" con questi blocchi mi ha obbligato verso una soluzione "sicura".

Quanto alle funzioni PUT e GET puoi tranquillamente dichiarare all'esperto di PLC che vanno bene. Basta parametrizzarle BENE!

pigroplc

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