Frank681 Inserito: 19 dicembre 2013 Segnala Share Inserito: 19 dicembre 2013 Ciao Ragazzi Mi piacerebbe sapere se possibile creare nel PLC un DB con lo storico degli allarmi ? Normalmente lo crea sul supervisore ma stavolta mi hanno chiesto di farlo sul PLC . Magari un DB con denro un certo numero di righe che riportino data e ora e descrizione allarme , che una volta riempito all'arrivo di un nuovo allarme il più vecchio esca.. Spero di essermi spiegato Se non ci sentiamoprima faccio a tutti , i migliori auguri di Buone Feste e Felice Anno.. Link al commento Condividi su altri siti More sharing options...
sonnyb Inserita: 19 dicembre 2013 Segnala Share Inserita: 19 dicembre 2013 (modificato) certamente si, dichiari 2 array globali di grandezza sufficiente a contenere il n° di allarmi (int) e le ore (dint) quando si verifica un allarme: fai un move block delle word nell'array di allarme "A" partendo dall'indirizzo 2 fai un move block delle dword nell'array delle ore "B" partendo dall'indirizzo 2 fai un move della word dell'allarme attuale nell'array "A" all'indirizzo 1 fai un move dell'ora attuale nell'array "B" all'indirizzo 1 per visualizzare sigolarmente puoi usare l'istruzione fieldread. buone feste a tutti anche da parte mia Modificato: 19 dicembre 2013 da sonnyb Link al commento Condividi su altri siti More sharing options...
Frank681 Inserita: 20 dicembre 2013 Autore Segnala Share Inserita: 20 dicembre 2013 (modificato) Grazie mille sonnyb infatti per quanto riguarda data e time nessun problema, ma il messaggio di allarme è una stringa di 80 caratteri , il block move non me la accetta.. di nuovo grazie Modificato: 20 dicembre 2013 da Frank681 Link al commento Condividi su altri siti More sharing options...
Giuseppe Signorella Inserita: 20 dicembre 2013 Segnala Share Inserita: 20 dicembre 2013 Per trasferire una stringa da un'area di memoria ad un'altra, devi utilizzare l'istruzione Muovi stringa "S_MOVE" Ovviamente anche l'array deve essere dichiarata come stringa Ciao Link al commento Condividi su altri siti More sharing options...
Frank681 Inserita: 21 dicembre 2013 Autore Segnala Share Inserita: 21 dicembre 2013 Ciao Giuseppe Ho provato come mi hai suggerito ma così purtroppo devo spostare una strnga alla volta mentre con blk_move era comodo poichè lavoravo come blocco , poichè penso di fare un db per i messaggi con n stringhe vedrò di farmi una funzione. grazie mille. Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 21 dicembre 2013 Segnala Share Inserita: 21 dicembre 2013 Con S7 300 era possibile inserire nei parametri di blockmove un puntatore ANY cn lunghezza del campo dati (p.es. P#DB1.DBX0.0 BYTE 500), col 1200 non è più possibile? Link al commento Condividi su altri siti More sharing options...
mrsunday Inserita: 22 dicembre 2013 Segnala Share Inserita: 22 dicembre 2013 (modificato) selezionando la visualizzazione in SCL nelle operazioni di trasferimento appaiono anche le funzioni POKE che permetto di crearsi un FC che muove blocchi di dati, spero vi possa aiutare. POKE_BLK(area_src:=#DB_source, dbNumber_src:=#DB_number_source, byteOffset_src:=#Bit_offset_source, area_dest:=#area_dest, dbNumber_dest:=#DB_number_dest, byteOffset_dest:=#Bit_offset_dest, count:=#count); Modificato: 22 dicembre 2013 da mrsunday Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 22 dicembre 2013 Segnala Share Inserita: 22 dicembre 2013 Una domanda mi sorge spontanea, è possibile sovrapporre indirizzi sorgente/destinazione? Mi sembra di aver capito che qui si vuole shiftare avanti un blocco di variabili nella stessa db Link al commento Condividi su altri siti More sharing options...
mrsunday Inserita: 23 dicembre 2013 Segnala Share Inserita: 23 dicembre 2013 mi sembra di si io ho usato il blocco per leggere/scrivere nello stesso DB. 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