Matematikföretaget jz 120309/150412/SJn www. M7005.metem.se M7005 Plc programmering M7005 Plc programmering 1 (18)
Matematikf öretaget jz (Sv erker Johansson) är under inga omständigheter ansvarigt för direkta skador eller följdskador uppkomna genom användning av detta dokument eller av programvara eller maskinvara beskriven i detta dokument. M7005 Plc programmering 2 (18)
Innehåll 1 Skriva, ändra och testa Plc program... 4 1.1 Skriva, ändra Plc-program... 4 1.1.1 Editeringsknapparna... 5 1.2 Test... 5 1.2.1 Testkör knapparna... 6 1.3 Rullgardinsmenyn... 6 1.3.1 Arkiv... 6 1.3.2 Utskriftsfunktioner... 6 1.3.3 Ändra font... 6 2 Att skriva Plc-program... 7 2.1 Ett exempel... 7 2.2 Variabler och konstanter... 7 2.2.1 Variabler... 7 2.2.2 Konstanter... 8 2.3 Operatorer... 9 2.3.1 Aritmetiska operatorer... 9 2.3.2 Sant och falsk... 9 2.3.3 Relationsoperatorer... 9 2.3.4 Parenteser... 9 2.3.5 Logiska operatorer...10 2.3.6 Lika med...10 2.3.7 Prioriteten mellan operatorer...10 2.3.8 Flödeskontroll...11 2.3.9 if...11 2.3.10 If-else...11 2.3.11 if_event...12 2.4 Kommentarer...12 3 Funktioner...13 3.1 Counter, räknare...13 3.2 Kalender...14 3.3 Meddelande till operatören på bildskärmen, OpMsg...15 3.4 Pip...15 3.5 Set-, Resetvippa, R...15 3.6 Timer T...16 3.7 Matematiska funktioner...16 3.7.1 Absolutbelopp, abs(u1)...16 3.7.2 Arcuscosinus, acos(u1)...16 3.7.3 Arcussinus, asin(u1)...17 3.7.4 Arcustangens, atan(u1)...17 3.7.5 Cosinus, cos(u1)...17 3.7.6 Exponentialfunktionen eu1, exp(u1)...17 3.7.7 Naturliga logaritmen, log(u1)...17 3.7.8 Tio logaritmen, log10(u1)...17 3.7.9 Sinus, sin(u1)...18 3.7.10 Kvadratroten, sqrt(u1)...18 3.7.11 Tangens, tan(u1)...18 M7005 Plc programmering 3 (18)
1 Skriva, ändra och testa Plc program Varning Hur ofta ett Plc-program utförs beror av Vad operativsystemet (Windows..) håller på med. Windows är inget realtidsoperativsystem som kan garantera när ett användarprogram får tillgång till CPU:n. Vad M7005 måste göra innan Plc-programmet får kontrollen. Hur snabb datorn är, dvs dess CPU, hårddisk mm. Varning: M7005/Plc garanterar inte några minsta svarstider, minsta genomlopps tider eller när en viss rad i ett plc-program kommer att utföras. M7005/Plc är därför inte avsett och skall inte användas i tidskritiska realtidsapplikationer. Enda sättet att få reda på om min applikation klarar mina tidskrav är att provköra. Anm: Prickar och ringar över åäöåöä tas automatiskt bort. 1.1 Skriva, ändra Plc-program Skriva, ändra och testköra görs från bilden som visas i figur 1 nedan. Bilden visas via Definiera mätprogram / Editera mätprogram om det är ett Plc-program knutet till ett mätprogram. Är det ett för hela systemet gemensamt Plc-program som skall editeras, når man det via Tillbehör / Definiera systemet och sedan klicka på knappen Editera Plcprogrammet. M7005 Plc programmering 4 (18)
Figur 1, Editera Plc-program Formuläret har två rutor. I den övre (Editera) skriver man in/ändrar sitt Plc-program. Rutan är en vanlig text editor så man kan klippa, klistra, infoga, tabba mm på vanligt sätt. I den undre rutan (Meddelande) visas vilka programmeringsfel som påträffats då man trycker på någon av knapparna Spara, Testa syntax eller Testkör. Är programmet felfritt markeras det med ett OK!. 1.1.1 Editeringsknapparna Spara Plc-programmet sparas i mätprogrammet. OBS: Har man editerat i det mätprogram som körs måste man även spara i Definiera mätprogram formuläret. Testa syntax Kontroll av Plc-programmet om det är korrekt skrivet. Dvs om det följer reglerna för hur ett Plcprogram får skrivas. OBS. Detta innebär inte en kontroll om Plc-programmet är logiskt riktigt. Det är bara programmeraren som kan avgöra det. Test kör Editeringsrutan stängs för skrivning samtidigt som Testkör panelen med knapparna Kör, Stega och Kör till markören visas, se figur 2 nedan. 1.2 Test I och med att man klickar på knappen Testkör ändra den betydelse till Stoppa test samtidigt som knapparna Kör, Stega och Kör till markören visas. I och med att man börjar testkörningen stoppas exekveringen av ordinarie Plc-program som är aktiva. Dessa program återstartas då editeringsformuläret tas bort. Editeringsformuläret tas bort på vanligt sätt genom att klicka på X i dess övre högra hörn. Figur 2. Testköra M7005 Plc programmering 5 (18)
1.2.1 Testkör knapparna Kör Plc-programmet körs kontinuerligt. Stega Plc-programmet exekveras en rad för varje klick på Stega. Köra till markören Markera i Editeringsrutan till vilken rad som man vill köra. Klicka sedan på knappen Köra till markören. Programmet stannar då den kommit till den markerade raden. OBS Om man i exemplet markerar raden med Pip() kommer programmet att stanna om/ när I10 går hög. 1.3 Rullgardinsmenyn 1.3.1 Arkiv Hämta från, Spara på txt fil Ett Plc-program kan sparas på en vanlig text fil. Matematikföretager jz, Sweden, www.metem.se Utskrift av Plc - program 11-08-06 12:06:00 Mätprogram: Plc_TestRun_test /* Exempel - Plc program 110805 Sjn */ /* Heart bear */ Q24=T(R(H43,Q24) T(Q24,0.5,0.5),0.5,0.5) H43=1 // = 0 da prog startas Q1 = NS1 & NS4 // Detalj OK /* En signal da I10 = 1 */ If(I10) Pip() Utskrift av Plc-Program på.txt fil. 1.3.2 Utskriftsfunktioner Skrivut, Skrivarinställningar och Förhandsgranska är Windows standard funktioner 1.3.3 Ändra font Man kan ändra textens utseende i de båda rutorna Editera och Meddelande M7005 Plc programmering 6 (18)
2 Att skriva Plc-program Plc-programmen skrivs i ett språk som är en light version av det mer generella M7005/Plc/C 2.1 Ett exempel /* Exempel - Plc program 110805 Sjn */ /* Heart bear */ H1 = R(H43,Q24) H2 = T(Q24,0.5,0.5) Q24=T(H1 H2,0.5,0.5) H43=1 // = 0 da prog startas Q1 = NS1 & NS4 // Detalj OK /* En signal da I10 = 1 */ If(I10) Pip() Hear bet, Q24 kommer att blinka med 0.5 sekunders intervall. Ett plc-program är uppbyggt enligt följande logiska hierarki: Variabler, konstanter och funktioner tillsammans med operatorer bildar uttryck, t.ex. I20& I23 I24 En sats är ett uttryck som avslutas av radslut. T.ex Q2 = I20& I23 I24 Ett block är en eller flera satser och/eller block inneslutna av krullparenteser. Ett block är syntaktiskt lika med en sats men kan sträcka sig över flera rader dvs innehålla flera satser. { sats1 sats2 sats3 } 2.2 Variabler och konstanter De grundläggande dataobjekten (operanderna) är variabler och konstanter. Vilken typ de är av bestämmer vilken data som kan lagras i dem. Vi har två typer för variabler bit och flyttal. För konstanter finns heltal, flyttal, char (byte) och teckensträngar. 2.2.1 Variabler För Plc-programmet är variabler liktydigt med M7005:s register plus eventuella måttvariabler. Bit variabler Bit variabler är Digital in I1 I40 Digital ut Q1 Q40 M7005 Plc programmering 7 (18)
Hjälp bitar H1 H48 där H33 H48 har fasta betydelser Resultat bitarna S1 S16 if(i10) Q3 = 0 else Q3 = 1 Exemplet ovan innehåller ett exempel på flödeskontroll dvs if-eles satsen och på en bit variabel Q3 och I10. Vad som händer när programmet körs är att om bit variabeln I10 är ett sätts Q3 lika med noll och om I10 är noll hoppar programmet till "else" där Q3 sätts lika med ett. Flyttalsvariabler Givarna T1 T80 Och om Plc-programmet tillhör ett mätprogram är mätprogrammets mått också flyttalsvariabler. If(M1 + M3 > 0.5) Pip() Om summa av mått1 och mått 3 är större än 0.5 piper Plc-programmet 2.2.2 Konstanter En konstant är ett tal som skrivs direkt i plc-programmet. Det finns tre typer char (byte), heltal och flyttal. Heltal skiljs från flyttal genom att flyttal innehåller en decimalpunkt. Char konstanter skrivs hexadecimalt dvs först 0x följt av bit 7-4 värde och sedan bit 3-0 värde. t.ex. 0x1F = 31 decimalt, 0xFF = 255 dec, 0x0A = 10 dec osv. Teckensträngar förekommer bara som argument till funktionen OpMsg. En teckensträng är ett antal tecken omslutet av citationstecken. If_event(I10) OpMsg( God morgon ) När I10 går hög kommer skylten i figuren 3 nedan upp. Figur 3. M7005 Plc programmering 8 (18)
2.3 Operatorer En operation består av en operand som talar om vad som skall göras och en eller två operatorer som är deltagare. I additions operationen 7 + 3 är + operatorn och 7 respektive 3 operanderna. Innehåller operationen bara en operand, t.ex -5, kallar vi den för unär. Operatorerna i PL/C kan sammanföras i 3 grupper, aritmetiska, relations och logiska 2.3.1 Aritmetiska operatorer De aritmetiska operatorerna är multiplikation (*), division (/), addition (+) och subtraktion (-) och unärt minus (-). Unärt minus, eller teckenbyte, är när ett minustecken förekommer med bara en operator t.ex. om man alltid vill byta tecken på givare -T3. Multiplikation, division, addition och subtraktion är de gamla vanliga för vilka det gäller att unärt minus har högst prioritet sedan multiplikation och division som inbördes har samma följt av addition och subtraktion som också de inbördes har samma prioritet. Som vi alla vet är 2*6-4 = 8. Operatorer med samma prioritet utförs från vänster till höger t.ex. 2*10/5 = 4. Typomvandling Är någon av operatorerna ett flyttal omvandlas den andra också till flyttal. Naturligtvis under förutsättningen att operationen ej är unär. I alla andra fall omvandlads operanderna till heltal. Det betyder det att bit variabler samt char konstanter blir heltal. 2.3.2 Sant och falsk Definitionen av sant och falskt är Falskt En variabel, konstant eller uttryck är falskt om den är lika ned noll (0). Sann En variabel, konstant eller uttryck är sann om den är skild från noll dvs alla positiva eller negativa värden ger sant. 2.3.3 Relationsoperatorer Relationsoperatorerna är större än ( > ), större eller lika med (=>), lika med (==) skild från (!=), mindre eller lika med (=<) och mindre än (<). <, <=, =>, > har inbördes samma prioritet och högre än ==,!= som inbördes har samma. Operationer med samma prioritet utvärderas från vänster till höger. Resultatet av en relationsoperation sätts lika med ett (1) om operationen är sann annars lika med noll (0). Typomvandling Är någon av operatorerna ett flyttal omvandlas den andra också till flyttal. Naturligtvis under förutsättningen att operationen har två operander I alla andra fall omvandlas operanderna till heltal. Det betyder att konstanter och variabler blir heltal liksom bit variablerna. 2.3.4 Parenteser Man kan ändra ordningen på hur ett uttryck beräknas genom att använda parenteser, t.ex 2*(7-3) = 8. Det som finns inom parentesen har högre prioritet än det som är utanför. M7005 Plc programmering 9 (18)
2.3.5 Logiska operatorer De logiska operatorerna är det unära Icke ( N), Och ( & ), Eller ( ). Resultatet av en logisk operation är antingen sann (1) eller falsk (0). "Icke" har högre prioritet än "och" som har högre prioritet än "eller". Icke omvandlar sant till falskt och falskt till sant.. Q1 = NS1 & NS4 S1 är sann om mätresultatet ligger över övre tolerans och S4 blir sann om mätresultatet ligger under undre tolerans I exemplet blir Q1 sann (=1) om mätresultatet ligger inom tolerans. Operationen Och blir sann om båda operatorerna är sanna medan Eller blir sann om en eller båda är sanna. & och beräknas från vänster till höger Q1 = I1 & (S1 S4) Q1 blir sann om I1 är sann och antingen S1 eller S4 är sanna, dvs om resultatet ligger utanför tolerans samtidigt som I1 är hög blir Q1 också hög. 2.3.6 Lika med Ett lika-med uttryck ser ut variabel = uttryck där variabel är någon av bit eller flyttalsvariabler och följande regler gäller. Bit variabler Ixx, Qxx och Hxx Är uttrycket till höger om likhetstecknet sant dvs skils från noll sätts biten lika med ett (1) annars lika med noll (0). Flyttalsvariabler Tx och Mx Flyttalsvariabler sätts lika med uttryckets till höger om likhetstecknet värde. 2.3.7 Prioriteten mellan operatorer Prioritetsordningen mellan de olika operatorerna och hur beräkningsordningen är för operatorer med samma prioritet visas nedan. Vi börjar med operatorn med högsta prioritet och går nedåt Operator Beräkningsordning () vänster till höger parentes N icke * / vänster till höger multiplikation, division + - vänster till höger plus, minus < <= => > vänster till höger relations op ==!= vänster till höger relations op & vänster till höger logiskt AND vänster till höger logiskt OR = höger till vänster är lika med M7005 Plc programmering 10 (18)
2.3.8 Flödeskontroll 2.3.9 if Man har tillgång till if, if else, och if_event med vars hjälp man kan ändra ordning i vilken instruktionerna utförs. Vill man att flera satser (rader) skall utföras eller hoppas över, får man sammanföra dessa till ett block genom att det innesluts av krullparenteser. { Q12 = NS1 & NS4 Q13 = NQ13 } // detalj felaktig // detalj OK Ett block är också det en sats således kan ett block innehålla block som innehåller block osv. If satsen ser ut enligt if(uttryck1) sats2 sats1 och innebär att om uttryck1 är sant fortsätter man med sats 1 och vidare med sats2. Om utryck1 däremot är falskt hoppar man direkt till sats2. Exempel : Q1 = 1 Q2 = 0 if(s1 S4) { Q1 = 0 Q2 = 1 } Om detaljen är felaktig (S1 över tolerans, S4 under tolerans) dvs antingen S1 eller S4 är sanna, så sätts Q1 = 0 och Q2 = 1. Om inte förblir Q1 = 1 och Q2 = 0 2.3.10 If-else if(uttryck1) else sats3 sats1 sats2 Om uttryck1 är sant fortsätter programmet med sats1 och när koden i sats1 är genomlöpt hoppar programmet till sats3. Om däremot uttryck1 är falskt hoppar programmet till sats2 som utföres följt av sats3. if(s1 S4) { Q1 = 0 Q2 = 1 M7005 Plc programmering 11 (18)
} else { OpMsg( Detalj OK ) Pip() Q1 = 1 Q2 = 0 } Om detaljen är OK kommer både meddelande och ljudsignal. 2.3.11 if_event if_event(uttryck1) sats2 sats1 När uttryck1 går från falsk (0) till sann (1) utförs sats1 följd av sats2. För alla andra fall hoppar programmet direkt till sats2. If_event kommer således i håg vilket värde uttrycket hade vid förra exekveringen och om det då var falskt medan det nu är sant betyder det att sats1 skall utföras. Anm: Första gången if_event exekveras efter att plc-programmet laddats in utförs ingen test utan if_event spara bara uttryck1:s värde i sin interna minnes bit. Detta för att vi inte skall få oönskad exekvering av sats1 vid uppstarten av plc-programmet på grund av att interna minnesbiten var initierad till och uttryck1 = 1. 2.4 Kommentarer Vi har sett att allt från // till slut på raden är kommentarer, även allt som finns inom /* */ bryr sig inte kompilatorn om utan det är också en kommentar. Fördelen med /* */ är att kommentaren kan bestå av flera rader. /* Programnamn: Ex1 */ datum: 94/11/12 kodad av: SJ OpMsg("Matematikföretaget jz") M7005 Plc programmering 12 (18)
3 Funktioner Händelse En händelse är när en bit variabel går från falsk (noll) till sann (ett). Beteckningssätt Nedan betecknas ett antal med nx (t.ex. n3), en flyttalsparameter med fx (t.ex. f4),händelser med ex (t.ex. e1) och ett uttryck ux (t.ex. u1), där x är parameterns placering i funktionen. Val mellan två eller flera parametrar (argument) står inom hakparenteser []. 3.1 Counter, räknare Counter(startHändelse, räknadhändelse, anthändtillstart_heltal, [anthändtillstop_heltal, stophändelse] ) Parametrar: starthändelse, e1 = Den händelse som gör att räknaren börjar räkna. Räknaren är startad. räknadhändelse, e2 = Den händelse som räknas. anthändtillstart_heltal, n3 = Räknaren måste räkna det här angivna antalet innan Counter sätts lika med 1, räknaren är sann. Antalet anges som ett heltal. anthändtillstop_heltal, n4 = Här anges antalet händelser som skall inträffa från att Counter blivit sann (=1) tills den skall gå låg, bli falsk. Antalet anges som ett heltal. stophändelse, e4 = Om Räknaren är sann (=1) och denna händelse inträffar går Räknaren låg, blir falsk Funktion Räknaren startar i och med att e1 inträffar och funktionen blir sann efter att n3 st e2 händelser och förblir så n4 gånger framåt. Detta om man givit en ett antal (n4) som fjärde parameter. Om däremot den fjärde parametern är händelsen e4 är det den som får nollställa funktionen. Funktionen räknar således antalet e2 händelse och räknaren startas av e1 och stoppas antingen av att n4 st e2 händelser inträffat eller av e4. Det finns inget som hindrar att e1 = e2. Begränsningar: Max antalet händelser som räknare klarar att räkna är 67000000. Q1 = Counter( I1, I10, 6, 7) Q1 blir hög efter att I10 gått från 0 till 1 6 gånger efter det att I1 har blivit hög. Q1 förblir sedan hög tills I10 har gått från 0 till 1 ytterliggare 7 gånger. M7005 Plc programmering 13 (18)
3.2 Kalender Kalender(startÅr/startMånad/startDag, starttimme:startminut:startsekund, stopår/stopmånad/stopdag, stoptimme:stopminut:stopsekund) Parametrar: startår/startmånad/startdag,starttimme:startminut:startsekund ger den tidpunkt då Kalender skall bli sann (=1). stopår/stopmånad/stopdag,stoptimme:stopminut:stopsekund anger vid vilken tidpunkt Kalender skall bli falsk (=0) för parametrarna ovan gäller år = två sista siffrorna eller * månad = 1 tom 12 eller * dag = 1 tom 31 eller * timme = 0 tom 24 eller * minut = 0 tom 59 eller * sekund = 0 tom 59 eller * Inga blank i datum och tid. * betyder alla tidpunkter, dvs för fält med * blir alltid jämförelsen mot verklig tid sann. T.ex 94/10/* = alla dagar i oktober 1994, 94/*/5 = den femte i alla månader under 1994, 12:*:* = sann mellan klockan 12 och 12:59:59. Funktion: Funktionen Kalender blir sann (=1) då tiden är lika med startår/startmånad/startdag och starttimme:startminut:startsekund och förblir sann tills tiden är lika med eller passerat stopår/stopmånad/stopdag och stoptimme:stopminut:stopsekund då Kalender blir falsk (=0). Om * förekommer i något fält innebär det alla tidpunkter. T.ex. den femte i alla månader år -94 skrivs 94/*/15. Q1 = Kalender( */*/*, *:*:0, */*/*, *:*:2) if( Q1) Pip() En ljudsignal spelas varje hel minut. Q10 = Kalender( */12/24, 14:59:50, */12/24, 16:00:10) Till utgång Q10 har vi anslutit vår teve och vi vill att den, varje julafton skall slå på automatiskt innan Kalle Anka och stänga av när Kalle Anka är slut. M7005 Plc programmering 14 (18)
3.3 Meddelande till operatören på bildskärmen, OpMsg OpMsg("text") Parametrar: text = den text som skall visas på bildskärmen. Funktion: En skyllt med texten i text visas på bildskärmen och operatören får kvittera genom att klicka på skyltens OK knapp. Q10.0 = Kalender( */12/24, 14:59:58, */12/24, 15:00:00) If_Evenet(Q10.0) OpMsg("God Jul!!!") Vi önskar operatören god jul.. 3.4 Pip Pip() Funktion: Pip spelar en trudillutt Exempel Q1 = Kalender( */*/*, *:*:0, */*/*, *:*:2) if( Q1) Pip() Ljudsignalen kommer en gång per minut 3.5 Set-, Resetvippa, R R( sethändelse, resethändelse) Parametrar: sethändelse (e1) = den händelse som sätter RS_FF sann (=1). resethändelse (e2) = den händelse som sätter RS_FF falsk (=0). Funktionen: När den händelsen e1 inträffar sätts R( e1, e2) = 1. Om däremot e2 inträffar sätts R( e1, e2) = 0. e1 sätter vippan medan e2 resetar. Om både set- och reset- villkoren inträffar samtidigt, resetas funktionen. Heart beat H1 = R(H43,Q24) H2 = T(Q24,0.5,0.5) Q24=T(H1 H2,0.5,0.5) H43=1 // = 0 da prog. startas M7005 Plc programmering 15 (18)
3.6 Timer T T(startHändelse, tidtillstart_flyttal, [löptid_flyttal, stophändelse]) Parametrar: starthändelse (e1) = är den händelse som aktiverar Timern dvs timerns interna klocka startas. tidtillstart_flyttal (f2) = antal sekunder från att Timern aktiveras tills det att Timer blir sann (=1). f2 är ett flyttal t.ex f2 = 3.4 skulle betyda att en fördröjning på 3.4 sekunder från att e1 inträffat tills Timer blir lika med ett. löptid_flyttal (f3) = är antalet sekunder som Timer skall var sann (=1) t.ex 17.34. stophändelse (e3) = Om tredje parametern är en händelse resetas Timern då den inträffar, dvs Timerns interna klocka stoppas och nollställs och om Timern var sann (=1) sätts den falsk (=0). Funktion: Timern blir sann (=1) f2 sekunder efter det att e1 inträffat, och förblir sedan sann f3 sekunder framåt om man givit en tid som tredje parameter. Om däremot den tredje parametern är en händelse e3 så är det den som återställer funktionen. Heart beat H1 = R(H43,Q24) H2 = T(Q24,0.5,0.5) Q24=T(H1 H2,0.5,0.5) H43=1 // = 0 da prog startas 3.7 Matematiska funktioner 3.7.1 Absolutbelopp, abs(u1) Abs(u1) ger tillbaka absolutbeloppet av uttrycket u1 värde, dvs om u1 värde är negativt blir det positivt. Positiva värden är oförändrade. T4 = abs(10*t3) Om T3 = -12.34 blir T4 = 123.4, om T3 = 1.17 blir T4 = 11.7. 3.7.2 Arcuscosinus, acos(u1) Acos(u1) ger tillbaka arcuscosinus (vinkel i radianer) av uttrycket u1, t.ex acos(0.5) = 1.047, vilket = 60 grader. Exempel T20 = acos(t21) T22 = cos(t20) I exemplet kommer T21 att var lika med T22. M7005 Plc programmering 16 (18)
3.7.3 Arcussinus, asin(u1) Asin(u1) ger tillbaka arcussinus ( vinkel i radianer) av uttrycket u1, t.ex asin(0.5) = 0.524, vilket = 30 grader. T20 = asin(t3) T21 = sin(t20) I exemplet kommer T3 att var lika med T21. 3.7.4 Arcustangens, atan(u1) Atan(u1) ger tillbaka arcustangens ( vinkel i radianer) av uttrycket u1, t.ex atan(1) = 0.745, vilket = 45 grader. T20 = atan(t3) T21 = tan(t20) I exemplet kommer T3 att var lika med T21. 3.7.5 Cosinus, cos(u1) Cos(u1) ger tillbaka cosinus av vinkel u1 som är given i radianer t.ex cos(3.1416/2) = 0. T20 = cos(t3*3.1416/180) T21 = 180*acos(T20)/3.1416 I exemplet är T3 vinkeln i grader och kommer att var lika med T21. 3.7.6 Exponentialfunktionen eu1, exp(u1) exp(u1) ger tillbaka exponentialfunktionens värde. t.ex e 2.37 = exp(2.37) = 10.697 T20 = exp(t3) T21 = log(t20) I exemplet kommer T21 att vara lika med T3. 3.7.7 Naturliga logaritmen, log(u1) log(u1) ger tillbaka logaritmen av u1, t.ex log(10.697) = 2.37. T20 = log(t3) T21 = exp(t20) I exemplet kommer T21 att vara lika med T3. 3.7.8 Tio logaritmen, log10(u1) Log10(u1) ger tillbaka tio logaritmen av u1, t.ex log10(100) = 2. T20 = log10(t3) M7005 Plc programmering 17 (18)
3.7.9 Sinus, sin(u1) Sin(u1) ger tillbaka sinus av vinkel u1 som är given i radianer i t.ex sin(3.1416/2) = 1. T20 = sin(t3*3.1416/180) T21 = 180*asin(T20)/3.1416 I exemplet är T3 vinkeln i grader och kommer att var lika med T21. 3.7.10 Kvadratroten, sqrt(u1) Sqrt(u1) ger tillbaka kvadratroten ur u1:s, t.ex sqrt(9) = 3 T20 = sqrt(t3*t3) I exemplet T20 blir lika med T3. 3.7.11 Tangens, tan(u1) Tan(u1) ger tillbaka tangens av vinkel u1 som är given i radianer t.ex Tan(3.1416/4) = 1. T20 = tan(t3*3.1416/180) T21 = 180*atan(T20)/3.1416 I exemplet är T3 vinkeln i grader och kommer att var lika med T21. M7005 Plc programmering 18 (18)