GIANLUCA 1 Inserita: 25 marzo 2009 Autore Segnala Share Inserita: 25 marzo 2009 cioè creare un blocco dati globale? Link al commento Condividi su altri siti More sharing options...
batta Inserita: 25 marzo 2009 Segnala Share Inserita: 25 marzo 2009 Sì, tipo il DB10 dell'esempio precedente, solo con più variabili.Quello che segue è il codice sorgente per generare un DB di esempio.Per la corretta compilazione, modifica nella tabelle dei simboli il nome di DB10 da "TLP" a "DatiPompe" e salva.Nella cartella "sorgenti" del tuo programma (quella sopra a "blocchi"), crea un nuovo file sorgente. Aprilo, incolla il codice, salva e compila.Se non ci sono errori, verrà generato DB10. Il vecchio DB10 non deve essere aperto e verrà sovrascritto.DATA_BLOCK "DatiPompe" TITLE = VERSION : 0.1 STRUCT Pompa_1 : STRUCT TempoLavoro : DINT; Temperatura : INT; Pressione : INT; Portata : INT; Riserva : ARRAY [0 .. 4 ] OF INT; END_STRUCT; Pompa_2 : STRUCT TempoLavoro : DINT; Temperatura : INT; Pressione : INT; Portata : INT; Riserva : ARRAY [0 .. 4 ] OF INT; END_STRUCT; Pompa_3 : STRUCT TempoLavoro : DINT; Temperatura : INT; Pressione : INT; Portata : INT; Riserva : ARRAY [0 .. 4 ] OF INT; END_STRUCT; END_STRUCT; BEGIN Pompa_1.TempoLavoro := L#0; Pompa_1.Temperatura := 0; Pompa_1.Pressione := 0; Pompa_1.Portata := 0; Pompa_1.Riserva[0] := 0; Pompa_1.Riserva[1] := 0; Pompa_1.Riserva[2] := 0; Pompa_1.Riserva[3] := 0; Pompa_1.Riserva[4] := 0; Pompa_2.TempoLavoro := L#0; Pompa_2.Temperatura := 0; Pompa_2.Pressione := 0; Pompa_2.Portata := 0; Pompa_2.Riserva[0] := 0; Pompa_2.Riserva[1] := 0; Pompa_2.Riserva[2] := 0; Pompa_2.Riserva[3] := 0; Pompa_2.Riserva[4] := 0; Pompa_3.TempoLavoro := L#0; Pompa_3.Temperatura := 0; Pompa_3.Pressione := 0; Pompa_3.Portata := 0; Pompa_3.Riserva[0] := 0; Pompa_3.Riserva[1] := 0; Pompa_3.Riserva[2] := 0; Pompa_3.Riserva[3] := 0; Pompa_3.Riserva[4] := 0; END_DATA_BLOCK Link al commento Condividi su altri siti More sharing options...
GIANLUCA 1 Inserita: 25 marzo 2009 Autore Segnala Share Inserita: 25 marzo 2009 scsusa la mia ignoranza ma quel blocco mi ha un po spiazzato.......cosa serve Riserva : [0....4] OF INT ? e , ad esempio, POMPA_3. Riserva? Link al commento Condividi su altri siti More sharing options...
GIANLUCA 1 Inserita: 30 marzo 2009 Autore Segnala Share Inserita: 30 marzo 2009 ok funziona tutto!!!!!Siete stati gentilissimi e sopratutto MOLTO MOLTO PAZIENTI!GRAZIE TANTE A TUTTI COLORO CHE MI HANNO AIUTATO. GIANLUCA. Link al commento Condividi su altri siti More sharing options...
batta Inserita: 30 marzo 2009 Segnala Share Inserita: 30 marzo 2009 scsusa la mia ignoranza ma quel blocco mi ha un po spiazzato.......cosa serve Riserva : [0....4] OF INT ? e , ad esempio, POMPA_3. Riserva?Il DB era solo un esempio, il cui scopo principale era mostrare la praticità della suddivisione delle variabili in strutture e la possibilità di creare array di variabili.La struttura risulta comoda quando ci sono, come nel caso delle 3 pompe, blocchi di variabili ripetuti uguali.L'array è comodo per creare con due sole righe di programma un numero anche elevato di variabili (solo a titolo informativo: in Step7 si possono creare array fino a 6 dimensioni). Per quanto riguarda le riserve, se in un DB inserisci una variabile, gli indirizzi di tutte le variabili successive vengono modificati.Per questo motivo io sono abituato a lasciare sempre variabili di riserva per eventuali modifiche.Se non si lasciano variabili di riserva, e mi accorgo che, per esempio, devo aggiungere un'altra variabile per ogni pompa, per non sconvolgere il programma dovrei aggiungerle alla fine del DB.Il risultato non sarebbe certo ordinato.Se sei sicuro che non avrai bisogno di aggiungere variabili, le riserve le puoi eliminare.Più o meno si fa normalmente la stessa cosa anche con PLC dove le variabili sono già definite.Se si usasse, per esempio, un S7-200, sarebbe bene lasciare variabili di riserva tra le variabili di Pompa_1, Pompa_2 e Pompa_3.Esempio:VD0 = TempoLavoroPompa_1VW4 = TemperaturaPompa_1VW6 = PressionePompa_1VW8 = Portata_Pompa_1VW10 = RiservaVW12 = RiservaVW14 = RiservaVW16 = RiservaVW18 = RiservaVD20 = TempoLavoroPompa_2VW24 = TemperaturaPompa_2........ 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