Do tej pory wyjaśniłem ci różnie grupy zmiennych. Wszystkie wpisy znajdziesz w linkach pod spodem
- Programowanie Makro (parametryczne)
- Zmienne systemowe
- Zmienne lokalne
- G65, G66, G66.1, G67 Wywołanie Makra
- Zmienne wspólne
- Warunki, zapętlenia Makro WHILE, IF, GOTO
Ale po co by były te wszystkie zmienne jeśli nie można by było wykonywać działań matematycznych przy ich pomocy. Dzisiaj przedstawię Ci wszystkie funkcje matematyczne jakie możesz używać przy pisaniu programu Makro. A jest ich naprawdę sporo.
Funkcje matematyczne
- Arytmetyczne
- Trygonometryczne
- Zaokrąglanie
- Różne
- Logiczne
- Przekształcanie
Jak widzisz jest tego trochę. W tym wpisie postaram się wyjaśnić każdą jedną, a w następnym pokażę Ci jak to wszystko zapętlać, odwoływać, przeskakiwać itp.
Przypisywanie wartości zmiennym
Wartość zmiennej można określić na 2 sposoby. Poprzez funkcję G65, G66 lub przypisując jej wartości bezpośrednio w programie.
Przykład:
#1=200 #5=5 #20=100
W ten sposób przypisałem zmiennym #1 wartość 200, zmiennej #5 wartość 5, itd.
Można im przypisać nie tylko wartość liczbową. Jeśli jest taka potrzeba możesz zapisać w ten sposób:
#1=20 #5=#1
Jak widzisz zmiennej #1 przypisałem wartość 20, ale zmienna #5 jest już uzależniona od wartości zmiennej #1. Gdybym zmienił jej wartość na 25, zapis w tabeli na pozycji #5 również zmieni się na 25.
Wartość zmiennej może być również uzależniona od wyniku działania :
#1=200 #2=20 #5=#1+#2 #10=#1+20
A i jeszcze jeno wartość przypisana może być dodatnia jak i ujemna .
Funkcje Arytmetyczne
Jak już wspomniałem wcześniej, jest kilka funkcji które możemy użyć do kalkulacji matematycznych w programie. Najłatwiejsze są funkcje arytmetyczne. Do obliczeń używa się następujących symboli.
Działanie | Symbol |
---|---|
Dodawanie | + |
Odejmowanie | - |
Mnożenie | * |
Dzielenie | / |
Żeby lepiej zrozumieć pokażę Ci kilka przykładów. Po lewej stronie będzie działanie, a po prawej wynik działania. Normalnie, w maszynie jest on zapisany w tabeli, w miejscu zarezerwowanym dla konkretnej zmiennej.
#1=200 przypisałem wartość 200 dla zmiennej #1 #2=300 przypisałem wartość 300 dla zmiennej #2 #3=3+2 5 przypisałem zmiennej #3 wynik dodawania #4=#2-#1 100 przypisałem zmiennej #4 wynik odejmowania zmiennej #2 od #1 #5=#4*#3 500 przypisałem zmiennej #5 wynik mnożenie zmiennej #4 przez #3
Tak można w nieskończoność. Zasady matematyczne się nie zmieniają. Pamiętasz kolejność działań? Najpierw mnożenie/dzielenie potem dodawanie/odejmowanie.
#1=10-2*3 4 Najpierw mnożenie potem odejmowanie
Gdybyś chciał zmienić kolejność działań, musisz użyć nawiasów. Ale nie zwykłych, tylko kwadratowych.
#1=[10-2]*3 24 Najpierw działania w nawiasie potem mnożenie
Nasze działania możemy bardzo mocno rozbudowywać.
#1=[2+3]*[4-1] 15 2+3=5 i 4-1=3 następnie 5*3=15 #1=30 #2=10 #3=[[#1+#2]*2]+[[8/2]+3] 47 30+10=40, 40*2=80 i 8/2=4, 4+3=7 na końcu 40+7=47
Funkcje Trygonometryczne
No dobra poprzedni rozdział był łatwy. Teraz zaczynają się schody.
Zmienne trygonometryczne dostępne w makrach służą do obliczania kątów lub danych związanych z kątami. Wszystkie funkcje trygonometryczne można używać w makrach, jednak nie wszystkie sterowania obsługują ten rodzaj makr.
W rysunkach kąty podawane są w formacie Stopnie/Minuty/Sekundy. Jednak żeby użyć ich w programowaniu należy sprowadzić ich do wartości dziesiętnych. Pod spodem przedstawiam Ci wzór na przeliczenie:
Gdzie:
Dd – kąt sprowadzony do wartości dziesiętnych
D– Stopnie
M– Minuty ( w godzinie jest 60 minut)
S-Sekundy (w godzinie jest 3600 sekund)
Przykład:
Mam kąt 15°30’25” używając wzoru zapiszę go w ten sposób:
15+30/60+25/3600=15,5069°
No i mamy nasz kąt w formie dziesiętnej.
Oczywiście można to wyliczyć tworząc prosty algorytm za pomocą makr
#1=15 #2=30 #3=25 #100=#1+#2/60+#3/3600 15,5069
Poniższa tabela przedstawia dostępne funkcje trygonometryczne
Dane wejściowe dla SIN, COS, TAN jak i wyjściowe dla funkcji odwrotnych ATAN, ASIN, ACOS są wyrażane w stopniach.
W kalkulatorach funkcje odwrotne są oznaczone w ten sposób tan-1, sin-1 , cos-1
#1=SIN[40] 0,642787 kąt musi być podany w nawiasach #2=30.5 #3=COS[#2] 0,8616291 odniesienie do zmiennej musi być w nawiasie #4=TAN[9] 0,1583844
Funkcje Zaokrąglania
Wykonując obliczenia wynik często nas zaskakuje jeśli popatrzymy na ilość miejsc po przecinku.Maszyny obsługują tylko trzy miejsca jeśli jest to system metryczny lub cztery w przypadku obliczeń w calach. Aby rozwiązać ten problem twórcy systemu wprowadzili trzy polecenia:
ROUND– zaokrągla liczby do pełnych cyfr wg. zasady
- ROUND[0,00001] zaokrągla do 0
- ROUND[0,5] zaokrągla do 1
- ROUND[0,99999] zaokrągla do 1
- ROUND[1,4] zaokrągla do 1
- ROUND[1,7] zaokrągla do 2
FIX- zaokrągla liczby do pełnych cyfr w dół wg. zasady
- FIX[0,00001] zaokrągla do 0
- FIX[0,5] zaokrągla do 0
- FIX[0,99999] zaokrągla do 0
- FIX[1,4] zaokrągla do 1
- FIX[1,7] zaokrągla do 1
FUP- zaokrągla liczby do pełnych cyfr w górę wg. zasady
- FIX[0,00001] zaokrągla do 1
- FIX[0,5] zaokrągla do 1
- FIX[0,99999] zaokrągla do 1
- FIX[1,4] zaokrągla do 2
- FIX[1,7] zaokrągla do 2
Zaokrąglenie do kilku miejsc po przecinku
Skoro powyższe funkcje zaokrąglają do pełnych liczb, to jak zaokrąglić do określonej liczby miejsc po przecinku?
Zanim zaokrąglimy liczbę , najpierw trzeba ją pomnożyć przez:
- 10– 1 miejsce po przecinku
- 100– 2 miejsca po przecinku
- 1000– 3 miejsca po przecinku
- 10000– 4 miejsca po przecinku
Zaokrąglić wynik, a następnie trzeba liczbę zaokrągloną podzielić przez:
- 10– 1 miejsce po przecinku
- 100– 2 miejsca po przecinku
- 1000– 3 miejsca po przecinku
- 10000– 4 miejsca po przecinku
Przykład:
#2 Chcę zaokrąglić cyfrę 3,19283753293 do trzech miejsc po przecinku
#3 Chcę zaokrąglić cyfrę 3,19283753293 do czterech miejsc po przecinku
Najpierw używam mojego mnożnika
#1=3,19283753293 #2=#1*1000 3192,83753293 #3=#1*10000 31928,3753293
Teraz moje wyniki zaokrąglam do pełnych cyfr
#2=ROUND[#2] 3192 #3=ROUND[#3] 31928
I na końcu dzielimy wynik przez wartość mnożnika z pierwszego etapu
#2=#2/1000 3,192 #3=#3/10000 3,1928
Te same zasady wykorzystujemy przy funkcjach FIX, FUP.
Funkcje różne
Z tych pięciu na 90% użyjesz tylko dwóch pierwszych.
SQRT- Wyciąga pierwiastek kwadratowy z liczby umieszczonej pomiędzy nawiasami
#1=SQRT[16] 4 #2=16 #1=SQRT[#2] 4
ABS– sprowadza liczbę umieszczoną w nawiasach do wartości dodatniej
#1=ABS[-12] 12 #1=ABS{[12] 12
LN– Logarytm naturalny
EXP– Wykładnik z podstawową funkcją “e”
ADP– Funkcja dodawania przecinka
Te ostatnie trzy funkcje nie są dostępne w Fanucu 0/16/18/21. Są one tak rzadko używane, że nawet twórcy zalecają aby ich nie używać.
Funkcje logiczne
O ile poprzednia tabelka będzie Ci prawie nie potrzebna, o tyle ta i następna są wręcz niezbędne.
EQ– Równy “=“
NE-Nie równy “≠“
GT-Większy “>“
LT-Mniejszy “<“
GE– Większy lub równy “≥“
LE-Mniejszy lub równy “≤“
Funkcje binarne służą do porównania dwóch liczb lub działań i odpowiedzenia na pytanie, czy dane porównanie jest zgodne z prawdą (true 1 ) czy nie (false 0 ). W tym momencie może Ci się to wydawać niepotrzebne, ale w następnym wpisie jak zacznę wyjaśniać zapętlanie programów zobaczysz jak bardzo te warunki są potrzebne.
AND– Tłumacząc bezpośrednio na polski AND oznacza “i“.
OR– Tłumacząc bezpośrednio to “lub”
A najlepiej będzie to widać na przykładzie
#1=100 #2=110 [100 EQ 110] Fałsz [100 GT 110] Fałsz [100 LT 110] Prawda [100 LE 110] Prawda
No to teraz porównajmy nasze działania
#3= [[100 EQ 110] AND [100 LT 110]] Fałsz Tylko jedno działanie jest prawdziwe #3= [[100 LE 110] AND [100 LT 110]] Prawda Oba działania są prawdziwe #3= [[100 GT 110] OR [100 LE 110]] Prawda Przynajmniej jedno działanie jest prawdziwe #3= [[100 EQ 110] OR [100 GT 110]] Fałsz Żadne działanie nie jest prawdziwe
Pamiętaj o nawiasach [ ] . Jeśli porównanie okaże się prawdą do zmiennej #3 zostanie przypisana cyfra 1, natomiast jeśli okaże się nieprawdą w tabeli zostanie zapisana cyfra 0.
Funkcje przekształcenia
No dobra na koniec zostały dwie funkcje przekształcenia:
BCD– przekształca zapis dziesiętny kodowany dwójkowo w zapis binarny
BIN– przekształca zapis binarny w zapis dziesiętny kodowany dwójkowo
Bardzo rzadko używa się tych funkcji. A jeśli już to musisz naprawdę wiedzieć co robisz i mieć sporą wiedzę o zapisach binarnych. Jeden błąd i można sobie załatwić postój maszyny na bardzo długi czas.
To by było tyle na dzisiaj.
Zapraszam do komentowania i subskrybowania za pomocą zakładki newsletter.
Pozdrawiam PrzemoCNC