Vai al contenuto
PLC Forum


SCL s71500 - indirizzamento assoluto periferia


toni_unitn

Messaggi consigliati

Scusate se vi tartasso di domande...

 

ma in SCL per s71500 non si può puntare a una word della periferia in modo assoluto? Sono obbligato a passare per una tabella delle variabili?

 

 

Ho visto che c'è l'istruzione PEEK / POKE che permette un indirizzamento indiretto, ma funziona solo con i BYTE e i BIT quindi se devo comporre una WORD di uscita o di ingresso mi costringe a scrivere della logica.

 

Grazie

 

 

Link al commento
Condividi su altri siti


14 minuti fa, toni_unitn scrisse:

ma funziona solo con i BYTE e i BIT

No, PEEK e POKE funzionano anche con altri formati.
Però, una domanda: sei sicuro che quella di indicizzare sia la strada giusta?
Spiega cosa devi fare. Magari c'è un modo migliore per ottenere il risultato.

Link al commento
Condividi su altri siti

più che indicizzare, volevo poter puntare in modo assoluto alla periferia.

Ho una struttura dati (tipi di dati definiti dall'utente), che uso in tutto il programma della macchina, con tutto l'hardware che ci può essere in una macchina (intendo fotocellule,pressostati, motori, ecc).  

Ho una routine in SCL da compilare ad ogni commessa in cui si va a puntare, per ciascun elemento "fotocellula" o "sonda" o "proximity" della suddetta struttura, alla relativa periferia.

Questo perchè purtroppo il livello di standardizzazione delle macchine non è eccelso, e questo mi è sembrato il modo più rapido per mettere in piedi un software che poi andrà in mano a chi, almeno per il momento, ha poca confidenza sia con le macchine che con l'ambiente di sviluppo, per limitare al minimo le modifiche al programma

 

Questo sistema l'ho fatto a suo tempo in rockwell e mi ha soddisfatto, quindi volevo ripeterlo in Siemens, ora che siamo passati al TIA portal 

Link al commento
Condividi su altri siti

8 ore fa, toni_unitn scrisse:

Ho una struttura dati (tipi di dati definiti dall'utente), che uso in tutto il programma della macchina, con tutto l'hardware che ci può essere in una macchina (intendo fotocellule,pressostati, motori, ecc).  

Questa struttura è sempre uguale per tutte le macchine?

 

8 ore fa, toni_unitn scrisse:

Ho una routine in SCL da compilare ad ogni commessa in cui si va a puntare, per ciascun elemento "fotocellula" o "sonda" o "proximity" della suddetta struttura, alla relativa periferia.

Questo passaggio non mi è chiaro. Potresti fare un esempio?

Link al commento
Condividi su altri siti

5 ore fa, batta scrisse:

Questa struttura è sempre uguale per tutte le macchine?

 

In pratica no, cambia a seconda del tipo di macchina, 

 

Quote

Questo passaggio non mi è chiaro. Potresti fare un esempio?

 

nei blocchi di codice, quando mi serve sapere il dato , ad esempio, di una fotocellula, mi riferisco alla struttura:

 

HW.DI.Photocels.NomeFotocellula

Quindi ci dovrà essere un punto dove specifico l'indirizzo della periferia, per ogni elemento della struttura:

 

HW.DI.Photocels.NomeFotocellula := %E200.0

E' stato fatto così perchè non sempre gli indirizzi sono gli stessi. Inoltre, se in una determinata macchina, quella fotocellula non c'è, si imposta a 1 o a 0 il valore in modo che non dia fastidio

 

HW.DI.Photocels.NomeFotocellula := 0;

 

Se non ho capito male Tia, mi obbliga a passare per una tabella delle variabili se voglio puntare all'indirizzo assoluto della periferia, e questo per me è solo un passaggio in più che non sarebbe necessario

 

Modificato: da toni_unitn
Link al commento
Condividi su altri siti

Tia (e questo lo considero un pregio, non un  difetto) è fatto per lavorare con i simboli.
Tu puoi anche scrivere HW.DI.Photocels.NomeFotocellula := %E200.0, e TIA assegna un nome alla variabile (Tag_xxx).
Considera poi che l'appoggio alla struttura, lavorando con i simboli, è quasi inutile: ti basterebbe avere la tabella dei simboli, e cambiare gli indirizzi in questa tabella.

In ogni caso, non si tratta di usare PEEK, POKE o puntatori, ma solo di fare un'assegnazione, una per una, alle variabili usate.
La tabella I/O la puoi anche creare con excel, a fare copia/incolla.

 

Link al commento
Condividi su altri siti

Quote

La tabella I/O la puoi anche creare con excel, a fare copia/incolla.

 

A questo non avevo pensato, mi tornerà senz'altro utile

 

Il problema è che ho la mentalità di step7 e è dura cambiare modo di pensare

 

grazie

Link al commento
Condividi su altri siti

16 ore fa, toni_unitn scrisse:

Il problema è che ho la mentalità di step7 e è dura cambiare modo di pensare

Ti capisco, ma per esempio in questo periodo sto progettando un impianto di cui non ho ancora la mappatura degli ingressi / uscite in quanto la progettazione elettrica è in ritardo. Io so esattamente tutto quello che serve e la lista I/O è basata su flag in modo da poter provare in ufficio solamente con una CPU o una simulazione. 

Quando il progetto elettrico è completato esporto il file excel e lo aggiorno con gli indirizzi finali, quindi re-importo tutto e il gioco è fatto.

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