fabrizio71 Inserito: 26 settembre 2005 Segnala Inserito: 26 settembre 2005 vorrei copiare un'area di memoria degli ingressiper es. da EB256 a EB300 in un blocco di dati DB (ovviamentedella stessa dimensione)ho provato con SFC 14, SFC 20 senza buon esitoin particolare la SFC 20 sembra poter funzionarema mi copia solo un byte e non riesco a dirgli quanti byte mi servirebbero.BLKMOV (BLKSRC := EB256, BLKDEST := DB_strutt.memIngressi)ho provato anche con un ciclo FOR ma non mi funzionaFOR i:= 0 TO 10...DB_strutt.memIngressi.DW := E[256+i]dove sbaglio?grazie anticipate :ph34r: Fabrizio
fabrizio71 Inserita: 26 settembre 2005 Autore Segnala Inserita: 26 settembre 2005 ah scusate...dimenticavo, plc s7-313, programmazione in SCLgrazie, di nuovoFabrizio
TMlm Inserita: 26 settembre 2005 Segnala Inserita: 26 settembre 2005 (modificato) non ho lo step7 davanti, ma (chiedo conferma ad altri)dovrebbe essere così:BLKMOV (BLKSRC := P#E 256.0 BYTE 10, BLKDEST := P#DB1.DBX0.0 BYTE 10) Modificato: 26 settembre 2005 da TMlm
Matteo Montanari Inserita: 26 settembre 2005 Segnala Inserita: 26 settembre 2005 programmazione in SCLio posso darti la soluzione in AWL, utilizzando SFC20...devi creare il puntatore ANY in ingresso ed in uscita per utilizzare SFC20nel tuo caso i dati da copiare sono in ingresso EB256 per 44 byte (256 + 44 = 300)quindi devi creare il puntatore ANY in questo modo "P#E 256.0 BYTE 44"supponiamo che il blocco dati di destinazione sia il DB10 a partire dalla DBB0il tuo puntatore ANY sarà così composto: P#DB10.DBX0.0 BYTE 44a questo punto la funzione risulta essere: CALL SFC 20 SRCBLK :=P#E 256.0 BYTE 44 RET_VAL:=#RETVAL DSTBLK :=P#DB10.DBX0.0 BYTE 44
fabrizio71 Inserita: 26 settembre 2005 Autore Segnala Inserita: 26 settembre 2005 Grazie delle dritte...per ora in SCL non ci sono riuscito, la soluzione proposta non funzionaperché dà come errore: "tipo non valido per la costante..."in AWL invece funziona, e per ora mi tengo quella grazie ancora, a buon rendereFabrizio
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