Vai al contenuto
PLC Forum


Omron R88a-mcw151-e - PROGRAMMAZIONE R88A-MCW151-E


Messaggi consigliati

Inserito:

Ciao , mi rivolgo a chi ha avuto a che fare con la scheda in oggetto , devo realizare un'applicazione apparentemente semplice dove e' impiegata questa scheda per controllare la rotazione di una tavola , ho provato a realizzare il programma Basic utilizzando Motion Perfect della Omron ma non avendo mai utilizzato questo linguaggio mi trovo un po' in difficolta' , in particolare con le istruzioni per la ricerca di zero attaverso il comando DATUM(4) il passo da me sviluppato lo riporto sotto di modo che se qualcuno potesse aiutarmi nel correggere i miei errori puo' vederlo.

zero:

BASE(0)

WDOG=1

SERVO=1

DATUM_IN AXIS(0)=5 'ingresso per ricerca di zero

BASE(0)

CREEP=1

SPEED=10

DATUM(4)

CREEP AXIS(0)=1

SPEED AXIS (0)=10

DATUM(4)AXIS (0)

Tengo a precisare che da quello che ho capito leggendo il manuale, il motore dopo aver ricevuto il comando DATUM (4) dovrebbe andare alla ricerca (marcia indietro) del px di zero rappresentato dall'input 5 e una volta intercettato il px invertire la marcia e fermarsi con valore DPOS=0 .Come ho scritto il programma invece il motore continua a cercare lo zero andando avanti e indietro nonostante alzi o abbassi l'input 5 senza fermarsi sullo zero.

Le prove che ho fatto sono state fatte utilizzando il Simulatore del Motion Perfect.

Ringrazziandovi approfitto per fare gli Auguri di Buon Anno a tutti.

  • 7 months later...

Inserita:

capisco che la risposta dopo tanto tempo non interesserà più, ma se a qualcuno puo servire, inserisco qui la procedura di azzeramento che uso io.

ciao

capi

'AZZERAMENTO DELLO SLAVE

BASE(0)

ACCEL=1000

DECEL=1000

SPEED=40

'Mi muovo in avanti, vado a catturare il sensore di zero cablato sull'ingresso veloce IN_46 dell'azionamento che viene visto dalla scheda assi come IN(22) :blink:

REGIST(2)

WAIT UNTIL MARK

CANCEL

'Definisco la posizione di arresto (OFFPOS) come la differenza tra la posizione attuale e la posizione di zero

'in VR(50) ho un offset che mi individua la posizione di zero rispetto al sensore

OFFPOS=-(REG_POS+VR(50))

'aspetto che sia stata caricata

WAIT UNTIL OFFPOS=0

'Sospendo l'elaborazione del programma finche' non ho terminato l'operazione di fasatura dell'asse slave

WAIT IDLE

BASE(0)

ACCEL= 1000

DECEL = 1000

SPEED = 45

'Mi posiziono sulla posizione di zero ruotando sempre nella stessa direzione

targ = 360 - MPOS AXIS(0)

IF targ < 0 THEN targ = targ + 360

IF targ > 360 THEN

REPEAT

targ = targ - 360

UNTIL targ < 360

ENDIF

MOVE(targ)

WAIT IDLE

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