Vai al contenuto
PLC Forum


Funzione In Part Program Fanuc 18i - Trasformazione di un numero in segnale pulsante.


Messaggi consigliati

Inserito:

Devo trasformare, per un caricatore di pallettini, un numero dato da una T in esadecimale ( es T12 caricata poi nella var. #20 ) e trasformala in un segnale pulsante. Per far questo il numero deve essere convertito in binario ( in questo caso il 12 in 1100 ). Ora devo scansionare questo numero binario bit per bit, dando un codice M102 quando il bit è a livello, e M101 quando il valore è 1. Dopo questi codici M ci vuole un segnale di clock M103.

Questo è quello che ho capito dal riassunto di un programma datomi da un collega. Non si sa se funziona.

Chi mi spiega che vuol dire il comando ROUND, GE, ma soprattutto come fanno a lavorare le righe finali #102 = #102- 1 ( DECREMENT ADDRESS COUNTER ) #101 = #101*2 ( INCREMENT BIT MASK, SHIFT LEFT ) ?

#100=ROUND[#9]

#101=ROUND[#20]

#102=14 (INITIALIZE MAGAZINE ADDRESS BIT COUNTER )

#101=1 (BIT MASK)

N300 (LOOP START)

IF [#100 EQ 0] GOTO 400 ( NO NEED TO SEND 0 BITS)

IF [[#100 AND #101] EQ 0] GOTO 310 ( DATA BIT 0)

M101 (PULSE SET BIT)

#100 = #100- #101 ( REMOVE BIT FROM ADDRESS)

GOTO 320

N310 M102 ( PULSE RESET BIT)

N320

M103 (PULSE CLOCK )

G04X0.05 (DWELL 50MS)

#102 = #102- 1 ( DECREMENT ADDRESS COUNTER )

#101 = #101*2 ( INCREMENT BIT MASK, SHIFT LEFT )

IF [102 GE 1] GOTO 300 ( LOOP IF NOT DONE)

ECC.. EC..

  • 3 weeks later...

Inserita:

Dunque, non sono un programmatore ISO quindi faccio un po fatica ad analizzare l'esempio, comunque posso dirti che:

L'istruzione ROUND, come dice la parola, arrotonda alla prima cifra decimale.

#102 = #102- 1 decrementa di 1 #102 ad ogni passaggio, quindi l'intenzione è di fare il loop 14 volte.

#101 = #101*2 è un modo "classico" per effettuare uno shift-right. Moltiplicando per 2 un numero ottieni infatti l'effetto di shiftare a destra i bit.

Ad es. se scrivi 1 in una word, moltiplicando per 2 più volte otterrai:

1

2

4

8

16

32

ecc..

quindi "sposti" a destra il bit nella word.

Ciao

Inserita:

Scusa Lucios, vabbè che ormai la sinistra non esiste più, ma questo è uno shift LEFT :lol:

ciao

Inserita:

Ops! Hai ragione! Comunque, a parte la confusione della definizione(sto invecchiando :( , il concetto è corretto.

Ciao

  • 4 weeks later...
Inserita:

Grazie Lucios !

Ora mi è più chiaro il passaggio della moltiplica per 2.

Ciao

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