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

Compare with Current View Page History

« Previous Version 5 Next »

Main koden bruker vi for å kjøre den fysiske modellen. Den bruker fleire ferdige laga funksjonblokker ifrå ulike bibliotek, samt nokre eigen laga funskjonsblokker. Vi bruker biblioteket WagoAppStepper for å kjøre stepper-motorane. Servo-motorane brukar biblioteket SM3_Basic for å kjøres.  Vi bruke biblioteka WagoSysPlainMem og WagoAppCloud for å kunne subscribe på MQTT-brokeren.


Hovedkoden trenge ein variablen for å starte sekvensen(startRoeBot). Etter dette må vi velge hvilken skuff vi ønsker å jobbe med, vi har valgt å forholde oss til ein skuff på grunn av fysiske begrensinger med modellen. Vi valgte også å begrense ned søkeområdet etter dårlig rogn til ein fast posisjon i reolen. Når man har valgt hvilken skuff modellen skal jobbe med starter sekvensen og programmet vil å åpne skuff, gå i søkeposisjon regne om til ny stepper-posisjon og fjerne dårlige rogn. Dette vil den gjøre til nummeret med detekterte dårlige rogn blir til 0. Vi lagde til ein funksjon som lagrer ein start posisjon til servoane visst dei nedre endebryterane er aktiv slik at vi ikkje trenger å resette servo-pos til 0 kvar gang modellen skal kjøres. 



Vi lagde til ein enkel HMI i codesys for å kunne enkelt kjøre motorane manuelt til ønsketposisjon og sette ønsket state for enkel testing av sekvensen.  See bildet til høgre for HMI i codesys


                                                             Enkel HMI For test kjøring av servo- og stepper-motorar:

Ferdig laga bibliotek med funksjonsblokker:

  • WagoAppStepper
    • FbPower
    • FbReadActualPosition
    • FbMoveAbsolute
    • FbStop
    • FbReset
  • WagoAppCloud
    • FbSubscribeMQTT_2
  • WagoSysPlainMem
    • MemCopy
  • WagoTypesModule
    • WagoTypesModule_75x_67x.I_Module_75x_67x
  • SM3_Basic
    • MC_Power
    • MC_MoveAbsolute

Sjølv laga funksjonsblokker:

  • FbEndBreaks
  • FbServoMotor
  • FbStepperMotor


Forklaring av egen lagde funksjonsblokker:

FbEndBreaks brukse for å sjekke enedbrytera på servomotor og setter execute command til true visst ikkkje enedbryter aktiv og sjekker at den nye posisjonen ikkje er større eller mindre en faktisk verdi slik at dei ikkje kan gå ned når endebryter nede er aktiv og motsatt.


FbServoMotor er ein måten vi kjører begge servomotorane samtidig og sjekker at dei ikkje går i fault og position Reached.


FbStepperMotor er ein kombinasjon av fleire ferdige lagde funksjons blokker ifrå WagoAppStepper.


  • No labels