UNIVERZITET U ISTOČNOM SARAJEVU ELEKTROTEHNIČKI FAKULTET SOFTVER ZA UNOS E - MOBILNIH KLJUČEVA Diplomski rad Mentor: Prof.dr.Stevan Stankovski Kandidat: Cerovina Dražen Istočno Sarajevo, 2004 SADRŽAJ: Sadržaj Zadatak Uvod Osnovni pregled strukture PLC-a 1. 1.1. 1.1.1. 1.1.2. 1.1.3. 1.2. 1.3. 1.4. 1.5. Dijelovi od kojih se sastoji PLC Central Procesing Unit (CPU) Sistemska memorija Input/Output moduli Spoljni izgled PLC-a Programiranje PLC-a Izvršavanje programa Primjena i prednosti PLC-a GSM tehnoligije 2. 2.1. 2.2. SMS poruke TCS (Telecom Control Systems) Easygate 2.2.1. 2.2.2. 2.2.3. 2.2.4. 2.2.5. 2.2.6. 2.2.7. 2.3. 2.3.1. 2.3.2. 2.3.3. Povezivanje na računar SIM i PIN pravila Pokretanje TCS-a Uključivanje TCS-a Opcija modem sharing SMS naredbe Struktura SMS naredbi 2.4. 2.5. Ulazni brojači i podbrojači Temperatura Ulazi, poruke i GSM brojevi telefona Ulazne poruke Brojevi telefona Od ulaza do GSM matrice 2.5.1. Podešavanje temperaturnog alarma 2.5.2. Hronotermostat 2.6. 2.7. 2.8. AC napajanje i pomoćna baterija Izlazi (Outputs) TCS voice (glasovne) opcije 2.8.1. Osnovni koncepti 2.8.2. Unos brojeva u listu Interpretator komandi (CI) 3. 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. Komandna ulazna jedinica Ulančavanje CI komande Masovni prikaz Zaštita lozinkom Pregled CI komandi Aktiviranje CI/Prijavljivanje 3.6.1. COM1 METH 3.7. Komande za prikaz operanada i stanja 2 5 6 6 7 7 9 9 9 9 10 10 11 11 12 13 13 13 13 14 14 15 16 16 17 17 18 18 18 19 19 19 20 20 20 22 23 23 24 24 24 25 25 26 2 3.8. 3.9. 3.10. 3.11. Komande za modifikovanje vrijednosti Komande kontrole programa Komande za prebacivanje ulaza i izlaza Komande ugrađene u drajverima Nizovi 4. 4.1. 4.2. 4.3. 4.4. Konfigurisanje drajvera i podešavanje parametara Inicijalizacija nizova Proširene CI komande za nizove Moduli za upravljanje nizovima 4.4.1. 4.4.2. 4.4.3. 4.4.4. 4.4.5. 4.4.6. 4.4.7. 4.4.8. 4.4.9. 4.4.10. 4.4.11. 4.4.12. 4.4.13. 4.4.14. 4.4.15. 4.4.16. 4.4.17. 4.4.18. 4.4.19. 4.4.20. 4.4.21. 4.4.22. 4.4.23. 4.4.24. 4.4.25. 4.4.26. 4.4.27. 4.4.28. 4.4.29. 4.4.30. 4.4.31. 4.4.32. 4.4.33. 4.4.34. 4.4.35. 4.4.36. 4.4.37. STRADDR STRAPPND STRATOH STRATOIX STRATOU STRCAT STRCHECK STRCHGET STRCHSET STRCI STRCLR STRCMP STRCPY STRDEL STRDUMP STRFILL STRFILLW STRFINDC STRGROW STRHTOA STRICMP STRINSRT STRINIT STRITOA STRLEFT STRLEN STRLOWER STRMID STRNCMP STRNICMP STRRIGHT STRSTAT STRUPPER STRUSAGE STRUTOA STR2FLAG FLAG2STR Prikaz rada u realizovanom softveru i opis sistema 5. 5.1. Kako softver funkcioniše 27 28 29 30 31 31 31 32 32 34 34 34 35 35 35 35 35 36 36 36 36 36 37 37 37 37 37 38 38 38 38 39 39 39 39 39 40 40 40 41 41 41 41 41 41 42 43 43 3 Zaključak Literatura 48 49 4 ZADATAK U cilju izrade softvera za unos e-mobilnih ključeva potrebno je uraditi sljedeće: - Dati osnovni pregled structure PLC-a; Dati osnovni pregled GSM tehnologije, sa posebnim osvrtom na korišćenje u automatizovanim sistemima; Dati pregled CI komandi; Prikazati i objasniti realizovani softver. 5 UVOD 1. Osnovni pregled strukture PLC-a * Programmable Logical Controler (PLC) Slika 1.Izgled PLC-a. U našem jeziku se koristi izraz Programabilno Logički Kontroler (PLK). PLC predstavlja digitalni računarski uređaj koji se zasniva na mikroprocesorskoj tehnologiji. PLC je ustvari napravljen da bi se olakšalo upravljanje mašinama. Ovaj uređaj omogućava izvršavanje upravljačkih algoritama (programa) u realnom vremenu. Korisnik unosi program, obično koristeći softver za unos, da bi dobio željene rezultate.Taj program predstavlja vezu između ulaza i izlaza na PLC-u. Kako PLC funkcioniše? Tako što stalno skenira program. Ovaj ciklus skeniranja se sastoji od tri koraka:provjera ulaznog stanja (check input status - da li su ulazi uključeni ili ne odnosno da li su senzori spojeni na ulaze aktivni), izvršavanje programa (execute program - instrukciju po instrukciju) i očitavanje stanja izlaza (update output status). Nakon završetka trećeg koraka PLC se vraća na prvi korak i ponavlja korake kontinualno (slika2).[1] Slika 2. Rad PLC-a. 6 1.1. Dijelovi od kojih se sastoji PLC PLC se sastoji od tri dijela : - Central Processing Unit (CPU) - Sistemska memorija - Input / Output moduli 1.1.1. Central Processing Unit (CPU) Centralni procesor (CPU) je najvažnija komponenta PLC-a. On upravlja memorijom, izvršavanjem programa, komunikacijom, nadgledanjem ulaza i postavljanjem izlaza. Moguće greške koje se javljaju na PLC-u takođe uočava centralni procesor provjeravanjem samog PLC-a . Korisnik može da uoči grešku na PLC-u pomoću dioda za signalizaciju greške, koje svijetle kada se javi greška, postavljenih na kućištu kontrolera. Odabir centralnog procesora se vrši u zavisnosti od zadatka koji treba da se izvrši i broja ulaza i izlaza. Vrijeme skeniranja (koje iznosi do 100 ms) predstavlja vrijeme za koje program mora da se izvrši u cjelosti i to je takođe vrijeme odabiranja digitalnih ulaza/izlaza. PLC ne reaguje na vrijeme brže od 100 ms. Dijelovi CPU-a su : Aritmetical Logical Unit (ALU) Registri Magistrale (sabirnice) Aritmetical Logical Unit (ALU) ili aritmetičko logička jedinica se sastoji od logičkih kola. Omogućava izvršavanje aritmetičkih i logičkih operacija nad podacima u binarnom obliku i sadrži registre koji služe za upisivanje u vidu digitalnih reči. Registri predstavljaju specijalne memorijske lokacije u centralnom procesoru i takođe su fizički dijelovi centralnog procesora. Podaci se u većini uređaja ovakve vrste čitaju prvo iz memorijskih lokacija i upišu u registre pa se tek onda mogu vršiti određene operacije nad tim podacima. Ovo se dešava iz razloga što su izlazi na registrima električnim provodnicima povezani sa upravljačkom logikom. Na ovaj način se naredbe brže izvršavaju. Posebna vrsta registara koju posjeduju ove mašine su akumulatori (ACC). Akumulator mora biti jedan od dva radna registra centralnog procesora nad čijim se sadržajem izvršava zadata operacija. Rezultat te operacije se uvijek upisuje u akumulator koji predstavlja vezu između memorije i procesora. Magistrale (sabirnice) predstavljaju snopove električnih provodnika koji su grupisani prema prirodi digitalnih signala koje prenose. Takođe predstavljaju vezu između hardverskih komponenti. Magistrale mogu biti: • Upravljačka magistrala - predstavlja više provodnika koji povezuju centralni procesor, memoriju i ulazno/izlazne portove (slika 3). Koristi se za prenos informacija i bitova o vrsti aktivnosti koja treba da se izvši u tekućem procesu. Smjer prenosa infomacija kroz upravljačku 7 • • magistralu je samo od centralnog procesora ka memoriji i ulazno/izlaznim portovima. Vrste aktivnosti koje se mogu izvršavati u procesu su: čitaj sadržaj memorijske lokacije, upiši podatak u memorijsku lokaciju, čitaj prispjeli podatak na ulazno/izlaznom portu i dr. Zbog toga što se magistrale sastoje iz većeg broja provodnika, povezivanje parova velikog broja komponenti računara je olakšano jer povezivanjem sa više pojedinačnih provodnika dobijamo gomilu žica za koje ne znamo šta povezuju. Adresna magistrala povezuje centralni procesor sa memorijom i ulazno/izlaznim portovima. Prenosi adrese memorijskih lokacija ili ulazno/izlaznih portova od centralnog procesora ka memoriji ili ulazno/izlaznim portovima (slika 3). Magistrala podataka prenosi podatke između centralnog procesora, memorije i ulazno/izlaznih portova u oba smjera (slika 3).[6] Slika 3. Veza osnovnih komponenti sa magistralama (sabirnicama). 8 1.1.2. Sistemska memorija Upisivanje i/ili čitanje podataka potrebnih za funkcionisanje programa i samih programa su operacije koje se vrše nad memorijom programabilno-logičkog kontrolera. ROM (Read Only Memory) je tip memorije koja čuva programe i podatke koji se izvršavaju svaki put kada se uključi kontroler odnosno podaci se ne brišu kada se isključi napajanje. Podaci se u ROM memoriju upisuju programiranjem pri izradi memorije i kao što joj ime kaže u ovu memoriju se ne upisuju podaci već se isti samo čitaju iz nje. RAM (Random Access Memory) je tip memorije u koju se upisuju podaci. Njen sadržaj je uvek dostupan procesoru ali se gubi nakon isključivanja napajanja. Korisnik u RAM memoriju unosi program preko računara ili putem programatora. 1.1.3. Input/Output moduli Ovi moduli prihvataju digitalne signale u programabilno-logički kontroler i u isto vrijeme omogućavaju izdavanje obrađenih ulaznih veličina u digitalnom obliku. Unutar PLC-a se vrše operacije nad ulaznim veličinama definisane korisničkim programom. Ako ugradimo analogne ulazno/izlazne module kontroler može da vrši obradu i analognih signala. Podjela PLC-a po broju ulaza/izlaza se vrši na: male (8 ulaza 8 izlaza; 16 ulaza 16 izlaza), srednje (128 ulaza 128 izlaza) i velike (hiljade ulaza /izlaza). Za komunikaciju PLC – PLC(s) ili PLC – računar se koristi komunikacioni modul. Najčešće se koristi RS232 interfejs jer se podaci prenose u ASCII formatu.[2] 1.2. Spoljni izgled PLC-a Tri načina realizacije PLC-a : • Modularni – odgovarajući broj ulaza i izlaza se dovodi na module pri čemu na svakom modulu postoji centralna jedinica na koju se dovodi još ulaznih i izlaznih modula. Veći broj modula se može povezati putem mreže. • Sa fiksnim brojem ulaza i izlaza – pošto je broj ulaza uvijek veći od broja izlaza ne može se uticati na konfiguraciju. • Sa fiksnim kućištem i karticama – kartice imaju istu funkciju kao i modul. Moguće je mijenjati samo broj ulaza i izlaza a dimenzije se mijenjaju dodavanjem modula.[4] 1.3. Programiranje PLC-a Ranije su se za programiranje PLC-a koristili programski jezici kao što su FORTRAN, BASIC, C idr. Radi lakšeg programiranja IEC (International Electrotechnical Commission) je propisala standard koji omogućava korišćenje više programskih jezika (jedan od pet jezika IEC standarda) za programiranje jednog procesora. Ovo znači da ako bi se koristio PLC drugog proizvođača, nije obavezno 9 učenje programskog jezika za programiranje tog PLC-a (svaki proizvođač koristi svoj programski jezik). Pet programskih jezika koje obuhvata IEC standard: Structured Text (ST), Functional Bloc Diagram (FDB), Ladder Diagram (LD), Instruction List (IL), Sequential Function Chart (SFC). Programski jezici IEC standarda omogućavaju lakše pisanje i shvatanje programa koji se koriste za programiranje PLC-ova. 1.4. Izvršavanje programa Korisnički program sadrži: ulaze (inputs), izlaze (outputs), tajmere, counters (brojače), aritmetičko - logičke funkcije, specijalne funkcije, registre. Ulazi i izlazi imaju dvije vrijednosti: logička 0 ili logička 1. Stanje sa ulaznog modula se, prije obrade od strane centralnog procesora, upisuje u memoriju CPU-a. Izlazni signali, koji su rezultat obrade ulaznih signala od strane CPU-a, se upisuju u memoriju izlaza i na kraju šalju na odgovarajući izlazni modul na PLC-u. Korisnički program se izvršava ciklično (kad dođe do kraja počinje novi ciklus i ponovo počinje izvršavanje programa). Prije početka novog ciklusa pročita se stanje sa ulaznih modula i upiše u memorijsku zonu ulaza, a na kraju izvršavanja programa izlazne vrijednosti iz memorijske zone izlaza se šalju na izlazne module.[4] 1.5. Primjena i prednosti PLC-a Programabilno–logički kontroleri su zastupljeni u svim granama industrije bilo da se radi o pakovanju, upravljanju transportom materijala, automatizovanoj montaži ili drugim poslovima. Skoro svaka aplikacija koja ima potrebu za nekom vrstom elektro upravljanja ima potrebu za PLC-om. Ako se ne koristi PLC u ovim aplikacijama onda je to gubljenje vremena i novca. PLC je jeftinije i pouzdanije rješenje od konvencionalnog pristupa rješavanju problema ove vrste. Greške u funkcionisanju sistema se otkrivaju brzo i lako otklanjaju. 10 2. GSM Tehnologije GSM predstavlja skraćenicu za Global System for Mobile communications, odnosno standard za globalni sistem mobilne komunikacije. GSM mreža se sastoji od: • • • Mobilne stanice (telefon koji posjeduje korisnik); Podsistema bazne stanice (upravlja povezivanjem radio veza sa telefonom); Mrežnog podsistema (osnovni dio GSM centrale koji spaja vezu između korisnika mobilnog telefona sa drugim korisnikom mobilnog telefona ili između korisnika mobilnog telefona sa korisnikom fiksnog telefona). Mobilna stanica sa sastoji od terminala (telefona) i smart kartice. Smart kartica je plastična kartica u kojoj se nalazi kompjuterski čip koji zovemo SIM (Subscriber Identity Module). Smart kartice imaju zaštitni kod, PIN kod, koji zna samo korisnik i tako se štiti SIM kartica od zloupotrebe. Na SIM katricu je omogućen unos podataka i obrada istih. Ona povezuje mobilni telefon sa GSM mrežom. Podsistem bazne stanice se sastoji iz bazne stanice i kontrolera bazne stanice. Ove dvije komponente komuniciraju putem A–bis interfejsa (linija razdvajanja između bazne stanice i kontrolera baznih stanica). Bazna stanica sadrži radio primopredajnik koji povezuje stanicu sa ostatkom mreže. Radio primopredajnik se sastoji od prijemnika, odašiljača, antene i interfejsa. Bazna stanica može da ima jednu antenu za sve pravce ili tri antene za tri pravca. Kontroler baznih stanica se stara o radu i održavanju veza. Mrežni podsistem sadrži komponentu koja se zove Mobile services Switching Center. Ovo je najvažnija komponenta mrežnog podsistema i omogućava registraciju, provjeru autentičnosti, ažuriranje lokacija, usmjeravanje poziva za korisnike sa roaming–om i vezu sa fiksnim mrežama. Roaming je vrsta usluge koju obezbjeđuje GSM i ona omogućava korišćenje mobilnih telefona u mrežama drugih operatera. Kada korisnik uđe u inostranu zemlju automatski se prepoznaje i registruje SIM kartica. Equipment Identity Register je baza podataka koja sadrži listu mobilnih stanica koje su na mreži. Sastoji se od tri baze podataka : White List (sadrži sve važeće identifikacione brojeve), Black List (sadrži sve nevažeće brojeve), Grey List (sadrži sve sumnjive brojeve).[7] 2.1. SMS Poruke SMS (Short Message Service) predstavlja mogućnost slanja tekstualnih poruka putem mobilnog telefona. Poruke su dužine do 160 znakova. Osim sa jednog mobilnog telefona na drugi poruke se mogu slati i sa jednog na više telefona istovremeno (opcija group na telefonu, ali ovo važi samo za novije tipove telefona) i takođe sa telefona na LAN (Local Area Network), WAN (Wide Area Network), ISDN (International Standard for Digital Network) mrežne kompatibilne uređaje. Poruka se skladišti kod operatera ako korisnik nije dostupan pa se kasnije proslijeđuje tom korisniku kada bude bio dostupan. 11 2.2. TCS (Telecom Control Systems) Easygate TCS je mikroračunar koji radi sa Simensovim TC35 GSM modulom i ima mogućnost razmjene podataka, glasovne i SMS komunikacije. [5] Slika 4. TCS Easygate (1- 230v AC adapter, 2- antena, 3- kraj kabla koji se povezuje na dugme za otvaranje vrata, 4- SIM kartica, 5- GSM modul). 12 2.2.1. Povezivanje na računar Povezivanje se vrši pomoću serijskog kabla. TCS se poveže na COM port na PC-u. Koristi se jedan od navedenih softvera: Hyperterminal ili Xtalk na 9600 N 8 1 ili TCS Logger. 2.2.2. SIM I PIN pravila PIN I PUK kodovi se koriste da bi se kartica zaštitila od zloupotrebe. Ako se PIN kod unese pogrešno više od tri puta kartica će tražiti PUK (PIN Unblocking Key) kod. PUK kod služi da se odblokira SIM kartica blokirana pogrešnim unošenjem PIN koda. Otključavanje SIM kartice se može pokušati deset puta. Poslije toga je kartica zaključana trajno i postaje beskorisna. Pomoću programa TCS 3.5 se može programirati PIN kod u TCS-u tako da može komunicirati sa SIM karticom na zahtjev (uključenje sistema). Ovo je zgodno ako se uređaj nalazi na mjestu gdje SIM kartica može da se ukrade. SIM kartica može imati tri vrste broja: glasovni (voice), data i fax. Ako se posjeduje kartica koja ima i voice i data broj ta dva broja se moraju razlikovati. SIM sa jednim brojem može slati podatke ali ne može da se pozove sa data pozivom. Fax broj je uključen u voice broju. 2.2.3. Pokretanje TCS–a Ako se programiranje TCS-a vrši korišćenjem direktne veze sa personalnim računarom onda nije potrebno imati SIM karticu sa data brojem već kabal koji se poveže na serijski port. Nakon povezivanja se može pristupiti TCS–u pomoću Hyperterminala ili Xtalk-a ili drugog softvera. Programski paket TCS Windows takođe omogućava jednostavnu vezu sa TCS-om i svim SMS opcijama vezanim za Easygate. Posjedovanjem SIM kartice sa data brojem se može rekonfigurisati TCS uređaj iz daljine (remote control). Obično je moguće pozvati GSM modul koristeći standardni PC modem . Svejedno se može desiti da tokom nepravilnog konfigurisanja, od strane GSM operatera, ova opcija bude nemoguća i pri pokušaju poziva se detektuje zauzeće veze. Ako se ovo desi, tu grešku otklanja operater. 2.2.4. Uključivanje TCS-a Nakon ubacivanja SIM kartice u TCS uređaj čuje se dugo beep i opet isti zvuk nakon par sekundi što znači da je SIM kartica prepoznata i registrovana na mreži. Ova mogućnost je implementirana da se izbjegne uništavanje baterije kad se skroz isprazni. TCS će se uvek uključiti sam kad se aktvira AC/DC napajanje preko solarne ploče ili drugog izvora napajanja. Ako nema takvog napajanja i TCS je isključen i ako se dovede napon sa baterije TCS se neće uključiti (startovati) ako se ne pritisne start dugme. 13 2.2.5. Opcija modem sharing U nekim aplikacijama (industrijska automatizacija, upravljanje mašinama) PLC već ima RS232 port za komunikaciju sa modemom pa se njime već može upravljati daljinski korišćenjem GSM modema bez potrebe za TCS pločom. Ipak u većini slučajeva ove instalacije nemaju dovoljno lokalne inteligencije da prime i pošalju podatke preko SMS–a ili da izvrše osnovne naredbe opcije dostupne na TCS ploči. Veoma važno pitanje koje se postavlja je da li se može iskoristiti modem instaliran u TCS ploči za komunikaciju sa PLC–om. Može sa TCS 3.5 pločom ali postoji samo jedan modem i ne mogu se povezati dvije stvari u isto vrijeme. Ako se odlučimo za prebacivaje modema na eksterni uređaj moramo biti svjesni da se tada TCS neće moći kontrolisati jer nema pristup modemu pa ne može slati poruke ili primati naredbe. Ovaj problem rešavaju DDC (switched Direct Data Call) naredbe. DDC naredbe omogućavaju mjesta na koje će biti proslijeđeni slijedeći podaci koji stignu. Naredba #DDC0 proslijeđuje podatke do eksternog RS232 porta, a naredba #DDC1 proslijeđuje podatke do TCS operativnog sistema. Da bi dozvolili PC–u ili eksternom uređaju direktan pristup modemu u TCS–u i autonomno korišćenje istog mora se implementirati naredba #CTR. Kad je jednom unijeta ova naredba povezuje RS232 port direktno na modem za par sekundi. Poslije tih nekoliko sekundi TCS opet dobija kontrolu nad modemom. Da bi se ovo moglo koristiti treba pravilno rukovati modemom i zadavati naredbe na način koji ne smeta sistemu da funkcioniše. 2.2.6. SMS naredbe • • • • • • • • • • • • • • • • • Lista naredbi dostupnih na TCS 3.5 ploči sa softverom izdanje 5.1[5] ?: Help on-line ( pomoć u svakom trenutku ) #ACM: izabira pristupni mod (ACcess Mode) za fukciju voice poziv #ALR: omogućava ili onemogućava generisanje SMS alarma (ALeRt SMS) #AMS: čuva i isčitava tekst za alarm poruke (Alarm MeSsages) od 1 do 8 #CAP: mijenja administratorsku lozinku (Change Admin Password) #CCA: čita/upisuje vrijednosti Counter CompArator–a na ulazima 1 do 6 #CLB: ponovo poziva (CalL Back) naznačen data broj telefona #CLK: postavlja sat (CLocK) i datum na prave vrijednosti #CNP: čita/upisuje djelimično stanje pod brojača (sub CouNters (Partial)) na ulazima 1 do 6 #CNT: čita/upisuje cjelokupno stanje brojača (CouNters Total) na ulazima 1 do 6 #CTR: formira COM TRansparent : postavlja RS232 port u direktnu vezu sa GSM modemom za xxxxx dužinu vremena (u sekundama) #CUP: mijenja korisničku lozinku (Change User Password) #DBG: DeBuG : šalje kopije svih poruka koje pristižu na telefon #DDC: Switch Direct Data Call : prebacuje slijedeći poziv, upućen na data broj, na TCS komandni mod ili COM port #END: izlaz iz TCS komandnog moda #GIO: Get Input Output ; isčitava trenutni ulazno-izlazni status #IDT: Input Delay Time : pokazuje koliko vremena ulaz mora da bude aktivan prije generisanja alarma 14 • • • • • • • • • • • • • • • • • • • • • • • • • • #INI: INItialize: inicijalizuje parametre na vrijednosti definisane od strane proizvođača #IPM: podešava ulazni mod (InPut Mode) za svaki ulaz pojedinačno #LLA?:duge liste svih (Long Lists of All) stanja TCS programabilnih parametara #MHD: Message HeaDer: čita/upisuje TCS ID i SMS serijski broj #MTX: MaTriX: čita/upisuje matrice asocijacija između telefonskih brojeva i ulaza (8 plus 3 dodatna) #NOA: NO Acknowledgement : ometa potvrdu prijema SMS poruka #OUT: uključuje ili isključuje izlazne (OUTput) priključke #PIN: aktivira PIN kod za SMS karticu #PWD: aktivira lozinku (PassWorD) za pokretanje bilo koje naredne naredbe od strane SMS-a #PWR: čita/upisuje PoWeR varijable #RES: softver resetuje (RESets) ploču #SCA: čita/upisuje adresu servis centra (Service Center Adress) #SCT: namješta interni sat (Sets internal Clock) koristeći Telecom operator clock and date #SMC: SMs Counters: čita/upisuje SMS sa brojača #SNS: vrijednost analognog ulaza #SSM: šalje SMS telefonu (Send a Short Message) #TEL: određuje GSM brojeve telefona (TELephone), do 8 brojeva, na koje će biti poslan alarm #TMP: čita temperaturu, čita/upisuje granice za uključivanje alarma #VCF: funkcije glasovnog poziva (Voice Call Functions) #VER?: verzija softvera (softvare VERsion) #WHL: čita/upisuje broj telefona u listu (WHite List) Specijalne verzije softvera Hronotermostat (ChronoThermostat) #DAY: ispisuje temperature za odabrane dane u nedelji (uključuje i STP naredbu) #SHD: prikazuje dijagram promjene temperature #SHS: prikazuje dijagram promjene vremena #SSE: postavlja godišnja doba (ljeto/zima) #CTO: postavlja izlaze (1 do 8) pomoću hronotermostat softvera 2.2.7. Struktura SMS naredbi Svakoj naredbi koja je poslata u vidu SMS–a mora da prethodi znak # i naredba mora da bude velikim slovima. Prva naredba koja se zadaje mora biti #PWD (password). Postoji administratorska i korisnička lozinka sa različitim nivoom kontrole i pristupa. Obje lozinke su u početku 123456 i mogu da se promijene. Da bi se mogao poslati SMS, TCS mora znati odgovarajući broj servis centra (SCA). Ovo je broj SMS servis centra koji nam daje provajder. TCS onda može slati SMS poruke na taj broj i mreža će ih proslijediti do primaoca. Da bi se inicijalizovao TCS poslati slijedeću poruku: 15 #PWD123456#INI#SCA+387*********#SCT Poslije nekoliko sekundi bi trebalo da stigne poruka koja potvrđuje svaki dio zadate naredbe i signalizira greške. Ako se ne želi primiti ova poruka dodati naredbu #NOA na kraju komandnog niza. Kad je sistem jednom podešen sve funkcije mogu da rade putem SMS–a. Kada je poslata naredba, stićiće odgovor iako GSM broj nije na internoj GSM listi zbog toga što TCS prepoznaje ID onog koji zove i šalje mu odgovor. 2.3. Ulazi, poruke i GSM brojevi telefona Jedna od najvažnijih funkcija TCS–a je da prima poruke upozorenja (alarme). Ovo ćemo nazvati alert funkcija. Da bi se ova fukcija mogla odvijati TCS–u mora da sadrži podatke o tome koji su brojevi primaoca i ko treba da primi poruku za neki određeni ulaz. 2.3.1. Ulazne poruke Bitno je znati da za bilo koji ulaz postoji poruka (max 40 karaktera) koja može biti programirana od strane korisnika. Ulazi od 1 do 8 su pravi ulazi i u zavisnosti od verzije softvera koju korisnik posjeduje, ostali ulazi alarma su: IN[9] temperatura IN[10] isključivanje IN[11] 4-20 mA ulaz Mogu se programirati samo poruke za ulaze 1 do 8 dok drugi alarmi imaju svoje poruke: Temperature1: '' Low Temp Alarm '' – temperatura je u stepenima Celzijusa Temperature2: '' High Temp Alarm '' – temperatura je u stepenima Celzijusa Power1: '' Warning!AC Power OFF '' – isključeno AC napajanje Power2: '' AC Power ON '' – uključeno AC napajanje nakon resetovanja Power3: '' SHUTING DOWN!Low batt VBAT = xxxx mV '' 4-20-1: '' Warning!4-20 mA sensor error '' –nije priključen senzor 4-20-1: '' Warning!4-20 mA xx %'' – pređen prag vrijednosti koji je postavljen Može se programirati tekst poruke bilo sa data pozivom, korišćenjem TCS menija ili putem SMS poruka: #PWD123456#AMS01ovo je test za input 1 poruku AMS naredba mora biti izdata sama poslije PWD naredbe. Za tekst se može koristiti bilo koji karakter ali poruka mora biti do 40 karaktera. 16 2.3.2. Brojevi telefona SMS poruke se mogu slati samo putem GSM telefona pa se moraju unijeti brojevi telefona kojima se žele slati poruke. 8 telefonskih brojeva mogu biti sačuvani u sistemu. Za svaki ulaz je moguće poslati poruku, dodijeljenu tom ulazu, bilo kojem od 8 brojeva ili svim tim brojevima. Za unos brojeva telefona korisnika kojima se želi poslati alarm može se koristiti data poziv ili bolje SMS: #PWD123456#TEL01+387********* #PWD123456#TEL02+387********* . . . #PWD123456#TEL08+387********* Brojevi telefona se mogu mijenjati po potrebi. 2.3.3. Od ulaza do GSM matrice Svakom ulazu može biti dodeljen jedan od 8 telefonskih brojeva koje korisnik izabere sa liste[5]. GSM matrica pokazuje koji alarm generiše koliko poruka za koje brojeve telefona: INPUT1 = 1,0,0,0,0,0,0,0 INPUT2 = 1,2,0,0,0,0,0,0 INPUT3 = 1,1,2,2,0,0,0,0 INPUT4 = 2,3,4,5,0,0,0,0 INPUT5 = 7,0,0,0,0,0,0,0 INPUT6 = 4,0,0,0,0,0,0,0 INPUT7 = 1,2,3,4,5,6,7,8 INPUT8 = 0,0,0,0,0,0,0,0 INPUT9 = 1,0,0,0,0,0,0,0 INPUT10 = 1,0,0,0,0,0,0,0 INPUT11 = 0,0,0,0,0,0,0,0 Pretpostavimo da je korisnik unio svih 8 brojeva, ali ne mora ih unijeti. Svaki alarm koji dolazi sa ulaza 1 generisaće SMS za GSM 1 Svaki alarm koji dolazi sa ulaza 2 generisaće SMS za GSM 1 i 2 Svaki alarm koji dolazi sa ulaza 3 generisaće 2 SMS - a za GSM 1 i 2 Svaki alarm koji dolazi sa ulaza 4 generisaće SMS za GSM 2,3,4,5 Svaki alarm koji dolazi sa ulaza 5 generisaće SMS za GSM 7 Svaki alarm koji dolazi sa ulaza 6 generisaće SMS za GSM 4 Svaki alarm koji dolazi sa ulaza 7 generisaće SMS za svih osam brojeva Svaki alarm koji dolazi sa ulaza 8 neće generisati SMS uopšte Svaki alarm koji dolazi sa ulaza 9(temperatura) generisaće SMS za GSM 1 Svaki alarm koji dolazi sa ulaza 9(AC napajanje) generisaće SMS za GSM 1 Proizvođač je naznačio da je definisana vrijednost za sve ulaze 1,0,0,0,0,0,0,0. 17 Novo u verziji TCS 3.5 je da se ulaz matrice može čitati ili upisivati putem SMS–a, naredbi preko RS232 ili data pozivom. 2.4. Ulazni brojači i podbrojači Svi ulazi mogu biti aktivni ili neaktivni. Oni generišu alarm kad god su aktivirani duže od programiranog vremenskog perioda (2 do 32000 sekundi). Stanje ulaza se uvijek može očitati naredbom #GIO. Ulazi od 1 do 6 mogu biti individualno programirani da se drugačije ponašaju i da broje ulazne aktivne impulse (brzine do 14 ms). Ovo znači da se ulazi mogu povezati na mehanički brojač i brojati impulse (taktove). Svaki impuls će uvećavati brojač koji se odnosi na taj ulaz (counter1 za input1) i podbrojač koji se takođe odnosi na taj ulaz. Podbrojač će se uvećavati sve do vrijednosti jednake onoj sa kojom se poredi, koja je sačuvana u vrijednosti komparatora dostupnoj za svaki ulaz od 1 do 6. Sve vrijednosti brojača, podbrojača, komparatora se mogu programirati naredbama #CNT, #CNP, #CCA. 2.5. Temperatura TCS omogućava jednostavno mjerenje temperature od -25 do 100 stepeni Celzijusa. Ovo je moguće samo ako se kupi dodatak za TCS ploču sa ovom opcijom i temperaturnom sondom. Dostupna su dva modela: za vazduh i tečnost. Tačnost je 1 stepen po Celzijusu. Kad je sonda spojena putem SMS–a se može zahtjevati temperatura naredbom: #PWD123456#TMP? Nakon zadavanja ove komande korisniku stiže SMS sa temperaturnom vrijednosti. 2.5.1. Podešavanje temperaturnog alarma Moguće je postaviti donju i gornju temperaturnu granicu da bi TCS slao alarme i temperaturnu vrijednost GSM brojevima naznačenim u matrici za ulaz 9 (temperatura). Alarm će biti poslat kada temperatura bude manja od donje ili veća od gornje granice. Granice se mogu postaviti putem SMS–a: #PWD123456#TMPON,0,50 U ovoj naredbi se vidi da je donja granica 0, a gornja 50 stepeni Celzijusa. Temperaturni alarm može biti uključen ili isključen naredbama #TMPON ili #TMPOFF. Proizvođač je definisao da temperatura bude u granicama od -25 do 100 stepeni Celzijusa i da je alarm uključen. 18 2.5.2. Hronotermostat Ovo je posebna opcija koja dozvoljava automatsku kontrolu temperature u prostoriji za dan, nedelju i može da se podešava putem SMS–a. Radi u rasponu od 5 do 30 stepeni Celzijusa. Sa ovom softverskom opcijom može se poslati SMS poruka koja podešava temperaturu za četiri intervala svakog dana, 7 dana u nedelji, programirana korišćenjem naredbe: #DAY[1234567]#STP HH:MM gc HH:MM gc HH:MM gc Primjer: #DAY1345#STP=08:00 22.4,16:15 18 Ovaj primjer predstavlja programiranje temperature za ponedeljak, srijedu, četvrtak, petak na 22.4 stepena u 08:00 časova i 18 stepeni u 16:15 u pomenutim danima. TCS hronotermostat ima mogućnost podešavanja softvera za ljetnji i zimski period i kontroliše temperaturu preko izlaza 7. Ako temperatura pređe postavljene granice šalje se alarm. 2.6. AC napajanje i pomoćna baterija TCS uređaj se dobija sa konekcijom za pomoćnu bateriju i ima ugrađen punjač baterija za LEAD baterije. TCS se može napajati direktno sa 12 do 24VAC ili 12 do 35VDC. Da bi se zadržala puna baterija minimalno je potreban napon od 15VDC. Kao izvor napajanja se mogu koristiti i solarne ploče koje proizvode napon od 18V. U slučaju da dođe do prekida napajanja (stradao izvor napajanja) TCS će koristiti pomoćnu bateriju i poslaće alarm GSM brojevima spojenim na ulaz 10 (AC napajanje). Da bi dobili podatke o napunjenosti baterije i tipu napajanja možemo poslati naredbu putem SMS–a: #PWD123456#PWR? Ako napon baterije padne ispod 10.5V i nema AC napajanja TCS će se isključiti da bi se spriječilo naglo pražnjenje koje bi uništilo bateriju. Prije ovoga će biti poslata poruka upozorenja svim telefonima sa liste (GSM 1 do 8 ). Da bi se osposobio alarm za isključivanje TCS–a , TCS–u mora biti poslata poruka #PWROFF. Ako se isključi zbog toga što se baterija ispraznila, kada se ponovo uključi TCS će normalno nastaviti sa radom. 2.7. Izlazi (Outputs) Da bi korisnik podesio izlaze onako kako njemu odgovara mora poslati SMS specificirajući broj izlaza i ako želi broj sekundi koliko izlaz treba da ostane aktiviran. Ako se ne specificira ovaj parametar izlaz će ostati aktiviran sve dok ga slijedeća naredba ne isključi. 19 Primjer : #PWD123456#OUT1ON,10#OUT2ON Ova naredba aktivira izlaz 1 na 10 sekundi dok izlaz 2 ostaje aktivan dok ne stigne naredba za njegovo deaktiviranje. Stanje izlaza (i ulaza) se može očitati naredbom #GIO: #PWD123456#GIO? Takođe je moguće postaviti, resetovati ili provjeravati izlaze u voice ili DTMF modu ako su uključene voice opcije. Izlaz 8 je priključen na relej na TCS ploči. Ovaj relej je nisko naponski uređaj i ograničen je naponom max 48VAC 1A. 2.8. TCS voice (glasovne) opcije Opcija otvaranje vrata (gate opener) je dostupna kao standardna opcija na svim TCS pločama. Ostale mogućnosti su dostupne ako se instaliraju. Ako je korisnik dokupio TCS voice i DTMF opcije onda ima mogućnost kontrole ulaza i izlaza korišćenjem običnog telefona (GSM, fiksni, prenosni) sa DTMF tonovima. 2.8.1. Osnovni koncepti White List je lista brojeva (64 broja) koja pokreće događaj po pozivu iz voice moda. Ako broj sa liste pozove, i ako je izabran pristupni mod liste, funkcija izabrana iz glasovnih opcija će se automatski izvršavati. TCS tada poredi ID onog koji zove sa brojevima u listi i aktivira funkciju ako je pronašao broj u listi. Poređenje brojeva počinje od krajnjeg desnog karaktera do poslijednjeg karaktera (max 10 karaktera). Može se vršiti upoređivanje znakova na određenoj poziciji korišćenjem znaka “?“ na mestu znaka koji se želi uporediti. 2.8.2. Unos brojeva u listu Brojevi se unose naredbom #WHL putem SMS–a ili komandne linije. Da bi korisnik zatražio broj telefona putem SMS–a mora da specificira poziciju na kojoj se taj broj nalazi: SMS #WHL01 vraća korisniku broj telefona na poziciji 01. Ako se želi omogućiti prolaz svim brojevima od 6411111000 do 6411111999 može korišćenjem: 6411111??? 20 Ako se želi omogućiti prolaz svim brojevima koji završavaju sa 321 treba unijeti 321 jer TCS poredi znakove od kraja i to samo one koji su unijeti (max do 10 znakova). Slika 4. Jedna od primjena Easy Gate – a. 21 3. Interpretator komandi (CI) Svi Festo kontroleri imaju Interpretatora Komandi. On se obično naziva CI. CI nije međuveza između čovjeka i mašine. Međutim, često se koristi ručno, pošto obezbjeđuje zaista jednostavnu međuvezu. Međuveza Interpretatora Komandi se takođe koristi za niz zadataka FST programske alatke. Razni programski dijelovi FST softvera automatski upravljaju komunikacijom sa spojenim kontrolerom i obezbjeđuju mnogo jaču i uobičajeniju korisničku međuvezu. CI, koji je dio FST PLC operativnog sistema, može se koristiti kao terminal ili emulator terminala, preko kontrolorove serijske međuveze (obično COM ili COM1). Kao mogućnost, COM priključak koji je upotrebljen za CI na kontroleru može se promjeniti u drugi COM ulaz u Podešavanjima Kontrolera svakog projekta. Ovo je posebno korisno, ukoliko želimo iskoristiti FIFO koji, recimo, podržava COM2, ali ne i COM1. Ovo je dogovoreno imenovanje glavnih CI COM ulaza za različite tipove kontrolera: kontroler broj porta FECs 0 HC0X 0 1 2 HC1X 1 2 HC2X 1 opis ugra•eni „COM“ ulaz ugra•eni „COM“ ulaz (pretpostavljeni) „COM1“ port na dodatnom CP3x modulatoru „COM2“ port na dodatnom CP3x modulatoru ugra•eni „COM1“ ulaz (pretpostavljeni)ili „COM1“ port na dodatnom CP3x modulatoru ukoliko je ugra•eni „COM1“ ulaz isklju•en „COM2“ port na dodatnom CP3x modulatoru ugra•eni „COM“ ulaz (pretpostavljeni)ili „COM1“ port na dodatnom CP3x modulatoru ukoliko je ugrađeni „COM“ ulaz isključen 2 „COM2“ port na dodatnom CP3x modulatoru Kao dodatak CI međuvezi na COM ulazu, CI komande mogu se unositi preko priključene tastature i rezultati će se prikazivati na priključenom monitoru za HC1X i HC2X centralne procesorske jedinice. Korišćenjem FST drajvera CI međuveza može se učiniti dostupnom na dodatnim međuvezama kao što su COM ulazi ili preko TCP/IP. Treba uočiti da su dodatne CI međuveze ograničene u nekim mogućnostima. 3.1. Komandna ulazna jedinica 22 Komande CI sastoje se uglavnom od pojedinačne linije kao ulazne jedinice i odgovora u istom redu. Većina komandi nije osjetljiva na velika i mala slova. Pogrešan unos može se ispraviti tipkom Backspace (Ctrl H) prije zaključivanja sa CR (Enter). Primjer: >DF=0,0,0 > DF komande ispituju status grešaka kod kontrolera. Ukoliko nijedna greška nije prisutna, kontroler odgovara „=0,0,0“. Daljim pritiskanjem tipki D, F i CR, unos se prikazuje na ekranu i IPC dodaje svoj odgovor i ponovo prikazuje njegov odzivnik. Pogrešne komande rezultiraju porukom o grešci „ACCESS ERROR“, ili, rijeđe, skraćenim oblikom „ERR“. Takođe, čuje se zvučni signal iz zvučnika. Komanda Odgovor Odgovor o grešci <command> \r <command> <response> \r\n>\21 <command> b\r\nACCESS ERROR\r\n>\21 3.2. Ulančavanje CI komandi Gotovo sve komande mogu biti ulančane. CI procesuira ulančane komande u nizu i odgovarajući odgovori se grupišu. Komande se moraju odvajati od različitih komandnih grupa znakom „tačka-zarez“. Primjer: Pojedinačne komande za startovanje programa P0 i ispitivanje statusa programa su: >RPO >DPO=0,0,3,2,0 > Ulančan, isti niz komandi ima oblik: >RPO;DPO=0,0,3,2,0,0 > Komande u istoj komandnoj grupi (tj, nekoliko prikazujućih ili modificirajućih komandi) mogu se odvajati samo zarezima, bez ponavljanja prvog znaka za odabir komandne grupe. Primjer: R0, FW16 i 10.3 trebaju biti prikazani. Kao pojedinačne komande: >DR0=432 >DMW16=0 >DE0.3=1 > Isti niz komandi, ulančan: >DR0, FW16, E0.3=432=0=1 > 23 Višelinijske komande ne mogu biti ulančane. Na primjer, komande za promjenu vrijednosti sa unosom stare vrijednosti. Ulančavanje takođe nije moguće za komande koje trebaju biti proslijeđene drajverima. 3.3. Masovni prikaz Znak minus može se dodati na kraj komandi radi prikaza vrijednosti. Tada 16 konsekventnih vrijednosti bude prikazano kao masovni prikaz. Ovaj metod prikazivanja je takođe dopustiv i za bit operande. Primjer: Komanda „DR1“ prikazuje Registar 1. >DR1=0 > Suprotno, komanda „DR1-“ simultano pokazuje Registre od 1 do 16. >DR1-=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 > 3.4. Zaštita lozinkom Pristup kontroleru može se osigurati lozinkom. Ako je lozinka postavljena, pristup modifikovanju i pristup drajverima u CI je isključen. Komande potrebne da se postavi lozinka (LC) u da se zaključa ili otključa kontrolor (LX) su opisane u daljim odjeljcima. Evo nekoliko pravila u vezi sa zaštitnom lozinkom: • Lozinka se sastoji od 3 do 20 vidljivih ASCII znakova sa izuzetkom zareza (tj, bez praznih prostora, TAB-ova itd.). • Ukoliko je lozinka podešena, ona je pohranjena u kontroleru dok je ovaj ugašen, ukoliko su aktivirani operatori koji je čuvaju. Tako će, ukoliko bude uključen ili resetovan, kontroler biti zaključan ukoliko je lozinka postavljena. • Ukoliko nije dostupna memorija za čuvanje, lozinka se takođe može čuvati unutar projekta. U tom slučaju, lozinka će biti postavljena i kontroler zaključan kad se projekat pokrene. Lozinka za projekat se podešava unutar Podešavanja Kontrolera u projektu. 3.5. Pregled CI komandi Slijedeći opis komandi koristi skraćenice prema dole prikazanoj tabeli: <BN> <BN> <DN> <PN> <RN> <TN> <WN> <CN> Broj Broj Broj Broj Broj Broj Broj Broj bita bloka drajvera programa registra tajmera rije•i broja•a 24 <YN> Broj stanice Unesite validnu vrijednost umjesto „“. Opseg vrijednosti zavisi od operanda. 3.6. Aktiviranje CI/Prijavljivanje DC (Ctrl T) Logon and output of the kernel version CI izvještava priključeni terminal bilo nakon što se unese DC4 (Ctrl T) ili se primi hardversko BREAK. Svaka komanda koja se procesuira bude prekinuta. Kontroler odgovara sa „FESTO IPC V2.nn“ i normalnim odzivnikom „<“ u slijedećoj liniji. Molimo uočite da hardversko BREAK neće biti uočeno od strane FEC i HC0X kontrolera! Slanje hardverskog BREAK takođe podešava brzinu prenosa na strani kontrolera na standardnu brzinu od 9600 ili 2400 Bauda, što zavisi od jedne od slijedećih metoda: 1. Nakon BREAK podesite kružno 2 puta na 9600 Bauda, 1 put na 2400 Bauda (podrazumijevano). 2. Uvijek 9600 Bauda (stari metod). 3. Uvijek 2400 Bauda (korisno za spore modemske veze i Field PCNet inače zvani MpRAM). 4. Nakon BREAK podesite kružno 3 puta na 2400 Bauda, 2 puta na 9600 Bauda. Svi metodi dopuštaju promjenu na bilo koju brzinu prenosa nakon prijavljivanja (vidjeti MV komandu). Nakon paljenja, metod 1 biće odabran. Nakon pokretanja projekta korišćenjem Field PCNet metod 4 će se automatski izvršiti. Metodi 1, 2, i 4 dopuštaju povezivanje sa softverom bilo kog starog FST domaćina. Ponekad prijavljivanje neće uspjeti iz prvog pokušaja. Pokušavajte ponovo pritiskanjem tipke kao što vam prikazuje softver FST domaćina. Softver 3.21 novih FST domaćina poznaje različite brzine prenosa i prilagodiće im se. Metod prijavljivanja može se takođe odabrati funkcionalnim modulom COM1METH. 3.6.1. COM1METH Ulazni parametri FU32 Povratni parametri FU32 X Osloboditi me•uvezu 0 2x9600, 1x2400 1 uvijek 9600 2 uvijek 2400 3 3x2400, 2x9600 teku•i/novi metod prijavljivanja Komanda X oslobađa serijski ulaz iskorišćen za CI (obično COM1). Ova komanda radi samo kada je unešena preko serijskog ulaza. 3.7. Komande za prikaz operanda i stanja 25 DA[<YN>.]<WN>.<BN> DAW[<YN>.]<WN> DB<BN> Prikazati izlazni bit Prikazati izlaznu rije• Prikazati programski modul. Odgovor se sastoji od „=, 0, ,“. • • • • Prva vrijednost je tip modula, bilo STL=0 LDR/FUP=1 ili C=2. Druga vrijednost, opseg memorije, je uvijek 0. Treća vrijednost pokazuje status programa za zvanje. Posljednja vrijednost je tekući broj koraka unutar modula. DBF<BN> Prikazati funkcionalni modul Odgovor se sastoji od „=, 0, ,“. • • • • Prva vrijednost je tip modula, bilo STL=0 LDR/FUP=1 ili C=2. Druga vrijednost, opseg memorije, je uvijek 0. Treća vrijednost pokazuje status programa za zvanje. Posljednja vrijednost je tekući broj koraka unutar modula. DD • • • Prikazati teku•e postavke za decimalno/heksadecimalno prikazivanje rije•i Izlaz je „=D“ za decimalni prikaz, bez predznaka „=S“ za decimalni prikaz, sa predznacima „=H“ za heksadecimalni prikaz. DE[<YN>.]<WN>.<BN> DEW[<YN>.]<WN> DF Prikazati izlazni bit Prikazati izlaznu rije• Prikazati riječ o stanju grešaka Izlaz: • Vrijednost statusne riječi • Broj programa u kome se greška pojavila • Broj koraka unutar programa na primjer „=59,3,24“. U slučaju ulazno/izlaznih grešaka, broj programa pokazuje vrijednost 255, a broj koraka pokazuje broj ulazne ili izlazne riječi u kojoj se greška pojavila. DM<WN>.<BN> DMW<WN> DO<WN> Prikazati indikator bita Prikazati indikator rije•i Prikazati funkcionalnu jedinicu Globalne funkcionalne jedinice FU0 do FU31 i FU39 do FU255 mogu biti prikazane. Lokalne funkcionalne jedinice FU32 do FU38 mogu biti prikazane. Ove funkcionalne jedinice su odvojene za svaki program. DP<PN> Prikazati status programa 6 vrijednosti je dato kao odgovor26 • • • • • Prva vrijednost je tip modula, bilo STL=0 LDR/FUP=1 ili C=2. Druga vrijednost, opseg memorije, je uvijek 0. Status programa je treća vrijednost. Može biti nula za neaktivan, 2 za aktivan i zadržan i 3 za aktivan i procesirajući. Četvrta vrijednost je broj koraka. Ona nije nula za korake STL programa i ljestvične dijagrame sa granama sve dok je program aktivan. Kada korak programa još nije aktivan, on je u koraku 0. Posljednje dvije vrijednosti su broj i korak pozvanog modula, ukoliko je odgovarajući. DR<RN> DS<PN> DT<TN> DTA<TN> DTE<TN> DTV<TN> DTW<TN> DV Prikazati Prikazati programa Prikazati Prikazati gašenja Prikazati paljenja Prikazati Prikazati Prikazati registar indikator po•etnog izvršenja status tajmera za tajmer pulsa status tajmera za tajmer odlaganja status tajmera za tajmer odlaganja podešene postavke tajmera rije• tajmera brzinu prenosa podataka Komanda DV pokazuje tekuće postavke brzine prenosa podataka. Moguće vrijednosti su „=1200“, „=2400“, „=4800“, „=9600“, „=19200“, „=38400“ ili „=56000“. DZ<ZN> DZV<ZN> DZW<ZN> Prikazati status broja•a Prikazati podešene postavke broja•a Prikazati rije• broja•a 3.8. Komande za modifikovanje vrijednosti Komande za modifikovanje operanda mogu se takođe davati bez unošenja nove vrijednosti, tj. kao prikazana komanda. Tekuća vrijednost je onda vraćena i može se resetovati sa novom vrijednošću ili zadržati pritiskom na Enter. MA[<YN>.]<WN>.<BN>={0 | 1} MAW[<YN>.]<WN>= MD={D | S | H} Modifikovati izlazni bit Modifikovati izlaznu rije• Podesiti vid prikaza Vid prikaza može se podesiti na decimalni bez predznaka „=D“, decimalni sa predznacima „=S“ ili na heksadecimalni „=H“. ME[<YN>.]<WN>.<BN>={0 | 1} MEW[<YN>.]<WN>= MF=<number> Modifikovati ulazni bit Modifikovati ulaznu rije• Modifikovati pogrešnu rije• Vrijednost 0 briše tekuću grešku. Svaka druga vrijednost generiše odgovarajuću grešku tokom obrade. MM<WN>.<BN>={0 | 1} MMW<WN>=<number> MO<WN>=<number> Modifikovati Modifikovati Modifikovati funkcionalnu indikator bita indikator rije•i globalnu jedinicu Modifikuje globalne funkcionalne jedinice FU0 do FU31 i FU39 do FU255. 27 MO<PN>.<WN>=<number> Modifikovati lokalnu funkcionalnu jedinicu. Modifikuje lokalne funkcionalne jedinice FU32 do FU38. Ove funkcionalne jedinice su odvojene za svaki program. MR<RN>=<number> MT<TN>=={0 | 1} MTA<TN>=={0 | 1} MTE<TN>={0 | 1} MTV<TN>=<number> MTW<TN>=<number> MV=<baud> Modifikovati registar Modifikovati (start/stop) tajmer pulsa Modifikovati (start/stop) tajmer odlaganja gašenja Modifikovati (start/stop) tajmer odlaganja paljenja Modifikovati podešene postavke tajmera Modifikovati rije• tajmera Podesiti brzinu prenosa podataka Brzina prenosa podataka postavljena je na „MV=1200“, „MV=2400“, „MV=4800“, „MV=9600“, „MV=19200“, „MV=38400“ ili „MV=56000“. Ona se može skratiti na dva znaka, npr. „MV=96“. Napomena! „MV=56000“ nije dostupna za FEC i HC0X kontrolore. MZ<ZN>={0 | 1} MZV<ZN>=<number> MZW<ZN>=<number> Podesiti broja• Podesiti postavke broja•a Postaviti rije• broja•a 3.9. Komande kontrole programa B BP<PN> R Prekinuti sve programe koji su u toku Prekinuti pojedina•ni program Po•eti ili nastaviti program Ukoliko je opcija „Resetovati programe“ selektovana u Podešavanjima Kontrolera, program P0 se počinje ili nastavlja. Ukoliko indikator nije podešen, svi prekinuti (zaustavljeni) programi se takođe nastavljaju. RB<no>[,<FU32>[,<FU33>[, ... [,<FU37>[,<FU38>]]]]]]] Pozvati programski modul Komanda „RB“ poziva učitani programski modul (onaj koji je uključen u projekat). Napomena! Komanda koristi kontekst programa P63, koji se treba čuvati u rezervi u ovu svrhu. Traženi parametri moraju biti proslijeđeni sa pozivom. Neki parametar može biti izostavljen. U ovom slučaju, koristi se prethodna vrijednost. To vraća =<FU32>, <FU33>, <FU34>,<FU35>,<FU36>,<FU37>,<FU38>. Primjer: RB7,14,,9=4712,103,0,0,0,0,0 Pozovite CMP 7 sa FU32=14, FU33=Stara vrijednost, FU34=9, Rezultati FU32=4712, FU33=103, FU34 do 38=0 RF<no>[,FU32>[,FU33>[, ... [,<FU37[,<FU38>]]]]]]] Pozvati programski modul 28 Komanda „RF“ poziva učitani programski modul (onaj koji je uključen u projekat). Napomena! Komanda koristi kontekst programa P63, koji se treba čuvati u rezervi u ovu svrhu. Traženi parametri moraju biti proslijeđeni sa pozivom. Neki parametar može biti izostavljen. U ovom slučaju, koristi se prethodna vrijednost. To vraća =<FU32>, <FU33>, <FU34>,<FU35>,<FU36>,<FU37>,<FU38>. RP<PN> S SP<PN> Po•eti ili nastaviti program Prekinuti sve programe Prekinuti program <PN> 3.10. Komande za prebacivanje ulaza i izlaza Svi ulazi i izlazi mogu biti selektivno prebačeni na 0 ili 1. Ukoliko je bit ulaza prebačen na 0 ili 1, to je vidljivo za program i CI. Ukoliko je bit izlaza prebačen na 0 ili 1, to ostaje nevidljivo za program i CI, tj, učitavanje izlaznih bita ostaje nepromijenjeno. Potpune ulazne i izlazne riječi takođe mogu biti prebacivane. Napomena! Ulazi/izlazi mogu biti prebacivani samo tokom pronalaženja grešaka. „Završen“ projekat ne smije sadržati prebacivane ulaze/izlaze. Napomena! Tabela sile nije zadrživa. Napomena! Tabela sile se automatski briše komandom Y ili učitavanjem projekta. Napomena! Ova osobina nije dostupna za sve tipove kontrolera. Prebacivanje je generalno podržano kod HC1x i HC20 procesnih jedinica i za FECs i HC0X procesne jedinice počevši od verzije kernela 2.25. Slijedeće CI komande su dostupne za prebacivanje ulaza/izlaza: YF DAF<YN>.<BN> Obrisati kompletnu tabelu sile Prikazati izlazni bit Rezultat =0 =1 =N Preba•en na 0 Preba•en na 1 Nije preba•en DAWF<WN> Prikazati izlaznu rije• Rezultat „=xxxxxxxxxxxxxxxx“ bitvajs sa =0 =1 =N Preba•en na 0 Preba•en na 1 Nije preba•en DEF<WN>.<BN> Prikazati ulazni bit Rezultat „=xxxxxxxxxxxxxxxx“ bitvajs sa =0 =1 =N Preba•en na 0 Preba•en na 1 Nije preba•en DEWF<WN> Prikazati ulaznu rije• Rezultat „=xxxxxxxxxxxxxxxx“ bitvajs sa =0 =1 =N Preba•en na 0 Preba•en na 1 Nije preba•en MAF<WN>.<BN>={0 | 1 | N} =0 =1 Unos u tabeli sile za podešavanje izlaznog bita Prebaci na 0 Prebaci na 1 29 =N Ne prebacuj MAWF<WN>={val | N} =val =N Unos u tabeli sile za podešavanje izlazne rije•i Prebaci na datu vrijednost Ne prebacuj MEF<WN>.<BN>={0 | 1 | N} ulaznog bita =0 Prebaci na 0 =1 Prebaci na 1 =N Ne prebacuj MEWF<WN>={val | N} =val =N Unos u tabeli sile za podešavanje Unos u tabeli sile za podešavanje ulazne riječi Prebaci na datu vrijednost Ne prebacuj 3.11. Komande ugrađene u drajverima FST PLC operativni sistem dopušta drajverima u projektu da dopunjavaju standardne komande sa komandama specifičnim za drajvere. Komande specifične za drajvere unose se sa početnim uzvičnikom „!“ praćenim brojem drajvera i samom komandom>!<DN><komanda> > Drajver, međutim, ne mora podržavati vlastite komande. Mnogi drajveri odgovaraju na praznu komandu sa informacijom o statusu. Generalno, komande drajvera imaju sličnu strukturu standardnim komandama. Na primjer, drajver niza sa brojem drajvera 3 ima komande prikaza za nizove u kojima je korišćen odgovarajući broj niza. Primjer: >!3d12='FESTO > 4. Nizovi Verzija 1.01 FST drajver za nizove čini dostupnim novi, dodatni tip podataka: tip podatka STRING (niz). Podešene postavke pružaju podršku za 256 nizova. Pojedinačnim nizovima se pristupa posredstvom broja niza. Nizovi mogu sadržavati sve znakove sa izuzetkom znaka NULE (heksadecimalno $00). Oni mogu biti dugi koliko je potrebno, u domenu zahtjeva podešene memorije. Nizovi nisu zadrživi. 4.1. Konfigurisanje drajvera i podešavanje parametara Ukoliko želimo koristiti nizove u FST IPC projektu, moramo unijeti STRINGS drajver u konfigurator drajvera i podesiti neophodne parametre. IPC drajv: 30 Naznačimo drajv na kojem je smješten ili na koji treba biti učitan drajver niza STRINGS.EXE. Rezervisana memorija u bajtima: Unesemo maksimalni kapacitet memorije koji nizovi trebaju koristiti. Dopušteni opseg je od 5 do 65000 bajta. Podešena postavka je 5 bajta. Ovo podešavanje se takođe može naznačiti ili modifikovati upotrebom STRINIT modula Broj nizova: Unesemo maksimalni broj nizova. Dopušteni opseg je od 5 do 1024 nizova. Podešena postavka je 256 nizova. Datoteka sa početnim postavkama: Unesemo naziv datoteke koja sadrži inicijalne vrijednosti za nizove. Format ove datoteke opisan je u slijedećem odjeljku. 4.2. Inicijalizacija nizova Jednostavna tekstualna datoteka se koristi za inicijaliziranje nizova. Ona mora imati ime sa ekstenzijom „TXT“. Svaki red u datoteci je niz. Prva linija je niz 0. Nizovi koji nedostaju se inicijaliziraju kao prazni nizovi. Svi znakovi u novom redu (CR ili CF) u tekstualnoj datoteci su uklonjeni. Posebni znakovi su predstavljeni kombinacijom dva znaka, \ znak i drugi znak. Mogući su slijedeći posebni znaci: \a \b alert backspace \f formfeed Pomjeranje obrasca (FF) \n linefeed Prelaz u slijedeći red (LF) \r return Novi red (CR) \t tab Znak tabulatora \<no> Znak zvona (slušni signal) Pomjeriti položaj jednog znaka ulijevo Heksadecimalna definicija znaka; <no> mora početi sa cifrom, na primjer “\0AB” (ispravno) prije nego “\AB” (neispravno). Znak ‘\’ predstavlja se sa dvije obrnute kose crte ‘\\’. 31 4.3. Proširene CI komande za nizove Kada se nizovi koriste u projektu, drugim riječima kada je drajver niza učitan, komandni set CI je snabdjeven drajverom niza. Dodatne komande za drajver niza su prikazane dalje: !Dx Prikazati niz x !3Mx=text Uskladiti niz x sa poretkom znakova 'text' !3S Oznaka statusa Rezultat „=count=<XX>,storage=<YY>,<ZZ>“, gdje je XX YY ZZ = = = = Broj nizova Kapacitet zauzete memorije OK, ako je memorija niza OK, ili BAD, ako je memorija niza sa greškama U ovim komandama, „!3“ je prefiks za CI poziv u drajveru; u ovom slučaju to je u drajveru 3 za nizove. 4.4. Moduli za upravljanje nizovima Postoji jedan broj unaprijed pripremljenih modula koji se mogu koristiti za upravljanje nizovima. Oni se moraju uvesti u projekat na uobičajen način. Različiti razmotreni nizovi naznačeni su brojem niza. Da bi obrisali niz 5, tj. da bi ga reducirali na dužinu 0, mora se pozvati STRCLR modul. Taj modul se, na primjer, može uvesti kao CMP 73; U STL programski redovi pojavljuju se kako slijedi: THEN ... CMP 73 WITH V5 '' obrisati sa STRCLR '' od niza 5 Da bi kopirali niz 6 u niz 12, mora se pozvati modul STRCPY. Taj modul se, na primjer, može uvesti kao CMP 74. U STL programski redovi pojavljuju se kako slijedi: THEN ... CMP 74 WITH R0 WITH V12 '' kopirati sa STRCPY '' od niza sa brojem u R0 '' do niza 12 Većina modula nizova vraća rezultat usljed otkrivanja greške. 32 Pregled modula: STRADDR STRAPPND STRATOH STRATOI STRATOIX STRATOU STRCAT STRCHECK STRCHGET STRCHSET STRCI STRCLR STRCMP STRCPY STRDEL STRDUMP STRFILL STRFILLW STRFINDC STRFINDS STRGROW STRHTOA STRICMP STRINIT STRINSRT STRITOA STRLEFT STRLEN STRLOWER STRMID STRNCMP STRNICMP STRRIGHT STRSTAT STRUPPER STRUSAGE STRUTOA Odrediti internu adresu niza Dodati znak na kraj niza Konvertovati heksadecimalni niz u riječ Konverovati niz u riječ s predznakom Konverovati niz u riječ s predznakom Konverovati niz u riječ bez predznaka Kombinovati dva niza u treći niz Provjera memorije za memoriju niza Izdvojiti znak iz niza Zamijeniti znak u nizu Izvršiti CI komandu Obrisati niz Uporediti dva niza znak po znak, Uporediti dva niza znak po znak, praveći razliku između velikih i malih slova Kopirati niz Obrisati dio niza Prikazati broj nizova Stvoriti niz sa naznačenim brojem identičnih znakova Ispuniti niz drugim nizom, uravnanim lijevo ili desno Pronaći znak u nizu Pronaći podniz u nizu Proširiti memoriju niza za pojedinačni niz Pretvoriti riječ u heksadecimalni niz Uporediti dva niza znak po znak, ne praveći razliku između velikih i malih slova Inicijalizacija ili re-inicijalizacija Ubaciti niz u drugi niz Konvertovati riječ sa predznakom u niz Lijevi podniz Dužina niza Konvertovati niz u mala slova Srednji podniz Uporediti prve znakove dva niza, praveći razliku između velikih i malih slova Uporediti prve znakove dva niza, ne praveći razliku između velikih i malih slova Desni podniz Status drajvera niza Konvertovati niz u velika slova Upotrebljena i slobodna memorija Konvertovati riječ bez predznaka u niz 4.4.1. STRADDR Odrediti internu adresu niza. 33 Ulazni parametri Povratni parametri FU32 FU32 FU33 Broj niza Grana adrese 0 ukoliko je broj niza nevažeći Dio adrese 0 ukoliko je broj niza nevažeći Kako su dužine upotrebljenih nizova podložne dinamičkoj promjeni, možda bude potrebno pomjeriti nizove unutar memorije niza. Direktna posljedica ovoga je da se, nakon što je adresa niza određena, on može odmah promjeniti kao rezultat operacija niza sa drugim nizovima. Adrese nizova stoga treba koristiti pod posebnim uslovima. 4.4.2. STRAPPND Dodati znak na kraj niza. Ulazni parametri Povratni parametri FU32 FU34 FU32 Broj niza znakovi koje treba dodati 0 ako je uspješno, inače greška 4.4.3. STRATOH Konvertovati heksadecimalni niz u riječ. Ulazni parametri Povratni parametri FU32 FU32 FU33 Broj niza 0 ako je uspješno, inače greška Rezultirajuća vrijednost Znakovi za prazan prostor i tabulatorni znakovi na početku i kraju niza su dopušteni. Takođe, dopušteni su i znakovi '+' ili '-' prije brojčanih znakova. 4.4.4. STRATOIX Konverovati niz u riječ s predznakom. Ulazni parametri Povratni parametri FU32 FU33 FU32 FU33 FU34 Broj niza Pozicija niza za konverziju 0 ako je uspješno, inače greška Rezultirajuća vrijednost Broj znakova korišćenih za konverziju Znakovi za prazan prostor i tabulatorni znakovi na početku i kraju niza su dopušteni. Takođe, dopušteni su i znakovi '+' ili '-' prije brojčanih znakova. 4.4.5. STRATOU Konverovati niz u riječ bez predznaka Ulazni parametri FU32 Broj niza 34 Povratni parametri FU32 FU33 0 ako je uspješno, inače greška Rezultirajuća vrijednost Znakovi za prazan prostor i tabulatorni znakovi na početku i kraju niza su dopušteni. Takođe, dopušteni su i znakovi '+' ili '-' prije brojčanih znakova. 4.4.6. STRCAT Kombinovati dva niza u treći niz. Ulazni parametri Povratni parametri FU32 FU33 FU34 FU32 Broj prvog izvornog niza Broj drugog izvornog niza Broj ciljnog niza 0 ako je uspješno, inače greška 4.4.7. STRCHECK Provjera memorije za memoriju niza. Ulazni parametr Povratni parametri Nijedan FU32 0 ako je uspješno, inače greška 4.4.8. STRCHGET Izdvojiti znak iz niza. Ulazni parametri FU32 FU33 Povratni parametri FU32 FU33 Broj niza Indeks znaka, 1 za prvi znak niza 0 ako je uspješno, inače greška Izdvojeni znak 4.4.9. STRCHSET Zamijeniti indeksirani znak u nizu. Ulazni parametri Povratni parametri FU32 FU33 FU34 FU32 Broj niza Indeks znaka, 1 za prvi znak Znak zamjene u bitu nižeg reda 0 ako je uspješno, inače greška 4.4.10. STRCI Izvršiti CI komandu. Ulazni parametri Povratni parametri FU32 FU33 FU32 Broj niza sa CI komandom Broj niza za rezultat ovoga 0 ako je uspješno, inače greška 35 Niz koji nastane iz ove komande mora biti ne duži od 80 znakova. Rezultat CI komande nije tumačen. 4.4.11. STRCLR Obrisati niz. Ulazni parametri Povratni parametri FU32 FU32 Broj niza 0 ako je uspješno, inače greška Ovo je isto kao čišćenje niza ili reduciranje njegove dužine na 0. 4.4.12. STRCMP Uporediti dva niza znak po znak. Ulazni parametri Povratni parametri FU32 FU33 FU32 FU33 Broj prvog niza Broj drugog niza 0 ako je uspješno, inače greška 1 ako su znakovi u prvom nizu > od znakova u drugom nizu -1 ako su znakovi u prvom nizu < od znakova u drugom nizu Velika i mala slova se razlikuju. Velika slova imaju nižu vrijednost nego mala. 4.4.13. STRCPY Kopirati jedan niz u drugi niz. Ulazni parametri Povratni parametri FU32 FU33 FU32 Broj izvornog niza Broj ciljnog niza 0 ako je uspješno, inače greška 4.4.14. STRDEL Obrisati dio niza. Ulazni parametri Povratni parametri FU32 FU33 FU34 FU32 Broj niza Indeks za prvi znak koji treba biti obrisan, 1 za prvi znak Broj znakova 0 ako je uspješno, inače greška 4.4.15. STRDUMP Proizvesti izlaz čistač grešaka serije nizova na monitoru IPC. 36 Ulazni parametri Povratni parametri FU32 FU33 Nijedan Broj prvog niza Broj posljednjeg niza Ovaj modul ne bi se trebao koristiti pri normalnim operacijama. Ukoliko je neophodno, mogu se koristiti proširene komande drajvera niza. 4.4.16. STRFILL Stvoriti niz sa naznačenim brojem identičnih znakova. Ulazni parametri Povratni parametri FU32 FU33 FU34 FU32 Broj niza Broj znakova Znak koji popunjava 0 ako je uspješno, inače greška 4.4.17. STRFILLW Ispuniti niz drugim nizom, uravnanim lijevo ili desno. Ulazni parametri Povratni parametri FU32 FU33 FU34 FU32 Broj nizova koje treba stvoriti Broj znakova za ovaj niz >0 za uravnane desno <0 za uravnane lijevo Broj nizova koje treba prebaciti 0 ako je uspješno, inače greška Ukoliko je naznačena dužina za niz koji treba kreirati prekratka, rezultirajući niz je skraćen. 4.4.18. STRFINDC Pronaći znak u nizu. Ulazni parametri FU32 FU33 Povratni parametri FU32 Broj niza u kome se traži Broj podniza koji treba naći 0 ako je uspješno, inače greška >0 pozicija, 1 za prvi znak 0 ukoliko podniz nije nađen 4.4.19. STRGROW Proširiti memoriju niza za pojedinačni niz iz dostupne memorije. Ulazni parametri FU32 FU33 Povratni parametri FU32 Broj niza Nova maksimalna veličina niza u znakovima (bez \0 na kraju niza) 0 ako je uspješno, inače greška Postojeći niz je zadržan nepromijenjen. Nakon ovoga, niz sa dužinom do maksimalne veličine ovdje postavljene može biti upisan na adresu određenu sa 37 STRADDR. Svako drugo pozivanje modula niza može ponovo promijeniti podešenu vrijednost. 4.4.20. STRHTOA Konvertovati riječ u heksadecimalni niz. Ulazni parametri Povratni parametri FU32 FU33 FU32 Vrijednost koju treba konvertovati Broj niza 0 ako je uspješno, inače greška Znak '$' je ubačen prije četiri heksadecimalna numerička znaka. 4.4.21. STRICMP Uporediti dva niza znak po znak. Ulazni parametri Povratni parametri FU32 FU33 FU32 FU33 Broj prvog niza Broj drugog niza 0 ako je uspješno, inače greška 1 ako su znakovi u prvom nizu > od znakova u drugom nizu -1 ako su znakovi u prvom nizu < od znakova u drugom nizu Nema razlike između velikih i malih slova. 4.4.22. STRINSRT Ubaciti niz u drugi niz sa naznačene pozicije. Ulazni parametri Povratni parametri FU32 FU33 FU34 FU32 Broj niza u koji treba ubaciti drugi niz Pozicija prije koje treba ubaciti niz 1 = prije prvog znaka Broj niza koji treba biti ubačen 0 ako je uspješno, inače greška 4.4.23. STRINIT Podešava veličinu memorije za nizove i maksimalan broj nizova i uspostavlja inicijalne vrijednosti nizova. Ulazni parametri Povratni parametri FU32 FU33 FU32 Veličina memorije niza (minimum 1000) Maksimalan broj nizova (minimum 10) 0 ako je uspješno, inače greška 4.4.24. STRITOA Konvertovati riječ sa predznakom u niz. 38 Ulazni parametri Povratni parametri FU32 FU33 FU32 Vrijednost koju treba konvertovati Broj niza 0 ako je uspješno, inače greška Ako je neophodno, znak '-' ubacuje se prije numeričkih znakova. 4.4.25. STRLEFT Prebaciti lijevi podniz naznačene dužine u niz. Ulazni parametri Povratni parametri FU32 FU33 FU34 FU32 Broj izvornog niza Broj znakova Broj ciljnog niza 0 ako je uspješno, inače greška Ako je izvorni niz kraći od naznačene dužine, izvorni niz se kopira. 4.4.26. STRLEN Dužina niza. Ulazni parametri Povratni parametri FU32 FU32 FU33 Broj niza 0 ako je uspješno, inače greška Dužina 4.4.27. STRLOWER Konvertovati niz u mala slova. Ulazni parametri FU32 Broj niza Povratni parametri FU32 0 ako je uspješno, inače greška Napomena! Znakovi specifični za neku zemlju se ne konvertuju. 4.4.28. STRMID Konvertovati srednji podniz sa naznačene polazne pozicije i specifične dužine u niz. Ulazni parametri Povratni parametri FU32 FU33 FU34 FU35 FU32 Broj izvornog niza Početni znak u izvornom nizu, 1 za prvi znak izvornog niza Broj znakova Broj ciljnog niza 0 ako je uspješno, inače greška Ukoliko se polazna pozicija ne nađe u izvornom nizu, proizvodi se prazan niz. Ukoliko je izvorni niz prekratak, ciljni niz se skraćuje prema njemu. 4.4.29. STRNCMP 39 Uporediti prve znakove dva niza. Ulazni parametri Povratni parametri FU32 FU33 FU34 FU32 FU33 Broj prvog niza Broj drugog niza Broj znakova 0 ako je uspješno, inače greška 1 ako su znakovi u prvom nizu > od znakova u drugom nizu 0 ako su oba niza identična -1 ako su znakovi u prvom nizu < od znakova u drugom nizu Velika i mala slova se razlikuju. Velika slova imaju nižu vrijednost nego mala. 4.4.30. STRNICMP Uporediti prve znakove dva niza. Ulazni parametri Povratni parametri FU32 FU33 FU34 FU32 FU33 Broj prvog niza Broj drugog niza Broj znakova 0 ako je uspješno, inače greška 1 ako su znakovi u prvom nizu > od znakova u drugom nizu 0 ako su oba niza identična -1 ako su znakovi u prvom nizu < od znakova u drugom nizu Nema razlike između velikih i malih slova. 4.4.31. STRRIGHT Prebaciti desni podniz naznačene dužine u niz. Ulazni parametri Povratni parametri FU32 FU33 FU34 FU32 Broj izvornog niza Broj znakova Broj ciljnog niza 0 ako je uspješno, inače greška Ako je izvorni niz kraći od naznačene dužine, izvorni niz se kopira. 4.4.32. STRSTAT Ispitati status drajvera niza. Ulazni parametri Povratni parametri Nijedan FU32 Podešena veličina memorije za nizove 40 FU33 FU34 FU35 Maksimalan broj nizova Memorija iskorišćena od nizova Slobodna memorija koja je preostala 4.4.33. STRUPPER Konvertuje niz u velika slova. Ulazni parametri Povratni parametri FU32 FU32 Broj niza 0 ako je uspješno, inače greška Napomena! Znakovi specifični za neku zemlju se ne konvertuju. 4.4.34. STRUSAGE Odrediti količinu iskorišćene i slobodne memorije za nizove. Ulazni parametri Povratni parametri Nijedan FU32 FU33 Memorija iskorišćena od nizova Slobodna memorija koja je preostala 4.4.35. STRUTOA Konvertovati riječ bez predznaka u niz. Ulazni parametri Povratni parametri FU32 FU33 FU32 Vrijednost koju treba konvertovati Broj niza 0 ako je uspješno, inače greška 4.4.36. STR2FLAG Kopirati niz u zonu riječi sa indikatorom. Ulazni parametri FU32 Broj niza FU33 Maksimalan broj znakova koji se mogu kopirati FU34 Broj riječi sa indikatorom Povratni parametri FU32 0 ako je uspješno, inače greška FU33 Broj znakova koji su zaista kopirani 4.4.37. FLAG2STR Kopirati riječ sa indikatorom u niz Ulazni parametri Povratni parametri FU32 FU33 FU34 FU32 Broj niza Broj znakova koje treba kopirati Broj riječi sa indikatorom 0 ako je uspješno, inače greška Svaka riječ sa indikatorom sadrži dva znaka. 41 Moduli STR2FLAG i FLAG2STR su posebno korisni povezani sa modulima datoteka FREAD i FWRITE kada je neophodno upisati nizove u datoteku. Naznačena zona riječi sa indikatorom se koristi za posredno pohranjivanje. 5. Prikaz rada u realizovanom softveru i opis sistema Softver za unos e-mobilnih ključeva je urađen u Microsoft Visual Basic-u 6.0. Softver treba da ima mogućnost komuniciranja sa PLC-om preko RS 232 porta. Takođe treba da očita zadati broj stringova, prikaže ih i ima mogućnost izmjene. 5.1. Kako softver funkcioniše Na (slici 6.) je prikazan prozor gdje se pišu programski kodovi koji se izvršavaju. Klikom na komandno dugme pojavljuje se prozor koda u okviru koga se definišu naredbe koda. 42 Slika 5. Izgled prozora gdje se pišu programski kodovi. U konkretnom slučaju bilo je potrebno napisati programski kod za prikaz stringa, kao i programski kod koji šalje string prema serijskom portu. 43 Slika 6. Programski kod za prikaz stringa. 44 Slika 7. Programski kod koji šalje string prema serijskom portu. Nakon završetka pisanja kodova pokrene se program. U pokrenutom programu je naznačeno u koja polja šta treba da se unese. Kada u prokrenutom programu kliknemo na komandno dugme “Dodaj” prikazuje se string (slika. 8.). 45 Slika 8. Prikaz stringa. 46 Takođe, u pokrenutom programu klikom na komandno dugme “Izmjeni” vidimo da je string poslat prema serijskom portu (slika 9.). Slika 9. Prikazuje da je string poslat prema serijskom portu. 47 Zaključak Poslijednjih godina je veoma rasprostranjena upotreba PLC–a u svim granama industrije kao i drugim oblastima gdje se to zahtijeva. Danas se gotovo ne može zamisliti proces proizvodnje bez korišćenja PLC–a pogotovo u upravljanju radom mašina. Upravljanje komplikovanim procesima biva jednostavnije i takođe je olakšano otkrivanje grešaka i njihovo otklanjanje. Upotrebom PLC–a se omogućava veća fleksibilnost u realizaciji upravljačkog sistema. Takođe je prije puštanja programa u rad moguće simulirati rad programa i otkriti greške na vrijeme. Upotreba mobilnih telefona je takođe veoma rasprostranjena. Današnji mobilni telefoni su dostupni svakom potencijalnom korisniku kako zbog jednostavne upotrebe tako i zbog cijene. GSM tehnologija je nekoliko godina unazad veoma napredovala tako da su današnji mobilni telefoni mnogo manjiih dimenzija ali sa mnogo više mogućnosti nego telefoni npr: prije tri godine. Sada u telefonima postoje kamere što dovodi do ozbiljnog problema korišćenja mobilnih telefona na radnim mjestima na kojima je zabranjeno slikanje objekata (elektrane, vojni objekti, dobrostojeće kompanije itd) ili na mjestima na kojima je moguće ugroziti privatnost ljudi ( saune, solarijumi itd). Takođe, čip u telefonu je daleko razvijeniji tako da neki modeli telefona ustvari predstavljaju manje računare (noviji modeli marke NOKIA). Broj korisnika GSM tehnologije se svakog dana povećava. Istraživanja pokazuju da neki ljudi ne mogu da zamisle svoj život bez mobilnih telefona. Svaki korisnik ima jedinstven broj telefona i dodatne mogućnosti koje pružaju operateri. Roaming na primer je veoma korisna mogućnost iako je skupa. Softver za unos e–mobilnih ključeva je predviđen za otključavanje ulaza na zgradama ili samih stanova korišćenjem mobilnog telefona. Kada korisnik pozove broj telefona SIM kartice koja se nalazi u TCS uređaju i ako se njegov broj nalazi na listi (objašnjeno u prethodnom poglavlju) električni signal poslat sa izlaza na PLC–u otključava vrata. Ovo je jednostavno realizovano ali bez PLC–a, mobilnog telefona i TCS uređaja ne bi moglo da funkcioniše. Svaka od ove tri komponente ima veoma značajnu ulogu u realizaciji rješenja predstavljenog u ovom radu. Predstavljeno rješenje može biti iskorišteno i u industriji da se ograniči pristup u fabrike i radnicima u neke prostorije unutar fabrika za koje nemaju ovlašćenja. Cilj ovog rada je bio da olakša unos novih i izmjenu postojećih korisnika i da na taj način olakša korišćenje čitavog sistema. 48 Literatura 1. Your Personal PLC Tutor Site, http://www.plcs.net 2. http://www.plcautomations.com 3. Mobile phone history: digital mobile telephony - http://www.Mobile phone history digital mobile telephony.htm 4. Diplomski rad, Dragana Škrinjar, Novi Sad 2004 5. DPS – Promatic telecom Control Systems, TCS 3.5 and TCS OS 5.1x Instruction List 6. Uvod u industrijske PLC kontrolere , Nebojša Matić , Mikroelektronika , Beograd 2001 7. http://www.telefonnet/tehnologije/arhitekture.htm 8. Festo controler’s 49
© Copyright 2024 Paperzz