Vai al contenuto
PLC Forum


Aprire Una Db


cliche1995

Messaggi consigliati

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?

Link al commento
Condividi su altri siti


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.

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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

E non hai proprio nulla di cui doverti scusare.

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

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...