toni_unitn Inserito: 6 agosto 2019 Segnala Inserito: 6 agosto 2019 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
batta Inserita: 6 agosto 2019 Segnala Inserita: 6 agosto 2019 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.
toni_unitn Inserita: 6 agosto 2019 Autore Segnala Inserita: 6 agosto 2019 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
batta Inserita: 7 agosto 2019 Segnala Inserita: 7 agosto 2019 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?
toni_unitn Inserita: 7 agosto 2019 Autore Segnala Inserita: 7 agosto 2019 (modificato) 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: 7 agosto 2019 da toni_unitn
batta Inserita: 7 agosto 2019 Segnala Inserita: 7 agosto 2019 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.
toni_unitn Inserita: 7 agosto 2019 Autore Segnala Inserita: 7 agosto 2019 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
pigroplc Inserita: 8 agosto 2019 Segnala Inserita: 8 agosto 2019 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.
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