Applikationseksempel

Positionering uden encoder

Forskellige encodere til forskellige applikationer

Der er applikationer, som kræver closed loop til hastighedsreguleringen af fx en lift. Andre applikationer behøver en høj grad af nøjagtighed og dynamik. Også visse applikationer behøver en absolut encoder, der registrerer positionen, selv når maskinen er slukket. Disse applikationer kræver typisk en fysisk encoder.

Men der er også mange applikationer, hvor kravene ikke er helt så høje, og hvor det måske er uhensigtsmæssigt med en encoder eller kostprisen er ekstra vigtig. Et eksempel kunne være et bånd, som skal køre et emne frem til en venteposition før en maskine.

 

Princippet

Det tager få minutter at lave en virtuel encoder med 1 OB, 1 FB og 1 DB, og det er ikke komplekst.

 

Når vi laver en positionsakse, der har en fysisk encoder, så indsætter vi et teknologiobjekt i en S7-1200 eller S7-1500 standart PLC, hvori vi skal udpege encoderen. Vi kan vælge en encoder der er integreret i motoren, tilsluttet via drevet, eller vi kan vælge en encoder, der læses direkte af PLC'en via PROFINET eller på highspeed counter-inputs.

 

Når vi har et teknologiobjekt, så får vi automatisk OB91 "MC-Servo", som afvikler vores motion instruktioner med en fast scan tid, fx hver 4. m/sek. Hver gang MC-Servo afvikles, læses encoderens aktuelle værdi, sammenlignes med det, der er forventet, og hastigheden på drevet justeres, så motoren når sin position til forventet tid. Når vi derimod ikke har en encoder, så laver vi en integralfunktion på actual speed (r63 i SINAMICS drevet) og beregner en encoder-værdi.

Beregning

Vi ønsker at beregne encoder-værdien lige før vi afvikler MC-Servo, så derfor indsætter vi OB67 "MC-PreServo" hvori vi kan lave et stykke program, som altid vil blive afviklet lige før MC-Servo.

Vi importerer biblioteket "LSLVCPos_" og trækker FB "LSlvcPos_XIST1CALC" ind i MC_PreServo, hvor den vil beregne en encoder-værdi ud fra aktuel hastighed og DB "LSlvcPos_VirtualEncoderTel81" trækker vi ind i PLC'ens program folder, allerede indeholdende et tag med korrekt data type til at efterligne en encoder, og nem at udvide med flere.

 

Når vi har sat aktuel hastighed og encoder-tag på FB'en, så er programmet færdigt, og den virtuelle encoder kan vælges i teknologiobjektet.

I en S7-1500 PLC bruges aktuel hastighed direkte fra teknologiobjektet, mens det kræver et lille regnestykke i en S7-1200.

 

Du finder både bibliotek og manual på Siemens Industry Online Support (SIOS) (EN).

Nøjagtighed på asynkronmotorer

Der er flere ting der påvirker nøjagtigheden af en positionering uden encoder. Den største faktor er, hvis en asynkronmotor har et andet slip end forventet, og dermed en anden hastighed. Dette kan ske, hvis belastningen ændrer sig eller ved lave hastigheder, for så passer den beregnede aktuelle hastighed ikke, og encoder-beregningen vil være unøjagtig.

 

Den mest nøjagtige beregning af hastigheden på en asynkron motor er i vektor-mode, fordi frekvensomformeren justerer spændingen efter belastningen, og derved kan styre slip og hastigheden meget nøjagtigt.

 

I U/f mode bruges belastningen ikke til at styre spændingen, kun til at estimere det varierende slip. I U/f mode kan man have flere motorer på samme drev og stadig bruge en virtuel encoder.

Uanset mode, er hastigheden estimeret og justeret efter forventet slip. Du får den højeste nøjagtighed nær nominel hastighed og med en stabil belastning. 

Nøjagtighed på synkron-reluktansmotorer

Den højeste nøjagtighed opnår du ved at bruge en synkronmotor, som fx. SIMOTICS 1FP1 reluktansmotor. Reluktansmotoren kører synkront, så der er ikke et slip, og dermed en 100 % kendt hastighed. Der vil dog være en lille unøjagtighed i PLC-beregningen pga. scan tid, afrunding osv.

IE4 motor får du til næsten samme pris som en IE3 motor, og pga. det lave varmetab behøver du ikke fremmedventilation helt ned til 150 rpm.

Synkron-reluktansmotor i Closed Speed Loop, uden encoder:

Reluktansmotoren er en synkronmotor, hvilket vil sige, at rotoren følger magnetfeltets hastighed - dog en vinkel bagefter, til forskel fra en asynkron motor, som altid roterer lidt langsommere end magnetfeltet. Hvis motoren belastes for meget, og vinklen bliver større, så kan drevet sænke belastningen ved at justere ned for switch-frekvens og hastighed, men hvis motoren kører i open speed loop, så kender drevet ikke vinklen, og er derfor nødt til at have en meget stor sikkerhedsfaktor. Omvendt vil det sige, at ved closed speed loop kan man accelerere hurtigere og håndtere større belastning.

 

Ved hastighed >10 % af nominel, kører reluktansmotoren i closed speed loop i SINAMICS drevet, ved at måle på inducerede spændinger. Disse spændinger er for små ved hastighed under 10 % af nominel. Så ved lave hastigheder kører reluktansmotoren i open speed loop.

 

Vi tilbyder en licensbaseret teknologi til SINAMICS S120, hvor en testspænding pulses ud og giver en målbar inducerede spænding retur. Så kan motorens vinkel bestemmes, selv når den står stille. Derved nærmer vi os en dynamik som en servomotor. Læs mere her.