Vai al contenuto
PLC Forum


Segmento S5 - Aiuto Per Un Principiante


idrive

Messaggi consigliati


significa che il merker M33.1 va a 1 se:

il merker byte 30 è diverso da zero e

l'ingresso E 2.1 è a uno

se anche solo una delle due condizioni non è rispettata il merker M33.1 è a zero

Link al commento
Condividi su altri siti

U( se

L MB30 il valore del byte di memoria 30

L KF+0 confrontato con il valore fisso 0

>< F e' diverso (cioe' MB30 >< 0)

)

U E2.1 e l'ingresso digitale E2.1 e' a "1"

= M33.1 allora mette a "1" la memoria M33.1

U vuol dire UND in tedesco o AND in inglese (&)

() aperta e chiusa parentesi perche' tutto quello che sta all'interno e' interpretato come unica operazione

L sta per LADEN o LOAD che vuol dire carica il valore

MB sta per merker Byte cioe' un valore a 8 bit che in questo caso e' nella MB30

KF sta per valore in virgola fissa, cioe' un numero intero senza decimali

M sta per merker o flag o memoria a un solo bit

Ciao.

Link al commento
Condividi su altri siti

ciao STEU quello che cercavo di capire è come funziona il merker byte 30

Scusa non capisco la domanda, comunque il merkerbyte è una variabile (se hai dimestichezza di visual basic ecc)

quindi L MB30 significa carica il valore del MB30 in accumulatore 1e sposta accu1 in accu2

l kf +0 significa carica in accu1 il valore 0 e sposta accu1 in accu2 (quindi hai in accu2 il valore di MB30 e in accu1 il valore 0)

><F significa metti a 1 RLC(risultato logico combinatorio) se accu1 è diverso da accu2

Spero che tu sappia che cosa è RLC

Link al commento
Condividi su altri siti

Vuoi dire come viene usato in lettura o come viene scritto?

Se non vado errato, il segmento è fatto per LEGGERE il MB30.

Chi Carica, (SCRIVE) il MB30 non è stato indicato.

Link al commento
Condividi su altri siti

Ciao anche a te montagner.

scusatemi ma posso visualizzare il mb30?

e come lo gestisco?

ovvero un'ingresso so quando lo mando alto, l'Mb30 in che modo stabilisco il valore che ha, nel segmento lo pone diverso da zero per che si verifichi la presenza dell'uscita(a meno di E 2.1) ma potrebbe essere anche zero. Io dovrei comunque saperlo al momento che creo il programma. come?

Link al commento
Condividi su altri siti

E' da molto tempo che non uso lo step5.

A memoria non sono in grado di aiutarti con precisione.

Esiste all'interno dello step5 una funzione di ricerca incrociata delle chiamate agli elementi di programma.

La lista una volta elaborata visualizza tutti i segmenti nei quali è chiamato in causa il mb30, (o altro elemento del programma).

Un MB può essere scritto sia nella modalita di trasferimento di un blocco dati, sia come inserimento di un singolo bit risultante da un risultato logico.

Esempio

load kf50,

tranfer mb30

carica il valore numerico 50 decimale nel mb30.

Altro esempio U

E0.0

= m30.0

Pone un nel bit 0 del mb30 se l'ingresso E0.0 è a uno.

Ora che si è capito cosa cerchi,

sono sicuro che altri amici sapranno darti spiegazioni più precise sulle funzioni di ricerca nello step 5.

Link al commento
Condividi su altri siti

emanuele.croci

Il crossreference dovrebbe essere il tasto F2 (vedi anche l'. in fondo alla pagina).

Apri il blocco di programma dove hai MB30, ci vai sopra e premi F2, ti dà tutti i punti in cui è usato MB30 e anche chi lo carica (L MB30).

Ci vai sopra e premi enter.

Ti posiziona all'inizio di un blocco: premi F3 per la ricerca all'interno del blocco e te lo mostra.

E' un po' astruso ma che ci vuoi fare....

Ciao, Emanuele

Link al commento
Condividi su altri siti

Ciao idrive,

Dunque, per cambiare lo stato del valore contenuto nella MB30 lo fai da programma oppure "forzando" la variabile, sempre in funzionamento ON line, of course. Per il primo, beh potrebbe essere da OB21-OB22 (vedi manuali) quindi ..

OB21-OB22

L KB +1

T MB 30

BE

Per il secondo ti colleghi alla CPU e nella pagina della predisposizione imposta il tipo di funzionamento ON e poi conferma con F6.

Seleziona FUNZ-AG(F4) e poi FORZAM-VAR(F6), OPERANDI :ne scrivi 2 righe per MB30, FORMATI: uno in KM(binario) l'altro in KF (decimale) oppure KH(hex.).

Poi sovrascrivendo la MB30 ed accettando forzi il valore della variabile.

Se non puoi andare ON LINE, e quindi lavori OFF LINE, allora dovresti fare dei forzamenti virtuali.......non ti dimenticare d'usare l'immaginazione, e' molto importante. ;)

Link al commento
Condividi su altri siti

grazie a tutti voi ora mi sembra chiaro come forzare una variabile e come usare il crossreference

in effetti mb30 viene fuori da ll'inserimento dei merker da 30.1 a 30.6 ognuno dei quali e dato da un espressione tipo

L Z0

L kF 7

!=F

=M 30.1

varia solo il volore della costante di confronto

il valore dell MB30 è dato dalla somma dei singoli merker?

Link al commento
Condividi su altri siti

effetti mb30 viene fuori da ll'inserimento dei merker da 30.1 a 30.6 .........
il valore dell MB30 è dato dalla somma dei singoli merker?

No. :ph34r:

Viene data dalla corrispondenza tra i formati di rappresentazione stabiliti per le variabili, quindi se

M 30.1 e M 30.6 hanno stato =1 allora:

MB30[binario] = 01000010 // il primo bit a destra e' il M 30.0 e cosi' via.

MB30[decimale] = 66

MB30[essadecimale] = 42

Ti suggerisco di leggere riguardo a rappresentazione binaria dell'informazione

Link al commento
Condividi su altri siti

il valore dell MB30 è dato dalla somma dei singoli merker?

No. MB30 contiene il valore in binario. Ovvero:

M30.0 = 2^0 = 1

M30.1 = 2^1 = 2

M30.2 = 2^2 = 4

M30.3 = 2^3 = 8

M30.4 = 2^4 = 16

M30.5 = 2^5 = 32

M30.6 = 2^6 = 64

M30.7 = 2^7 = 128

Il valore in decimale lo ottieni sommando il valore corrispondente dei bit nello stato ON.

In decimale il campo di valori (senza segno) è da 0 a 255.

Forse ti conviene approfondire le tue conoscenze del sistema binario ed esadecimale.

Link al commento
Condividi su altri siti

ok è tutto chiaro, mi sono scaricato la lettura che mi hai consigliato Savino (rappresentazione binaria dell'informazione) in modo da ampliare le mie conoscenze in merito

Grazie a tutti.

Link al commento
Condividi su altri siti

Ciao Idrive,

effetti mb30 viene fuori da ll'inserimento dei merker da 30.1 a 30.6 .........

il valore dell MB30 è dato dalla somma dei singoli merker?

No. :ph34r:

Mi sa forse dovrei darti le mie scusse....... magari avevi voluto dire dalla somma dei numeri decimali che corrispongono alle posizioni dei bits con valori =1.

Quindi, come da sopra, ricavi:

MB 30 = 01000010 [bin]

M30.1 = 2^1 = 2

M30.6 = 2^6 = 64

2+64=>

MB 30 = 66 [decimale]

Saluti :)

Modificato: da Savino
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...