TECO - Automation - PLCComS - Communication server

 

PLCComS - Communication server

PLCComS v.6.1
[zip, 5 MB]

User manual PLCComS
[pdf, 325 kB]

Function Communication server provide TCP/IP connection with client device and a PLC. Communication of server with client is created by simple text oriented protocol - question/answer. Server communicates with PLS optimalized by EPSNET protocol or in case of SoftPLC by shared module.
Installation Server run directly from directory, where was extracted. There is necessary to modify configuration file PLCComS.ini
Operating system Linux, Windows XP and newer
Running on PC (Linux, Windows), Raspberry-Pi (Linux), Teco operator panels ID-x8, ID-3x

Communication server for TCP/IP connection with Foxtrot, TC700 and SoftPLC


	+---------------------------------------------------------+
	|               Komunikacni server PLCComS.               |
	+---------------------------------------------------------+

---------------------------------------------------------------------------
    Verze 6.1					Zkompilovano 01.06.2023
---------------------------------------------------------------------------

	- Pridan vypis zasobniku pri padu aplikace.

	- Oprava problemu s On-Line zmenou programu. Po zmene CRC programu se nejprve nacte novy PUB soubor, pak se smaze obraz pameti PLC a nacte se obraz novy.
	- Oprava prace s nesledovanymi promennymi. Pri nastaveni promenne se vzdy vygeneruje DIFF: zprava.
	- Oprava. Zrychleni odesilani dlouhych odpovedi pro klientske dotazy. Dlouhe odpovedi se posilaji po castech a je proto potreba zkratit dobu cyklu, dokud se vse neodesle.
	- Oprava zobrazeni inentifikacniho retezce PLC. Nebyla zobrazena cela verze FW PLC.
	- Oprava posilani WARNING: a ERROR: zprav pri On-Line zmene programu PLC. Pokud se behem zmeny vygeneruje prilis mnoho DIFF: zprav, tak se WARNING: ani ERROR: zpravy neodeslou kvuli ochrane proti zahlceni klienta.

---------------------------------------------------------------------------
    Verze 6.0					Zkompilovano 24.06.2022
---------------------------------------------------------------------------

	- Oprava nastaveni RT priority. Hodnota promenne COMM_SCHED_PRI = 0 nastavila RT planovac na prioritu 1.
	- Oprava prikazu GETINFO:. Pri pripojeni vice klientu nebyla odpoved zakoncena jako seznam. Tedy prazdnym prikazem GETINFO:

---------------------------------------------------------------------------
    Verze 5.9					Zkompilovano 09.05.2022
---------------------------------------------------------------------------

	- Oprava. Nahrazeno slovo 'register(s)' za 'variable(s)' v chybovych zpravach.
	- Oprava. Odstranena promenna DIFF_VAR_ENABLED_DI.
	- Oprava zpracovani SET: prikazu u nesledovanych promennych. Promenne se do PLC posilaji najednou a ne po jedne.
	- Oprava chyby na architekture AARCH64 (Debian bullseye): PLCComS->RealizeCommObject():: Unable to set stack size for MEM thread attributes!

---------------------------------------------------------------------------
    Verze 5.8					Zkompilovano 16.12.2021
---------------------------------------------------------------------------

	- Funkce crcPLC() nahrazena tabulkou. Rychlejsi vypocet.

	- Oprava skladani klientskych dotazu. Problem s PLC funkcnim blokem pro synchronizaci promennych (iCool).
	- Oprava stahovani PUB souboru pri zmene projektu pomoci TTR. Kdyz neni zapnut zapis souboru, tak se pri chybe nestahne PUB soubor.
	- Oprava. Kvuli rychlosti je na panelech ID-3x vypnuto paralelni ziskavani dat prikazem GETMEM:.Promenna MEM_USE_THREADS.
	- Oprava. Kvuli rychlosti je na panelech ID-3x vypnouto generovani DIFF: zprav u zakazanych promennych. Promenna DIFF_VAR_ENABLED_DI.
	- Oprava. Pri odesilani odpevedi se nezpracovavaji dotazy. Jsouli odpovedi dlouhe a posilaji se po castech, tak se nesmi nijak narusit.
	- Oprava. Pokud je CRC projektu 0, tak funkce InitPubfileCommObject() skonci chybou a nastahuje PUB soubor.
	- Oprava. DIFF: zpravy se posilaji jako posledni, aby nenarusovali odesilane odpovedi.
	- Oprava ztraty promennych v odpovedich LIST:, GET: a DIFF:. Pokud je odpoved dlouha a rozdeli se, tak se ze seznamu zpracovanich polozek smaze i jedna nezpracovana polozka.
	- Oprava. Dotaz GETINFO:NETWORK je seznam a tak take musi byt zakoncen.
	- Oprava padu aplikace pri zmene projektu. Pokud se meni projekt v PLC pomoci TTR balicku, tak vypadne EPSNET komunikace a nestahne se PUB soubor. Problem s verzi FW 3.9 na CP-2xxx.

---------------------------------------------------------------------------
    Verze 5.7					Zkompilovano 15.12.2020
---------------------------------------------------------------------------

	- Opravena chyba na EPSNET komunikaci. Chybne se skladali EPNET frame do jednoho paketu. Centrala pak vracela chybnou velikost dat.

---------------------------------------------------------------------------
    Verze 5.6					Zkompilovano 27.10.2020
---------------------------------------------------------------------------

	- Pridana jmena threadu:

	    Jmeno sekce - Hlavni smycka (COMM objekt)
	    MEM		- Prace s pameti
	    FFG		- Get file
	    FFW		- Write file

	- Opravena chyba neuvolnovani pameti v prikazu GETMEM:
	- Opravena chyba v prikazu GETMEM:. Prikaz obcas zpusobil vyjimku SEGV.
	- Opravena chyba testu velikosti zpravy v prikazu READN v 'libepsnet.a'. Je-li promennych mnoho, tak se spatne skladaji EPSNET frame
	  a centrala neodpovi na dotaz.

---------------------------------------------------------------------------
    Verze 5.5					Zkompilovano 09.09.2020
---------------------------------------------------------------------------

	- Zarovnani IP adres v prikazu GETINFO:.
	- Pokud je vstupni buffer preplnen, je to sdeleno klientovi.
	- Podrobnejsi chybove zpravy v klientskych opovedich.

	- Opravena chyba. Pri odpojeni posledniho klienta se stav promennych nastavi do vychoziho stavu.
	- Opravena chyba EPSNET komunikace. Komunikace je zhruba 5x rychlejsi.
	- Opravena chyba. Pokud pri komunikaci s PLC doslo k chybe, nebylo mozne prikazem DI: promenne zakazat.
	- Opraveno preskoceni telnet negotiation. Mohlo zpusobit SIGSEGV.
	- Opraveno generovani zpravy DIFF: u zakazanych promennych. Hodnoty se porovnavaji binarne a ne textove. Pridano logovani.
	- Opravena chybu pri stahovani souboru. Pri chybe se neuzavrel soubor.

---------------------------------------------------------------------------
    Verze 5.4					Zkompilovano 30.04.2020
---------------------------------------------------------------------------

	- Do prikazu SET: pridano vyhodnoceni chybne hodnoty.
	- Odstraneno zpozdeni u jednotlivych klientu pri dlouho trvajicim dotazu. Napr.: dlouhy seznam prikazu GET:, LIST: nebo GETMEM:, GETFILE:.

	- Opravena chyba pri nastaveni promennych typu BOOL. Jednotlive bity se nastavuji primo v PLC.
	- Opravena chyba v prikazu SET:. U zakazanych promennych se negenerovala zprava DIFF:.
	- Opravena chyba poslani obsahu souboru jinemu klientovi prikazem GETFILE:. Problem pri vypadku spojeni jednoho z nich.
	- Opravena chyba nezname promenne v prikazu GET: a LIST: s maskou. Vraci se prazdny seznam a ne chyba.
	- Opravena chyba "Bus error" na platforme ARMHF. Problem s vypoctem odchylky delta.

---------------------------------------------------------------------------
    Verze 5.3					Zkompilovano 20.02.2020
---------------------------------------------------------------------------

	- Opravena chyba neuzavirani UDP socketu na EPSNET komunikaci.

---------------------------------------------------------------------------
    Verze 5.2					Zkompilovano 05.12.2019
---------------------------------------------------------------------------

	- Pridan cas pripojeni do seznamu sitovych spojeni.

	- Opravena chyba neuzavrenych UDP socketu.
	- Opravena chyba logovani. Pokud PUB soubor nesel zpracovat, tak se rychle plni log.
	- Opravena chyba zpracovani PUB souboru. Pokud je chybna adresa promenne, tak se radek preskocit a neskonci parsovani.
	- Opravena chyba zpracovani PUB souboru. Pokud zacina prazdnym radkem, tak se preskoci a parsovani pokracuje.
	- Opravena chyba v logovani ve funkci generovani DIFF: zprav.
	- Opravena chyba pripojeni telnet protokolem. Problem se znaky "telnet negotiation". Server nerozumel prikazum.

---------------------------------------------------------------------------
    Verze 5.1					Zkompilovano 18.10.2019
---------------------------------------------------------------------------

	- Pridan prepinac -v pro zapnuti podrobnejsich logu.
	- Do logu pridana informace o tom, na ktere ip adrese a portu server posloucha.
	- U cisla signalu se vypisuje i jeho jmeno.
	- Optimalizace rychlosti.
	- Do parsovani PUB souboru pridana prodleva. Je to kvuli velkemu zatizeni u velkych souboru.
	- Instance PLC nemusi byt definovany. Pak server pouze ceka na zmenu INI souboru.
	- Pridana hodnota 0 promenne COMM_SCHED_PRI, ktera Real-Time planovac uplne vyradi.
	- Pridana chybova odpoved na zmenu komunikacnich parametru PLC (IPADDR, SERIAL_DEVICE, ...), pokud PLC nekomunikuje.

	- Opravena chyba stahovani souboru, je-li cache vypla.
	- Opravena chybu pristupu do pameti pri hledani konce radku. 
	- Opravena chyba, kdy server prestal reagovat na dotazy. Hazard v threadu sitove komunikace. Prepsano bez pouziti threadu.


---------------------------------------------------------------------------
    Verze 5.0					Zkompilovano 21.03.2019
---------------------------------------------------------------------------

	- Pridana instalace pro OS Linux.

	- Opravena chyba: V pripade, ze INI soubor neobsahoval zadnou sekci PLC tak doslo k padu serveru.
	- Opravena chyba: Nebylo mozne nastavit jmeno PUB souboru z aplikace iFoxtrot.
	- Opravena chyba 'Bus error' na platforme ARMHF. Problem s datovymi typy REAL, LREAL, DT a DATE.
	- Opravena chyba v prikazu HELP: Misto promenne 'version_epsnet' byla promenna 'epsnet_version'.
	- Opravena chyba v prikazu GETINFO: a HELP: Misto promenne 'ipaddr' se zobrazila promenna 'ipaddr_plc'.

---------------------------------------------------------------------------
    Verze 4.9					Zkompilovano 03.07.2018
---------------------------------------------------------------------------

	- Pridana volba DATE_TIME_DECIMAL do INI souboru, ktera prepne zobrazeni datovych typu DT a DATE z INT64 na LREAL zobrazeni.
	- Pridana podpora odchylky 'delta' pro datove typy: LINT, ULINT, DWORD, TIME a TOD

	- Opravena chyba zpracovani odchylky 'delta': Nefunkcni pri zaporne zmene promenne. DIFF: se posilal vzdy.
	- Opravena chyba zpracovani odchylky 'delta': Nefunkcni u datovych typu DT a DATE
	- Opravena chyba, kdy se pri nenastavene IP adrese PLC posilal DIFF: promenne __PF_CRC

---------------------------------------------------------------------------
    Verze 4.8					Zkompilovano 25.04.2018
---------------------------------------------------------------------------

	- Pridana promenna IPADDR_LOCAL pro nastaveni ip adresy rozhranni, na kterem server posloucha.
	- Na zacatek logu pridan vypis verzi.
	- Chybove zpravy EPSNET rozsireny o anglictinu.

	- Opravena chyba komunikace EPSNET. Kdyz bylo PLC v Bootu, tak nebylo mozne PLC updatovat pomoci FWUpdateru.
	- Opraveno chovani serveru. Server loguje chybu pouze jednou a to jako odpoved na dotaz.

---------------------------------------------------------------------------
    Verze 4.7					Zkompilovano 07.12.2017
---------------------------------------------------------------------------

	- Prikaz GETFILE: a GETFILEINFO: je rozsiren o priznak 'A' nebo 'a', ktery rika, ze soubor se posila textove. Pro kodovani je pouzito BASE64.
	  Prikaz GETFILEINFO: pak vraci velikost enkodovaneho souboru.

	- Opraveno prime adresovani. V adrese se ignorovala velikost datoveho typu (%SL48, %RW10, ...).
	- Opravena chyba testu CRC projektu. CRC se nezpracovavalo neznamenkove.

---------------------------------------------------------------------------
    Verze 4.6					Zkompilovano 22.09.2017
---------------------------------------------------------------------------

	- Pridana sekce iFoxtrot do INI souboru, ktera je potreba pro aplikaci iFoxtrot.
	- Pridana promenna COMM_SCHED_PRI do INI souboru pro nastaveni priority.
	- Pridano logovani chyb EPSNETU. Zatim v cestine.
	- Odstranen podmineny preklad pro ID-XY.

	- Opravena chyba ve funkci IdentPlc(). Funkce chybne interpretovala verzi SW.
	- Opravena chyba ve stahovani souboru. Pozadavek pro stahnuti souboru neprerusil aktivni stahovani.
	- Opraveno zpracovani neznamenkovych datovych typu: USINT, UINT, UDINT, WORD a DWORD

---------------------------------------------------------------------------
    Verze 4.5					Zkompilovano 01.03.2017
---------------------------------------------------------------------------

	- Pridana promenna FFILE_TIMEOUT_WR do INI souboru pro nastaveni hodnoty timeout u zapisovaneho souboru.

	- Opravena chyba zasekavani komunikace ve verzi pro Win32.
	- Opravena chyba v prikazu SETCONF:. Nebylo mozne zmenit PUB soubor, kdyz jeho nastaveni naledovalo tesne po nsataveni IP adresy.

---------------------------------------------------------------------------
    Verze 4.4					Zkompilovano 06.01.2017
---------------------------------------------------------------------------

	- Pridana promenna SERIAL_DEVICE_CFG do INI souboru. Promenna prirazuje RTS GPIO piny k jednotlivym seriovym rozhrannim.

---------------------------------------------------------------------------
    Verze 4.3					Zkompilovano 21.10.2016
---------------------------------------------------------------------------

	- Pridan novy parametr --terminate | -t, ktery zpusobi ukonceni serveru v pripade, ze se INI soubor zmeni.
	- Snizeno obsazeni pameti. Data registru se ukladaji do dynamicky pridelene pameti a ne do statickeho pole.
	- Pri zmene komunikacnich parametru PLC zkusi server aktualizovat PUB soubor a klientovi to ohlasi zpravou 250 nebo 251.
	- Pridan zapis souboru pomoci prikazu WRITEFILE: a WRITEFILEINFO:
	- Zrychlena reakce serveru na klientske dotazy. Krome panelu ID-18/28, ktere nemaji dostatecny vykon. To znamena, ze kdyz prijde dotaz od klienta, tak se prerusi sleep v hlavni smycce.
	  Sleep se take prerusit v pripade zpracovani prikazu SET:.
 To je dulezite kvuli rychle odpovedi zpravou DIFF:.
	- Pro mereni casu se v hlavni smycce nepouziva funkce getdifftime(), ale gettimeofday() a makro timersub().

	- Opravena chyba. V pripade, ze neni nastavena promenna PUBFILE_WRITE, tak se PUB soubor hleda v korenovem adresari serveru.
	- Opravena chyba ve vyhodnoceni chybneho totazu. Pri parsovani se nebrali v uvahu dosove konce radku. Znak '\r' pak dela problemy v chybovem hlaseni.
	- Opravena chyba ve funkci AddPubFileRec(). Dochazelo k duplicitam generovanych klicu u promennych lezicich na stejne adrese. Klic se nyni generuje jako 16bit CRC pres jmeno promenne.
	- Opravena chyba v parsovani PUB souboru. K chybe dochazelo u radku, ktere maji na konci komentare.
	- Opravena chyba ve funkci DoReqCommObject(). Pri deleni zprav se pouziva vyhledavani, ktere nerozlisuje velikost pismen. Jinak nefunguje deleni zprav.
	- Opravena chyba v prikazu DI:. Prisel-li v jednom dotazu pred prikazem DI: prikaz set, pak se neodeslala zprava DIFF:.
	- Opravena chyba. V knihovne 'libepsnet.a' se v ethernetove komunikaci meni hodnota MESI v UDP hlavicce paketu. Puvodne byla pouzita konstanta 0x1234. Nyni se pakety cisluji od 0 a kazdny odeslany paket ma hodnotu MESI +1.
	- Opravena chyba. Prikaz SET: nyni funguje optimalizovane i se zakazanymi promennymi, od kterych jiz nechodi DIFF: zpravy. Take u neho neni potreba provadet trideni funkci SortCliReq().
	- Opravena chyba. Funkce CreateCLIOptimReq() zpracovava vsechny promenne a ne jen ty co jsou fixni nebo povolene. A to proto, ze klientske dotazy jsou jiz spravne sestaveny z funkce DoReqCommObject().
	- Opravena chyba. Je-li pouzito vice sekci a v nektere nejde otevrit nejaky PUB soubor, pak se server neukonci.

---------------------------------------------------------------------------
    Verze 4.2					Zkompilovano 07.07.2016
---------------------------------------------------------------------------

	- Je-li IPADDR=0.0.0.0, tak se nekomunikuje. Komunikace se zahaji, teprve az se sdresa nastavi prikazem SETCONF:.
	- Podpora noveho formatu PUB souboru. Soubor nema priznaky na konci radku: PUB_INOUT, PUB_IN nebo PUB_OUT.

	- Opravena chyba v prikazech DI: a EN:. Pri roztrhnuti dotazu je docasne zkracena dobu cyklu na minimum. To vyrazne zrychluje nektere dotazy.
	- Opravena chyba ve formatu IP adresy. IP adresu je mozne zadavat i s pocatecnimi nulami: 192.168.033.005.
	- Opravena chyba u prikazu GETMEM:. Loguji se pouze chyby, jinak je log prilis velky. Problem nastava hlavne u prace s CabvasLib.
	- Opravena chyba logovani. Informace o nezdarenem spojeni s PLC se do logu vypisuje pouze jednou. Jinak je log zbytecne velky a je-li PLC sekci vice je i neprehledny.
	- Opravena chyba logovani. V logu chybi, u parsovani konfigurace jednotlivych sekci PLC, informace o PLC a jmenu sekce. Neni tedy jasne, ve ktere sekci je chyba.
	- Opravena chyba pri navazani spojeni s PLC. Server nezalogoval typ spojeni, ale pouze informace o PLC.
	- Opravena chyba v prikazu SET:. Nasledoval-li tesne po nem prikaz GET:, vratil server hodnotu z kache, ktera nebyla aktualni.
	- Opravena chyba v prikazu SET: boolovskych promennych, lezicich na stejne adrese. Kdyz prisli dotazi tesne po sobe, nastavil se pouze posledni.

---------------------------------------------------------------------------
    Verze 4.1					Zkompilovano 25.02.2016
---------------------------------------------------------------------------

	- Pridan podrobny help pro prikaz GETINFO:.
	- Pridany prikazy HIDE: a UNHIDE: pro nastaveni promenne do stavu 'hidden'. S takovou to promennou jde pracovat pouze pri konkretnim dotazu nebo
	  pri skupinovem dotazu. Hromadne dotazy, jako: EN:*, DI:* a GET:*, tyto promenne ignoruji. V seznamu prikazu LIST: se na konci jmena zobrazuje
	  znak '~'.

	- Opravena chyba v prikazu GETFILEINFO: Kdyz bylo dotazu vice za sebou, prisla odpoved pouze na posledni soubor.
	- Opravena chyba pri vicenasobnem uziti oddelovace '\n'. Kdyz bylo techto znaku vice za sebou, tak se prikaz ktery oddelovali, vykonal vicekrat.
	- Opravena chyba v prikazu GET:. Kdyz prisel tesne po prikazu EN:, vratil server hodnotu z kache, ktera nebyla aktualni.

---------------------------------------------------------------------------
    Verze 4.0					Zkompilovano 20.01.2016
---------------------------------------------------------------------------

	- Vyrazne zrychleni odpovedi v projektech s tisici promennymi (prikazy LIST:, GET:, DIFF:).
	- Osetrena chyba EPSNETU (Chybne parametry komunikacni sluzby). Nastava napr. pri prekroceni adresniho rozsahu centraly.
	- Kvuli kompatibilite se nepouziva adresar se jmenem sekce, je-li promenna PUBFILE_WRITE nastavena na 'No' nebo chybi.
	- Pridan parametr EPSPORT pro zmenu komunikacniho portu protokolu EPSNET. Uzitecne pro pripojeni na TECOROUTE. Hodnotu lze menit i prikazem SETCONF:.
	- Pridan parametr EPSTOUT pro nastaveni timeoutu a EPSTOUT_STEP pro prirustek timeoutu v EPSNET komunikaci. Problem s TECO Routerem. Vypadava spojeni.

	- Opravena chyba, kdy se poriodicky stahoval PUB soubor. Problem nastaval po startu serveru, kdyz nebylo spojeni s PLC. Po navazani spojeni
	  bylo vyhodnoceno nove CRC a PUB soubor se zacal periodicky stahovat.
	- Opravena chyba pri praci s velkymi PUB soubory. V prikazech LIST: a GET: dochazelo k padu serveru.
	- Opravena chyba ve funkci ReadPubFile(). Funkce obcas hlasila chybu registru, protoze pri parsovani posledni polozky doslo k preteceni pointeru.
	- Opravena chyba vytvareni adresare sekce. Adresar se vytvarel, i kdyz byla promenna PUBFILE_WRITE nastavena na No.
	- Opravena chyba promenne EPSADDR. Bylo mozne nastavit hodnotu 0 - 127. Platny rozsah je 1 - 126.
	- Opravena chyba zarovnani pameti na ARM procesorech (ID-31/32) ve strukture FFILE. V kernelu je kvuly SoftPLC vypnut softwarovy handler vyjimek.
	  System aplikaci ukoncil s chybou "Buss error".
	- Opravena chyba jmena PUBLIC souboru. Jmeno se nepravadi na velka pismena.
	- Opravena chyba v prikazech GETMEM: a GETFILE:. Pri DOSovem ukoncovani radku se nepouzil znak '\n' ale pouze '\r'.
	  Na ID-XY se nadale posila pouze znak '\r'.

---------------------------------------------------------------------------
    Verze 3.9					Zkompilovano 05.12.2014
---------------------------------------------------------------------------

	- Neni-li mozne ziskat data z PLC, tak se resi pouze klientske dotazy a navazuje se spojeni s PLC.
	- Prace s lokalnimi soubory je upravena tak, ze kazdy thread ma vlasni soubory.
                 Napr.: Foxtrot/PLCComS.crc
                        Foxtrot/www/webmaker.pub
	- Rozsireny prikazy EN: a DI: tak, ze je mozne zadat odchylku 'delta', pri jejimz prekroceni se generuje DIFF: zprava.
          Odchylka je kladne cislo a muze byt i cislo realne. Vychozi hodnota bude 0.
                Napr: EN: TEPLOTA_1 0.5 - nastavi odchylku delta na 0.5 (Zmena o pul stupne)
            	      EN: TEPLOTA_* 2   - nastavi odchylku delta na 2 u vsech promennych TEPLOTA_
	- Promenna NUM_OF_DECIMALS z INI souboru muze byt i 0. Pak se uplne zahodi desetinna cast.
	- Prime adresovani v prikazech SET:,GET: a GETMEM: nebude pouze na panelu ID-XY.
	- Prikazy GETFILE: a GETFILEINFO: pracuji s lokalnimy adresari.

	- Opravena chyba dvojiho ulozeni PUBLIC souboru. Jmeno PUBLIC souboru se prevadi na velka pismena.
	- Opravena chyba chyba v EPSNET komunikaci, pri zizkavani promennych. Vypadavolo spojeni s PLC.
	- Opravena chyba nedostatku pameti. Nove centraly maji vetsi pamet. Pamet pro registry R zvetsena z 64KB na 512KB.
	- Opraveny drobne chyby v chybovych zpravach.

---------------------------------------------------------------------------
    Verze 3.8					Zkompilovano 16.09.2014
---------------------------------------------------------------------------

	- Do sekce PLC pridana promenna EPSADDR, kterou se nastavi zdrojova adresa pro EPSNET. To resi problem vice serveru pripojenych k jednomu PLC.
	- Pridano nastaveni promenne EPSADDR do prikazu SETCONF:.
	- Prikazy GET: a SET: mohou pracovat se zakazanymi promennymi. Tykat se pouze panelu ID-XY.
	- Pridano prime adresovani do prikazu SET:,GET: a GETMEM:. Tyka se pouze panelu ID-XY.

	- Opravena chyba pri zmene PUBLIC souboru. Kdyz se PUBLIC soubor nelisi od aktualniho, tak je generovana zprava cislo 251.
	- Opravena chyba pri zmene PUBLIC souboru. Neni-li soubor nalezen, tak se puvodni zahodi a clientovi se posila chybova zprava.
	- Opravena chyba v knihovne 'libepsnet.a' v seriove komunikaci. Pri velikosti paketu nad 250B doslo k zamrznuti vysilani.

---------------------------------------------------------------------------
    Verze 3.7					Zkompilovano 31.07.2014
---------------------------------------------------------------------------

	- Opravena chyba v nastaveni mezni doby cyklu. Mezni hodnota nebyla prevedena na microsekundy.

---------------------------------------------------------------------------
    Verze 3.6					Zkompilovano 29.07.2014
---------------------------------------------------------------------------

        - Pridana real-time priorita.
	- Do knihovny 'libepsnet.a' pridana prodleva 1ms pro RTS. Jinak se RTS nekdy nestihlo.
        - Je-li cas hlavni smicky vetsi jak pozadovana hodnota, tak se jako cas zpozdeni nastavi prave tato hodnota a ne 1s.
        - Pridano prime adresovani do prikazu SET:,GET: a GETMEM:.

        - Opravena chyba, kdy se pri zmene projektu neulozilo nove CRC a proto se do nekonecna nacital PUB soubor.

---------------------------------------------------------------------------
    Verze 3.5					Zkompilovano 02.07.2014
---------------------------------------------------------------------------

	- Prodlouzena doba timeoutu ze 750ms na 950ms v 'libepsnet.a'.

	- Opravena chyba pri nacitani PUBLIC souboru. Nyni se nacte, jen kdyz se lisi od aktualniho.
	- Opravena chyba, kdy pri pripojeni vice klientu dochazelo k ukonceni aplikace. Problem byl v obsluze pripojeni, kde se necekalo na nacteni PUB souboru.

---------------------------------------------------------------------------
    Verze 3.4					Zkompilovano 11.06.2014
---------------------------------------------------------------------------

	- Pridana moznost vypnuti souborove cache promennou FFILE_MAXRECS nastavenim na 0. Tim se soubory stahuji rovnou a odpadji tak dotazi na informace o souboru.
	- Zkracena prodleva pri stahovanim souboru na pozadi ze 100 na 10 ms.
	- Zkracena prodleva po ukonceni prijmu dat na seriove lince v 'libepsnet.a'. Konec zpravy se hlida znakem ED na jejim konci. Nedochazi tak ke zpozdeni 250ms.
	- Promenne typu STRING se porovnavaji jako textovy retezec a ne jako blok pameti. Pri prekryti promennych nechodi zbytecne DIFF: zpravy.

	- Opravena chyba v seriove komunikaci pri stahovani souboru. Pri velkych prodlevach SD karty dochazelo k padu aplikace.
	- Opravena chyba cteni lokalniho souboru. Pri chybe se vraci -1 a ne 0.
	- Opravena chyba pri stahovani velkeho mnozstvi souboru. Zhruba po 250 souborech se nepovedlo vytvorit thread a soubor jiz nesel stahnout.
	- Opravena chyba v prikazu EN: u PUB souboru, ve kterych se prekryvaji promenne. Dochazelo k nekonecne alokaci pameti.

---------------------------------------------------------------------------
    Verze 3.3					Zkompilovano 13.05.2014
---------------------------------------------------------------------------

	- Pridana promenna SYNC_VAR_ENABLED do INI souboru pro povoleni nebo zakazani synchronizace promennych s PLC behem stahovani souboru.
	  Zakazanim synchronizace se stahovani souboru vyrazne zrychli.

---------------------------------------------------------------------------
    Verze 3.2					Zkompilovano 30.04.2014
---------------------------------------------------------------------------

	- Pridana komunikace po seriove lince pro protokol EPSNET.
	- Data se nyni protokolem EPSNET stahuji v blocich o velikosti 1230B a ne 246B. Zrychleni je zhruba 5x.
	- Pridan prikaz GETMEM pro stahovani bloku pameti. Data se posilaji stejne jako u souboru.
	- Zvetsen maximalni pocet sitovych TCP spojeni z 32 na 1024 a vychozi pocet spojeni ze 4 na 10.

	- Opravena chyba pri posilani chybove zpravy cislo 41. Pri zmene PUB soubor se chybova zprava posilala pouze jednomu klientovi.
	- Opravena chyba, kdy pri zmene casu v systemu doslo k prodlouzeni doby cyklu hlavni smycky na nekolik desitek sekund.
	- Opravena chyba ve hvezdickove konvenci. Dotaz na promennou obcas skoncil chybou. Ve funkci strmcmp() nebylo vynulovane pole.
	- Opravena chyba v nastaveni meznich velikosti nekterych promennych.

---------------------------------------------------------------------------
    Verze 3.1					Zkompilovano 27.08.2013
---------------------------------------------------------------------------

	- Pridana promenna NUM_OF_DECIMALS do INI souboru pro zobrazeni realnych cisel na urcity pocet desetinnych mist.
	- Pridana promenna LIM_OF_DECIMALS do INI souboru pro omezeni zasilani zprav DIFF: v pripade, ze se ralna cisla na danem poctu desetinnych mist lisi.
	- Pridana promenna SCIENT_NOTATION do INI souboru pro zobrazeni realnych cisel ve vedeckem formatu [-]d.ddd e[+/-]ddd.

	- Opravena chyba v datovem typu 'int' v modulu EPSNET. Nebylo mozne stahovani souboru na 64b platforme.

---------------------------------------------------------------------------
    Verze 3.0					Zkompilovano 04.03.2013
---------------------------------------------------------------------------

	- Pridana moznost nastaveni BOOL promennych na hodnoty TRUE (1) nebo FALSE (0).

	- Opravena chyba napojeni na SoftPLC pres sdileny modul. Nyni je mozne pouzit novou verzi modulu.

---------------------------------------------------------------------------
    Verze 2.9					Zkompilovano 23.08.2012
---------------------------------------------------------------------------

	- Pri prechodu centraly z HALT do RUN se provede reinicializace spojeni. Tim se vicisti struktury pro EPSNET.

	- Opravena chyba ve stahovani souboru z centraly. Nektere soubory se nekdy nepodarilo stahnout.

---------------------------------------------------------------------------
    Verze 2.8					Zkompilovano 18.04.2012
---------------------------------------------------------------------------

     	- Soubory se nyni protokolem EPSNET stahuji v blocich o velikosti 1150B a ne 220B. Zrychleni je zhruba 5x.
	- Pri stahovani souboru se data prubezne posilaji klientovi. U stahovani velkych souboru se zdalo, ze server nereaguje.

	- Opravena chyba ve zpracovani promennych typu REAL. Pokud mela hodnota prilis mnoho cifer, tak dochazelo k preteceni pole a k padu serveru.
	- Opravena chyba v praci s retezci. Obsah retezce se nesmi konvertovat na velka pismena.
	- Opravena chyba ve hvezdickove konvenci. Filtrovani seznamu se chovalo, jako by vzdy byla zadana prvni hvezda.
	  Napr.: LIST:BTN se chova stejne jako LIST:*BTN

---------------------------------------------------------------------------
    Verze 2.7					Zkompilovano 18.10.2011
---------------------------------------------------------------------------

	- Pridana promena DIFF_VAR_DISABLED do konfiguracniho INI souboru pro potlaceni DIFF: hlaseni.
	- Rozsirena hvezdickova konvence na libovolny pocet hvezdicek.

	- Opravena chyba v prikazu SETCONF:. Nastaveni promenne CRLF slo jen jednou.

---------------------------------------------------------------------------
    Verze 2.6					Zkompilovano 29.08.2011
---------------------------------------------------------------------------

	- Opravena chyba v prikazu DI:. Jsou-li promenne globalne povoleny, pak je muze pripojeny klient vsem ostatnim zakazat.

---------------------------------------------------------------------------
    Verze 2.5					Zkompilovano 16.08.2011
---------------------------------------------------------------------------

	- Pridano logovani promennych, ktere nebyly nalezeny v konfiguracnim INI souboru.

	- Opravena chyba v zakazovani/povolovani promennych. Jmena promennych se nekonvertovala na velka pismena.
	- Opravena chyba ve funkci getdifftime(). Funkce spatne vracela cas pro dobu delsi jak 1s.
	- Opravena chyba v casove korekci hlavni smycky. Cas je nyni zadan promennou comm_loop_delay a ne napevno konstantou WAIT_100MS.

---------------------------------------------------------------------------
    Verze 2.4					Zkompilovano 09.06.2011
---------------------------------------------------------------------------

	- Pridana promenna COMM_LOOP_DELAY do INI souboru pro nastaveni zpozdeni hlavni smycky.

	- Opravena chyba ve zpracovani promenych. Zpracovavali se pouze promenne z PUB souboru, ktere neobsahovali mala pismena.

---------------------------------------------------------------------------
    Verze 2.3					Zkompilovano 01.04.2011
---------------------------------------------------------------------------

	- Opravena chyba v dotazovani na konkretni promennou. Nerozlisovali se velka a mala pismena.
	- Opravena chyba v optimalizaci promennych. Z komunikacniho seznamu vypadavali nektere promenne.
	- Opravena chyba v pripojeni vice klientu. Klienti se navzajem ovlivnovali.
	- Opravena chyba v nastaveni vychoziho stavu promennych pri prihlaseni klienta. Klient nemel nastaven globalni status z INI souboru.

---------------------------------------------------------------------------
    Verze 2.2					Zkompilovano 16.02.2011
---------------------------------------------------------------------------

	- U prikazu EN a DI se povoluje jen to co je zakazane nebo zakazuje to co je povolene.
	- PUB soubory se zpracovavaji pomoci 'map' objektu z STL. Jedna se o binarni strom, ktery je mnohem rychlejsi nez spojovy seznam.

	- Opravena chyba ve zpracovani fixniho PUB souboru. Nekontrolovala se pritomnost dulezitych promennych, napr.: __PF_CRC
	- Opravena chyba ve zpracovani fixniho PUB souboru. Neexistuje-li tento soubor, pak server neni mozne ukocit.

---------------------------------------------------------------------------
    Verze 2.1					Zkompilovano 31.08.2010
---------------------------------------------------------------------------

	- Zmena nazvu promennych ve fixnim PUB souboru na __PLC_RUN a __PF_CRC.
	- Zvetseni souborove kese na 256. Maximum je 1024 souboru.
	- Napojeni na SoftPLC pres sdileny modul.

	- Opravena chyba v reseni duplicity jmen promennych v PUB souborech. Dochazelo k vyrazeni fixni promenne.
	- Opravena chyba ve cteni PUB souboru. Soubor se nenacte, obsahuje-li komentare oddelene prazdnymi radky uprostred souboru.
	- Opravena chyba pri ukonceni serveru. Neceka se na ukonceni vlakna 'ThreadCommObject' v pripade, ze je jedine.
	- Opravena chyba neopravneneho pristupu do pameti. Dochazelo k ni pri praci se souborovou kesi.
	- Opravena vychozi velikost retezce. Kdyz neni zadana, je treba ji nastavit na 80 znaku a ne na 32.

---------------------------------------------------------------------------
    Verze 2.0					Zkompilovano 09.06.2010
---------------------------------------------------------------------------

	- Pridana promenna PF_VAR_DISABLED do INI souboru pro vychozi povoleni nebo zakazani vsech promennych. Doted byl vychozi stav, povoleni promennych.

---------------------------------------------------------------------------
    Verze 1.9					Zkompilovano 02.06.2010
---------------------------------------------------------------------------

	- Opravena chyba ve zpracovani fixnich promennych. Neposilal se DIFF pri zmene.

---------------------------------------------------------------------------
    Verze 1.8					Zkompilovano 17.05.2010
---------------------------------------------------------------------------

	- Zrychleni hlavni smycky pridanim indexu do tabulek. Prohledavani tabulek je mnohem rychlejsi :)

	- Opravena chyba pri praci s hvezdickovou konvenci.
	- Opravena chyba pri pripojeni vice klientu. Klienti se jiz neovlivnuji prikazy EN a DI. Kazdy klient ma svou kopii PUB tabulky.
	- Opravena chyba v casovani hlavni smycky. Prodleva v hlavni smycce je dynamicka.

---------------------------------------------------------------------------
    Verze 1.7					Zkompilovano 13.04.2010
---------------------------------------------------------------------------

        - Pridano presnejsi (us) casove rozliseni do zaznamu logu.
        - Pridan WIN32 port pomoci MINGW toolchain.
        - Pridana podpora Windowsovskych terminalu. Promenna 'END_LINE_CRLF'.
        - Zmena promenne 'PORT' na 'SERVER_PORT' v konfiguracnim souboru.

        - Opravena chyba v souborovych operacich. Kazdy soubor se otvira pouze jednou.

---------------------------------------------------------------------------
    Verze 1.6					Zkompilovano 15.01.2010
---------------------------------------------------------------------------

	- Opravena chyba pri praci se znamenkovimi hodnotami v GCC na ARM architekture.
	  Kazdy datovy typ je standartne neznamenkovy, takze je treba pred neho napsat 'signed'.
	- Opravena chyba prikazu 'EN:'. Prikaz puze zakaze promenne.

---------------------------------------------------------------------------
    Verze 1.5					Zkompilovano 26.11.2009
---------------------------------------------------------------------------

	- Rozsireni souborovych sluzeb pro EPSNET knihovnu. PUB soubor muze byt ulozen v podadresari
	  a je mozne ziskat atributy a cas jeho vytvoreni, zmeny atd.
	- Pridan prikaz 'GETFILEINFO', ktery zobrazuje informace o souboru.

	    Dotaz:   "GETFILEINFO:jmeno_souboru\n"
	    Odpoved: "GETFILEINFO:jmeno_souboru[delka bloku]=velikost atributy cas_vytvoreni cas_zmeny\n"

	- Pridana promenna 'PUBFILE_FIXED' do INI souboru, ktera je nastavena na PUB soubor s promennymy,
	  ktere jsou nutne pro chod serveru atd. Na tyto promenne se nevztahuji prikazy 'EN:' a 'DI:'.
	- Pridana reakce na zmenu PUB souboru. Ze je zmena rika registr S70 v PLC. V nem je hodnota CRC public souboru.
	- Pridan prikaz 'GETFILE:' pro posilani souboru.

	    Dotaz:   "GETFILE:jmeno_souboru\n"
	    Odpoved: "GETFILE:jmeno_souboru[1024]=blok dat dlouhy 1024B\n"
			...
	    "GETFILE:jmeno_souboru[0]=\n"

	- Prikaz 'LIST:' zobrazuje priznak '*' u zablokovanych promennych.

	    Dotaz:   "LIST:\n"
	    Odpoved: "LIST:svetlo_kuchyn,BOOL*\n"	- Zakazana promenna prikazem "DI:svetlo_kuchyn\n"
		     "LIST:svetlo_obyvak,BOOL\n"
			...
		     "LIST:\n"

	- Pridan prikaz 'SETCONF:' ktery umoznuje on-line zmenu nekterych promennych.

	    Dotaz:   "SETCONF:ipaddr,\n"
	    Dotaz:   "SETCONF:pubfile,\n"

	- Pridano povoleni nebo zakazani vsech promennych prikazy 'EN:' a 'DI:'.

	    Pri dotazu 'EN:promenna' je odpovedi hodnota promenne. Stejne jako u dotazu 'GET:promenna'.
	    Samotny 'EN:' posle hodnoty vsech promennych stejne jako pri hromadnem 'GET:'.

	    Pri dotazu na zakazanou promenou je odpovedi napr.: "ERROR:33 Disabled register name: 'svetlo_kuchyn'".

	- Za i pred prikazy (GET:, SET:, ...) mohou byt mezery.
	- Prazdny prikaz 'GET:' vypise hodnoty vsech prommennych.

	    Dotaz:   "GET:\n"
	    Odpoved: "GET:svetlo_kuchyn,1\n"
		     "GET:svetlo_obyvak,0\n"
		        ...
		     "GET:\n"

	- Pridana kontrola CRC PUB souboru. Povoluje promenna 'PUBFILE_CRC' v INI souboru.
	  Hodnota CRC je na poslednim radku PUB souboru za strednikem ukoncena CRLF: ;* Crc="xxxx"\r\n

	- Opravena chyba pri otevirani portu po nekorektnim ukonceni serveru. Port nesel nejakou dobu otevrit.
	  Na socketu staci nastavit 'SO_REUSEADDR' na 1 pomoci setsockopt().

---------------------------------------------------------------------------
    Verze 1.4					Zkompilovano 10.08.2009
---------------------------------------------------------------------------

        - Nerozlisuje se typ konce radku. ('\r\n - DOS' nebo '\n - UNIX')
        - Pridany souborove operace do EPSNET knihovny. PUB soubor se cte c PLC.

---------------------------------------------------------------------------
    Verze 1.3					Zkompilovano 24.06.2009
---------------------------------------------------------------------------

        - Zmena promennych typu 'REAL' a 'LREAL' se vyhodnocuje az od zmeny na tretim desetinnem miste.

        - Opravena chyba pri nastavovani promenne typu 'BOOL' prikazem 'SET:'.

---------------------------------------------------------------------------
    Verze 1.2					Zkompilovano 01.06.2009
---------------------------------------------------------------------------

        - Konec vypisu prikazu 'LIST:' konci 'LIST:\n'.
        - Pridano posilani chybovych zprav. Posila se pri rozpadlem spojeni, nebo kdyz se neco nepovede.

	    Format zpravy je: ERROR:cisloanglicky text chyby

        - Pridana podpora logickeho adresovani do EPSNET knihovny.
        - Na prikaz 'SET:' je odpovedi 'DIFF:'. Lze pouzit jako zpetnou vazbu o zmene stavu.
        - Kazda odpoved zacina jmenem prikazu, ktery ji vyvolal.

	    Např. na 'GET:yatun_light_chodba' přijde odpověd 'GET:yatun_light_chodba,1'.

        - Opravena chyba v otevreni sitovych spojeni. Oteviraji se vsechny a ne pouze 'localhost'.
        - Opravena chyba v posilani retezcu. Je zbytecne posilat ukoncovaci znak '\0x0'. Nedela dobre telnetu.

---------------------------------------------------------------------------
    Verze 1.0					Zkompilovano 23.04.2009
---------------------------------------------------------------------------

	- Uvodni verze.