Vai al contenuto
PLC Forum


Utilizzo Memoria Slc 500 - ....scusate la banalità


Messaggi consigliati

Inserito:

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...


Inserita:

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 MSB

3) 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)

Inserita:

grazie Beatrice

gentilissima

a buon rendere

Inserita:

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 low

i:9/5 parte high

la 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

Inserita:

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

Inserita:

Grande Ecup,

funzionaperfettamente!!!!!!!

grazie

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...