PROGRAMOWANIE WĘZŁÓW LONWORKS NEURON C

Podobne dokumenty
Ćwiczenie ABIS-C03. Programowanie węzłów sieci LonWorks z wykorzystaniem modułów Mini FX/FT

Ćwiczenie ABIS-C04. Programowanie węzłów sieci LonWorks z wykorzystaniem modułów Mini FX/PL

Modułowy programowalny przekaźnik czasowy firmy Aniro.

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

SmartGuard 600. Funkcja. Dane techniczne. Produkty Komponenty bezpieczeństwa Sterowniki bezpieczeństwa S

Język C. Wykład 9: Mikrokontrolery cz.2. Łukasz Gaweł Chemia C pokój 307

1. Podstawowe wiadomości Możliwości sprzętowe Połączenia elektryczne Elementy funkcjonalne programów...

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Konfiguracja i programowanie PLC Siemens SIMATIC S7 i panelu tekstowego w układzie sterowania napędami elektrycznymi. Przebieg ćwiczenia

Sterownik klimakonwektora

Ćwiczenie SIC-C02. Integracja systemu automatyki budynkowej zrealizowanego w technologii LonWorks

INDU-40. Przemysłowy Sterownik Mikroprocesorowy. Przeznaczenie. Dozowniki płynów, mieszacze płynów.

Moduł monitoringu energii elektrycznej

Uwaga: dioda na wyjściu 13 świeci gdy na wyjście podamy 0.

Konfiguracja i programowanie sterownika GE Fanuc VersaMax z modelem procesu przepływów i mieszania cieczy

Wstęp Architektura... 13

EV3 X21 instrukcja uproszczona

LOW ENERGY TIMER, BURTC

Szkolenia specjalistyczne

Spis treści. Wykaz ważniejszych skrótów Wprowadzenie Rdzeń Cortex-M Rodzina mikrokontrolerów XMC

Termostat cyfrowy do stacjonarnych urządzeń chłodniczych z funkcją oszczędzania energii

LabVIEW PLATFORMA EDUKACYJNA Lekcja 5 LabVIEW i Arduino konfiguracja środowiska i pierwszy program

RS485 MODBUS Module 6RO

Otwór w panelu WYMIAR MINIMALNIE OPTYMALNIE MAKSYMALNIE A 71(2,795) 71(2,795) 71,8(2,829) B 29(1,141) 29(1,141) 29,8(1,173)

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

RX10RF + VS RF + SALUS Smart Home Podłączenie modułu sterującego i regulatora

INSTRUKCJA OBSŁUGI K3-3. Czytnik kart i zamek kodowy z kontrolerem dostępu i interfejsem Wiegand. Copyright Domster T. Szydłowski

Serwonapędy AC Serie EDC, EDB, ProNet

Moduł monitoringu mediów MMC

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Podstawy programowania PLC - zadania

CoDeSys 3 programowanie w języku drabinkowym LD

RS485 MODBUS Module 6RO

Instrukcja Termostat FH-CWP programowalny

Instrukcja obsługi termostatu W1209

4.1.5 Zakładka: Monitoring GPRS Zakładka: LogicProcessor. Konfiguracja systemu.

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Konfiguracja i programowanie sterownika GE Fanuc VersaMax z modelem procesu przepływów i mieszania cieczy. Przebieg ćwiczenia

Ecus Hotel. termostat cyfrowy z komunikacją Modbus

Moduł konwertera RS-232/LON

Politechnika Gdańska. Gdańsk, 2016

PROGRAMOWALNE STEROWNIKI LOGICZNE

ZASOBY ZMIENNYCH W STEROWNIKACH SAIA-BURGESS

SKRÓCONY OPIS REGULATORA AT-503 ( opracowanie własne TELMATIK - dotyczy modeli AT i AT )

XMEGA. Warsztaty CHIP Rok akademicki 2014/2015

Moduł konwertera RS-232/LON

EV3 B23. Podstawowy elektroniczny sterownik chłodniczy (instrukcja skrócona dla P4 = 1)

Przykład programowania PLC w języku drabinkowym - ćwiczenie 6

DEKODER FUNKCJI SPECJALNYCH

Systemy Wbudowane. Arduino - rozszerzanie. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD

CLIMATE 5000 VRF. Karta bramki systemu zarządzania budynkiem (Lonworks) BMS-LON. Instrukcja montażu i obsługi (2017/05) PL

Instrukcja obsługi elektronicznego licznika typu 524. Model 524. Licznik sumujący i wskaźnik pozycji typu Opis. 1. Opis

RS485 MODBUS Module 6TE

Konfigurator Modbus. Instrukcja obsługi programu Konfigurator Modbus. wyprodukowano dla

Millenium II+ Moduły programowalne. jeszcze więcej możliwości NOWOŚĆ! FUNKCJA

Niektóre piny mogą pełnić różne role, zależnie od aktualnej wartości sygnałów sterujących.

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Kod produktu: MP01105

PRUS. projekt dokumentacja końcowa

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

RS485 MODBUS Module 6RO

Instrukcja obsługi. Zamek szyfrowy ATLO-RM (wersja bez klawiatury) Dane techniczne oraz treść poniższej instrukcji mogą ulec zmianie bez uprzedzenia.

2. Architektura mikrokontrolerów PIC16F8x... 13

Obsługa programów diagnostycznych pralek Electrolux dla wersji EWM1000plus, EWM2000evo, EWM3000new

Moduł czujnika i zadajnika temperatury.

Wyświetlacz funkcyjny C6

Standardowe bloki funkcjonalne

Spis treści. Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego

Uniwersalny Węzeł LON

Mini Modbus 1AI. Moduł rozszerzający 1 wejście analogowe, 1 wyjście cyfrowe. Wyprodukowano dla

STEROWNIKI BEZPIECZEŃSTWA

Ogranicznik prędkości

LABORATORIUM PRZEMYSŁOWYCH SYSTEMÓW STEROWANIA

Podstawy programowania skrót z wykładów:

MIERNIK PARAMETRÓW SIECI TYP NR30

dv-2ps INSTRUKCJA OBSŁUGI

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

AKTUATOR DO SYSTEMU DUO Q

Service pin lub przez ręczne wprowadzenie numeru

Sterownik procesorowy S-2 Komunikacja RS485 MODBUS

Cel ćwiczenia. Wstęp stanowisko laboratoryjne

Elastyczne systemy wytwarzania

Meraserw-5 s.c Szczecin, ul.gen.j.bema 5, tel.(91) , fax (91) ,

EV6 223 instrukcja uproszczona

ELPM-8DI8DOasLightCount

Szybki przewodnik instalacji

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Instrukcja integracji urządzenia na magistrali Modbus RTU. wersja 1.1

Moduł komunikacyjny Modbus RTU do ciepłomierza SonoMeter 30

Sterownik Spid Pant 8 i Ant 8. Podręcznik użytkowania

Uczeń/Uczennica po zestawieniu połączeń zgłasza nauczycielowi gotowość do sprawdzenia układu i wszystkich połączeń.

Programowanie obiektowe

Radio FM kuchenne SoundMaster UR 2006, LCD, pamięć 30 stacji

EV Termostat cyfrowy do urządzeń chłodniczych

Inteligentny sterownik oświetlenia ulicznego Serii GLC100 Instrukcja obsługi

GRM-10 - APLIKACJA PC

Falowniki Wektorowe Rexroth Fv Parametryzacja

dokument DOK wersja 1.0

DEMERO Automation Systems

Transkrypt:

PROGRAMOWANIE WĘZŁÓW LONWORKS NEURON C Język programowania Neuron C Profile i bloki funkcjonalne Narzędzia programowania i diagnostyki ABIS-cz-4-wykł

JĘZYK NEURON C PODSTAWY Neuron C Programmer s Guide 2.0 PDF Neuron C Reference Guide 2.0 PDF I/O Model Reference 2.0 PDF Neuron C bazuje na strukturach ANSI C Główne różnice: Nowy model komunikacji bloki funkcjonalne, zmienne sieciowe i ustawienia konfiguracyjne Modele obsługi wej/wyj programowalne I/O układu Neuron Chip Obsługa zdarzeń klauzula WHEN brak pętli main () Blok funkcjonalny Zbiór zmiennych sieciowych i ustawień konfiguracyjnych, używanych wspólnie do realizacji zadania/funkcjonalności Profil funkcjonalny Zawiera opis elementów istotnych dla danej funkcjonalności Obowiązkowe i opcjonalne zmienne sieciowe i konfiguracyjne Pokazać przykładowy profil funkcjonalny plik PDF profile 01,02,03 SNVT, UNVT Standardowe Typy Zmiennych Sieciowych oraz Użytkownika SCPT, UCPT Standardowe Typy Ustawień Konfiguracyjnych oraz Użytkownika I/O Neuron Chip 11 programowalnych wejść/wyjść 39 modeli wej/wyj ABIS-cz-4-wykł 2

JĘZYK NEURON C PROGRAM Ogólna struktura programu w języku Neuron C // Deklaracje #define ON TRUE #define OFF FALSE #define DAY 0x1 #define NIGHT 0x0 #define LIGHT_TIMEOUT 600 #define HEAT_TIMEOUT 1200 //SNVT OUTPUTS ------------------------------------------------------------- network output SNVT_switch nvoroomstate = 0,DAY; network output SNVT_state nvoiostate; network input SNVT_switch nvimode = 0,DAY; //IO Blocks ------------------------------------------------------------------------ IO_3 output bit bvolighton; IO_10 input bit bvilightswitch; //zmienne -------------------------------------------------------------------------- short LightAllowed; //obecność zezwolenie światła short LightSwitch; //zadanie światła stimer TimLightTOut; //timer swiatla // Światło ----------------------------------------------------------------------------------------- // when (io_changes (bvilightswitch) to ON) //wyłącznik światła ON LightSwitch = ON; //zadanie światła if (nvimode.state==day) //jeżeli tryb dzienny LightAllowed = TRUE; TimLightOut = LIGHT_TIMEOUT; when (io_changes (bvilightswitch) to OFF) //wyłacznik światła OFF LightSwitch = OFF; //zadanie światła io_out (bvolighton, OFF); //wyłącz światło nvoiostate.bit9 = OFF; //stan światła przepisz do sieci when (LightSwitch) //zadanie śwaitła if (nvimode.state==night) //jeżeli tryb nocny return; //nie załączaj if (LightAllowed) io_out (bvolighton, ON); nvoiostate.bit9 = ON; else io_out (bvolighton, OFF); nvoiostate.bit9 = OFF; // KONIEC Światło ABIS-cz-4-wykł 3

PODSTAWOWE ELEMENTY Obiekty I/O Obsługa interfejsu sygnałów fizycznych Wykorzystanie przyłączanie czujników, wyłączników, termistorów, liczników itp. UWAGA nie wykorzystane I/O podtrzymanie stanu wysokiego rezystory pull-up; dotyczy pinów IO_4 do IO_7 --- dyrektywa załączająca: #pragma enable_io_pullups; IO_0 do IO_3 wysokoprądowe 20 ma --- pozostałe 4 ma Wszystkie IO od IO_0 do IO_11 poziom napięć TTL Ogólny podział obiektów modeli I/O Bezpośrednie Równoległe Szeregowe Timery/Liczniki ABIS-cz-4-wykł 4

PODSTAWOWE ELEMENTY Obiekty I/O Deklaracja w programie: Obsługa obiektów I/O: IO_0 output bit bvolighton; IO_4 input bit ioswitch; - Funkcje --- (wbudowane) --- io_in () io_out () czyta dane z obiektu IO Składnia: wart. zwracana = io_in (nazwa obj. IO, arg) zapis danej do obiekt IO Składnia: io_out (nazwa obj. IO, wart. danej, arg) Przykłady: IO_0 input bit d0; boolean value;... void f(void) value = io_in(d0); // ------------------------ boolean value; IO_0 output bit d0; void f(void) io_out(d0, value); Przykłady: CurrentTemp = io_in (avicurrtemp); Wcześniej musi być: IO_6 input pulsecount avicurrtemp; //--wej. 6 impulsowe, bieżąca temp. // ------------------------ io_out (bvolighton, OFF); Wcześniej: #define ON TRUE #define OFF FALSE IO_3 input bit bvolighton; ABIS-cz-4-wykł 5

PODSTAWOWE ELEMENTY Obiekty I/O Dopuszczalne modele I/O w deklaracjach wejść/wyjść: IO_0 output bit bvolighton; Direct: Input Model Types Output Model Types bit bit byte byte leveldetect nibble nibble touch touch Timer/Counter: dualslope edgedivide edgelog frequency infrared infrared_pattern ontime oneshot period pulsecount pulsecount pulsewidth quadrature stretchedtriac totalcount triac triggeredcount Serial Output: bitshift bitshift magcard serial magcard_bitstream magtrack1 serial wiegand i2c neurowire sci spi ABIS-cz-4-wykł 6

PODSTAWOWE ELEMENTY Obiekty I/O Obsługa obiektów I/O: - Zdarzenia --- (predefiniowane) --- io_changes () --- zwraca wart. TRUE gdy czytana wart. obiektu IO zmieni stan; możliwe trzy przypadki: jakakolwiek zmiana - zmiana o jakąś wartość (by) - zmiana do określonej wartości (to) Składnia: io_changes (nazwa obj. IO) by to Przykłady: IO_0 input bit push_button; when (io_changes(push_button) to 0)... // ------------------------ IO_7 input pulsecount total_ticks; when (io_changes(total_ticks) by 100)... io_update_occurs () --- zwraca wart. TRUE gdy czytana wart. obiektu IO ma nową, uaktualnioną wartość. Wartość ta może być taka sama jak przed aktualizacją!!! To zdarzenie tylko do kilku rodzajów obiektów IO np. timery, liczniki itp. Składnia: io_update_occurs (nazwa obj. IO) Przykłady: #include <io_types.h> ontime_t therm_value; // 'ontime_t' defined in io_types.h IO_7 input ontime io_thermistor; when (io_update_occurs(io_thermistor)) therm_value = (ontime_t)input_value; ABIS-cz-4-wykł 7

PODSTAWOWE ELEMENTY Zmienne sieciowe SNVT Deklaracja w programie: network input SNVT_temp nvitemp; network output SNVT_switch nvoswitchoff; Ogólna składnia: network input output [modyfikaor] [klasa] typ [informacja połączenia] nazwa[=wart. początk.] Obsługa zmiennych sieciowych: - Zdarzenia --- (predefiniowane) --- nv_update_occurs najczęstsze, TYLKO dla zmiennych sieciowych wejściowych TRUE gdy nowa wartość zmiennej (nie koniecznie inna co do wartości!!!) nv_update_fails TRUE gdy nie ma aktualizacji zmiennej procedury korekcji nv_update_suceeds TRUE gdy zmienna została wysłana lub odebrana od urządz. zapisujących nv_update_completes TRUE po aktualizacji zmiennej TYLKO dla zmiennych wyjściowych ABIS-cz-4-wykł 8

PODSTAWOWE ELEMENTY Zmienne sieciowe SNVT wybrane typy zmiennych Zmienna SNVT_switch: Struktura: [value] [state] Wartość analogowa Stan Zmienna SNVT_state: Struktura: [bit0],[bit1],,[bit15] Przykład użycia patrz: Plik aplikacja-neuronc-fragment-1 - PDF Każdy bit: 0 1 on off inactive active disabled enabled low high false true normal alarm ABIS-cz-4-wykł 9

PODSTAWOWE ELEMENTY Timery ukł. Neuron Chip programowe i sprzętowe 2 obiekty timerów obiekty programowe milisekundowe (1 do 64000 ms) sekundowe (1 do 65 535 sek.) W jednej aplikacji do 15 timerów Deklaracja timerów programowych: mtimer [repeating] nazwa timera [wartość] Typ timera Opcja timera z powtarzaniem Wartość do odliczenia, wczytywana do timera po załączeniu zasilania lub resecie. Jeżeli nie podano wartości wpisanie 0. Dodatkowo w ukł. NeuronChip dwa timery sprzętowe (niezależne) Wykorzystywane do wprowadzania opóźnień w aplikacji. Funkcje: delay( ) msec_delay( ) scaled_delay( ) Przykład: when (io_changes(io_switch)) delay(400); // wait 10msec for debounce ABIS-cz-4-wykł 10

PODSTAWOWE ELEMENTY Timery ukł. Neuron Chip programowe przykłady Przykład 1: stimer led_timer = 5; when (zdarzenie) led_timer = 10; Przykład 2: stimer repeating led_timer; Zdarzenie do timerów (do kaluzuli WHEN): timer_expires (nazwa timera) Przykład: stimer led_timer; when (timer_expires(led_timer)) io_out(io_led, OFF); // Turn off the LED when (zdarzenie) time_remain=led_timer; ABIS-cz-4-wykł 11

PODSTAWOWE ELEMENTY Klauzula WHEN ( ) Klauzula WHEN ( ) --- obsługa zdarzeń w programie aplikacji węzła LON. Jeżeli wyrażenie/zdarzenie zawarte w klauzuli osiąga stan TRUE realizowane są zadania zdefiniowane w ramach klauzuli: when (timer_expires(led timer)) // zdarzenie-warunek io_out(io_led, OFF); // zadanie - Turn off the LED Klauzula WHEN ( ) nie może być zagnieżdżana. Przykład: when (io_changes(io_switch)) when (x == 3) //!! Nie wolno!!... Składnia równoważna i poprawna: Przykład: when (io_changes(io_switch)) if (x == 3)... ABIS-cz-4-wykł 12

PODSTAWOWE ELEMENTY Klauzula WHEN ( ) Klauzula WHEN ( ) --- obsługa zdarzeń z trzech kategorii: Predefiniowane Reset ( ) Zdarzenie reset jest w stanie true TRUE tylko po resecie układu Neuron Chip. UWAGA: Reset przy każdym komisjonowaniu urządzenia. Użytkownika --- sprawdzanie stanu zmiennych w aplikacji Przykład: when ((MoveSensor == TRUE) && (!LightAllowed)) io_out (bvo_light, OFF); UWAGA!!! --- ważna kolejność sprawdzania zmiennych Przykład: when ((timer_expires (t)) && (flag == TRUE)) --- kolejność OK. when ((flag == TRUE) && (timer_expires (t))) --- kolejność nie OK. bo jeżeli flaga nie będzie TRUE, nigdy nie sprawdzi się stan licznika/timera ABIS-cz-4-wykł 13

PODSTAWOWE ELEMENTY Klauzula WHEN ( ) Scheduling Klauzula WHEN ( ) --- obsługa zdarzeń w porządku chronologicznym when (nv_update_occurs) // Event A // task to execute when (nv_update_fails) // Event B // task to execute when (io_changes) // Event C // task to execute when (timer_expires) // Event D // task to execute ABIS-cz-4-wykł 14

PODSTAWOWE ELEMENTY Zmienne wbudowane schowek Zmienne wbudowane: input_value [signed long] --- zawiera wartość pobraną z wejścia po funkcji io_in( ) --- może być ona użyta ze zdarzeniami io_changes i io_update_occurs signed long switch_state; when (io_changes(switch_in)) switch_state = input_value; input_is_new --- dla timerów i liczników --- przyjmuje stan TRUE gdy wartość licznika/timera zostaje zaktualizowana ABIS-cz-4-wykł 15

PODSTAWOWE ELEMENTY Zmienne wbudowane schowek Przykłady wykorzystania: 1) IO_8 output bit SwitchLED; IO_5 input pulsecount io_lev; when (io_update_occurs(io_lev)) if (input_value >2) io_out(switchled,on); else io_out(switchled,off); 2) IO_8 output bit SwitchLED; IO_5 input pulsecount io_lev; stimer tdelay; when (timer_expires(tdelay)) if (io_in(io_lev)>2) && (input_is_new)) io_out(switchled,on); else io_out(switchled,off); (to samo zadanie inna konstrukcja) ABIS-cz-4-wykł 16

PRZYKŁADY - 1 Proste programy fragmenty programów Zapisz program z wszystkimi deklaracjami, dyrektywami, zmiennymi itd. --- Zapal diodę na wyj IO_1 (bitowe), na początku wyłączoną, po sygnale z wyłacznika IO_7 --- 1) #define ON TRUE; #define OFF FALSE; IO_1 output bit LED=OFF; IO_7 input bit SWITCH; when (io_changes(switch) to ON) io_out(led,on); when (io_changes(switch) to OFF) io_out(led,off); 2) when (io_changes(switch)) if(input_value==on) io_out(led,on); else io_out(led,off); 3) when (io_changes(switch)) io_out(led,(input_value==on)? ON : OFF); ABIS-cz-4-wykł 17

PRZYKŁADY - 1 Proste programy fragmenty programów Zapisz program z wszystkimi deklaracjami, dyrektywami, zmiennymi itd. --- Jeżeli nastąpi zmiana na wej 6 (pulsecount) impulsowym temperatura bieżąca, to przepisz jej wartość do zmiennej sieciowej z temperaturą i jeżeli temp. bieżąca mniejsza od ustalonej maksymalnej to włącz grzanie (sygnał na wyj 0 przekaźnik zaworu grzejnika), jeżeli większa od maks. to sygnał OFF na styk grzejnika 1) #define ON TRUE #define OFF FALSE #define Max_Temp 25 //lub jako zmienna konfigur. IO_0 output bit Heater; IO_6 input pulsecount Temp_current; network output SNVT_temp nvo_temp_current; when (io_update_occurs(temp_current)) nvo_temp_current=temp_current; if(nvo_temp_current<max_temp io_out(heater,on); else if (nvo_temp_current>max_temp) io_out(heater,off); ABIS-cz-4-wykł 18

PRZYKŁADY - 1 Proste programy fragmenty programów ---DODATKOWO 1 wykorzystać zmienną SNVT_state do przesłania informacji o stanie zał/wył. grzejnika (np. na bicie nr 7) DODATKOWO-1) #define ON TRUE #define OFF FALSE #define Max_Temp 25 //lub jako zmienna konfigur. IO_0 output bit Heater; IO_6 input pulsecount Temp_current; network output SNVT_temp nvo_temp_current; network output SNVT_state nvo_statemon; when (io_update_occurs(temp_current)) nvo_temp_current=temp_current; if(nvo_temp_current<max_temp io_out(heater,on); nvo_statemon.bit7=on; when (io_changes(switch) to OFF) io_out(led,off); nvo_statemon.bit7=on; ABIS-cz-4-wykł 19

PRZYKŁADY - 1 Proste programy fragmenty programów ---DODATKOWO 2 Dopisać procedurę: jeżeli zmieni się zmienna sieciowa dotycząca temperatury, to ustawić bit 1 zmiennej stanu na ON i uruchomić timer sekundowy (reg_temp) z czasem początkowym 60 sek. Jeżeli timer skończy odliczać to wyłączyć bit 1 zmiennej stanu na OFF. DODATKOWO-2) #define ON TRUE #define OFF FALSE #define Max_Temp 25 //lub jako zmienna konfigur. IO_0 output bit Heater; IO_6 input pulsecount Temp_current; network output SNVT_temp nvo_temp_current; network output SNVT_state nvo_statemon; stimer reg_temp; Scheduling!!! when (io_update_occurs(temp_current)) nvo_temp_current=temp_current; nvo_statemon.bit1=on; reg_temp=60; if(nvo_temp_current<max_temp io_out(heater,on); nvo_statemon.bit7=on; when (io_changes(switch) to OFF) io_out(led,off); nvo_statemon.bit7=off; when (timer_expires(reg_temp)) nvo_statemon.bit1=off; ABIS-cz-4-wykł 20

PRZYKŁADY - 1 Przykłady z Neuron C Programmmer s Guide Pokazać przykłady aplikacji i rozwiązań --- str 31 (w pdf - 43) --- przykładowe aplikacje --- termostat --- ściemniacz lamp --->>> DALEJ KONIEC WYKŁADU NR 1 - programowanie Neuron C ABIS-cz-4-wykł 21

POCZĄTEK WYKŁADU NR 2 NEURON C PRZYKŁADY-ZADANIA Krótkie przypomnienie Zapisz ze wszystkimi niezbędnymi wcześniej deklaracjami, definicjami itp. procedurę aplikacji realizującą zadanie: Jeżeli na wej 4 nastąpi zmiana/uaktualnienie (IO pulsecount) to pobierz wartości bitowe z wejść 6 i 7 do zdefiniowanych zmiennych programowych oraz ustaw bit na wyjściu 8 do stanu TRUE. ABIS-cz-4-wykł 22

PRZYKŁADY-ZADANIA Krótkie przypomnienie Zapisz ze wszystkimi niezbędnymi wcześniej deklaracjami, definicjami itp. procedurę aplikacji realizującą zadanie: (timer milisekundowy z początkową wartością 100) Jeżeli timer skończy liczyć, ustaw wyjście 1 na stan ON i wystartuj ten sam timer z nową wartością 200. (timer sekundowy z wartością początkową 60) Jeżeli nastąpi zmiana wejścia bitowego nr 5 o 2, zaczytaj wartość timera do zmiennej (np. long), wystaw na wyjściu 7 sygnał OFF i uruchom timer sekundowy z wartością 50. ABIS-cz-4-wykł 23

PRZYKŁADY-2 Jeszcze jeden przykład ze zmienną SNVT Sterowanie trybami dziennym i nocnym (z obecnością lub bez) #define ON TRUE #define OFF FALSE #define DAY 0x1 #define NIGHT 0x0 network output SNVT_switch nvoroomstate=0,day; network output SNVT_state nvoiostate; network input SNVT_switch nvimode=0,day when(nv_update_occurs(nvimode)) //gdy zadanie zmiany trybu if(nvimode.state==night) //jeżeli tryb nocny to: nvoroomstate.state=0; else if(nvoiostate.bit0==on) //jeżeli tryb dzień i obecność nvoroomstate.state=2; else nvoroomstate.state=1; //jeżeli tryb dzień bez obecności ABIS-cz-4-wykł 24

ELEMENTY JĘZYKA NEURON C Bloki funkcjonalne deklaracja i użycie w programie Blok funkcjonalny przypomnienie definicji Profil funkcjonalny Profile funkcjonalne zdefiniowane w plikach źródłowych (functional profile templates) str WWW LonMark Definicja bloku w programie Neuron C: fblock ABIS-cz-4-wykł 25

ELEMENTY JĘZYKA NEURON C Bloki funkcjonalne deklaracja i użycie w programie W deklaracji profilu funkcjonalnego znajduje się informacja o: - nazwie wykorzystanego szablonu profilu funkcjonalnego (np. SFPTclosedLoopActuator), - użytych zmiennych sieciowych, oraz ich przypisanie do odpowiednich miejsc w szablonie (nazwy ze szablonu-profilu), - nazwie profilu funkcjonalnego. 3 1 2 fblock FPT-identifier fblock-body identifier [array-bounds] [ext-name] [fb-property-list] ; ------------------------------------------------ network output SNVT_amp nvoampere; fblock SFPTopenLoopSensor nvoampere implements nvovalue; fbamperemeter; 3 Jeżeli w bloku ma być przypisana zmienna, która nie jest obowiązkowa ani opcjonalna można zamiast słowa kluczowego implements posłużyć się implementation_specific(unique-index). W takim przypadku tworzona jest zmienna o nadanym przez programistę unikalnym numerze (unique-index) 1 2 Inny przykład: fblock SFPTclosedLoopActuator nvilamp implements nvivalu nvolampfb implements nvovaluefb; Lamp[Lamp_FBLOCK_COUNT] ABIS-cz-4-wykł 26

ELEMENTY JĘZYKA NEURON C Bloki funkcjonalne deklaracja i użycie w programie Jeżeli w programie zdefiniowano również zmienne lub stałe konfiguracyjne, mogą być one elementem bloku funkcjonalnego. Ich użycie w deklaracji bloku: SCPTdefOutput cp_family cpdefaultoutput; SCPTbrightness cp_family cpdisplaybrightness; network output SNVT_amp nvoampere; network output polled SNVT_time_stamp nvoinstalldate; fblock SFPTopenLoopSensor nvoampere implements nvovalue; fbamperemeter external_name("amperemeter") fb_properties cpdefaultoutput, // optional CP cpdisplaybrightness // implementation-spec. Pokazać: Definicje standardowych typów bloków funkcjonalnych LonMark Technical Resorces Resources Files (important Internet Explorer ) W tym miejscu można też nadać im wartości domyślne ABIS-cz-4-wykł 27

ELEMENTY JĘZYKA NEURON C Bloki funkcjonalne zadania, własne Narysować blok funkcjonalny wysyłający zmienną sieciową o rezystancji w kohm, po otrzymaniu na wejścia zmiennych z informacją o prądzie A (+/-) oraz napięciu w kv (wraz z deklaracjami tych zmiennych w programie Neuron C w każdym zadaniu) Narysować blok funkcjonalny wysyłający zmienne sieciowe załączenia oświetlenia i napięcia na lampie V, po otrzymaniu na wejściach zmiennych o załączeniu wyłącznika i obecności w pomieszczeniu. Narysować blok funkcjonalny wysyłający zmienną sieciową z informacją o prędkości obrotowej napędu mieszalnika cieczy (dokładność do 0,1 rad/sek), na podstawie odebranych z sieci zmiennych SNVT z informacjami o prądzie (A) silnika oraz o gęstości mieszanej cieczy (dokładność pomiaru gęstości: 0,5 kg/m3). Wykorzystać SNVT Master List: Pliki PDF SNVT Master List SNVT Master List short ABIS-cz-4-wykł 28

ELEMENTY JĘZYKA NEURON C Funkcje deklaracja, elementy Funkcje gdy potrzebne skorzystanie wielokrotne z pewnych fragmentów kodu. Składnia deklaracji funkcji: return-type function-name ( parameter-list ) statements; return expression of type return-type; Return-type Prameter-list - typ zmiennej zwracanej przez funkcję - lista parametrów funkcji ABIS-cz-4-wykł 29

ZESTAWY URUCHOMIENIOWE Mini FX/FT FT 5000 Smart Transceiver: - Neuron 5000 - Transceiver medium FT 64 KB pamięci flash, 64 KB pamięci EEPROM, Wyświetlacz LCD o wymiarach 4x20, Czujnik natężenia światła, Czujnik temperatury, 5-cio kierunkowy joystick, 2 przyciski, 2 diody LED, Interfejs EIA-232 Interfejs USB Narzędzie soft: - Mini FX Application ABIS-cz-4-wykł 30

ZESTAWY URUCHOMIENIOWE Mini FX/FT - Dodatkowe peryferia: Osobna płytka Mini Gizmo I/O: ABIS-cz-4-wykł 31

ZESTAWY URUCHOMIENIOWE Mini FX/PL Neuron Chip 3120 PL Neuron Chip 3120 Smart Transceiver - tylko: Reset, przycisk i dioda Service Pin - Peryferia: Osobna płytka Mini Gizmo I/O: 8 przycisków 8 LED Czujnik temperatury Brzęczyk piezo Narzędzie soft: - Mini FX Application ABIS-cz-4-wykł 32

PRZYKŁADY-3 Kody programu dla węzłów minifx/ft i minifx/pl Analiza struktury Deklaracje Wybrane funkcje Zdarzenia Wykorzystać pliki PDF aplikacje-minifx-source code KONIEC WYKŁADU NR 2 - programowanie Neuron C ABIS-cz-4-wykł 33