nwzah Inserito: 11 giugno 2016 Segnala Share Inserito: 11 giugno 2016 Ciao forum, ho un codice AWL che non vuole fare ( o non può ) quello che gli viene detto .... Probilmente c'è qualche gaff su codice, ma da non simpatizzantte dell AWL, non riesco a trovarla In sintesi è la gestione di ricette su diverse stazioni .... Ogni stazione ha un set di parametri che salvo in un ricettario dell'hmi A pannello ho due bit il primo abilita la scrittura e l'altro la lettura su un DB di appoggio (DB4) inoltre due variabili dove deposito, sempre da HMI da quale o su quale stazione leggere o scrivere i dati Quindi se voglio archiviare le ricette sul ricettario dell'hmi, scelgo la stazione da leggere, scelgo il set dove depositare la ricetta sull'hmi e premo un tasto con la funzione " leggi ricetta dalla stazione " In sequenza succede : 1 imposto il set del ricettario dove salvare la ricetta 2 leggo i valori della stazione ( DBSTAZ_nn ) 3 scrivo tali valori sul db di appoggio ( DB4 ) 4 scrivo i valori del DB4 sul set del ricettario scelto Questo funziona Ho un problema in senso opposto, quando devo scrivere i valori del set sul ricettario sul DB4 che dopo successivamente trasferirò nel di di stazione .... questo proprio non va .... Questo è il codice U "Abil.Scrit.Ric." SPB www U "Abil.Lett.Ric." SPB rrr rrr: L "Appoggio per ricette".Numero_read L 10 +I T #reg_provv // DB dati di stazione of read SPB rr www: L "Appoggio per ricette".Numero_write L 10 +I T #reg_provv // DB dati di stazione of write rr: L P##Dati_stazione // Costruzione puntatore in formato ANY LAR1 L B#16#10 // System-Code.ID T B [AR1,P#0.0] L B#16#4 // Datatype word T B [AR1,P#1.0] L 43 // Number of words to Copy T W [AR1,P#2.0] L #reg_provv // DB-Nr of Source Datablock T W [AR1,P#4.0] L P#DBX 0.0 // Begin at DBX0.0 T D [AR1,P#6.0] U "Abil.Scrit.Ric." // con la stazione in manuale SPB writ U "Abil.Lett.Ric." SPB read BEA read: CALL "BLKMOV" SRCBLK :=#Dati_stazione RET_VAL:=#reg_provv DSTBLK :=P#DB4.DBX 10.0 WORD 43 R "Abil.Lett.Ric." BEA writ: CALL "BLKMOV" SRCBLK :=P#DB4.DBX 10.0 WORD 43 RET_VAL:=#reg_provv DSTBLK :=#Dati_stazione R "Abil.Scrit.Ric." BEA Allego anche uno stamp del test .... non capisco perché "rrr" è sempre in esecuzione ... Grazie dell'aiuto. Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 11 giugno 2016 Segnala Share Inserita: 11 giugno 2016 semplice siccome che ci sia o non ci sia il flag M135.7 tu vai sempre a rrr e con il risultato logico = 1! AWL non fa come dice lui, fa come dici tu! (detto da uno che l'AWL l'ha imparato nel 1984 e di bastonate sulla schiena da AWL ne ha prese tante) Dopo l'istruzione di salto SPB rrr prova a mettere un bel BEA e vedrai che va come un treno...... Link al commento Condividi su altri siti More sharing options...
beppo Inserita: 11 giugno 2016 Segnala Share Inserita: 11 giugno 2016 Ciao, è normale che rrr sia sempre in esecuzione se non hai ne il bit di scrittura, ne il bit di lettura. Prova così: U "Abil.Scrit.Ric." SPB www U "Abil.Lett.Ric." SPB rrr BEA Se non hai ne uno ne l'altro, vai alla fine del blocco. Link al commento Condividi su altri siti More sharing options...
beppo Inserita: 11 giugno 2016 Segnala Share Inserita: 11 giugno 2016 Ho visto solo ora che ho risposto assieme a Pigroplc. Link al commento Condividi su altri siti More sharing options...
nwzah Inserita: 12 giugno 2016 Autore Segnala Share Inserita: 12 giugno 2016 .... capito .... !!! bisogna entrarci sul modo di fare di AWL ... lui un sequenziatroe è !!! Grazie della dritta .... Link al commento Condividi su altri siti More sharing options...
dimo2474 Inserita: 16 giugno 2016 Segnala Share Inserita: 16 giugno 2016 SCL meno istruzioni e facilità assicurata 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