Cesare Nicola Inserito: 25 novembre 2003 Segnala Inserito: 25 novembre 2003 Buongiorno a tutti. Sono un nuovo iscritto al forum ed utilizzo CPU Siemens 314 (compact e non). Ho spesso il problema di avere ingressi es uscite che cambiano indirizzo a seconda della configurazione HW, ma che eseguono sempre la stessa funzione. Ovvero: E0.0 può diventare ad esempio E8.0, ma l'FB (o FC) in cui è utilizzato è lo stesso. Per non modificare ogni volta il codice, avevo pensato di parametrizzare l'FB, prelevando i parametri da una DB di configurazione che andrò a modificare ogni volta sia necessario. Vorrei quindi poter scrivere, suponiamo in DB100.DBW1, come valore, E0.0 ad esempio e poi come parametro dell'FB utilizzare DB100.DBW10. E' possibile? Lo stesso problema ce l'ho ovviamente anche con le uscite. Se no come potrei fare? Sono costretto ad utilizzare i moduli jolly? Grazie a tutti.
rguaresc Inserita: 25 novembre 2003 Segnala Inserita: 25 novembre 2003 Puoi usare lo strumento Step 7 "ricablaggio" . Ti permette di cambiare gli indirizzi da un progetto all'altro.
Ivan Castellaro Inserita: 25 novembre 2003 Segnala Inserita: 25 novembre 2003 Puoi indicizzare gli I/0 nel fb e poi gli cambi il numero di byte da un progetto all'altro:es:L #NrByteE //Numero byte ingressi L 8 * I // moltiplico per 8 per avere il puntatore a byteLAR1 // carico nel registro indirizzi 1 U E [AR1,P#0.7]// INGRESSO Ex.7 (ES. E8.7) UN E [AR1,P#1.5] // INGRESSO Ex+1.5 (ES. E9.5)
Federico Milan Inserita: 25 novembre 2003 Segnala Inserita: 25 novembre 2003 Anchio farei come ivan ... però devo avertirti che in questo modo addio alla crossreference ! ... ma se il tuo codice è testato !!!! ...ciao
suibaf Inserita: 25 novembre 2003 Segnala Inserita: 25 novembre 2003 Tempo fa mi consegnarono nell'azienda dove lavoro una macchina con un plc siemens s7 315 programmato così come ha suggerito Ivan (o poco diverso). Magari evita lavoro a voi che fate 100 macchine tutte uguali però penalizzate la leggibilità del software!!
Ivan Castellaro Inserita: 25 novembre 2003 Segnala Inserita: 25 novembre 2003 (modificato) Sicuramente con un sistema del genere devi commentare molto....Tieni conto che anche la velocita' di elaborazione è piu' bassa con l'indicizzato (ci mette piu' tempo)Un'altra alternativa che mi viene in mente è quella di copiare byte a byte gli ingressi su dei merker o blocco dati,es:AUF DB100 L EB8 T DBB0 L EB9 T DBB1 U DBX0.7 // Ingresso E8.7 UN DBX1.5 // Ingresso E9.5 Modificato: 25 novembre 2003 da Ivan Castellaro
Cesare Nicola Inserita: 25 novembre 2003 Autore Segnala Inserita: 25 novembre 2003 Grazie a tutti per le risposte anche se, effettivamente, ognuna presenta qualche inconveniente (cross reference, tempo di esecuzione, leggibilità, ecc.). Per Federico Milan: dire che il codice è testato è una parolona!!! In genere, almeno per quanto mi riguarda, il codice è testato solo fino a quando mi accorgo del contrario!!! Grazie ancora
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