Ctec Inserito: 12 febbraio 2024 Segnala Inserito: 12 febbraio 2024 Anche in TIA non è ancora disponibile il tipo UNION (male comune, lo trovo disponibile solo in Sysmac Studio tra i PLC che uso). Peccato perché è davvero utile, soprattutto se hai fatto qualcosa in C. Ora, per aggirare l'ostacolo, in altri sistemi si utilizzano gli indirizzi assoluti e quindi si può accedere ai dati in maniera multipla. Faccio un esempio. Ho una serie di bit che fanno riferimento a degli stati, e io ho bisogno di poter accedere sia ai singoli bit, che alla loro totalità, generalmente in formato Word. Quindi definisco i bit in area M (memorie, non Merker), partendo da un bit che sia l'inizio anche della memoria a word da accedere. In IEC sarebbe: bit 0 => %MX10.0 bit 1 => %MX10.1... Ciascuno con il suo nome e descrizione. E anche stato => %MW10 (il 10 indica l'inizio della stessa area). Come è possibile farlo in TIA? Ho definito un UDT mio, ma non riesco ad associarci un indirizzo. Sennò devo probabilmente definire tutti i bit singolarmente senza UDT?
batta Inserita: 12 febbraio 2024 Segnala Inserita: 12 febbraio 2024 Non so cosa sia UNION in Omron ma, per convertire strutture o array di bit in word (e altro) e viceversa, guarda le istruzioni Gather e Scatter. In quanto all'accesso al singolo bit di una variabile con nomevariabile.xnn, si fa anche in Siemens.
Roberto Gioachin Inserita: 12 febbraio 2024 Segnala Inserita: 12 febbraio 2024 Credo che Ctec voglia poter dare un nome alla variabile WORD e poi altri 16 nomi ai singoli bit della stessa WORD. In genere questa cosa è fattibile andando a dichiarare i nomi nelle DUT (credo UDT per Siemens), fattibile più o meno tutti i PLC non Siemens, per cui credo sia fattibile anche su Siemens.
batta Inserita: 12 febbraio 2024 Segnala Inserita: 12 febbraio 2024 C'è anche la "sovrapposizione con AT".
Ctec Inserita: 12 febbraio 2024 Autore Segnala Inserita: 12 febbraio 2024 Le Union sono variabili di tipo diverso che condividono la stessa memoria. Roberto ha azzeccato la cosa. E' molto usato in C. I Gather e Scatter fanno un'operazione diversa. Su altri PLC (Mitsubishi, LS, CJ2 Omron..) si fa proprio definendo delle UDT e assegnandole poi a indirizzi fisici sovrapposti. Batta, avevo visto la Sovrapposizione, ma da quel che capisco vale solo per i parametri di passaggio per funzioni, altrimenti la AT non c'è. O non ho capito bene come si usa. Il punto è che il TIA non mi fa assegnare una variabile di tipo UDT a una locazione M (lo fa solo con le I e le Q). Quindi mi frega... Ah, sto lavorando per un S7-1200. Per il momento, ho definito delle variabili bool in area M, e una variabile word sempre in area M, e in simulazione pare andare. Con gli UDT non riesco a farlo.
Mattia Spoldi Inserita: 13 febbraio 2024 Segnala Inserita: 13 febbraio 2024 Purtroppo le union intese come dici tu(stile sysmac o codesys o C) su siemens non ci sono ancora, notizie non ufficiali dicono che arriveranno con una prossima versione del TIA. La cosa più simile, è la sovrapposizione AT, ma per usarla come chiedi c'è da fare un giro un po' strano, 1 - dovresti dichiarare un FB/FC, modificare le proprietà e togliere la spunta al "Non ottimizzato", 2 - dichiari la tua variabile di tipo <udt1> nelle statiche/temporanee 3 - subito sotto dichiari la variabile di tipo <udt2> e come tipo di dati scegli AT 4 - in automatico il tia ti "aggancia" la seconda variabile alla prima 5 - modifichi il tipo di dato della seconda variabile nel tipo che effettivamente ti serve<udt2>(il TIA in automatico ti mette bool) 6 - se ti servono altre union riparti da 1, se ti servono più variabili in union riparti da 3 in questo modo crei una sorta di union, da dentro l'FB/FC puoi accederci con la variabile che preferisci e i dati saranno "letti/scritti" nella stessa locazione di memoria, purtroppo, nel caso di FB, dall'esterno potrai accedere solo alla variabile principale. se ti dovesse servire un esempio chiedi pure
Ctec Inserita: 13 febbraio 2024 Autore Segnala Inserita: 13 febbraio 2024 Grazie, provato e funziona, ma come giustamente detto, fuori FB non funziona, quindi come globale non ha molto senso. Non avevo proprio capito il funzionamento della sovrapposizione, è comunque bene a sapersi. Va bene, speriamo allora nel TIA 20... Per ora ho fatto (poco elegante) lavorando direttamente su variabili in assoluto. Brutto ma funziona.
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