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
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
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:
|
|
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 |
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:
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
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(...).
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
// tu wsciekamy sie na socketach
// zwalniamy winsocka
// jesli ladowalismy osobiscie biblioteke,
to
|
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 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:
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
[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
Aby ominąć w3cache / proxy, odswiez zawartosc strony w przegladarce lub uzyj: reload |