Vai al contenuto
PLC Forum


profinet regole assegnazione indirizzi IO


arbez

Messaggi consigliati

Ciao a tutti, qualcuno sa che criterio usa TIA per assegnare gli indirizzi di I/Q nella configurazione di un dispositivo profinet?

In alcuni uso la tecnica di associare le aree I e Q a dei tipi di dato utente in modo da gestirne la struttura a oggetti, per questo motivo le aree del singolo dispositivo devono essere consecutive, quindi manualmente modifico gli indirizzi che tia assegna di default, nel caso di molti dispositivi o di molte variabili questa fase diventa seccante.

Link al commento
Condividi su altri siti


@ken, mi sfugge per caso qualcosa? da quel che dici esiste un modo per accedere agli indirizzi di periferia tramite simbolico?

sarebbe fantastico poter scrivere: profinetDevice1.pipporegistro1        oppure  profinetDevice1.slot1

Link al commento
Condividi su altri siti

10 ore fa, arbez scrisse:

@ken, mi sfugge per caso qualcosa? da quel che dici esiste un modo per accedere agli indirizzi di periferia tramite simbolico?

sarebbe fantastico poter scrivere: profinetDevice1.pipporegistro1        oppure  profinetDevice1.slot1

 

Puoi farlo. Ad esempio supponiamo che utilizzi la funzione DPRD_DAT per leggere l'IO, nell'ingresso LADDR puoi dargli direttamente il nome simbolico. In questi casi poi l'autocompletamento aiuta molto.

Link al commento
Condividi su altri siti

Quote

@ken, mi sfugge per caso qualcosa? da quel che dici esiste un modo per accedere agli indirizzi di periferia tramite simbolico?

sarebbe fantastico poter scrivere: profinetDevice1.pipporegistro1        oppure  profinetDevice1.slot1

Come dice "Suppaman87", puoi anche farlo. Sinceramente, più che una cosa fantastica mi sembra un modo per farsi male, dato che per fare un programma leggibile dovrai sempre appoggiare gli I/O letti in questo modo ad altre variabili con un nome che abbia un significato.
La lettura/scrittura di intere aree di periferia risulta comoda quando devi accedere ai dati, per esempio, di un inverter, o di altri dispositivi con una struttura di dati di una certa complessità, non certo per l'accesso a normali I/O.
In questo caso Ken voleva dire che puoi anche lasciare gli indirizzi che il TIA assegna in automatico, tanto tu dopo darai dei nomi agli I/O (lo puoi fare anche direttamente nella configurazione hardware del modulo), e nel programma userai i nomi, non gli indirizzi.
Se successivamente cambi gli indirizzi ad un modulo, TIA ti chiede se vuoi rimappare le variabili collegate. Se rispondi di sì, modifica in automatico la lista I/O e non devi modificare nulla nel programma.

Il TIA comunque assegna in automatico sempre i primi indirizzi liberi, che puoi modificare manualmente. Se a mano assegni indirizzi già occupati, non li accetta e ti suggerisce il primo indirizzo disponibile.

Link al commento
Condividi su altri siti

come dice batta. in Tia ciò che conta è il simbolo. lo vedi anche nel modo che hanno di lavorare nei filmati prodotti direttamente da Siemens. L'area di memoria M (merker) non la editano come faccio io (e come penso la maggior parte di noi) utilizzando sempre gli stessi merker e utilizzandoli a blocchi di byte. per me M128.7 è sempre ripristino eseguito, in tutti i software fatti. anche altri merker sono e saranno sempre identici.

in TIA invece lasciano l'indirizzo che Tia propone e scrivono il simbolo che vogliono.

 

Comunque anche S7 propone sempre i primi liberi. non è che sia cambiato più di tanto

Link al commento
Condividi su altri siti

1 ora fa, batta scrisse:

Come dice "Suppaman87", puoi anche farlo. Sinceramente, più che una cosa fantastica mi sembra un modo per farsi male, dato che per fare un programma leggibile dovrai sempre appoggiare gli I/O letti in questo modo ad altre variabili con un nome che abbia un significato.
La lettura/scrittura di intere aree di periferia risulta comoda quando devi accedere ai dati, per esempio, di un inverter, o di altri dispositivi con una struttura di dati di una certa complessità, non certo per l'accesso a normali I/O.

 

Concordo. 

Link al commento
Condividi su altri siti

Il termine I/O nella mia domanda forse ha tratto in inganno, era riferito alle aree di IO configurate. Condivido il metodo di assegnare i simboli in configurazione hardware ma nel mio caso ho più dispositivi con configurazione identica ed associarli ad un UDT che rispecchia la struttura dati offre vari vantaggi, gestire un unico indirizzo e poter avere il nome simbolico dei singoli bit (ad esempio di una status word    dispositivo1.statusWord1.enable       ), poter passare la struttura dati come parametro ad un FB ecc.. Naturalmente ci sono degli svantaggi, occorre definire un tipo di dati per le aree di input e uno per le aree di output oltre a quello che in caso di errore di assegnazione di un indirizzo il compilatore non può essere di aiuto.

 

Link al commento
Condividi su altri siti

Ma anche se utilizzi i tipi di dati, quando dichiari le variabili ti basta indicare il primo ingresso (o la prima uscita) dell'area interessata.

Per esempio, posso creare un tipo di dati per un telegramma di comunicazione con un drive. Nella tabella delle variabili dichiaro una variabile col nome del drive, come tipo il tipo di dati, e assegno l'indirizzo di inizio dell'area di dati del drive. Non c'è bisogno di altro. Tutto indirizzato simbolicamente con un unico riferimento ad un indirizzo. Se cambio questo indirizzo, tutto il resto va a posto da solo. 

Link al commento
Condividi su altri siti

Cesare Nicola
il 27/5/2019 at 09:46 , ken scrisse:

L'area di memoria M (merker) non la editano come faccio io (e come penso la maggior parte di noi) utilizzando sempre gli stessi merker e utilizzandoli a blocchi di byte. per me M128.7 è sempre ripristino eseguito, in tutti i software fatti. anche altri merker sono e saranno sempre identici.

Io ho cambiato filosofia da anni, preferisco il simbolico. Per me, che ne so, il ripristino eseguito, si chiamerà sempre "Ripristino_eseguito", il pulsante marcia pompa si chiamerà "PU_marcia_pompa", il teleruttore del motore pippo "KA_motore_pippo", ecc. Sto attento agli indirizzi quando ho, per esempio, PLC e pannello che non sono nello stesso ambiente, per esempio con un PLC Mitsubishi: il nome simbolico lo mantengo comunque uguale, anche se devo editare l'indirizzo. Mi rendo conto però di essere in minoranza. 🙂


 

Link al commento
Condividi su altri siti

Quote

Mi rendo conto però di essere in minoranza.

Non penso tu sia in minoranza.
Anche perché il metodo di utilizzare sempre lo stesso merker per la stessa funzione è applicabile solo se si gestisce sempre lo stesso tipo di macchina o di impianto. Generalmente, questa regola è seguita dai costruttori che sviluppano internamente il proprio software.
Chi invece salta da un settore all'altro, da macchine od impianti completamente diversi, anche volendo non riuscirebbe a mantenere sempre gli stessi merker.
Devo dire poi che, negli anni, mi sono abituato ad utilizzare sempre meno i merker. A parte quelli di sistema, oramai uso i merker solo per piccoli programmi.
Dove c'è bisogno di qualcosa di più articolato, preferisco usare FB per ogni parte di macchina, e tutte le variabili sono quindi all'interno della FB stessa.
Eventuali variabili di setup, che spesso si preferisce gestirle in DB dedicati, le passo come parametri (in un solo parametro si può passare un'intera struttura).
In ogni caso, uso sempre il simbolico, mai l'indirizzo.

Link al commento
Condividi su altri siti

Cesare Nicola
7 minuti fa, batta scrisse:

Anche perché il metodo di utilizzare sempre lo stesso merker per la stessa funzione è applicabile solo se si gestisce sempre lo stesso tipo di macchina o di impianto.

Confermo. Guarda caso, in ditta da me, chi è affezionato a quel sistema segue quasi esclusivamente due clienti, per i quali realizza macchine più o meno simili da anni e si porta dietro lo stesso software apportando ogni volta piccole modifiche.

Link al commento
Condividi su altri siti

Condivido il metodo di batta, otre a mantenere leggibile il programma si inserisce correttamente nella programmazione ad oggetti. Temo che la discussione sia ormai finita un po' OT, concludo solo con un pizzico di invidia per  :

Quote

segue quasi esclusivamente due clienti, per i quali realizza macchine più o meno simili da anni e si porta dietro lo stesso software apportando ogni volta piccole modifiche.

😀

Link al commento
Condividi su altri siti

Personalmente, nessuna invidia per chi lavora sempre sulle stesse cose. Magari hai meno rotture di scatole, ma sai che noia 😉

 

Link al commento
Condividi su altri siti

Cesare Nicola
8 ore fa, batta scrisse:

Personalmente, nessuna invidia per chi lavora sempre sulle stesse cose. Magari hai meno rotture di scatole, ma sai che noia 😉

 

Dopo 20 anni a lavorare sulle stesse cose, da tre e mezzo salto di palo in frasca: a volte è difficile, ma non tornerei indietro.

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