dcs i scada · high performance hmi. programowanie skryptów/programów na poziomie stacji...

48
DCS i SCADA W3: DCS i SCADA Programowanie w systemach DCS i SCADA Języki programowania Sebastian Plamowski

Upload: others

Post on 20-Mar-2020

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

DCS i SCADA

W3: DCS i SCADAProgramowanie w systemach DCS i SCADA

Języki programowania

Sebastian Plamowski

Page 2: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Pytania do poprzedniego wykładu1. Narysuje schemat struktury (architektury) systemu DCS/SCADA

2. Omów funkcjonalność systemów DCS/SCADA z różnych perspektyw użytkownika.

3. Wymień i krótko opisz cechy różniące systemy DCS i SCADA

Page 3: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Programowanie w systemach SCADA i DCS

• Programowanie HMI na poziomie stacji operatorskich

• Programowanie skryptów/programów na poziomie stacji operatorskiej

• Programowanie komputerów przemysłowych/sterowników PLC

Page 4: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Programowanie w systemach SCADA i DCS

• Programowanie na poziomie stacji operatorskich• Programowanie grafik operator HMI (DCS i SCADA)

• Kolorystyka

• Standardy

• Nawigacja

• Typy stacyjek

• Potwierdzanie alarmów

• Usability – zasady projektów GUI i reklamy

Page 5: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Programowanie HMI - środowisko

Page 6: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Przykładowa grafika

Page 7: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Programowanie HMI – usability (Złota Proporcja)

Złota Proporcja może być opisana w ten sposób, że stosunek miedzy elementami danego ksz-tałtu jak np. wysokość i szerokość musi wynosić w przybliżeniu 1.618.

Jeśli Złota Proporcja jest dobrze użyta w projekcie, bardzo pomaga w jego pozytywnym odbiorze.

Page 8: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Programowanie HMI – usability (Zasada podziału na trzy)

Zasada ta mówi, ze oglądający w większości przypadków będzie oglądał te punkty na kompozycji, miejscu których przecinają się linie.

Dodatkowo dobrze jest umieszczać bardziej wartościowe elementy projektu równo z tymi liniami.

Page 9: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Programowanie HMI – usability (Prawo Hicka)

Prawo Hicka i niekorzystny paradoks wyboru. Czyli kiedy mniej produktów, oznacza więcej zysków.

• Prawo Hicka mówi o tym, że każdy wybór, który musi zostać wykonany, zwięk-sza jego czas. Oznacza to, że czym więcej użytkownik musi dokonać wyborów tym trudniejsze jest skorzystanie z „oferty”

• Im więcej wyborów musi dokonać odbiorca, tym mniej skuteczna będzie Twoja oferta.

• Tak naprawdę to prawo mówi o potrzebie prostoty. Klasyczny case study prawa Hicka przedstawia sklep z warzywami, który wystawił darmowy dżem do próbowania przez klientów. W jednym przykładzie mają oni więcej niż 40 do spróbowania i wyboru, a w drugim tylko kilka. Zaobserwowano, że klienci kupili więcej dżemów, jeśli prezentowane były tylko cztery rodzaje zamiast 40 i więcej. Większość klientów decydowała się w ogóle na brak zakupu, jeśli miała do wyboru tak ogromną ilość.

Page 10: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Programowanie HMI – usability (Prawo Fittsa)

Prawo Fittsa można opisać w ten sposób: „Czas potrzebny do dojścia do celu jest funkcją wielkości celu i odległości do niego”

Prawo to również działa w drugą stronę. Dokładniej mówiąc, pewne elementy interfejsu powinny być trudniejsze do kliknięcia. Przykładem jest przycisk lub odnośnik anulowania akcji. Dlatego możemy często zauważyć w różnych aplikacjach duży przycisk zapisania, a mały anulowania.

Page 11: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Programowanie HMI – usability (Prawo bliskości)Prawo bliskości jest często niedostrzegane, nawet przez doświadczonych projek-tantów. Prawo to stwierdza, że elementy, które są w jakiś sposób ze sobą pow-iązane, przedstawiane są w jakiejś relacji i umieszczane blisko siebie. Brzmi to bardzo prosto i wydaje się być oczywiste, ale często bywa pomijane.

Prawo to oznacza, że musisz być bardzo świadomy, jak wiele przestrzeni jest między elementami danego projektu. Jeżeli w projekcie masz zbyt wiele elementów, które są blisko siebie, odbiorca stwierdzi, że jest to zrobione celowo i że te elementy są ze sobą powiązane.

Na przykład przycisk wyszukiwania, który jest za blisko przycisku zapisywania czy anulowania spowoduje przypuszczenie, że przyciski zapisu i anulowania są pow-iązane z samym wyszukiwaniem. Warto więc zadbać o odpowiednią odległość między takimi elementami w projekcie. W bliskim sąsiedztwie starajmy się umieszczać takie elementy, które są ze sobą powiązane.

Page 12: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Programowanie HMI – usability (Komunikaty zwrotne)Komunikaty zwrotne są techniką, opanowaną przez projektantów przemysłowych od wielu dekad. Komunikaty zwrotne przekazują użytkownikowi informacje o tym, że coś się stało, się dzieje lub się stanie. Komunikacja z użytkownikiem jest czymś fundamentalny.

Page 13: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Programowanie HMI – usability (Brzytwa Ockhama)Brzytwa Ockhama. Najprostsze rozwiązanie jest zawsze najlepsze.

„Wszystko powinno być tak proste,

jak to tylko możliwe, ale nie prostsze.”- Albert Einstein

Przeładowanie plansz powoduje że stają się nieczytelne i trudne do utrzymania

Projekty proste są eleganckie, wysublimowane i o wiele bardziej efektywne niż skomplikowane udekorowane stylizacje.

Page 14: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

High Performance HMI – nowy trend

Page 15: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

HMI o wysokiej wydajności (HPHMI) ma wiele zalet, w tym poprawę świadomości sytuacji operatora i nadzoru nad procesem, lepsze wykrywanie i reagowanie na sytuacje oraz skrócenie czasu szkolenia dla nowych operatorów.

Założenia

Wyświetlanie informacji (brak obrazu) - szybki podgląd zawiera informacje. Np. normalny lub pożądany zakres każdej wartości jest wyraźnie przedstawiony przy użyciu jasnoniebieskiego zakresu.

Używanie i nadużywanie kolorów (czerwona dotyczy tylko alarmów) - szare tło i wyciszone kolory minimalizują odblask i odblask ekranu, ułatwiając pracę w jasno oświetlonych pomieszczeniach. Paleta kolorów i właściwe użycie każdego koloru są określane z góry. HPHMI nie eliminuje kolorów ani nie konwertuje grafiki do skali szarości.

15

High Performance HMI (HPHMI)

Page 16: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Wyświetlanie powinno być zaprojektowane w hierarchii zapewniającej stopniową ekspozycję szczegółów. Grafiki zaprojektowane z P&ID nie będą tego mieć; będą "płaskie" - jak dysk twardy komputera z jednym folderem dla wszystkich plików.

Dostępne są 4 poziomy informacji:

L1: widok ogólny

L2: część procesu

L3: szczegóły P & ID

L4: szczegóły podsystemu, poszczególne czujniki16

High Performance HMI (HPHMI)

Page 17: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

P&ID (Piping and instrumentationdiagram/drawing) schematy stanowiły podstawę grafik

Page 18: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Example: Condensate screen

Page 19: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Example: Heaters with valves

Page 20: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Main sequence

Page 21: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

High Performance HMI

Page 22: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Programowanie skryptów/programów na poziomie stacji operatorskich w DCS• Praktycznie nie występuje w systemach DCS. Wynika to z filozofii, która

zakłada, że DCS musi działać 24x7, czyli przewidywane są restarty stacji operatorskich w czasie pracy procesu.

• Istniej zazwyczaj API pozwalające tworzenie programów trzecich obliczających korzystających z punktów systemu DCS. Programy takie jednak rzadko kiedy uruchamiane są na stacjach operatorskich. Raczej, jeżeli w ogóle, są to programy specjalistyczne (obliczenia sprawnościowe, symulacja, optymalizacja), które są uruchamiane na dedykowanych dostawionych do systemu stacjach (komputerów PC/ serwerów). Programy takie pisane są w językach C, C++, #C, Java raczej przez wykonawców systemów niż użytkowników.

• W DCS zakłada się, że wszelkie wyliczenia wykonywane są w warstwie kontrolerów przemysłowych (odpowiedników PLC w systemach SCADA).

Page 23: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Programowanie skryptów/programów na poziomie stacji operatorskich w SCADA• W SCADA dopuszcza się w pewnych przypadkach programowanie skryptów,

które mają na celu odciążenie obliczeń wykonywanych na PLC.• Proste okienka do wpisania formuł matematycznych – operacje w ramach

jednego punktu wyjściowego. Wyzwalane na zdarzenie (wartość punktu) lub czasowo

• Skrypty obliczeniowe pisane w językach skryptowych często o własnej składni lub BASIC/PASCAL/C. Większość operacji matematycznych, tablice, instrukcje IF, FOR, WHILE. Dostęp odczyt/zapis do punktów. Wyzwalane na zdarzenie (wartość punktu) lub czasowo.

• Skrypty wywoływane z HMI, pozwalające na programowanie ekstra funkcjonalności (głównie graficznej). Programowanie w większości języków wysokiego poziomu, np. ostatnia wersja MAPS pozwala na programowanie w #C

Page 24: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Programowanie komputerów przemysłowych/sterowników PLC• Norma IEC 61131-3 „Programmable Controllers" standaryzująca

sposoby programowania składa się z pięciu części:• Informacje ogólne (General Information),

• Sprzęt i wymagania testowe (Equipment and Test Requirements),

• Języki programowania (Programing Languages),

• Wytyczne użytkownika (User Guidelines),

• Wymiana informacji (Messaging Service).

Page 25: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Norma IEC 61131-3 – języki programowania

• Część trzecia normy IEC 61131-3 dotyczy języków programowania i stanowi jej najważniejszą część. Przede wszystkim dzięki niej ujednolicono koncepcję programowania PLC tak, aby w oparciu o wprowadzone zasady, użytkownik był w stanie programować bez większych trudności różne systemy PLC (CoDeSys software).

• IEC 61131-3 definiuje pojęcia podstawowe, zasady ogólne, model programowy i model komunikacyjny (wymiana danych między elementami oprogramowania) oraz podstawowe typy struktury danych. Określono w niej dwie grup języków programowania: Języki tekstowe i graficzne.

Page 26: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Język tekstowy IL (Instruction List)

• Język listy instrukcji IL (Instruction List), będący odpowiednikiem języka typu asembler, którego zbiór instrukcji obejmuje operacje logiczne, arytmetyczne, operacje relacji, jak również funkcje przerzutników, czasomierzy, liczników itp.

• Język listy instrukcji jest językiem niskiego poziomu i ma składnię podobną do języków typu asembler. Program w tym przypadku składa się z sekwencji rozkazów, z których każdy kolejny zaczyna się w nowej linii. Każda instrukcja składa się z operatora, który określa działanie do wykonania oraz operandu, czyli stałej lub zmiennej.

• Przykładami operatorów są: LD, który ładuje operand, JMP, który wykonuje skok do etykiety o nazwie określonej operandem, CAL, który wywołuje blok funkcyjny o nazwie takiej jak operand tej instrukcji oraz RET realizujący powrót z wywołanego wcześniej bloku lub funkcji. Dostępne są też operatory arytmetyczne (ADD, SUB, MUL, DIV), porównania (GT, GE, EQ, NE, LE, LT) oraz logiczne (AND, OR, XOR, NOT).

• Podstawą działania języka IL jest Akumulator (A) – jest to rejestr w pamięci, który jest wykorzystywany do: wczytywania do niego wartości z komórek pamięci PLC, wykonywania operacji matematycznych, przechowywania tymczasowych wyników, kopiowania stanu akumulatora do wybranych komórek pamięci.

Page 27: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Język tekstowy IL – przykładowy kod

Page 28: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Język IL instrukcje Allen Bradley

Page 29: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Zalety język tekstowego IL instrukcje

• Duże podobieństwo do języka maszynowego

• Znajoma forma dla programistów asemblera

• Duża zwartość programów

• Kontrola typów wynikająca z konieczności korzystania z akumulatora

• Łatwa implementacja kompilatora

Page 30: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Wady język tekstowego IL instrukcje

• Trudna czytelność programu (w stosunku do innych języków)

• Korzystanie z pośrednictwa akumulatora i stosu akumulatora nie jest intuicyjne

• Dostosowanie użytkownika do maszyny, a nie maszyny do użytkownika

• Nauka tego rodzaju programowania jest trudniejsza niż języka drabinkowego

Page 31: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Język tekstowy ST (Structured Text)

• ST, drugi język typu tekstowego. Jego składnia jest podobna do składni na przykład języków C lub Pascal.

• Podstawowymi elementami są wyrażenia oraz instrukcje (polecenia), m.in. przypisania (:=), wyboru (IF, CASE), pętle (FOR - gdy liczba powtórzeń jest znana, WHILE oraz REPEAT - gdy liczba iteracji jest nieokreślona).

• Wyrażenia dostarczają wartości odpowiadające określonemu typowi danych. Składają się one z operatorów i operandów. Operandem może być zmienna, stała, funkcja lub inne wyrażenie.

• Język strukturalny ST (Structured Text) przeznaczony jest głównie do opisu złożonych wyrażeń, których nie można zrealizować w językach graficznych (lub jest to bardzo utrudnione).

Page 32: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Jezyk ST – przykładowy kod

• W wypadku języka tekstu strukturalnego w jednej linii można zamieścić kilka instrukcji, a każda z nich powinna być zakończona średnikiem.

• W języku ST można implementować złożone prawa regulacji, co nie jest możliwe w żadnym innym języku!

Page 33: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Język tekstowy ST - operatory

Page 34: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Język tekstowy ST – typy danych

W języku ST można użyć następujących typów danych:

• BOOL (boolean or discrete)

• BYTE (8-bit string)

• INT (16-bit integer)

• UINT (16-bit unsigned integer)

• WORD (16-bit string)

• DINT (32-bit integer)

• REAL (32-bit floating-point value)

• DWORD (32-bit string)

• LREAL (64-bit floating-point value)

Również mogą być używane struktury i tablice zmiennych

Page 35: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Jezyk tekstowy - zalety

Możliwość implementacji złożonych algorytmów w zasadzie nie możliwych do implementacji w innych językach.

Powszechne zrozumienie wśród młodszej kadry inżynieryjnej

Page 36: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Język graficzny LD (Ladder Diagram)

Język schematów drabinkowych LD (Ladder Diagram), podobny do stykowych obwodów przekaźnikowych, w którym dopuszcza się użycie także funkcji: arytmetycznych, logicznych, porównań i relacji jak również bloków funkcyjnych: przerzutników, czasomierzy, liczników, regulatora PID czy bloków programowych.

Page 37: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Język graficzny LD – podstawowe symbole

Styk przekaźnika normalnie otwarty

Styk przekaźnika normalnie zamknięty

Przekaźnik normalnie otwarty

Przekaźnik normalnie zamknięty

Page 38: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Język graficzny LD – organizacja programu

Program wykonywany jest sekwencyjnie od lewej do prawej z góry na dół ( wyjątkiem są instrukcje skoku)

Page 39: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Język graficzny FBD (Functional Block Diagram)

Język schematów blokowych FBD (Function Block Diagram), będący odpowiednikiem schematów przepływu sygnału dla obwodów logicznych przedstawionych w formie połączonych bramek logicznych oraz bloków funkcyjnych takich jak w języku LD.

Przykład z Emersona…

Page 40: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Język graficzny FBD (przykład lewy->prawy)

Page 41: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Język graficzny FBD (góra->dół)

Page 42: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Język graficzny FBD (Functional Block Diagram)

• FBD (Function Block Diagram) jest językiem graficznym.

• Realizacja programu w tym języku jest oparta na przepływie sygnału.

• Wykorzystuje on gotowe bloki funkcyjne lub procedury przygotowane przez producenta w postaci bibliotek.

• Funkcje widziane są w edytorze programu jako prostokąty z opisanymi zmiennymi wejściowymi i wyjściowymi.

• Tworzenie aplikacji w tym języku polega na wyborze odpowiedniego bloku funkcyjnego i umieszczeniu w odpowiednim miejscu na schemacie i połączeniu z innymi blokami.

• Program napisany w FBD może składać się z pojedynczego schematu blokowego lub grupy schematów blokowych wykonywanych zgodnie z określoną sekwencją

• Bloki mogą być połączone jawnie lub niejawnie (poprzez zmienne), mogą występować pętle.

Page 43: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Język graficzny FBD (Functional Block Diagram)

Page 44: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Język graficzny FBD (Functional Block Diagram)

Page 45: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Język SFC (Sequential Function Chart)

Ponadto w normie IEC 1131-3 przedstawiono sposób tworzenia struktury wewnętrznej programu w postaci grafu sekwencji SFC (SequentialFunction Chart), który pozwala na opisywanie zadań sterowania sekwencyjnego za pomocą grafów zawierających etapy (kroki) i warunki przejścia (tranzycji) miedzy tymi etapami. Grafy SFC mogą być wykorzystane przy programowaniu sterownika w jednym ze zdefiniowanych w normie języków w celu otrzymania odpowiedniej struktury programu użytkownika.

Page 46: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Język SFC (Sequential Function Chart)

SFC (Sequential Function Chart) pozwala na opisywanie zadań sterowania sekwencyjnego za pomocą grafów zawierających etapy (kroki) i warunki przejścia (tranzycji) miedzy tymi etapami.

Grafy SFC mogą być wykorzystane przy programowaniu sterownika w jednym ze zdefiniowanych w normie języków w celu otrzymania odpowiedniej struktury programu użytkownika.

SFC raczej jest rozumiany nie jako osobny język programowania, a jako sposób organizacji programów, napisanych w innych językach; tak, według sformułowania Polskiego Komitetu Normalizacyjnego, SFC to "zbiór elementów graficznych i równoważnych im elementów tekstowych ... zdefiniowany w celu utworzenia wewnętrznej organizacji programów i bloków funkcyjnych sterownika programowalnego"

Page 47: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Język SFC (Sequential Function Chart)

Naturalnym zastosowaniem SFC jest oprogramowanie sekwencji rozruchu lub zatrzymania urządzenia, instalacji.

Rozruch instalacji wymaga spełnienia pewnych warunków w określonym czasie, naturalnym jest wykorzystanie sposobu programowania, które pozwala w sposób bezpośredni przenieść wymagania na kod.

Page 48: DCS i SCADA · High Performance HMI. Programowanie skryptów/programów na poziomie stacji operatorskich w DCS •Praktycznie nie występuje w systemach DS. Wynika to z filozofii,

Wybór właściwego językaMając do dyspozycji kilka różnych języków programowania, przed wyborem konkretnego z nich należałoby odpowiedzieć sobie na kilka kluczowych pytań. Oczywiście naszą naturalną tendencją jest pozostawanie przy tym, który znamy. Jednak zawsze warto wziąć pod uwagę umieszczoną poniżej listę cech całej piątki:

• łatwość nadzoru przez użytkownika końcowego: SFC (Sequential Functional Chart),

• powszechność i akceptacja języka: LD (Ladder Diagram),

• znajomość i akceptacja w Europie: LD lub ST (Structured Text),

• prędkość wykonywania przez PLC: IL lub ST,

• aplikacje wykorzystujące głównie cyfrowe We/Wy oraz prosta regulacja ciągła: LD lub FBD (Functional Block Diagram),

• łatwość dokonywania zmian w kodzie: LD,

• łatwość i umiejętność obsługi przez młodych inżynierów: ST,

• łatwość w implementacji skomplikowanych operacji matematycznych, pętli: ST,

• aplikacje, które cechują powtarzające się operacje lub procesy wymagające łączenia i jednoczesności operacji: SFC.

• Należy tez mieć na uwadze ze poszczególne modele sterowników PLC można programować np tylko niektórymi z podanych języków.