weather Inserito: 28 ottobre 2003 Segnala Inserito: 28 ottobre 2003 qualcuno mi puo' spiegare il funzionamento della sfc20 block move con s7 300 ?leggendo le tre righe del manuale in linea ( poco chiaro ) capisco che c'e' un parametro che definisce la sorgente dei dati , un altro che definisce la destinazione , non riesco a capire dove inserire la quantita' dei dati da spostare.ciao e grazie
andrea.fa Inserita: 28 ottobre 2003 Segnala Inserita: 28 ottobre 2003 la SFC20 rimane decisamente indigesta anche a me! per ovviare generalmente ripiego sulla + umana FC94 o FC95 della libreria di conversione S5->S7 Andrea
ilndep Inserita: 28 ottobre 2003 Segnala Inserita: 28 ottobre 2003 Ti invio un esempio di trasferimento dati.Il numero di byte da trasferire lo definisci nel formato puntatore (P#DB100.DBX 0.0 BYTE 10) es. 10 byte. CALL SFC 20 // SFC20 DATA BLOCK_MOVE SRCBLK :=P#DB100.DBX 0.0 BYTE 10 RET_VAL:=MW10 DSTBLK :=P#DB101.DBX 0.0 BYTE 10CiaoSandro De Paoli
weather Inserita: 28 ottobre 2003 Autore Segnala Inserita: 28 ottobre 2003 grazie , adesso mi è piu' chiaro.certo che alla siemens riescono sempre a rendere complesse delle cose semplici , ad esempio con omron od allen bradley esistono delle funzioni di move semplicissime da usare.un altro quesito sempre realativo alla block move : nel caso in cui il blocco dati sorgente ed il blocco dati destinazione non siano statici ma variano durante l'esecuzione del programma e' possibile eseguire il puntamentoalle aree dati ?
pigroplc Inserita: 28 ottobre 2003 Segnala Inserita: 28 ottobre 2003 Contrariamente ad altri ritengo che la funzione sia di una facilità totale: l'esempio x indicizzarlo lo puoi leggere in allegato e può essere utile x trasferire tutto ciò che vuoi:nell'intestazione metti 2 parametri temp:Sorgente ANY (occupa 10 byte)Destinatario ANY (occupa 10 byte)nel segmento mettiLAR1 P##SorgenteL W#16#1002 // identificatore dell'area dai e struttura in byteT LW[AR1,P#0.0]L 1000 // Numero dei byte da trasferireT LW[AR1,P#2.0]L 100 // numero DB sorgenteT LW[AR1,P#4.0]L 0 // dal byte 0SLD 3OD DW#16#84000000T LD[AR1,P#6.0]e cosi hai fatto il puntatore della sorgente, ovviamente alle costanti puoi sostituire variabiliLAR1 P##DestinatarioL W#16#1002 // identificatore dell'area dai e struttura in byteT LW[AR1,P#0.0]L 1000 // Numero dei byte da trasferireT LW[AR1,P#2.0]L 101 // numero DB sorgenteT LW[AR1,P#4.0]L 0 // dal byte 0SLD 3OD DW#16#84000000T LD[AR1,P#6.0]e cosi hai fatto il puntatore del destinatario, ovviamente alle costanti puoi sostituire variabiliCALL SFC20SRBLK:=#SorgenteRET_VAL:=MW100DSTBLK:=#Destinatarioma provalo prima così,ovviamente devi creare DB100 e DB101 da 1000 bytes .....comunque non lamentatevi, una volta dovevi trovare la mappatura della memoria nel plc S5 a tentativi, ora c'è la documentazione!!!!!!se vuoi saperne di + consulta il file di documentazione "STEP 7 Programmazione con S7" percorsoSTART-SIMATIC-DOCUMENTAZIONE-ITALIANONOME FILE: s7prv51e.pdfpagina A-56buon lavorociao
weather Inserita: 29 ottobre 2003 Autore Segnala Inserita: 29 ottobre 2003 ciao , pigroplc , l'esempio è esattamente quello di cui ho' bisogno (documentazione compresa) .tenchiu.
walterword Inserita: 1 novembre 2003 Segnala Inserita: 1 novembre 2003 l'sfc20 e' una funzione che copia un buffer di memoria in un altro generalmente l'sfc20 o altri tipo fifo lifo fofo e fufo non li uso mai appesantiscono il sistema nemmeno in s7 200 li uso nei plc siemens , come in altri , c'e' la possibilita di accedere idirettamente alle aree di memoriatramite puntatori che sono variabili che invece di caricare un valore intero o altro caricano l'indirizzo di una variabile conseguentemente quando si effettuano operazioni matematiche usando il puntatore non si fa altro che agire sulla variabile da esso puntata.ci sono delle istruzioni che permettono di eseguire operazioni matematiche ed altre che permettono di eseguire incrementi , decrementi o inizializzazioni sugli stessiuna volta progettati bene si puo ottenere una potenzialita non indifferente ovviamente il tutto in un ambiente di variabili definite come array o matrici anche tridimensionali quindi sta di fatto che sfc20 o quant'altro se ne possono creare a iosa usando i puntatori e crendo dei blocchi funzione parametrizzati ciao
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