J zyk C dla sterowników programowalnych GeFanuc Na podstawie C Programmer's Toolkit for PACSystems Bartosz Puchalski Katedra In»ynierii Systemów Sterowania 17 grudnia 2013 Bartosz Puchalski KISS 1/48
Spis rzeczy 1 Dokumentacja Wymagania co do nazw plików Nazwy zastrze»one Pliki nagªówkowe (wymagane) Inne pliki nagªówkowe 2 Bartosz Puchalski KISS 2/48
Spis rzeczy 1 Dokumentacja Wymagania co do nazw plików Nazwy zastrze»one Pliki nagªówkowe (wymagane) Inne pliki nagªówkowe 2 Bartosz Puchalski KISS 2/48
Spis rzeczy Dokumentacja Wymagania co do nazw plików Nazwy zastrze»one Pliki nagªówkowe (wymagane) Inne pliki nagªówkowe 1 Dokumentacja Wymagania co do nazw plików Nazwy zastrze»one Pliki nagªówkowe (wymagane) Inne pliki nagªówkowe 2 Bartosz Puchalski KISS 3/48
Dokumentacja Dokumentacja Wymagania co do nazw plików Nazwy zastrze»one Pliki nagªówkowe (wymagane) Inne pliki nagªówkowe Tytuª dokumentu: C Programmer's Toolkit for PACSystems User's Manual, GFK-2259B November 2005 Strona internetowa: http://support.ge-ip.com Bartosz Puchalski KISS 4/48
Spis rzeczy Dokumentacja Wymagania co do nazw plików Nazwy zastrze»one Pliki nagªówkowe (wymagane) Inne pliki nagªówkowe 1 Dokumentacja Wymagania co do nazw plików Nazwy zastrze»one Pliki nagªówkowe (wymagane) Inne pliki nagªówkowe 2 Bartosz Puchalski KISS 5/48
Dokumentacja Wymagania co do nazw plików Nazwy zastrze»one Pliki nagªówkowe (wymagane) Inne pliki nagªówkowe Okno gªówne przybornika Katalog przybornika Ikona przybornika (Pulpit) Bartosz Puchalski KISS 6/48
Dokumentacja Wymagania co do nazw plików Nazwy zastrze»one Pliki nagªówkowe (wymagane) Inne pliki nagªówkowe Minimalne wymagania systemowe: Komputer klasy PC z procesorem Pentium 166 MHz lub lepszy, RAM: minimum 128 MB, Miejsce na dysku: minimum 100MB, System operacyjny: Windows 2000, Windows ME, Windows 98, Windows NT 4.0 SP6a lub Windows XP Bartosz Puchalski KISS 7/48
Spis rzeczy Dokumentacja Wymagania co do nazw plików Nazwy zastrze»one Pliki nagªówkowe (wymagane) Inne pliki nagªówkowe 1 Dokumentacja Wymagania co do nazw plików Nazwy zastrze»one Pliki nagªówkowe (wymagane) Inne pliki nagªówkowe 2 Bartosz Puchalski KISS 8/48
Wymagania co do nazw plików Dokumentacja Wymagania co do nazw plików Nazwy zastrze»one Pliki nagªówkowe (wymagane) Inne pliki nagªówkowe Nazwy plików boków napisanych w j zyku C (np. mojblokc.gefelf) musz speªnia nast puj ce zalecenia: maksymalna dªugo± nazwy 31 znaków, pierwszy znak nazwy musi by liter, nazwa pliku nie mo»e zawiera spacji, nie mo»na u»ywa Rel jako nazwy pliku, gdy» jest ona zarezerwowana przez przybornik. Bartosz Puchalski KISS 9/48
Spis rzeczy Dokumentacja Wymagania co do nazw plików Nazwy zastrze»one Pliki nagªówkowe (wymagane) Inne pliki nagªówkowe 1 Dokumentacja Wymagania co do nazw plików Nazwy zastrze»one Pliki nagªówkowe (wymagane) Inne pliki nagªówkowe 2 Bartosz Puchalski KISS 10/48
Nazwy zastrze»one Dokumentacja Wymagania co do nazw plików Nazwy zastrze»one Pliki nagªówkowe (wymagane) Inne pliki nagªówkowe Aby zapobiec koniktom pomi dzy przybornikiem C a zdeniowanymi przez u»ytkownika nazwami nie powinno si u»ywa : nazw zaczynaj cych si od GEF_, nazw zaczynaj cych si kropk. np..mojedane. Nie przestrzeganie tych dwóch prostych zasad mo»e objawi si bª dami podczas kompilacji, bª dami zapisywania oraz nieprawidªowymi operacjami. Bartosz Puchalski KISS 11/48
Spis rzeczy Dokumentacja Wymagania co do nazw plików Nazwy zastrze»one Pliki nagªówkowe (wymagane) Inne pliki nagªówkowe 1 Dokumentacja Wymagania co do nazw plików Nazwy zastrze»one Pliki nagªówkowe (wymagane) Inne pliki nagªówkowe 2 Bartosz Puchalski KISS 12/48
Pliki nagªówkowe (wymagane) Dokumentacja Wymagania co do nazw plików Nazwy zastrze»one Pliki nagªówkowe (wymagane) Inne pliki nagªówkowe Pisanie bloku w j zyku C odbywa si za po±rednictwem dowolnego edytora tekstowego o ile wyj±cie z edytora jest kompatybilne z kompilatorem GNU C. Aby wykorzysta funkcje i makra dost pne z biblioteki przybornika nale»y wykorzysta odpowiedni plik nagªówkowy: #include <PACRXPlc.h> dla bloków C uruchamianych w dowolnym kontrolerze PACSystems, #include <PACRX7iPlc.h> dla bloków C uruchamianych i wykorzystuj cych zasoby kontrolerów z rodziny RX7i, #include <PACRX3iPlc.h> dla bloków C uruchamianych i wykorzystuj cych zasoby kontrolerów z rodziny RX3i. Bartosz Puchalski KISS 13/48
Spis rzeczy Dokumentacja Wymagania co do nazw plików Nazwy zastrze»one Pliki nagªówkowe (wymagane) Inne pliki nagªówkowe 1 Dokumentacja Wymagania co do nazw plików Nazwy zastrze»one Pliki nagªówkowe (wymagane) Inne pliki nagªówkowe 2 Bartosz Puchalski KISS 14/48
Inne pliki nagªówkowe Dokumentacja Wymagania co do nazw plików Nazwy zastrze»one Pliki nagªówkowe (wymagane) Inne pliki nagªówkowe #include <stdio.h> standardowe wej±cia/wyj±cia, #include <math.h> operacje matematyczne, #include <stdlib.h> operacje matematyczne, operacje konwersji, funkcje szukania, #include <string.h> przeksztaªcanie ci gów znaków, #include <time.h> funkcje zwi zane z obsªug czasu, #include <ctype.h> klasykacja znaków, konwersja. Bartosz Puchalski KISS 15/48
Spis rzeczy 1 Dokumentacja Wymagania co do nazw plików Nazwy zastrze»one Pliki nagªówkowe (wymagane) Inne pliki nagªówkowe 2 Bartosz Puchalski KISS 16/48
Po doª czeniu odpowiednich plików nagªówkowych, mo»na zacz pisanie wªa±ciwego kodu w j zyku C, który wykonuje okre±lone zadania wykorzystuj c funkcje z biblioteki. Blok lub bloki napisane w j zyku C musz posiada jedn i tylko jedn funkcje o nazwie GefMain. Poprzez t funkcje przekazywane s dane z i do bloku napisanego w j zyku C. Bartosz Puchalski KISS 17/48
Spis rzeczy 1 Dokumentacja Wymagania co do nazw plików Nazwy zastrze»one Pliki nagªówkowe (wymagane) Inne pliki nagªówkowe 2 Bartosz Puchalski KISS 18/48
Zmienna w C Toolkit Opis Zmienna w Logic Developer T_BOOLEAN 8 bit, gdzie 0 oznacza BOOL FAŠSZ a warto± niezerowa oznacza PRAWD T_BYTE 8 bitów, typ bez znaku BYTE T_WORD 16 bitów, typ bez znaku WORD T_DWORD 32 bity, typ bez znaku DWORD T_INT8 8 bitów, ze znakiem niedost pne T_INT16 16 bitów, ze znakiem u»ycie typu int w pliku ¹ródªowym C skutkuje typem 32 bitowym ze znakiem Bartosz Puchalski KISS 19/48
cd. Zmienna w C Toolkit Opis Zmienna w Logic Developer T_INT32 32 bity, ze znakiem DINT T_UINT8 8 bitów, bez znaku BYTE T_UINT16 16 bitów, bez znaku UINT T_UINT32 32 bity, bez znaku DWORD T_UINT64 64 bity, bez znaku niedostepne T_REAL32 32 bity, REAL zmiennoprzecinkowa T_REAL64 64 bity, zmiennoprzecinkowa LREAL Bartosz Puchalski KISS 20/48
Spis rzeczy 1 Dokumentacja Wymagania co do nazw plików Nazwy zastrze»one Pliki nagªówkowe (wymagane) Inne pliki nagªówkowe 2 Bartosz Puchalski KISS 21/48
Po napisaniu kodu bloku w j zyku C nale»y skompilowa plik ¹ródªowy. bloku: Uruchomi C Toolkit klikaj c dwukrotnie na ikon PACSystems C Toolkit znajduj c si na pulpicie lub plik ctkpacs.bat znajduj cy si w folderze gdzie zostaª zainstalowany przybornik, W oknie konsoli DOS przej± do katalogu w którym znajduj si plik do kompilacji, Bartosz Puchalski KISS 22/48
Po napisaniu kodu bloku w j zyku C nale»y skompilowa plik ¹ródªowy. bloku: Uruchomi C Toolkit klikaj c dwukrotnie na ikon PACSystems C Toolkit znajduj c si na pulpicie lub plik ctkpacs.bat znajduj cy si w folderze gdzie zostaª zainstalowany przybornik, W oknie konsoli DOS przej± do katalogu w którym znajduj si plik do kompilacji, Bartosz Puchalski KISS 22/48
cd. Wpisa odpowiedni komend : aby skompilowa blok w j zyku C który b dzie uruchamiany na dowolnych kontrolerach z rodziny PACSystems RX: compilecpacrx <le name>, aby skompilowa blok w j zyku C który b dzie uruchamiany na kontrolerach z rodziny PACSystems RX3i: compilecpacrx3i <le name>, aby skompilowa blok w j zyku C który b dzie uruchamiany na kontrolerach z rodziny PACSystems RX7i: compilecpacrx7i <le name>. Przykªad Na przykªad aby skompilowa plik mojplikc.c dla kontrolerów z rodziny RX3i nale»y wpisa komend : compilecpacrx3i mojplikc Bartosz Puchalski KISS 23/48
cd. Wpisa odpowiedni komend : aby skompilowa blok w j zyku C który b dzie uruchamiany na dowolnych kontrolerach z rodziny PACSystems RX: compilecpacrx <le name>, aby skompilowa blok w j zyku C który b dzie uruchamiany na kontrolerach z rodziny PACSystems RX3i: compilecpacrx3i <le name>, aby skompilowa blok w j zyku C który b dzie uruchamiany na kontrolerach z rodziny PACSystems RX7i: compilecpacrx7i <le name>. Przykªad Na przykªad aby skompilowa plik mojplikc.c dla kontrolerów z rodziny RX3i nale»y wpisa komend : compilecpacrx3i mojplikc Bartosz Puchalski KISS 23/48
cd. Wpisa odpowiedni komend : aby skompilowa blok w j zyku C który b dzie uruchamiany na dowolnych kontrolerach z rodziny PACSystems RX: compilecpacrx <le name>, aby skompilowa blok w j zyku C który b dzie uruchamiany na kontrolerach z rodziny PACSystems RX3i: compilecpacrx3i <le name>, aby skompilowa blok w j zyku C który b dzie uruchamiany na kontrolerach z rodziny PACSystems RX7i: compilecpacrx7i <le name>. Przykªad Na przykªad aby skompilowa plik mojplikc.c dla kontrolerów z rodziny RX3i nale»y wpisa komend : compilecpacrx3i mojplikc Bartosz Puchalski KISS 23/48
cd. Wpisa odpowiedni komend : aby skompilowa blok w j zyku C który b dzie uruchamiany na dowolnych kontrolerach z rodziny PACSystems RX: compilecpacrx <le name>, aby skompilowa blok w j zyku C który b dzie uruchamiany na kontrolerach z rodziny PACSystems RX3i: compilecpacrx3i <le name>, aby skompilowa blok w j zyku C który b dzie uruchamiany na kontrolerach z rodziny PACSystems RX7i: compilecpacrx7i <le name>. Przykªad Na przykªad aby skompilowa plik mojplikc.c dla kontrolerów z rodziny RX3i nale»y wpisa komend : compilecpacrx3i mojplikc Bartosz Puchalski KISS 23/48
cd. Wpisa odpowiedni komend : aby skompilowa blok w j zyku C który b dzie uruchamiany na dowolnych kontrolerach z rodziny PACSystems RX: compilecpacrx <le name>, aby skompilowa blok w j zyku C który b dzie uruchamiany na kontrolerach z rodziny PACSystems RX3i: compilecpacrx3i <le name>, aby skompilowa blok w j zyku C który b dzie uruchamiany na kontrolerach z rodziny PACSystems RX7i: compilecpacrx7i <le name>. Przykªad Na przykªad aby skompilowa plik mojplikc.c dla kontrolerów z rodziny RX3i nale»y wpisa komend : compilecpacrx3i mojplikc Bartosz Puchalski KISS 23/48
cd. Je»eli wyst pi bª dy kompilacji zostan one pokazana na ekranie konsoli. Je»eli kompilacja zako«czy si z powodzeniem zostanie utworzony plik o tej samej nazwie co plik ¹ródªowy tylko»e z rozszerzeniem.gefelf. Plik ten zostanie umieszczony w tym samym katalogu co plik ¹ródªowy w podkatalogu plc aby byªo jasne jaki plik nale»y przenie± na sterownik. Przykªad Na przykªad po skompilowaniu pliku mojplikc.c zostanie utworzony skompilowany plik mojplikc.gefelf Bartosz Puchalski KISS 24/48
Spis rzeczy 1 Dokumentacja Wymagania co do nazw plików Nazwy zastrze»one Pliki nagªówkowe (wymagane) Inne pliki nagªówkowe 2 Bartosz Puchalski KISS 25/48
Typ Referencji Opis %I Dyskretne wej±cie (tylko do odczytu) %Q Dyskretne wyj±cie (tylko do odczytu) %M Dyskretna pami wewn trzna ( tylko do odczytu) %T Dyskretna pami tymczasowa (tylko do odczytu) %G Dyskretne pami globalna (tylko do odczytu) %S Dyskretne pami systemowa (tylko do odczytu) Bartosz Puchalski KISS 26/48
cd. Typ Referencji Opis %AI Rejestry wej± analogowych %AQ Rejestry wyj± analogowych %R Rejestry systemowe %P Rejestry programu (u»ywane do zapami tywania danych z bloku Main) %L Lokalne rejestry (u»ywane do zapami tywania danych z bloków) Bartosz Puchalski KISS 27/48
cd. Modykator Opis B Referencja bajtowa bez znaku (8 bitów, 0 -> 255) W Referencja Word (16 bitów, 0 -> 65535) I Referencja caªkowitoliczbowa (16 bitów ze znakiem, -32768 -> 32767) D Referencja podwójnej precyzji caªkowitoliczbowa (32 bity ze znakiem) F Referencja zmiennoprzecinkowa (32 bity standard IEEE) Dbl Referencja zmiennoprzecinkowa podwójnej precyzji (64 bit standard IEEE) Bartosz Puchalski KISS 28/48
cd. Przykªad RI(1) = 3; //Przypisuje warto± caªkowitoliczbow 3 do rejestru %R00001 RW(2) = 0x55AA; //Przypisuje warto± typu word 55AAh do rejestru %R0002 Bartosz Puchalski KISS 29/48
Spis rzeczy 1 Dokumentacja Wymagania co do nazw plików Nazwy zastrze»one Pliki nagªówkowe (wymagane) Inne pliki nagªówkowe 2 Bartosz Puchalski KISS 30/48
Modykator BIT_TST_X BIT_SET_X BIT_CLR_X Opis Wykonuje test opisanego bitu Ustawia okre±lony bit Czy±ci okre±lony bit Bartosz Puchalski KISS 31/48
cd Przykªad #include PACRXPlc.h int GeFMain() { if (BIT_TST_I(120)) { BIT_SET_Q(137); BIT_SET_M(29); BIT_SET_T(99); } else { BIT_CLR_Q(137); BIT_CLR_M(29); BIT_CLR_T(99); } return(gef_execution_ok); } Bartosz Puchalski KISS 32/48
cd Aby wykorzysta makra bitowe do zmiennych zorientowanych jako sªowo w sterowniku PLC, nale»y poda dwa parametry okre±laj ce: 1 Adres w pami ci sterownika, 2 Numer bitu z wybranego sªowa (nmery bitów od 1 do 16, gdzie 1 oznacza najmniej znacz cy bit) Bartosz Puchalski KISS 33/48
cd Przykªad if (BIT_TST_R(135, 6) ) BIT_SET_P(13, 4); else BIT_CLR_AI(2,1); Bartosz Puchalski KISS 34/48
A teraz praktyka :-) Bartosz Puchalski KISS 35/48
Listing programu przyklad Bartosz Puchalski KISS 36/48
Bartosz Puchalski KISS 37/48
Bartosz Puchalski KISS 38/48
Bartosz Puchalski KISS 39/48
Bartosz Puchalski KISS 40/48
Bartosz Puchalski KISS 41/48
Bartosz Puchalski KISS 42/48
Bartosz Puchalski KISS 43/48
Bartosz Puchalski KISS 44/48
Bartosz Puchalski KISS 45/48
Bartosz Puchalski KISS 46/48
Bartosz Puchalski KISS 47/48
Bartosz Puchalski KISS 48/48