Stap 7: Servomotor controle
Als je geluk hebt leert genoeg om te beschikken over een industriële kwaliteit servo (of stepper) en rijdt vervolgens deze stap u hoe om te controleren of met behulp van de Raspberry Pi PLC.
Ik heb in geslaagd om mijn handen op een Technosoft EtherCat startpakket van werk waarin een motor en de aandrijving (zie afbeelding).
Details kunnen hier worden gevonden: http://www.technosoftmotion.com/en/starter-kits-an...
Met deze tutorial kunt u elke EtherCat station en motor combinatie, zolang u beschikt het apparaat beschrijving file(XML) van de fabrikant om te importeren in Codesys. (U kunt ook de raspberry pi met andere communicatie-protocollen waarmee de verschillende motoren en IO de configuraties en de stappen om dit te doen zal echter iets anders dan alles wat ik in dit beschreven heb instructable). Moet u mogelijk sommige propriëtaire software gebruiken om de schijven te stellen.
LET OP VEILIGHEID:
** Bij het gebruik van motoren wees voorzichtig als bewegende delen kunnen gevaarlijk zijn. Ook wees voorzichtig om de instructies van de fabrikant van de motor en controleer dat alle bedrading is correct, met name met hoogspanning drives.* *
-De eerste stap is om de kabellengte tot uw motor en aandrijving volgens de fabrikanten instructies, in mijn geval was dit simpel, alles wat ik moest doen was 24V toevoegen aan de logica en de macht in havens (zie rode en blauwe dikkere kabels in de afbeelding), de rest allemaal vast omhoog kwam. Daarna, hebt u een ethernet-kabel tussen de EtherCat In-poort van uw motor rijden en de ethernet-poort van de Raspberry Pi te koppelen. Dit is hetzelfde proces als de Pi te koppelen aan de industriële IO in stap 5.
Als u gebruik wilt maken zowel de motor als de IO, laat de IO zoals het was en sluit de ethernet-kabel uit de EtherCat In haven van de motor rijden aan de EtherCat uitpoort van het industriële IO. Als u dit wel doet, hebt u om ervoor te zorgen dat beide apparaten zijn toegevoegd aan de boom van uw apparaat in Codesys. EtherCat is een briljante veldbus communicatieprotocol waardoor je 'daisy chain' comms over tal van apparaten met behulp van slechts eenvoudige ethernet-kabels.
Voor dit Instructable maar we zullen gewoon gebruiken de motor op zijn eigen.
-Wanneer de bedrading is voltooid, kunnen we overgaan tot programmeren.
-Naar aanleiding van hetzelfde proces als stap 5 een nieuw project in Codesys openstellen en voeg een EtherCat Master en apparaat, ditmaal echter kiezen het XML-bestand dat correspondeert met die van de aandrijving van de motor voor het apparaat (zie afbeelding van mijn apparaat boom na het toevoegen van deze)
-We moeten nu een as toevoegen aan het apparaat. Dit betekent in wezen dat we gaan vertellen Codesys dat dit apparaat EtherCat is het regelen van een motor. En binnen dat wat zijn de parameters van de motor.
-Klik met de rechtermuisknop op het apparaat dat u zojuist hebt toegevoegd en klik op "Voeg toe SoftMotionLight CiA402 as".
Dit is waar het idee van de Raspberry Pi PLC valt naar beneden de kleinste kleinste hoeveelheid. Als de Pi geen een real-time kernel en daarom geen real-time mogelijkheden heeft (hoewel dit kunnen worden toegevoegd als je durft spelen met de Pi's kernel) het kan niet overweg met de volledige mogelijkheden van communicatie naar een station dus we hebben de 'Light'-versie te gebruiken. In echte spreken, dit betekent dat de synchroniciteit van de motor naar uw programma niet zal zo goed als was het een juiste >£ 500 apparaat. Maar who cares over dat, wanneer zij alles zo goed doet!
-Nu rechts klikken op het nieuwe item van de boom van het apparaat, ga naar "Refactoring" dan "Rename". Wijzig de naam van de as "Axis1". CoDeSys zal dan breng omhoog een nieuw scherm waarin u wordt gevraagd om te controleren of de gevonden de juiste map, klik op "OK".
-Dubbelklik op "Axis1" in de boomstructuur van het apparaat en dit opent een nieuw tabblad in het hoofdvenster. Dit is waar u moet kalibreren van de as in uw systeem, door te kiezen hoeveel omwentelingen middelen wat, dus bijvoorbeeld de motor die ik heb heeft een encoder met 2000 stappen per beurt van de motor. Ik heb geen versnellingsbak en ik wil werken bij toerbeurt, niet mm (als u een lineaire as had op de motor). Dus mijn scherm ziet als de bijgevoegde foto eruit.
-Codesys zorgt voor de meeste dingen voor u met EtherCat dus om nu de motor verplaatsen van alles wat die we moeten doen is een programma schrijven en sommige gebouwd in Codesys functies benutten.
-Om dit gemakkelijk, ik heb een steekproefprogramma geüpload naar dit instructable geschreven in CFC (een taal van Codesys), kunt u eenvoudig kopiëren en plakken van de POUs (te vinden onder "applicatie" in the tree apparaat") aan uw programma. Ik heb enkele eenvoudige gebouwd in functies die deel van de "MC_Open" Codesys bibliotheek die zorg dragen uitmaken voor het verplaatsen van de motor, ik heb net hebben om hen te vertellen functies wat ik wil verhuizen, hoe ver en hoe snel motor gebruikt.
-Als u hebt gedownload van het programma en ingevoerd wordt uitgevoerd modus zoals beschreven in stap 5. Als u wilt verplaatsen van de motor, moet u openen van de "Motor_Control" POU, nu je moet om te klikken op de variabelen "Afstand", "Snelheid" en "Accel" (zie foto) op zijn beurt en voert u getallen, bijvoorbeeld 60, 60, 100. Doen 60 bochten en 60revs/min met een versnelling van de 100revs/s/s. Klik nu op de variabele "Power_Enable" tot "Echte" toont naast de variabele in blauw, moet u nu om te schrijven deze waarde naar de PLC door te klikken op "Ctrl + F7". Dit zal ook schrijf de waarden naar de andere variabelen die we hebben veranderd.
-De motor moet nu worden ingeschakeld, wat betekent dat het is ingeschakeld en die positie inneemt.
-Als u wilt verplaatsen van de motor met behulp van de "MC_MoveRelative_SML" (een relatieve beweging van de positie van de motoren in tegenstelling tot een absolute) die u wilt instellen van de variabele "Move_Motor_Pos" op "True" (op dezelfde manier als hierboven). Hebt om deze stap tweemaal om te zien van de motor zet te doen, dit is een bug die ik niet helemaal begrijpen. De motor moet draaien, yay!
Nu u controle over motoren hebt, probeer het schrijven van een programma dat de motor heen en weer draait. U kunt ook de MC_Open functies in ST taal gebruiken.