Norma IEC 63-3 Norma IEC 63-3 definiuje pojęcia podsawowe, zasady ogólne, model programowy i model komunikacyjny (wymiana danych między elemenami oprogramowania) oraz podsawowe ypy i srukury danych. Określono w niej dwie grupy języków programowania: języki eksowe i graficzne. W grupie języków eksowych zdefiniowane zosały nasępujące języki: Język IL (ang. Insrucion Lis Lisa rozkazów), będący odpowiednikiem języka ypu asembler, kórego zbiór insrukcji obejmuje operacje logiczne, arymeyczne, operacje relacji, jak również funkcje przerzuników, czasomierzy, liczników ip. Język ST (ang. Srucured Tex Teks srukuralny), kóry jes odpowiednikiem języka algorymicznego wysokiego poziomu, zawierającego srukury programowe i polecenia podobne do wysępujących w językach ypu PASCAL lub C. Do grupy języków graficznych opisanych w normie IEC 63-3 należą: Język LD (ang. Ladder Diagram Schema drabinkowy), podobny do sykowych obwodów przekaźnikowych, w kórym oprócz symboli syków, cewek i połączeń między nimi, dopuszcza się akże użycie funkcji (np. arymeycznych, logicznych, porównań, relacji) oraz bloków funkcjonalnych (np. przerzuniki, czasomierze, liczniki). Język FBD (ang. Funcion Block Diagram Funkcjonalny schema blokowy), będący odpowiednikiem schemau przepływu sygnału dla obwodów logicznych przedsawionych w formie połączonych bramek logicznych oraz funkcji i bloków funkcjonalnych, akich jak w języku LD. Ponado przedsawiono sposób worzenia srukury wewnęrznej programu w posaci schemau funkcji sekwencyjnej SFC (ang. Sequenial Funcion Char), kóry pozwala na opisywanie zadań serowania sekwencyjnego za pomocą grafów zawierających kroki (eapy) i warunki przejścia (ranzycji) między ymi krokami. W celu orzymania odpowiedniej srukury programu można wykorzysać SFC, w kórym definicje akcji dla poszczególnych kroków oraz warunki przejścia programuje się w jednym z czerech wymienionych wyżej języków. IEC 63-3 specyfikuje synakykę i semanykę wymienionych języków programowania. Synakyka (inaczej składnia) opisuje elemeny języka i sposób ich użycia, naomias semanyka ich znaczenie. Definiowane są również elemeny konfiguracji, kóre wspomagają insalację oprogramowania w serownikach PLC, oraz możliwości komunikacyjne w celu uławienia połączenia serowników z innymi elemenami auomaycznego sysemu serowania.
Przykład w języku LD: %I %Q2 %Q / (S) STOP %Q / (R) %I4 Przykład w języku IL: (* pierwszy szczebel drabinki *) LD %I ANDN %Q2 S %Q (* drugi szczebel drabinki ) LDN STOP OR %I4 R %Q Przykład w języku FBD: AND %I %Q2 O FlipFlop RS S Q %Q OR STOP O R %I4 Przykład w języku ST: (* wywołanie przerzunika *) FlipFlop( S:= %I AND NOT %Q2, R:=NOT STOP OR %I4 ); (* usawienie wyjścia *) %Q := FlipFlop.Q
Sandardowe funkcje liczbowe jednej zmiennej: Forma graficzna * ** * * oznacza yp wejścia/wyjścia (I/O) ** oznacza nazwę funkcji Przykłady użycia w językach ST i IL A:=SIN(B); (* język ST *) LD B (* język IL *) SIN ST A Lp. Nazwa funkcji Typ I/O Opis 2 3 4 5 6 7 8 9 Funkcje podsawowe ABS ANY_NUM Warość bezwzględna SQRT ANY_REAL Pierwiasek kwadraowy Funkcje logarymiczne LN ANY_REAL Logarym nauralny LOG ANY_REAL Logarym dziesięny EXP ANY_REAL Funkcja wykładnicza o podsawie e Funkcje rygonomeryczne SIN ANY_REAL Sinus kąa w radianach COS ANY_REAL Cosinus kąa w radianach TAN ANY_REAL Tangens kąa w radianach ASIN ANY_REAL Arcus sinus ACOS ANY_REAL Arcus cosinus ATAN ANY_REAL Arcus angens
Sandardowe funkcje arymeyczne: Forma graficzna ANY NUM ANY NUM ANY NUM : : ANY NUM oznacza nazwę funkcji lub symbol Przykład użycia w językach ST i IL A:=ADD(B,C,D); (* język ST *) lub A:=B+C+D; LD B (* język IL *) ADD C ADD D ST A Lp. Nazwa Symbol Opis 2 3 4 5 6 7 8 Funkcje arymeyczne rozszerzalne (o zmiennej liczbie wejść) ADD + Dodawanie OUT := IN +IN 2 + +IN n MUL * Mnożenie OUT := IN *IN 2 * *IN n Funkcje arymeyczne o sałej liczbie wejść SUB Odejmowanie OUT := IN IN 2 DIV / Dzielenie OUT := IN / IN 2 MOD Resza z dzielenia OUT := IN modulo IN 2 EXPT ** Poęgowanie IN OUT := IN 2 MOVE := Przepisanie OUT := IN
Sandardowe liczniki Lp. Forma graficzna Opis CTU BOOL >CU Q BOOL BOOL R INT PV CV INT 2 CTD BOOL >CD Q BOOL BOOL LD INT PV CV INT 3 CTUD BOOL >CU QU BOOL BOOL >CD QD BOOL BOOL R BOOL LD INT PV CV INT Licznik dodający CU wejście, kórego zmiany z na są zliczane R wejście zerujące licznik PV warość zadana Q wyjście załączane gdy CV osiągnie warość PV CV liczba zliczonych impulsów Licznik odejmujący CD wejście, kórego zmiany z na są zliczane LD wejście usawiające CV na warość PV PV warość zadana Q wyjście załączane gdy CV osiągnie warość CV liczba zliczonych impulsów Licznik dodająco-odejmujacy CU wejście, jego zmiany z na są zliczane w górę CD wejście, jego zmiany z na są zliczane w dół R wejście zerujące licznik LD wejście usawiające CV na warość PV PV warość zadana QU wyjście załączane gdy CV osiągnie warość PV QD wyjście załączane gdy CV osiągnie warość CV liczba zliczonych impulsów
Sandardowe czasomierze Lp. Forma graficzna Opis 2 3 BOOL IN Q BOOL TIME PT ET TIME oznacza: TP, TON, TOF TP generaor impulsu TON opóźnione załączenie TOF opóźnione wyłączenie IN wejście uruchamiające czasomierz PT warość zadana czasu ET czas mierzony 4 RTC BOOL EN Q BOOL DT PDT CDT DT Zegar czasu rzeczywisego PDT usalone daa i czas (ładowane przy zboczu narasającym na wejściu EN) CDT bieżące daa i czas (gdy EN = ) Q kopia EN (* język FBD *) Przykład użycia czasomierza TON w języku FBD, ST i IL: Zegar (* nazwa egzemplarza FB *) TON %I3 IN Q %Q #s PT ET (* języki eksowe *) VAR Zegar : TON; (* deklaracja egzemplarza FB *) END_VAR (* język ST *) Zegar(IN:=%I3, PT:=#s); (* wywołanie *) %Q:= Zegar.Q; (* nadanie warości wyjściu %Q *) (* język IL *) CAL Zegar(IN:=%I3, PT:=#s) (* wywołanie *) LD Zegar.Q ST %Q (* nadanie warości wyjściu %Q *)
Wykresy czasowe sygnałów dla generaora impulsu TP: IN 2 3 4 5 Q +PT +PT 4 +PT 2 4 2 PT ET 2 +PT 2 4 5 Wykresy czasowe sygnałów dla czasomierza załączającego TON: IN Q PT ET +PT 2 3 4 5 +PT 5 2 3 4 5 4 Wykresy czasowe sygnałów dla czasomierza wyłączającego TOF: IN Q PT ET 2 3 4 5 +PT 2 2 3 4 5 +PT 5
Syki Syki sayczne Syki impulsowe (wrażliwe na zbocze) Symbol / P N Język LD (Schema drabinkowy) Symbole syków: Opis Syk zwierny (normalnie owary, ang. normally open conac) San połączenia z lewej srony syku jes przenoszony na prawą sronę, jeżeli skojarzona zmienna boolowska ma warość. W przeciwnym razie prawe połączenie jes w sanie OFF. Syk rozwierny (normalnie zamknięy, ang. normally closed conac) San połączenia z lewej srony syku jes przenoszony na prawą sronę, jeżeli skojarzona zmienna boolowska ma warość. W przeciwnym razie prawe połączenie jes w sanie OFF. Syk wrażliwy na zbocze narasające (ang. Posiive ransiion-sensing conac) Połączenie z prawej srony syku jes w sanie ON w czasie jednego wykonania, jeśli połączenie z lewej srony jes w sanie ON, a skojarzona zmienna boolowska zmieniła warość z na. Poza ym san połączenia z prawej srony jes OFF. Syk wrażliwy na zbocze opadające (ang. Negaive ransiion-sensing conac) Połączenie z prawej srony syku jes w sanie ON w czasie jednego wykonania, jeśli połączenie z lewej srony jes w sanie ON, a skojarzona zmienna boolowska zmieniła warość z na. Poza ym san połączenia z prawej srony jes OFF.
Symbole cewek: Cewki Symbol Opis Cewki zwykłe Cewki zarzaskiwane Cewki podrzymywane, cewki z pamięcią Cewki impulsowe (wrażliwe na zbocze) ( ) (/) (S) (R) (M) (SM) (RM) (P) (N) Cewka (ang. coil) San połączenia z lewej srony cewki jes przenoszony na prawą sronę i zapamięywany w skojarzonej zmiennej boolowskiej. Cewka negująca (ang. negaed coil) San połączenia z lewej srony cewki jes przenoszony na prawą sronę, a jego odwroność jes zapamięywana w skojarzonej zmiennej boolowskiej. Cewka usawiająca (ang. Se coil, Lach coil) Skojarzona zmienna przyjmuje warość, jeżeli połączenie z lewej srony jes w sanie ON. Warość a pozosanie niezmieniona, aż do chwili wyzerowania przez cewkę kasującą (R). Cewka kasująca (ang. Rese coil, Unlach coil) Skojarzona zmienna przyjmuje warość, jeżeli połączenie z lewej srony jes w sanie ON. Warość a pozosanie niezmieniona, aż do chwili usawienia przez cewkę usawiającą (S). Cewka z zapamięaniem sanu (ang. Reenive coil, Memory coil) Cewka usawiająca z zapamięaniem sanu (ang. Se reenive coil) Cewka kasująca z zapamięaniem sanu (ang. Rese reenive coil) Cewka wrażliwa na zbocze narasające (ang. Posiive ransiion-sensing coil) Skojarzona zmienna przyjmuje warość na czas jednego wykonania, jeśli połączenie z lewej srony zmieniło san z OFF na ON. San połączenia z lewej srony jes zawsze przenoszony na prawą. Cewka wrażliwa na zbocze opadające (ang. Negaive ransiion-sensing coil) Skojarzona zmienna przyjmuje warość na czas jednego wykonania, jeśli połączenie z lewej srony zmieniło san z ON na OFF. San połączenia z lewej srony jes zawsze przenoszony na prawą.
Przykład przejrzysej srukury obwodów w języku LD: (* obliczenia *) (* zapamięywanie *) %I %Q ( ) %I %Q3 %Q2 / ( ) %I2 %I %Q2 %Q3 / ( ) %I2 Przykład nieprzejrzysej srukury obwodów w języku LD: %I %Q %Q3 %Q2 ( ) / ( ) %I2 %Q2 %Q3 / ( )