Vai al contenuto
PLC Forum


Aprire Una Db


Messaggi consigliati

Inserito:

salve a tutti, domanda molto banale e forse stupida. so che auf dbxx serve ad aprire una db, ma a cosa servirebbe aprire una db?


Inserita:

Mi viene da risponderti con una domanda: qual è la tua conoscenza dei PLC Siemens?

Se poni questa domanda infatti, significa che, più che chiedere a cosa serva aprire un DB, forse dovresti chiedere cosa sia un DB.

A differenza della maggior parte dei PLC, i PLC Siemens permettono di organizzare i dati in DB creati dall'utente.

Lasciando perdere i vecchi S5, per accedere ai dati di un DB posso scrivere:

L DBxx.DBWyy

oppure:

AUF DBxxx

L DBWyy

Nel primo modo in un'unica istruzione è specificato non solo l'indirizzo della variabile, ma anche il DB. Di fatto, questa istruzione equivale ad aprire il DBxx e poi a caricare il valore della DWyy del DBxx.

Ma se scriviamo solo:

L DBWyy

il PLC non sa a quale DB deve fare riferimento. O meglio, fa riferimento all'ultimo DB aperto.

Nell'uso comune quindi è sempre meglio utilizzare la sintassi DBxx.DBWyy, che permette anche di ottenere un cross reference della variabile.

A volte però (soprattutto se si lavora con i puntatori) risulta comodo aprire il DB desiderato, ed indicare solo la variabile nelle istruzioni successive.

Fino a quando non verrà aperto un altro DB, tutte le variabili (DBB, DBW, DBD, DBX) alle quali si accederà sono di quel DB.

Attenzione che, come ho scritto sopra, un'istruzione tipo L DBxx.DBWyy apre il DBxx.

Quindi se scrivo:

AUF DB10

L DB11.DBW0

T DBW2

Vado a copiare il contenuto della variabile DBW0 del DB11 nella variabile DBW2 sempre del DB11, e non del DB10.

Inserita:

Scusami batta lo sapevo che era una domanda banale...i plc siemens me li sto studiando poco a poco comunque ti ringrazio

Inserita:

No, non era una domanda banale. Era solo una domanda troppo generica.

E non hai proprio nulla di cui doverti scusare.

Inserita:

vedendo tutti i posto che pubblichi...spero un giorno di diventare come te :)

Inserita:

se non apri una Db se vuoi raggiungere la word0 devi specificare anche di qule DB:

L DB1.DBW0 //CARICA LA WORD 0 DI DB1

L DB2.DBW0 //CARICA LA WORD O DI DB2

L DB3. DBWO //CARICA LA WORD O DI DB3

Se invece usi l'istruzione AUF (OPEN in KOP) è sufficente indicare l'indirizzo della sola word:

AUF DB1

L DBWO //CARICA LA WORD 0 DI DB1 (è il DB aperto)

AUF DB2

L DWO //CARICA LA WORD 0 DI DB2 (è aperto il DB2)

AUF DB3 //CARICA LA WORD 0 DI DB3 (è APERTO IL db3)

L DBW0

Sono modi equivalenti di fare la stessa cosa

Inserita:

Sisi adesso ho capito...fai prima a scrivere L DBX.DBWX no?

Inserita:

Si. Mi sembra che negli S5 esistesse solo l'istruzione AUF.

Inserita:

Negli S5 si doveva per forza prima aprire il DB e poi indicare la variabile.

Nei PLC S7 si può utilizzare lo stesso sistema, oppure scrivere nella stessa riga il DB e la variabile.

Salvo i casi in cui sia strettamente necessario procedere diversamente, io consiglio vivamente di utilizzare sempre la scrittura completa (DB + indirizzo variabile), in modo da poter trovare le variabili nel cross reference.

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...