Sprzęt Komputerowy Systemów Sterujących - projekt, AiR-RI, III r


 
Informacje dla studentow IV roku AiR st. Zaoczne: prosze zapoznac sie z mate stronie dydaktycznej

W ramach tego przedmiotu odbędzie się pięć zajęć laboratoryjnych oraz zostaną rozdane do wykonania dwa projekty: 'mniejszy' i 'większy'. Obecność na zajęciach lab. jest obowiązkowa. Poruszone zostaną na nich następujące zagadnienia:

 Zajęcia 1
 Zajęcia 2
 Zajęcia 3
 Zajęcia 4
 Zajęcia 5



 Projekty !!!


Zajęcia 1

Sterowniki PLC a standard IEC 1131-3.

Wprowadzenie do tematyki projektowania oprogramowania dla sterowników PLC zgodnie ze standardem IEC 1131-3 w oparciu o środowisko ISaGRAF; struktura oprogramowania;  języki: SFC, LD, FBD, IL i ST; symulacja i uruchamianie programów.
Wersja demonstracyjna programu ISaGRAF v3 :  isagraf3.rar
 Zastosowanie PLC
 

Zajęcia 2

Programowanie operacji wejścia / wyjścia metodą pollingu. Assembler.

Celem tych zajęć jest poznanie problematyki dostępu do sprzętu z poziomu programu w systemie jednozadaniowym DOS oraz programowanie w języku assemblera 8088. Na zajęcia należy zaznajomić się z zamieszczonymi poniżej materiałami:

Specyfika portów równoległego i szeregowego ([1], rozdz. 5, 7, 10.6), instrukcje wejścia/wyjścia w assemblerze ([1], str. 105)

Kompilator i przebieg kompilacji
Programy będą kompilowane kompilatorem tasm firmy Borland, wchodzącym w skład pakietu BC 3.11. Przebieg operacji jest następujacy:
 1. tworzymy plik z programem mojplik.asm
 2. kompilujemy poleceniem: tasm mojplik.asm
 3. powstały kod przesuwalny  łączymy do postaci wykonywalnej poleceniem: tlink mojplik.obj
 4. usuwamy niepotrzebne pliki *.map i *.obj poleceniem: del mojplik.obj mojplik.map
Powyższe czynności można zautomatyzować w pliku wsadowym (skrypcie) *.bat.

Przykładowy szkielet programu w assemblerze znajduje się tutaj: SZKIELET.ASM (do wykorzystania na zajęciach)
W trakcie zajęć warto wykorzystać wizualizacje świadczące o świadomości działań programistów. Oprócz efektów tekstowych można użyć grafiki, co przybliży przykład :  GRAFIKA.ASM . Dodatkowe 'wodotryski' są zamieszczone poniżej:
 
Efekt 1
Efekt 2
  mov bh,al     ; al zawiera pewną liczbę (kolor)
  and bh,63
  mov ah,10h
  mov al,01h
  int 10h
   mov al,0edh
   out 60h, al
; opoznienie, najlepiej na petli cx
   mov al,07h       ; przetestuj 3 najmłodsze bity (0-7)
   out 60h, al
efekt ich działania, zamieszczony jest tutaj:  DEMO.EXE, v1 , uruchom w DOSie lub w9x.
Spostrzezenia : grupy zajmujace sie LPT - odbieranie bylo ok - podczas wlaczania windy na sasiedni terminal przychodzily smieci ...
 

Zajęcia 3

Komunikacja po łączu szeregowym / równoległym. Programowanie operacji wejścia / wyjścia w języku C z wykorzystaniem przerwań. Programy rezydentne.

Do przygotowania :
1. Zaznajomienie się z następującymi funkcjami, dostępnymi w bibliotece dos.h:

2. Ustawianie przerwania dla portu szeregowego, wpisy parametrow transmisji do rejestrow, wpisy do rejestrow w procedurze obsługi [3].
3. Parametry transmisji myszki [1],s.84

Nie zamieszczam szkieletu, gdyż najprostszy program obslugujący przerwania jest trywialny, liczę na samodzielność Studentów III roku AiRI. W razie jakiś wątpliwości proszę pisać lub odwiedzać laboratorium, jestem przeważnie pn-czw w okolicy godz. 11.30.
Czy jest możliwe napisanie tego typu programów?  intmysz.exe
 

Zajęcia 4

Programowanie zdarzeniowe w Windows - Win32 API.
Polecam darmowy (GNU) pakiet visualopodobny do tworzenia programow pod win32 w API, korzystajacy z mingw32, Bloodshed http://www.bloodshed.net/. Pakiet posiada mozliwosc tworzenia szkieletu programu, co ulatwi zaznajomienie sie z zagadnieniem aplikacji zdarzeniowych.
Screenshot zamieszczam tutaj: DevCPP
Download DevCpp v4, ~7,56 MB, w labolatorium jest w postaci podzielonej na dyskietki (5)
Zamieszczam tez przykladowa aplikacje testapi.cpp wygenerowana w DevCPP z pewnymi dodatkami - pokazuja ona, jak dodawac elementy kontrolne bez uzycia plikow zasobow - prosilbym o zaznajomienie sie przed laboratorium z nastepujacymi funkcjami: CreateWindow(...), SetWindowText(...), SendMessage(...).
 

Zajęcia 5

Komunikacja sieciowa TCP/IP w oparciu o gniazda (sockets). Realizacja w systemach Unix. Winsock.
Gniazda (sockets) są sposobem realizacji komunikacji sieciowej w protokole TCP/IP. Pierwotnie wiążą się z systemami unixowymi, istnieją także implementacje dla innych systemów, w tym Windows 95, na których będziemy realizować zajęcia. W przypadku tego systemu ich implementacja nazywa się Winsock i w dużej mierze pokrywa się z orginałem.
Należy się przygotować:
- funkcje i struktury: socket, inetaddr, gethostbyname, connect, read/write, close (closesocket), bind*, WSAAsyncSelect
- zagadnienie socketów synchronicznych i asynchronicznych

Istotne zagadnienia (narzuty) związane z winsockiem:
 
// mozna pominac w przypadku dodania do projektu biblioteki winsock.lib lub wsock32.lib
 hWsock = LoadLibrary("WINSOCK.DLL");
 if(hWsock <= HINSTANCE_ERROR)
    ...

// inicjacja winsocka
 WORD wVersionRequested;
 WSADATA wsaData;
 int err; 
 wVersionRequested = MAKEWORD( 2, 2 ); 
 err = WSAStartup( 0x101, &wsaData );
 if ( err != 0 ) 
     ....

// tu wsciekamy sie na socketach
   ....

// zwalniamy winsocka
 WSACleanup();

// jesli ladowalismy osobiscie biblioteke, to
 FreeLibrary(hWsock);

Dla ambitnych - realizacja (na zajęciach) aplikacji serwerów sieciowych wlasnej uslugi..

Informacje o portach:  http-80, telnet-23, finger-79, poczta pop3-110, Napster ....

Czy da sie takiego cos napisac ? Program do sprawdzania poczty ... CheckMail



Projekty

Projekty małe: należy we własnym zakresie wykonać osobiście przykład układu sterowanego przez sterownik PLC. Projekciki mają być unikalne w skali roku (także 2 poprzednich lat) oraz sieci lokalnej DS5 i DS14. Tak, 1 projekt/osobę. Wybór języka: SFC + dowolny pomocniczy

Osoby zainteresowane 'dużymi' projektami mają w obrębie przedmiotu do wyboru następujące tematy:

* oznacza, ze jakaś grupa wyraziła zainteresowanie tematem.

Przypominam termin oddania projektow - do konca biezacego semestru
Projekty male : 3-5 stron opisu i realizacji realnego zagadnienia, z wyszczegolnieniem imienia i nazwiska autora, prosze nie generowac opisu 'na odczepne'; termin - do wpisu oceny do indexu. W kwestii oddania: mozna zostawic projekcik na stole pod oknem. Prosilbym takze o nie dolaczanie dyskietek do dokumentow - nie chcialbym wciagac Was w koszty.
W zwiazku z nieoddawaniem przez Was malych projektow, mozemy potraktowac ich brak jako obnizenie oceny o punkt.

Komentarze, uwagi:  pioro@ia.agh.edu.pl
UWAGA ! Zmienil sie termin konsultacji: sroda, 11.00-12.00. Obiecane materialy prosze poprzedzac e-mailem wyslanym dzien wczsniej
Adam Piorkowski



Literatura:

[1]. Werewka Jan : Programowanie sprzętu komputerowego dla Automatyków, skrypt AGH 1514
[2]. Metzger P. : Anatomia PC, Helion 93
[3]. Mielczarek W. : Szeregowe interfejsy cyfrowe, Helion 1993
[4]. Karmanski J. : Praktyczny kurs programowania pod Windows 95
 
 
Uwaga ! Strona moze byc cache'owana..
Aby ominąć w3cache / proxy, odswiez zawartosc strony w przegladarce lub uzyj: reload