You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Current »

Skrevet av Magnus Antonsen - Industrielle Styresystemer 2023/2024

Utstyrsliste:

  • WAGO 750-8214 PLS
  • CoDeSys 3.5 Patch 18
  • Omron R88D-1SN04H-ECT
  • Omron 400W Servo Motor

Det som er viktig å konfigurere før man kobler sammen PLS til Omron-driverne er å laste ned programvare og endre et par innstillinger.

  1. Last ned enhetsbeskrivelse for ServoDriveren, dette er en XML fil som inneholder informasjon om Omron-driveren slik at codesys kan kommunisere med de. Det finner du på denne lenken: ://industrial.omron.no/no/products/R88D-1SN04H-ECT#ddf
  2. Etter du har lastet ned dette åpner du CoDeSys og klikker på "device repository", derfra installerer du XML-filen for din omron-driver.
  3. Nå som filen er innstallert er det mulig å høyreklikke i enhetstreet i CoDeSys å velge "add device", da kan du søke etter EtherCAT-master.
  4. Hvis du har prøvd å koble til CoDeSys til driverne nå, vil ikke PLS'en ha funnet Omron-driverne som "slave-enheter" enda. Det er fordi du må endre innstillingene på selve PLS'en. Gå til nettleseren din mens du er tilkoblet samme internett som PLS'en din, skriv inn ip-addressen som er der og logg inn. Dette er Wago sin web-portal, og her kan du endre EthX2 til en seperert utgang fra EthX1. Følg guiden for å gjøre dette. https://techdocs.wago.com/Software/eCOCKPIT_Migration/en-US/2406598027.html
  5. Nå kan du koble driverne og søke etter enheter ved å høyreklikke på EtherCAT Masteren i enhetstreet ditt i CoDeSys.
  6. Nå som kommunikasjonen er ferdig må du legge til SoftMotion i CoDeSys. Dette gjør du ved å høyreklikke på Wago 750-8214 device´n og velg "Enable SoftMotion". 
  7. Legg til SoftMotion CiA402 Axis på hver slaveenhet.
  8. Til slutt bør du teste om du får gitt kommandoer til servoene dette gjør du ved å copy paste koden under i et program som kjører som en EtherCAT-Task.


PROGRAM MOTION_PRG
VAR
        iStatus: INT;
        Power: MC_Power;
        MoveAbsolute: MC_MoveAbsolute;
        p:REAL:=100;
END_VAR

CASE iStatus OF

// initialization of the axis
0:
        Power(Enable:=TRUE, bRegulatorOn:=TRUE, bDriveStart:=TRUE, Axis:=Drive);
        IF Power.Status THEN
                iStatus := iStatus + 1;
        END_IF

// Move the axis to position p by use of the MC_MoveAbsolute function block
1:
        MoveAbsolute(Execute:=TRUE, Position:= p, Velocity:=100, Acceleration:=100, Deceleration:=100, Axis:=Drive);
        IF MoveAbsolute.Done THEN
                MoveAbsolute(Execute:=FALSE, Axis:=Drive);
                iStatus := iStatus + 1;
        END_IF

// Move the axis back to position 0 by use of the MC_MoveAbsolute function block:
2:
        MoveAbsolute(Execute:=TRUE, Position:= 0, Velocity:=100, Acceleration:=100, Deceleration:=100, Axis:=Drive);
        IF MoveAbsolute.Done THEN
                MoveAbsolute(Execute:=FALSE, Axis:=Drive);
                iStatus := 1;
        END_IF



  • No labels