luciopro Inserito: 4 marzo 2008 Segnala Share Inserito: 4 marzo 2008 Salve ragazzi,ho un dubbio atroce; scusate ma non uso mai AB in modo approfondito. RS logix 500!!!!!Domanda 1: non esiste il byte in AB??? Mi spiego solitamente in altre marche MW100= MB100 + MB101, posso leggere e scriverle a apiacimento. In AB questo non si può fare??? Devo scompormi il dato con varie maschere e shift????Domanda 2: come posso fare a dichiarare, se possibile, un'area di memoria di tipo byte.........quando creo un data file l'opzione byte non è disponibile.....???domanda 3: posso dichiarare una struttura di dati configurata a mio piacimento???? In caso affermativo come???Scusate la banalità ma come sempre dubbi tanti e consegna impianto sempre vicina... Link al commento Condividi su altri siti More sharing options...
Beatrice_Ru Inserita: 4 marzo 2008 Segnala Share Inserita: 4 marzo 2008 1-2) Esiste solo Elementi a 16bits oppure a 32Bits o speciali come (stringhe, timer, counter, registri) B Binary Elemento a 16bits T Timer 4 Elementi [3bits + Base(1.0s, 0.01s, 0.001s) + Pre(16bits) + Acc(16bits)] C Counter 3 Elementi [6bits + Pre(16bits) + Acc(16bits)] R Register 3 Elementi [8bits + Len(16bits) + Pos(16bits)] N Integer Elemento a 16bits A Ascii Elemento a 16bits (Diviso in 2 Char) F Float Elemento a 32bits ST String 2 Elementi [Len(max value is 32) + Text(32char =256bits)] Se devi trattare degli elementi SINT a 8 Bits devi inserirli in un elemento a 16bits ad esempio un (Binary o Integer, Ascii, String) Io ti consiglio di usare un Binary oppure un Integer. MW100 => B5:100 dove il Byte MB100 lo trovi [0....7bit], mentre in MB101 lo trovi [8...15bit] se hai gia' fatto caso l'ordine e' opposto a quello usato in siemens MB101,MB100 . Per Scrivere e trattare questi elementi a 8bits (Byte) devi far uso di SWP per rovesciare i Bytes o Char (Cosi li puoi riportare in modalita' "Big-Indian" oppure "Litle Indian" Siemens-Intel AllenBradley-Motorola) Per estrapolarti solo il MSB oppure LSB devi usare l'istruzione MVM e SWP o altri trucchi di questo genere. Oppure una AND AND (B5:100, 00FFh, B10:0) AND (B5:100, 0FF00h, B10:1) poi esegui un SWP cosi SWP(B10:1, 1) cosi avrai in B10:0 LSB ed in B10:1 MSB3) Non mi sembra che si possano fare delle UDT, SLC non e' cosi flessibile, ha infatti una struttura fissa. (ora mai anche lui ha la barbetta bianca, ha molti anni) Link al commento Condividi su altri siti More sharing options...
luciopro Inserita: 5 marzo 2008 Autore Segnala Share Inserita: 5 marzo 2008 grazie Beatrice gentilissimaa buon rendere Link al commento Condividi su altri siti More sharing options...
luciopro Inserita: 5 marzo 2008 Autore Segnala Share Inserita: 5 marzo 2008 vi disturbo ancora...ma proprio non mi entra:Ho uno scanner profibus che dialoga con un sistema Flintec. Ho mappato lo scanner e funziona tutto.Allora mi trovo un valore float cosi suddiviso:i:9.4 parte lowi:9/5 parte highla voglio trasferire sulla tabella F12:5.......Come diavolo si fa...lo swp funziona su 16 bit quindi niente...Devo fare l'associazine bit a bit???grazie Link al commento Condividi su altri siti More sharing options...
Ecup Inserita: 5 marzo 2008 Segnala Share Inserita: 5 marzo 2008 Bella domanda... non posso fare delle prove al momento, ma ti direi che non puoi accedere ai bit di un float, quindi proverei con qualcosa tipo: COP #I:9.4 #F12:5 2 eventualmente usando degli appoggi se le due parti vanno invertite: MOV I:9.4 N7:5 MOV I:9.5 N7:4 COP #N:7.4 #F12:5 2 ma non ho la minima idea se funziona o meno Link al commento Condividi su altri siti More sharing options...
luciopro Inserita: 5 marzo 2008 Autore Segnala Share Inserita: 5 marzo 2008 Grande Ecup,funzionaperfettamente!!!!!!!grazie 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