W większości produkowanych obecnie sterowników PLC można wykonywać podstawowe operacje arytmetyczne takie jak :
- Dodawanie - ADD ( addition )
- Odejmowanie - SUB ( subtraction )
- Mnożenie - MUL ( multiplication )
- Dzielenie - DIV ( divsion )
Jednak ze względu na specyfikę budowy sterowników należy pamiętać o kilku zasadach pozwalających uniknąć błędów w napisanym programie.
W tym artykule omówimy działania całkowitoliczbowe występujące w sterownikach .
ADD ( dodawanie )

IN 1 , IN 2 - składniki działania - zmienne mogą być dowolnego typu , jednak obie tego samego
Q -wynik działania - typ zmiennej dowolny
OF - OverFlow - wynik poza zakresem zmiennej - błąd
Funkcja wykonująca dodawanie na dwóch elementach ( zmiennych ) . Obie zmienne powinny być tego samego typu ( SINT , INT... ) , zmienna wyjściowa w , której zapamiętywany jest wynik działania powinna być takiego typu aby "dać radę" go zmieścić. W przypadku zadeklarowania zmiennej wyjściowej o zbyt małym zakresie wynik zostanie przekłamany .
Na przykład przy zadeklarowaniu zmiennych wejściowych oraz zmiennej wyjściowej jako UINT - zakres 0- 65535 , wynik dodawania będzie poprawny do momentu kiedy suma nie przewyższy liczby 65535. Dla wyniku teoretycznie równego 65536 funkcja da wynik 0 a dla wartości 65537 zwróci 1 . Spowodowane jest to dwójkowym zapisem wartości dziesiętnej i gubieniem sie najstarszych bitów znajdujących się poza zakresem zmiennej wyjściowej .
SUB ( Odejmowanie )

IN 1 , IN 2 - składniki działania - zmienne mogą być dowolnego typu , jednak obie tego samego
Q -wynik działania - typ zmiennej dowolny
OF - OverFlow - wynik poza zakresem zmiennej - błąd - typ zmiennej BOOL
W tym przypadku podobnie jak przy dodawaniu należy pamiętać o zakresie możliwego wyniku . Należy także pamiętać , że wynikiem działania może być liczba ujemna co w przypadku zadeklarowania zmiennej wyjściowej jako nieznakowej ( UINT ,USINT ) przekłamie wynik działania.
MUL ( mnożenie )

IN 1 , IN 2 - składniki działania - zmienne mogą być dowolnego typu , jednak obie tego samego
Q -wynik działania - typ zmiennej dowolny
OF - OverFlow - wynik poza zakresem zmiennej - błąd typ zmiennej BOOL
Funkcja wykonuje działanie arytmetyczne - mnożenie dwóch wartości . Jak i w dodawaniu tutaj wartość zmiennej wyjściowej może znacznie przekroczyć zakresy czynników . Zaleca się deklarowanie na wyjściu zmiennej o stopień większym zakresie np. dla czynników SINT -> dla iloczynu INT co zapobiega przekroczeniu nawet w skrajnych przypadkach.
DIV ( dzielenie )

IN 1 , IN 2 - składniki działania - zmienne mogą być dowolnego typu , jednak obie tego samego
Q -wynik działania - typ zmiennej dowolny
OF - OverFlow - wynik poza zakresem zmiennej - błąd typ zmiennej BOOL
Funkcja wykonuje dzielenienie arytmetyczne dwóch wartości .Tutaj należy pamiętać o tym że sterownik wykonuje dzielenie całkowito liczbowe . W tym przypadku nie ma niebezpieczeństwa przekroczenia zakresu zadeklarowanej zmiennej , jednak w wyniku - inaczej niż w "normalnym dzieleniu " - podawana jest tylko część całkowita . W części sterowników funkcją uzupełniającą dzielenie jest funkcja GOR - zwracająca resztę z wykonanego dzielenia a w innych podawana jest tylko informacje , że pozostała reszta z dzielenia.
Podsumowanie :
Ograniczenia spowodowane wykonywaniem powyższych operacji tylko na liczbach całkowitych a co za tym idzie obarczonych określonym błędem nie a diametralnego znaczenia dla poprawnego działania sterownika i sterowanego obiektu . Z natury rzeczy błąd popełniany z powodu ograniczonej rozdzielczości wejść i wyjść sterowników jest większy niż możliwy do uzyskania podczas obliczeń a co za tym idzie można sobie pozwolić na te niedokładności rachunkowe.
PRZYKŁAD :
W przykładzie poniżej pokazujemy sposób budowy funkcji liniowej typu y=ax+b za pomocą podstawowych elementów .
| Next > |
|---|





Calendar - Events