Rzeszów,12.12.2013r.
Politechnika Rzeszowska
Wydział Elektrotechniki i Informatyki
Katedra Informatyki i Automatyki
Rozproszone Systemy
Sterowania
Rozproszony system kontrolno-pomiarowy ze sterownikiem SMC.
Adam Kubicki
Dawid Zięba
Jakub Zimoń
EF/AA-DI-3
Grupa L6
Cel ćwiczenia:
Celem ćwiczenia jest zapoznanie się z niewielkim rozproszonym systemem kontrolno-pomiarowym programowanym w języku ST normy IEC 61131-3.
Zasada działania:
Zbiornik wyposażony jest w dwa zawory (do napełniania - Z1, do opróżniania - Z2), grzałkę G1, alarm ALM, trzy czujniki przekroczenia poziomu cieczy (H1, H2, H3), zamocowane odpowiednio na: 10, 50 i 90% wysokości zbiornika, czujnik przekroczenia ciśnienia P1 oraz dwa czujniki temperatury (zadanej T1 i aktualnej T2). Zawory Z1, Z2, grzałka G1 i alarm ALM podłączone są do modułu wyjść binarnych (SM4), czujniki poziomu H1..H3 oraz ciśnienia P1 - do modułu wejść binarnych (SM5), czujniki temperatury - do modułu wejść analogowych SM2. Sterownik SMC obsługujący moduły SM jest dodatkowo połączony z komputerem PC umożliwiającym wizualizację procesu w programie InTouch.
Wykonanie programu:
System został zrealizowany w programie CPDev, wizualizacja wykonana została w InTouch, a za komunikację pomiędzy programem a sterownikiem odpowiada protokół Modbus RTU.
Przebieg ćwiczenia:
Najpierw uruchomiony został projekt w CPDev-ie, gdzie zapoznaliśmy się z elementami drzewa projektu, kodem źródłowym, oraz dokonaliśmy kompilacji projektu.
Następnie dokonaliśmy symulacji off-line projektu w CPSim-ie, czyli takiej, która odbywa się na komputerze.
Kolejnym elementem skonfigurowanie komunikacji PC ze sterownikiem SMC, oraz przesłaniem na niego programu i wykonaniem symulacji on-line, czyli takiej, której dane pochodzą z prawdziwego sprzętu. Później podłączyliśmy wizualizację projektu w InTouch-u ze sterownikiem za pomocą Motbus-a.
Ostatnim elementem było uzupełnienie programu sterownika o stany alarmowe, oraz podgrzewanie cieczy w zbiorniku. Poniżej znajduję się cały kod programu, wraz ze zmianami.
Kod programu sterującego w języku ST.
PROGRAM STEROWANIE VAR_EXTERNAL (*$AUTO*) END_VAR VAR Stan : INT:=0; (* Stan automatu *) Stan_: INT:=1; (* Stan automatu (poprzedni) *) END_VAR
(*** Sterowanie poziomem cieczy ***) CASE Stan OF 0: (* Tryb MANUAL (AUTO=FALSE) *) IF AUTO THEN Stan := Stan_; END_IF 1: (* Tryb AUTO (AUTO=TRUE): napełnianie *) IF START THEN Z1 := TRUE; Z2 := FALSE; (* Napełnianie zbiornika *) IF H3 THEN Stan := 2; END_IF (* Przejście do opróżniania *) ELSE Z1 := FALSE; Z2 := FALSE; (* Wstrzymanie napełniania *) END_IF IF NOT AUTO THEN Stan_ := Stan; (* Zapamiętanie stanu *) Stan := 0; (* Przejście do MANUAL *) END_IF 2: (* Tryb AUTO (AUTO=TRUE): opróżnianie *) IF START THEN Z1 := FALSE; Z2 := TRUE; (* Opróżnianie zbiornika *) IF NOT H1 THEN Stan := 1; END_IF (* Przejście do napełn. *) ELSE Z1 := FALSE; Z2 := FALSE; (* Wstrzymanie opróżniania *) END_IF IF NOT AUTO THEN Stan_ := Stan; (* Zapamiętanie stanu *) Stan := 0; (* Przejście do MANUAL *) END_IF END_CASE
(*** Regulacja temperatury cieczy (p.6) ***) IF AUTO AND START THEN IF (T2<T1) THEN G1 := TRUE; ELSE G1 := FALSE; END_IF END_IF (*** Sygnalizacja alarmów (p.5) ***) IF P1 OR (G1 AND NOT H1) OR (H3 AND NOT H2) OR (H2 AND NOT H1) THEN ALM:=TRUE; END_IF (*** Obsługa alarmów ***) IF ALM AND START THEN (* ALARM - np. uszkodzone czujniki *) Z1 := FALSE; Z2 := FALSE; (* Stan bezpieczny Z1, Z2 *) G1 := FALSE; (* Grzałka G1 wyłączona *) AUTO := FALSE; (* Tryb MANUAL *) START := FALSE; (* Zatrzymanie procesu *) Stan := 0; (* Tryb MANUAL *) END_IF IF ALMACK THEN (* Jeśli potwierdzony alarm *) ALM := FALSE; (* Kasowanie alarmu *) ALMACK := FALSE; (* Kasowanie potwierdzenia *) END_IF END_PROGRAM |
Rysunek 1: Testowanie działania programu pod symulatorem.
Rysunek 2: Informacja o rozpoczętej transmisji ze sterownikiem.
Rysunek 3: Widok na zmienne pochodzące od układu SMC.
Rysunek 4: Działająca wizualizacja w InTouch.
Wnioski:
Na laboratorium zapoznaliśmy się z działaniem programów CPDev, oraz InTouch.
Powyższy system cyklicznego napełniania i opróżniania zbiornika nie był przez nas przygotowywany od początku, a jedynie udoskonalany.
Ćwiczenie to miało na celu pokazanie jak działają wymienione wyżej programy, podstawy języka ST, oraz komunikację Modbusa.
System ten działa w oparciu o sterownik SMC wraz z modułami SM, który to komunikował się z PC za pomocą protokołu Modbus RTU.