Vai al contenuto
PLC Forum


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


luciopro

Messaggi consigliati

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


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)

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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

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