Elettro79 Inserito: 30 giugno 2016 Segnala Share Inserito: 30 giugno 2016 Una volta messo insieme tutto e fatte le prime prove con TIA portal devo iniziare il mio primo programma con S7-300. Per organizzare le variabili ho cercato un po' di informazioni in merito, ma non ho trovato molto.... Ho trovato che i merker ritentivi sono impostabili sulla config. della CPU e di default sono 16 byte: Da M0.0 a M16.7. La variabile M0 si può aggangiare a varie frequenze leggendone i vari bit. Per quanto riguarda le MW dovrebbero essere composte da 2 byte e ciò implica che le word si sovrappongono? La MW100 se int occupa sia i bit della MW100 che della MW101? Se DINT 3 byte e 3MW in cascata occupate, è giusto? grazie a chi mi vorrà aiutare. Link al commento Condividi su altri siti More sharing options...
amed Inserita: 30 giugno 2016 Segnala Share Inserita: 30 giugno 2016 Lasciando l'impostazione di default sono ritentivi da m0.0 a m15.7. Se guardi la guida in linea ti dice che i clock sono 8, hañno diverse frequenze e li puoi attivare nel byte di tua scelta: di default è mb0 (da m0.0 a m0.7). Siccome mb0 è usato dal sistema tu non puoi scriverci ma solo leggere lo stato logico dei sigoli bit. Le word sono formate da 2 byte. Una word prende il numero del byte indicato con il numero più piccolo che comprende:avrai mw0 (byte0 e 1); mw2 (mb2 e 3). Come vedi non si sovrappongono. Mw100 comprende 2 byte: mb100 e mb101. Sono 16 bit. Mb101 è a destra (posizione meno significativa) e mb100 a sinistra (posizione piu significativa). Se 16 bit li definisci word puoi scriverci numeri in esadecimale da 0000 a FFFF. Se li definisci INT puoi scriverci numeri in decimale da -32768 a +32767. DINT è un dato scritto in 32 bit e può andare da-2 milardi e qualcosa a +2 miliardi e qualcosa. Md200, ad esempio, è una doppia word (32bit) formata dai byte (letti da sinistra a destra) mb100, mb101,b102 e mb103. Una doppia word è formata da 4 byte e prende il numero del byte indicato con il nero più piccolo. Se 32 bit li definisci doppiaword (D) puoi scriverci numeri in esadecimale da 0000 a FFFF. Ciao Link al commento Condividi su altri siti More sharing options...
Elettro79 Inserita: 1 luglio 2016 Autore Segnala Share Inserita: 1 luglio 2016 Grazie amed, ho capito, ma non mi è ancora tutto chiaro oppure è come avevo capito ma magari mi ero espresso male... Quindi se io uso ma MW0 (MB0+MB1) non posso usare la MW1 (che sarebbe composta da MB1, già usata, e MB2). Posso usare MW0, MW2, MW4 ecc ecc ? MB0 è uguale ai bit contenuti in M0 (M0.0, m0.1, m0.2...ecc)? Link al commento Condividi su altri siti More sharing options...
amed Inserita: 1 luglio 2016 Segnala Share Inserita: 1 luglio 2016 Va bene. Se hai un foglio a quadretti una riga di 8 quadretti è un byte e ogni quadretto è un bit. Ogni bit lo devi immaginare un condenstore microscopico realizzato elettronicamente. Aggiungo , per chiarire, che in un programma nulla ti vieta di usare MW51 che sarà formato MB51 e MB52. È importante che tu immagini i 2 byte uno accanto all'altro con il byte di numero maggiore a destra (mb52) e quello di numero minore a sinistra (mb51). Se i bit li leggi da destra a sinistra trovi da m52.0.. a ..m52.7, e da m51.0...a..m51.7. Link al commento Condividi su altri siti More sharing options...
Elettro79 Inserita: 3 luglio 2016 Autore Segnala Share Inserita: 3 luglio 2016 Ok, tutto chiaro, grazie. Link al commento Condividi su altri siti More sharing options...
Elettro79 Inserita: 3 luglio 2016 Autore Segnala Share Inserita: 3 luglio 2016 Ancora una domanda.... Per salvare le WORD, cioè le mie MW devo strutturarle in modo che rientrino in quelle famose 16 (M0.0 - M15.7 e cioè MW0 - MW14) oppure posso salvare anche un indirizzo diverso. Ero sicuro con Step7 che bastava una spunta in fase di dichiarazione, ma forse mi sbaglio..... Link al commento Condividi su altri siti More sharing options...
Mike65 Inserita: 3 luglio 2016 Segnala Share Inserita: 3 luglio 2016 Tutte le word mantengono il loro valore fino a che non vengono sovrascritte, se sono nel campo delle retentive rimangono in memoria anche se la CPU viene spenta. altrimenti puoi sfruttare i blocchi dati, che sono retentivi per definizione. Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 3 luglio 2016 Segnala Share Inserita: 3 luglio 2016 certo che mettersi a programmare un plc senza sapere cosa sia un byte e cosa siano i bit ...la vedo dura Esistono dei tutorial su youtube , si google etc .Almeno capire con cosa hai a che fare , non credi sia indispensabile? Link al commento Condividi su altri siti More sharing options...
Elettro79 Inserita: 3 luglio 2016 Autore Segnala Share Inserita: 3 luglio 2016 Caro walterword sono 20 anni che lavoro nell'elettronica industriale, microcontrollori, PLC, linguaggi di programmazione ecc ecc. Purtroppo non posso passare sopra alla tua offesa. Vabbè, mi arrangio in altro modo. Grazie a tutti Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 3 luglio 2016 Segnala Share Inserita: 3 luglio 2016 nessuna offesa,le mie erano solamente considerazioni personali , non leggo ne parolacce ne insulti Per cui prima di sentirti offeso cerca di leggere meglio e di ragionare ..leggevo che chiedevi cose abbastanza elementari nel mondo simatic ed ho pensato . che fossi alle prime armi . comunque se vuoi lavorare bene , con coerenza , correttezza , nitidezza etc , ti consiglio di lavorare con i Data Block ossia i DB . Puoi crearne quanti ne vuoi , in base alla cpu ci sono dei limiti numerici ovviamente . Creare un DB , in forma grafica o scritta come sorgente , è come progettare e creare una struttura dati che può contenerne altre. Ci sono poi gli UDT , che altro non sono che la direttiva typedef del C . L'esempio riporta TIA portal ma copo cambia con Step 7 Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 4 luglio 2016 Segnala Share Inserita: 4 luglio 2016 con i DB puoi copiare , incollare, rinominare .Se crei un blocco FC100 con relativo DB100 e li sui per gestire le logiche di un nastro trasportatore, se hai piu nastri copi ed incolli FC e DB piu volte , li rinomini e all'interno trovi e sostituisci il n# del DB opportuno e via . Io preferisco fare cosi che creare un FB con db di istanza , nel FC faccio debug e modifico quello che voglio .Il concetto di "libreria" per le macchine o parti di impianto non ha mai funzionato . Funziona per calcoli , comunicazione etc ma per le macchine preferisco avere il 100% di libertà . Con i merker ....devi copiare ed incollarli , non puoi gestirli come strutture dati piu o meno complesse etc. Poi come SEMPRE , dipende da cosa devi fare , se devi fare una pompetta che bagna l'orto allora vanno bene anche i merker. Spero di essere stato chiaro , piu di cosi non saprei cosa dirti . Per rispetto dei tuoi 20 anni di esperienza, se hai qualche domanda mirata fammela pure che vedro ' di accontentarti . ciao Link al commento Condividi su altri siti More sharing options...
Elettro79 Inserita: 4 luglio 2016 Autore Segnala Share Inserita: 4 luglio 2016 Ok, sono alle prime armi con Siemens, ma non con il resto! Grazie delle info.... Purtroppo chi ci lavora e ci è dentro non si rende conto delle grosse differenze tra l'ambiente Siemens e tutti gli altri....la domanda iniziale di questo post era perchè mi sembrava molto strano che una variabile MW0 in realtà andasse ad accupare anche la MW1....da qui poi le varie risposte hanno divagato su struttura byte ecc ecc che io non avevo chiesto... Link al commento Condividi su altri siti More sharing options...
amed Inserita: 4 luglio 2016 Segnala Share Inserita: 4 luglio 2016 Occupa MB0 e MB1. Quindi tu non dovrai usare ne programma MW1 perchè ii MB1 è già usato da MW0 ma da MW2 in avanti. Ciao Link al commento Condividi su altri siti More sharing options...
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