salrandazzo Inserito: 11 ottobre 2013 Segnala Share Inserito: 11 ottobre 2013 Dato che nell'S7-1200 non è possibile usare l'AWL, e l'opzione KOP / FUP non mi entusiasma, ho deciso di provare ad utilizzare l'SCL. E subito mi trovo davanti un ostacolo che ancora non ho saputo superare. Il blocco di sistema MB_MASTER richiede all'ingresso Data_ptr (in realtà un parametro IN/OUT) una variabile Variant. In pratica è l'indirizzo del DB dove ci sono i dati del colloquio modbus. Il problema è che non so proprio come dargli l'indirizzo della DB27 - Master_DB. Se metto Master_DB direttamente all'ingresso (come si fa in KOP), mi da errore "Il tipo dati Block DB non può essere convertito implicitamente nel tipo Variant". Ho provato a definire una variabile temporanea V_pointer come Variant, ma se cerco di assegnare a questa variabile la Master_DB, stesso errore: Assegnazione non valida. Ho cercato un operatore di conversione esplicita, ma non lo trovo. Ovviamente in KOP tutto funziona a dovere: Qualche idea per saltarne fuori? Molte grazie. Salvatore Link al commento Condividi su altri siti More sharing options...
salrandazzo Inserita: 11 ottobre 2013 Autore Segnala Share Inserita: 11 ottobre 2013 Novità. Provando e riprovando, ho provato a "trascinare" la DB27 (Master_DB) dalla parte sinistra della finestra, dove ci sono tutti gli elementi del progetto all'istruzione SCL. Il TIA portal me l'ha automaticamente inserito e senza segnalare errore. Non so ancora se funziona, ma per lo meno non mi da errore. Purtroppo il TIA Portal non emula il 1200, quindi devo aspettare di avere l'oggetto disponibile alimentato sul banco. Per inciso, la stessa operazione non funziona nella assegnazione di "Master_DB" alla variabile di tipo variant. Link al commento Condividi su altri siti More sharing options...
salrandazzo Inserita: 11 ottobre 2013 Autore Segnala Share Inserita: 11 ottobre 2013 Rettifica. Non funziona. Sono ancora in cerca di un modo per passare il puntamento alla db Master_DB al parametro DATA_PTR del blocco MB_MASTER. Penso che, più in generale, il problema sia: come si passano i puntatori ad una DB? Tanto per evitare dubbi, ci ho provato in tutti i modi. puntamento assoluto: DB27 o %DB27 puntamento assoluto al primo elemento della db: DB27.DBX0.0 puntamento simbolico: Master_DB puntamento simbolico al primo elemento della db: Master_DB.MB_holding_regs.HR_01 Ho anche provato ad utilizzare una variabile variant come passaggio, ma fallisce anche l'assegnamento alla variabile variant..... Ovviamente la DB è stata generata in modalità 300/400, ossia non ottimizzata, con la possibilità di indirizzamento assoluto. Grazie per l'attenzione. Salvatore 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