David.Stefanutti Inserito: 18 ottobre 2005 Segnala Inserito: 18 ottobre 2005 Buongiorno.Devo realizzare la seguente applicazione:Un FC che uso nel programma deve prendere da esterno il numero di un DB su cui scrivereOB1:call fc1: numero_db:....FC1:L ...T "numero_db".dbd0..Come devo impostare i dati??Grazie
Matteo Montanari Inserita: 18 ottobre 2005 Segnala Inserita: 18 ottobre 2005 il numero del blocco dati che vuoi aprire devi comunicarlo alla funzione sotto forma di ingresso parametrizzato, oppure come "variabile di programma" a seconda di quello che desisderi fare...se dichiari come "ingresso" puoi dargli un solo valore, e per cambiarlo devi crearti le istruzioni "fuori" dal blocco che legge il blocco dati. nello stesso modo se utilizzi una "variabile di programma", ma in questo caso non sei "costretto" a parametrizzare il blocco...un esempio banale:// Apertura blocco dati //; AUF #DB_SOURCE dove "#DB_SOURCE" è dichiarato come "Block_DB" nelle varibili di ingresso. altro esempio: // Apertura blocco dati //; L #BloccoTabella T #NumeroDb //; // Apertura blocco dati "puntato" //; AUF DB [#NumeroDb]dove "#BloccoTabella" è dichiarato come "Int" nelle varibili di ingresso, "#NumeroDb" è dichiarato come "Word" nelle varibili temporanee
elsabz Inserita: 18 ottobre 2005 Segnala Inserita: 18 ottobre 2005 Ammesso che la DB che usi sia la 10, scrivi:L P#DB10.DBX0.0 T MD 100 in MD 100 avrai l'indirizzo assoluto del DB 10. Per poterlo utilizzare devi conoscere la struttura POINTER del registro, guarda nell'. dello STEP7!CiaoSergio
Matteo Montanari Inserita: 18 ottobre 2005 Segnala Inserita: 18 ottobre 2005 elsabz la tua risposta prevede un numero di DB fisso, mentre David.Stefanutti richiede un sistema perdeve prendere da esterno il numero di un DB su cui scriverequindi una cosa totalmente diversa da quella che hai suggerito tu.ed oltre tutto "conoscere la struttura POINTER del registro" non penso sia una cosa molto "facile da digerire" per un neofila della programmazione come penso sia David.Stefanutti.
elsabz Inserita: 18 ottobre 2005 Segnala Inserita: 18 ottobre 2005 Ciao Matteo,sicuramente se David.Stefanutti è un neofita la soluzione da te indicata è più semplice e senz'altro il mo suggerimento si addice meno a quello che lui deve fare. In ogni modo è comunque fattibile da esterno soltanto un pò più macchinoso, per il motivo che bisogna conoscere la struttura POINTER.CiaoSergio
Matteo Montanari Inserita: 18 ottobre 2005 Segnala Inserita: 18 ottobre 2005 non ho detto che non è possible fare come hai indicato, è macchinoso (utilizzando le tue parole) e se vuoi anche "inutile" quando si hanno a disposizione altre soluzioni magari più semplici (già ci pensa "mamma" Siemens a complicare la vita, se poi vuoi aiutarla...).------------------------------------------------------------------------------------l'utilizzo dei dati "occulti" (come ad esempio la struttura POINTER, o i parametri ANY) viene utile se si vuole creare una condizione non troppo "semplice da interpretare" utilizzando questi dati (ed eventualmente le varibili locali quali l0.0 o lw0) si possono creare programmi (o parte di codice) il cui funzionamento è conosciuto solo dal programmatore stesso, o anche da altre persone ma solamente dopo un accurato DEBUG (neccessità di molto tempo per "decifrare la struttura = molti soldi "spesi")
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