if-while?
Moderator: Moderators
- andrefc101
- Donateur
- Berichten: 3733
- Lid geworden op: 26 dec 2007 08:39
- Locatie: Bergen op Zoom
- Contacteer:
if-while?
Ik heb op mijn freesspindel 2 sensoren. Een gebruik ik om het toerental van de spindel aan EdingCNC door te geven, de andere wil ik gebruiken om de spindel op een bepaalde stand te laten stoppen voor een toolchange.
Met M56P6 kan ik deze waarde van de sensor uitlezen, normaal is deze 0, wanneer de sensor het slot in de schijf tegenkomt wordt deze waarde 1. Nu wil ik in een sub de spindel starten met M3S100, de sensor uitlezen, M56P6, en wanneer de waarde 1 wordt de spindel met M5 te stoppen. Kan dit in een while-endwhile?
Met M56P6 kan ik deze waarde van de sensor uitlezen, normaal is deze 0, wanneer de sensor het slot in de schijf tegenkomt wordt deze waarde 1. Nu wil ik in een sub de spindel starten met M3S100, de sensor uitlezen, M56P6, en wanneer de waarde 1 wordt de spindel met M5 te stoppen. Kan dit in een while-endwhile?
Re: if-while?
Hier kan ik ook eens op antwoorden...
Ik ken wel de programeertaal / macro taal van Eding niet maar 't zal er zo wel moeten uitzien :
'definieer variabele_M56P6
' initialiseer variabele
variabele_M56P6 = 0
While variabele_M56P6 <> 1
Do something... (wachten misschien dus sleep(10) 10 milliseconden wachten)
' lees variabele opnieuw uit
variabele_M56P6 = lees_M56P6
Endwhile
de lus stopt wanneer de variabele de waarde 1 bereikt heeft
Mvg,
Jim
Ik ken wel de programeertaal / macro taal van Eding niet maar 't zal er zo wel moeten uitzien :
'definieer variabele_M56P6
' initialiseer variabele
variabele_M56P6 = 0
While variabele_M56P6 <> 1
Do something... (wachten misschien dus sleep(10) 10 milliseconden wachten)
' lees variabele opnieuw uit
variabele_M56P6 = lees_M56P6
Endwhile
de lus stopt wanneer de variabele de waarde 1 bereikt heeft
Mvg,
Jim
- audiomanics
- Donateur
- Berichten: 5273
- Lid geworden op: 28 feb 2007 09:31
- Locatie: Appelscha
- Contacteer:
Re: if-while?
Ik zou niet weten waarom niet.. maar het is geen multitasken dus kan het ding in die tussentijd niets anders doen dan wachten.
Nu weet ik niet hoeveel die spindel doordraait na M5... die M3S100 is misschien al rijkelijk snel.
Misschien dat een lusje met M3 en M5 (dus heel heel kort aanzetten en direct weer uit zodat er een echt maar een heel klein stapje gemaakt wordt) ook zou werken.. eventueel moet er dan tussen de M3 en M5 een korte pauze komen als de motor helemaal niet gaat draaien.. Het gevolg is dat hij naar de juiste positie toejuttert, ipv een zwieper krijgt..
trial en error, brother!!
Kees
Nu weet ik niet hoeveel die spindel doordraait na M5... die M3S100 is misschien al rijkelijk snel.
Misschien dat een lusje met M3 en M5 (dus heel heel kort aanzetten en direct weer uit zodat er een echt maar een heel klein stapje gemaakt wordt) ook zou werken.. eventueel moet er dan tussen de M3 en M5 een korte pauze komen als de motor helemaal niet gaat draaien.. Het gevolg is dat hij naar de juiste positie toejuttert, ipv een zwieper krijgt..
trial en error, brother!!
Kees
<klik>... euh..test... 123.... einde test... uit.<klik>
- hugo stoutjesdijk
- Donateur
- Berichten: 12053
- Lid geworden op: 02 mar 2011 17:04
- Locatie: elst (u)
- Contacteer:
Re: if-while?
Maar hoe draait die spil 100 toeren, door een overbrenging ? En de motor zelf draait die dan 600 toeren of zo.
die remt niet zomaar naar 0. (met z'n massa)
die remt niet zomaar naar 0. (met z'n massa)
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
- andrefc101
- Donateur
- Berichten: 3733
- Lid geworden op: 26 dec 2007 08:39
- Locatie: Bergen op Zoom
- Contacteer:
Re: if-while?
De motor draait op een Danfoss VLT6008. Deze remt de motor af. Als ik deze 100rpm laat maken, en ik druk op M5 stopt deze echt direct. Als het te snel gaat kan ik idd ook met 50 toeren proberen, trial and error idd .
Als de motor niet op het goede punt stopt kan je deze door laten draaien met een dwell, dus G6P0.50
Weer proberen tot deze op de goede plaats stopt….
Zal morgen eens wat proberen met een while-endwhile lus.
In Eding taal zoiets denk ik:
sub set_spindle
#5399 = 0 ; #5399 is de parameter waar de waarde van input 6 in terecht komt, deze moet dus 1 worden.
M3S50
while [#5399 = 1]
M56P6 ; lees input 6 uit, zet de waarde in #5399
endwhile
G4P0.4
M5
endsub
Als de motor niet op het goede punt stopt kan je deze door laten draaien met een dwell, dus G6P0.50
Weer proberen tot deze op de goede plaats stopt….
Zal morgen eens wat proberen met een while-endwhile lus.
In Eding taal zoiets denk ik:
sub set_spindle
#5399 = 0 ; #5399 is de parameter waar de waarde van input 6 in terecht komt, deze moet dus 1 worden.
M3S50
while [#5399 = 1]
M56P6 ; lees input 6 uit, zet de waarde in #5399
endwhile
G4P0.4
M5
endsub
Laatst gewijzigd door andrefc101 op 02 apr 2015 21:47, 1 keer totaal gewijzigd.
- hugo stoutjesdijk
- Donateur
- Berichten: 12053
- Lid geworden op: 02 mar 2011 17:04
- Locatie: elst (u)
- Contacteer:
Re: if-while?
Dan zou je met die sensor op de spil ook de Danfos kunnen laten stoppen.
Moet je die functie alleen via een uitgang activeren.
Moet je die functie alleen via een uitgang activeren.
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
- audiomanics
- Donateur
- Berichten: 5273
- Lid geworden op: 28 feb 2007 09:31
- Locatie: Appelscha
- Contacteer:
Re: if-while?
Als #5399 een 1 wordt op het goede moment zou ik die lus wel anders maken... namelijk:
while [#5399 = 0]
endwhile
M56P6 ; lees input 6 uit, zet de waarde in #5399
Zo blijft hij in die wachtloop en pas als #5399 een 1 wordt spring hij er uit en voert die M56P6 uit en daarna de rest van het programma..
Kees
while [#5399 = 0]
endwhile
M56P6 ; lees input 6 uit, zet de waarde in #5399
Zo blijft hij in die wachtloop en pas als #5399 een 1 wordt spring hij er uit en voert die M56P6 uit en daarna de rest van het programma..
Kees
<klik>... euh..test... 123.... einde test... uit.<klik>
- andrefc101
- Donateur
- Berichten: 3733
- Lid geworden op: 26 dec 2007 08:39
- Locatie: Bergen op Zoom
- Contacteer:
Re: if-while?
Goed verhaal, maar volgens mij kan #5399 pas 1 worden als deze middels M56P6 uitgelezen wordt.audiomanics schreef:Als #5399 een 1 wordt op het goede moment zou ik die lus wel anders maken... namelijk:
while [#5399 = 0]
endwhile
M56P6 ; lees input 6 uit, zet de waarde in #5399
Zo blijft hij in die wachtloop en pas als #5399 een 1 wordt spring hij er uit en voert die M56P6 uit en daarna de rest van het programma..
Als de input niet uitgelezen wordt zou deze loop best wel eens lang kunnen gaan duren……
Of ik moet het helemaal niet snappen, kan natuurlijk ook
- audiomanics
- Donateur
- Berichten: 5273
- Lid geworden op: 28 feb 2007 09:31
- Locatie: Appelscha
- Contacteer:
Re: if-while?
Ok, in dat geval moet je de loop zo maken als jij geschreven had met dat verschil dat de waarde in het while-lus herhaald moet worden zolang die waarde 0 is en niet 1 .. Ik had me nog niet verdiept in #5399..
Kees
Kees
<klik>... euh..test... 123.... einde test... uit.<klik>
- andrefc101
- Donateur
- Berichten: 3733
- Lid geworden op: 26 dec 2007 08:39
- Locatie: Bergen op Zoom
- Contacteer:
Re: if-while?
Het werkt hoor Kees, met deze code:audiomanics schreef:Ok, in dat geval moet je de loop zo maken als jij geschreven had met dat verschil dat de waarde in het while-lus herhaald moet worden zolang die waarde 0 is en niet 1 .. Ik had me nog niet verdiept in #5399..
Kees
M3 S50
G4P2
while [#5399<>0]
M56 P6
endwhile
M5
Spindel stopt precies op de goede plek…… keer op keer.
Op naar de volgende uitdaging
- audiomanics
- Donateur
- Berichten: 5273
- Lid geworden op: 28 feb 2007 09:31
- Locatie: Appelscha
- Contacteer: