programowanie c pl v1 id 395919 Nieznany

background image

1/3

Laboratorium: Programowanie Sterowników Przemysłowych

Ćwiczenie: Programowanie sterowników PLC w języku C


Celem ćwiczenia jest prezentacja metod i narzędzi wykorzystywanych do implementacji
i testowania aplikacji sterowników PLC w języku wysokiego C, na przykładzie sterowników GE
Fanuc PacSystems RX7i.

Przygotowanie projektu realizowane jest z wykorzystaniem oprogramowania Cimplity Machine
Edition oraz pakietu GE Fanuc C Toolkit for PACSystem. Umożliwiają one kompilację programu
w języku C oraz dołączenie go do programu w języku drabinkowym jako tzw. bloku zewnętrznego
(ang. external block). Ponadto w skład pakietu C Toolkit wchodzi debugger, umożliwiający
uruchamianie i testowanie programu bez użycia sterownika, w środowisku komputera PC.

Informacje dodatkowe
W skład programu w języku C musi wchodzić funkcja GefMain(). Jest ona wywoływana przez
system operacyjny sterownika PLC po umieszczeniu bloku zewnętrznego w programie w języku
drabinkowym. Parametry funkcji GefMain() muszą być zgodne co do typu i liczby z listą
parametrów zdefiniowanych dla bloku zewnętrznego w programie Cimplicity Machine Edition.
Wartość zwraca przez funkcję GefMain GEF_EXECUTION_OK lub GEF_EXECUTION_ERROR
odpowiada przekazaniu (lub nie) sygnału na tzw. wyjście zezwolenia bloku (tj. występujące w
każdym bloku wyjście binarne, nie posiadające nazwy)

Praca z debuggerem wymaga dołączenia do programu dodatkowego pliku źródłowego,
zawierającego punkt wejścia do programu (funkcję main()). Funkcja main() po zainicjowaniu
środowiska czasu wykonania za pomocą funkcji bibliotecznej initCBlock() wywołuje funkcję
GefMain() bloku specyfikując odpowiednie parametry.

Paramery bloku GefMain() są wskaźnikami na odpowiednie typy danych. W przypadku, gdy
w programie drabinowym nie jest określona wartość parametru, w wywołaniu GefMain()
odpowiedni parametr przyjmie wartość NULL. Dlatego też należy zwrócić szczególną uwagę na
kontrolę wartości parametrów w programie w języku C, aby zapobiec błędom odwołań do pamięci.

Zadania do realizacji w trakcie ćwiczenia
Dla każdego zadania utworzyć odrębny podkatalog w D:\PACSystemsCToolkit\Projects oraz
osobny blok zewnętrzny w Cimplicity Machine Edition. Wszystkie bloki umieścić w jednym
projekcie w języku drabinkowych.
1. Napisać procedurę o trzech parametrach wejściowych typu T_WORD i trzech parametrach

wyjściowych typu T_BOOLEAN. Parametry wejściowe określają numery badanych wejść
sterownika (np. wartość 12 odpowiada %I12). Procedura ma ustawiać odpowiedni parametr
wyjściowy (pierwszy, drugi lub trzeci) na 1 w zależności od liczby wejść, na których
występują stany 1. Np. dla dwóch aktywnych wejść należy ustawić drugim parametr wyjściowy
na wartość 1.
W programie w języku drabinkowym ustawić adresy odczytywanych wejść na 10, 11, 12 oraz
połączyć wyjścia bloku z komórkami %T1, %T2, %T3. Zwrócić uwagę, aby rozwiązując
kolejne zadania nie spowodować kolizji adresów.

background image

2/3

2. Napisać procedurę, która po pojawieniu się „1” na wejściu %I9 załącza wyjście %Q9 po 15

sekundach, a po wyłączeniu wejścia %I9 wyłącza wyjście %Q9 po 10 sekundach. Jeżeli „1” na
wejściu %I9 trwa krócej niż 15 sekund, wyjście %Q9 nie powinno się zapalić.

3. Zrealizować procedurę STER_ZAW sterującą pracą zaworu.

Sygnały wejściowe:
– R_ZAM – rozkaz operatora: zamknij zawór,
– R_OTW – rozkaz operatora: otwórz zawór,
– ZAM – sygnalizacja zawór zamknięty,
– OTW – sygnalizacja zawór otwarty,
Sygnały wyjściowe:
– S_ZAM – siłownik: zamykanie zaworu,
– S_OTW – siłownik: otwieranie zaworu,
– A_ZAM – awaria podczas zamykania zaworu,
– A_OTW – awaria podczas otwierania zaworu;
Algorytm:
– rozkaz R_ZAM powinien spowodować wystawienie sygnału dla siłownika S_ZAM aż do

uzyskania potwierdzenia otwarcia ZAM, analogicznie dla rozkazu R_OTW

– maksymalny dozwolony czas pracy siłownika to 10 sekund; w przypadku jego

przekroczenia procedura powinna zatrzymać pracę siłownika wystawić odpowiedni sygnał
alarmu: A_ZAM lub A_OTW

– skasowanie alarmu powinno nastąpić po prawidłowo wykonanym cyklu pracy (zamykania

lub otwierania) zaworu

– polecenie otwarcia zaworu otwartego lub zamknięcia zaworu zamkniętego należy

zignorować

4. Wykorzystując przygotowaną procedurę sterowania zaworem napisać program sterujący

dwoma zaworami, przyjmując następujące przyporządkowanie wejść/wyjść:

ZAWÓR 1

ZAWÓR 2

R_ZAM %I1 R_ZAM %I5

R_OTW %I2 R_OTW %I6

ZAM %I3 ZAM %I7

OTW %I4 OTW %I8

S_ZAM %Q1 S_ZAM %Q5

S_OTW %Q2 S_OTW %Q6

A_ZAM %Q3 A_ZAM %Q7

A_OTW %Q4 A_OTW %Q8

Tworzenie i kompilacja programu

– skrót

uruchamiający linię poleceń środowiska C Toolkit jest dostępny na pulpicie, zmienić

bieżący folder na odpowiedni dla zadania

– utworzyć program w języku C, zapisać plik źródłowy
– kompilacja

programu

w

języku C, program do uruchamiania przez sterownik PLC

CompileCPACRX7i <nazwa utworzonego pliku c bez rozszerzenia>

– utworzyć plik zawierający funkcję main()

/* IncludeFiles */

#include "ctkInitCBlock.h"

#include "PACRX7iPlc.h"

background image

3/3

#include <stdio.h>

/* forward declaration */

int GefMain (T_WORD *param1); /* Input Param 1 */

int main(int argc, char *argv[])

{

T_WORD param = 1;

int result;

initCBlock(); // inicjalizacja środowiska

result = GefMain(&param); // wywołanie zależne od parametrów procedury

if(result != GET_EXECUTION_OK.) printf(“Error”);

}

– utworzyć plik o nazwie sourcesDebug (bez rozszerzenia), zawierający listę plików

źródłowych projektu

CFILENAMES = plik1.c plik2.c

– kompilacja

programu

w

języku C, program do uruchamiania na komputerze PC

CompileCDebugPACRX7i

– uruchomienie programu za pomocą debuggera i testy

DebugPACRX7i pc\program.exe

– utworzenie

bloku

zewnętrznego programu wykorzystując wygenerowany plik

plc\program.gefElf (widok projektu, prawy klawisz myszy na Logic->Program Blocks; Add
C Block), zdefiniować parametry wejściowe bloku za pomocą opcji Parameters

5. utworzyć główny blok programu sterownika (_MAIN) wykorzystując zdefiniowany blok

zewnętrzny i przetestować pracę programu

Sprawozdanie

– skład osobowy sekcji wykonującej ćwiczenie,
– rozwiązania zadań: pliki źródłowe w języku C i skompilowane
– kopia projektu Cimplicity Machine Editon (funkcja Backup).
– wnioski.

Wszystkie składniki sprawozdania należy skompresować w formacie *.zip tworząc plik o nazwie
gXsYcZ.zip, gdzie X jest numerem grupy, Y sekcji a Z ćwiczenia

Sprawozdanie należy umieścić na serwerze ftp w terminie nie dłuższym niż 2 tygodnie od odbycia
zajęć. Adres serwera: 157.158.57.50, user: labplc, pass: plclab. Studenci zobowiązani są do
przechowywania kopii sprawozdania, na wypadek awarii serwera lub innych nieprzewidzianych
zdarzeń.

Instrukcje do ćwiczenia
http://www.iinf.polsl.gliwice.pl/iinf/infprzem/_teaching/teaching_activity.htm

1. GE Fanuc PACSystems C Toolkit
2. GE Fanuc PACSystems RX7i
3. Cimplicity ME


Wyszukiwarka

Podobne podstrony:
BoeBot v1 0 id 91312 Nieznany (2)
Program kola plastycznego id 39 Nieznany
przebieg negocjacji PL UE id 91 Nieznany
Final v1 id 171205 Nieznany
ANSYS AI Nastran v1 0 id 65570 Nieznany (2)
osiagniecia pl prez id 341234 Nieznany
D5 instrukcja v1 5 id 130749 Nieznany
Programowanie w Unix p1 id 8273 Nieznany
cereals PL final id 110004 Nieznany
bonito pl 90026289 id 91725 Nieznany
makro opracowanie v1 1 id 27757 Nieznany
BA MS300 PL Rev03 id 75666 Nieznany
IO wyk2 procesIO v1 id 556045 Nieznany
ca6 ii pl 0509 id 107558 Nieznany
ca6 is pl 0612 id 107559 Nieznany
notatek pl 777 id 321326 Nieznany
pl search id 360400 Nieznany
PrAdmin program cw 2011 id 3845 Nieznany
Program Z D 1112 EK id 395574 Nieznany

więcej podobnych podstron