OpenSCADAWiki: Home Page Uk/Using/PLC/firmware ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of HomePageUk/Using/PLC/firmware from 2016-12-27 17:02:01..

Ïðîøèâêà òà ñòâîðåííÿ ïðîãðàìíîãî îòî÷åííÿ ÏËÊ àðõ³òåêòóðè x86

Àðõ³òåêòóðà x86 ïîð³âíÿíî íåäàâíî ñòàëà ïîçèö³þâàòèñÿ ÿê âáóäîâàíà òà ðåàëüí³ ð³øåííÿ íà ¿¿ îñíîâ³, ó ö³é ãàëóç³, ð³äêî ìàþòü ðåñóðñè (< i386), ÿêèõ íåäîñòàòíüî äëÿ âèêîíàííÿ ïîâíîö³ííî¿ ÎÑ òà ðîçâèíóòîãî îòî÷åííÿ. Ç ö³º¿ ïðè÷èíè, à òàêîæ ç ïðè÷èíè á³ëüøî¿ óí³ô³êàö³¿ àðõ³òåêòóðè, ³íäèâ³äóàëüí³ çá³ðêè ÿäðà Linux òà áàçîâèõ ïðîãðàì îòî÷åííÿ ÎÑ çä³éñíþþòüñÿ äîñòàòíüî ð³äêî, ùî çà çâè÷àé õàðàêòåðíî äëÿ àðõ³òåêòóðè ARM. Á³ëüø ö³êàâèì òà ïðàêòè÷íèì äëÿ x86, äëÿ øèðîêîãî êîëà îáëàäíàííÿ, º çá³ðêà ïðîøèâîê ç³ ñòèñíåíîþ êîðåíåâîþ ôàéëîâîþ ñèñòåìîþ (ÊÔÑ). Îäíàê âñå ùå ìîæëèâà ³íäèâ³äóàëüíà çá³ðêà ïðîøèâîê çà äîïîìîãîþ ñèñòåì ñêëàäàííÿ íà êøòàëò "BuildRoot" àáî "PTXDist", íèæ÷å. Òàêîæ ìîæëèâà ³ ïðÿìà óñòàíîâêà äèñòðèáóòèâó Linux.

²íñòðóìåíòè òà çá³ðêà ðîáî÷èõ îòî÷åíü ïðîøèâîê ç³ ñòèñíóòîþ ÊÔÑ, íà îñíîâ³ äèñòðèáóòèâó ALTLinux

Ïåðåä ðåàë³çàö³ºþ ïðîøèâêè ÏËÊ, äàíîãî ðîçä³ëó, ñòàâèëèñü íàñòóïí³ âèìîãè:


Âðàõîâóþ÷è âèùåíàâåäåí³ âèìîãè äëÿ ñòâîðåííÿ ïðîøèâêè áóëî îáðàíî ³íñòðóìåíò ñòâîðåííÿ äèñòðèáóòèâ³â mkimage ALTLinux. mkimage — ³íñòðóìåíò äëÿ ñêëàäàííÿ øòàìï³â Sisyphus-based ñèñòåìè çà øàáëîíîì. Ó ÿêîñò³ âèõ³äíîãî íàáîðó øàáëîí³â áóëî âçÿòî íàá³ð øàáëîí³â ôîðìóâàííÿ äèñòðèáóòèâ³â ALTLinux çà àäðåñîþ git://git.altlinux.org/people/boyarsh/packages/mkimage-profiles-desktop, êîìàíäîþ:

Çà îñíîâó ôîðìóâàííÿ PLC øàáëîíó áóëî âçÿòî ñòàíäàðòíèé "rescue", ÿê íàéá³ëüø êîìïàêòíèé òà áëèçüêèé äî ö³ëüîâî¿ çàäà÷³ ÏËÊ.


Ïåðâèííå ñêëàäàííÿ çä³éñíþâàëîñü íà îñíîâ³ ïàêåòíî¿ áàçè äèñòðèáóòèâó ALTLinux 5.1, äå ïðèñóòíº ÿäðî ðåàëüíîãî ÷àñó â³ä XENOMAI. Äëÿ îòðèìàííÿ íèçêè ñïåöèô³÷íèõ ïàêåò³â ïîòð³áíî ï³äêëþ÷èòè ðåïîçèòîð³é "ALTLinux 5.1" â³ä ïðîåêòó OpenSCADA:

rpm ftp://ftp.oscada.org/ALTLinux/5.1 openscada main

Ñêëàäàííÿ

Ó ïåðøó ÷åðãó ñòâîðþâàëàñü êîíô³ãóðàö³ÿ ÏËÊ áåç ëîêàëüíîãî äèñïëåþ, ó çâ'ÿçêó ç íàÿâí³ñòþ îáëàäíàííÿ òàêîãî òèïó òà â³äñóòíîñò³ îáëàäíàííÿ äëÿ Touch-ïàíåëåé.


Íîâèé øàáëîí ÏËÊ áóëî íàçâàíî "plc" òà â³í òåñòóâàâñÿ íà ïëàòàõ ôîðìôàêòîðó PC/104 MOPSlcdLX ô³ðìè Kontron, ATH400-128 ô³ðìè Diamond Systems òà ìîäóëüíîãî ÏËÊ LP-8781 ô³ðìè ICP DAS. Àðõ³â ðåçóëüòóþ÷îãî äåðåâà mkimage ç øàáëîíîì "plc" ìîæíà çàâàíòàæèòè òóò ftp://ftp.oscada.org/OpenSCADA/PLC (øàáëîíè òà ìàòåð³àëè îêðåìèõ êîíòðîëåð³â ðîçòàøîâàíî ó âëàñíèõ òåêàõ).


Êëþ÷îâèì ìîìåíòîì êîíô³ãóðàö³¿ íîâîãî øàáëîíó ñòàëî íàïèñàííÿ ñêðèïòó ³í³ö³àë³çàö³¿ (rc.sysinit), ñêðèïòó ï³ñëÿ-³íñòàëÿö³éíî¿ êîíô³ãóðàö³¿ øòàìïó ïðîøèâêè òà ïåðåë³êó ïàêåò³â ó øòàìï³ ïðîøèâêè. Ïåðøèé ñêðèïò îôîðìëåíî ó âèãëÿä³ ïàêåòó "startup-plc". Äðóãèé ñêðèïò âêëàäåíî äî øàáëîíó "plc" çà øëÿõîì: profiles/plñ/image-scripts.d/01system. Ïåðåë³ê ïàêåò³â âêëàäåíî äî øàáëîíó "plc" çà øëÿõîì: profiles/pkg/lists/plñ.in.


Ïðîöåäóðà ñòâîðåííÿ ïðîøèâêè ç øàáëîíó íàñòóïíà:


Ó ðåçóëüòàò³ îòðèìàºìî âèõ³äíó òåêó ó "profiles/out/" ç âèãëÿäîì:

²íñòàëÿö³ÿ

Çàâàíòàæóâàòè ïðîøèâêó ìîæíà íà: USB-flash, IDE-flash òà HDD. Îäíàê, ó âèïàäêó ³ç USB-flash ìîæóòü áóòè ïðîáëåìè ç î÷³êóâàííÿì ³í³ö³àë³çàö³¿ USB-ï³äñèñòåìè òà ïîòð³áíî áóäå òðîõè "ïîá³ãàòè" ïî ä³àëîãàì çàâàíòàæóâà÷à.


Ôàéëîâà ñèñòåìà ìîæå áóòè FAT àáî EXT2/3. Ó âèïàäêó ç EXT3 ìîíòóâàííÿ ÔÑ â³äáóâàºòüñÿ ÿê EXT2, ÷åðåç ïðîáëåìè ó ³í³ö³àë³çàòîð³. Ó âèïàäêó ³ç EXT2/EXT3 ïîòð³áíî áóäå âèêîðèñòîâóâàòè íå çàâàíòàæóâà÷ syslinux, à extlinux, êîíô³ãóðàö³ÿ ÿêîãî âëàñíå ìàéæå í³÷èì íå â³äð³çíÿºòüñÿ.


Íàäàë³ ìîíòóºìî íîñ³é òà ðîçì³ùóºìî íà íüîìó ôàéëè ç âèõ³äíî¿ òåêè, íàñòóïíèì ÷èíîì.
Ó âèïàäêó ³ç FAT òà syslinux:

Ó âèïàäêó ³ç EXT2/3 òà extlinux:


Äëÿ çàáåçïå÷åííÿ íàä³éíîãî ôóíêö³îíóâàííÿ ðîáî÷³ äàí³ ðîçì³ùóþòüñÿ ó ôàéë³ "work" ç ôàéëîâîþ ñèñòåìîþ EXT3. Ôàéëîâà ñèñòåìà öüîãî ôàéëó ïåðåâ³ðÿºòüñÿ íà ö³ë³ñí³ñòü ï³ä ÷àñ ³í³ö³àë³çàö³¿. Ñòâîðþºòüñÿ öåé ôàéë íàñòóïíèì ÷èíîì:


Ó âèïàäêó ç ôàéëîâîþ ñèñòåìîþ EXT2/3 íà ö³ëüîâîìó äèñêó ìîæíà ôàéë "work" íå ñòâîðþâàòè. Òîä³ ðîáî÷³ äàí³ áóäóòü ðîçì³ùóâàòèñÿ áåçïîñåðåäíüî ó äèðåêòî𳿠"root" ö³ëüîâîãî äèñêó.

 (2 Kb) Öå íåíàä³éíå ð³øåííÿ, îñê³ëüêè ôàéëîâà ñèñòåìà ö³ëüîâîãî äèñêó ñòàíîâèòüñÿ íåñòàòè÷íîþ, à ïåðåâ³ðèòè ¿¿ íåìຠìîæëèâîñò³, ó çâ'ÿçêó ç ðàíí³ì ìîíòóâàííÿì ó "ro" òà ïîòåíö³éíîþ íåíàä³éí³ñòþ ïåðåâ³ðêè ÔÑ, çìîíòîâàíî¿ ó "ro", à òàêîæ íåìîæëèâîñò³ ïåðåìîíòóâàííÿ ÿê EXT3.

Íàñòóïíèì åòàïîì º êîíô³ãóðàö³ÿ òà ³í³ö³àë³çàö³ÿ çàâàíòàæóâà÷à. Äëÿ êîíô³ãóðàö³¿ çàâàíòàæóâà÷à ïîòð³áíî â³äðåäàãóâàòè ôàéë "syslinux/syslinux.cfg" àáî "extlinux/extlinux.conf" íàñòóïíèì ÷èíîì:


Ó âèïàäêó âèáîðó ³äåíòèô³êàö³¿ çàâàíòàæóâàëüíîãî ðîçä³ëó çà ³äåíòèô³êàòîðîì ä³çíàòèñÿ éîãî äëÿ íàøîãî ðîçä³ëó ìîæíà êîìàíäîþ: blkid.


Ó âèïàäêó ç ì³òêîþ öå çàâäàííÿ äåùî ñêëàäí³øå îñê³ëüêè ðîáèòüñÿ öå äëÿ ð³çíèõ ôàéëîâèõ ñèñòåì ïî ð³çíîìó.


Äëÿ ôàéëîâèõ ñèñòåì EXT2/3 öå ðîáèòüñÿ óòèë³òîþ e2label. Íàïðèêëàä, òàê: $ e2label /dev/sdb1 PLÑ


Äëÿ ôàéëîâî¿ ñèñòåìè FAT öå ðîáèòüñÿ íèçêîþ óòèë³ò ³ç êîìïëåêòó mtools àáî çà äîïîìîãîþ parted, ùî ïðîñò³øå. Çà äîïîìîãîþ mtools öå ðîáèòüñÿ íàñòóïíèì ÷èíîì:


Òåïåð ìîæåìî ³í³ö³þâàòè çàâàíòàæóâà÷:


Íà öüîìó ç çàâàíòàæåííÿì òà ³í³ö³þâàííÿì ïðîøèâêè âñå. ßêùî îòðèìàíèé äèñê íå çàâàíòàæóºòüñÿ òîä³:

Ðåçóëüòàò

Ó ðåçóëüòàò³ îòðèìàºìî ïðîøèâêó ðîçì³ðîì â³ä 30 äî 100Ìá, ÿêà çàäîâîëüíÿº ôàêòè÷íî âñ³ì çàÿâëåíèì âèìîãàì òà çàáåçïå÷óº:

OpenSCADA

Ó ÿêîñò³ ñåðåäîâèùà âèêîíàííÿ ÏËÊ âèêîðèñòàíî ñèñòåìó OpenSCADA. Äëÿ öüîãî âèïàäêó â³çüìåìî çá³ðêó ç îêðåìèìè ïàêåòàìè íà êîæíèé ìîäóëü òà âêàæåìî äëÿ âñòàíîâëåííÿ â³ðòóàëüíèé ïàêåò openscada-plc, ÿêèé ì³ñòèòü çàëåæíîñò³ íà âñ³ ïàêåòè OpenSCADA, ÿê³ çà çâè÷àé âèêîðèñòîâóþòüñÿ äëÿ äàíî¿ êîíô³ãóðàö³¿. Ïàêåò ãðàô³÷íî¿ á³áë³îòåêè gd2 áóëî ïåðåç³áðàíî áåç ï³äòðèìêè ôîðìàòó ãðàô³÷íîãî ôàéëó xpm òà ÿêèé îòðèìàâ íàçâó libgd2-noxpm. Ïåðåçáèðàííÿ ðîáèëàñÿ äëÿ òîãî ùîá âèêëþ÷èòè òÿæê³ çàëåæíîñò³ íà á³áë³îòåêè ãðàô³÷íîãî ³íòåðôåéñó XOrg.


Ó ðåçóëüòàò³ îòðèìàíî ñåðåäîâèùå âèêîíàííÿ ÏËÊ ç ï³äòðèìêîþ:


Êîíô³ãóðàö³ÿ OpenSCADA çàïóñêàºòüñÿ ó ðåæèì³ äåìîíó òà ó ëîêàë³ "en_US.UTF-8" (ùå äîñòóïí³ ëîêàë³ "ru_RU.UTF-8" òà "uk_UA.UTF-8"), ç âèêîðèñòàííÿì ëîêàëüíî¿ ÁÄ SQLite, íàäàþ÷è ïî çàìîâ÷åííþ ìåðåæåâ³ ñåðâ³ñè:

Äåòàë³ ðåàë³çàö³¿

Ó öüîìó ðîçä³ë³ ðîçãëÿíåìî äåòàë³ äåðåâà ÎÑ ïðîøèâêè, ñêðèïò ³í³ö³àë³çàö³¿ rc.sysinit.plc òà ñêðèïò ïðèãîòóâàííÿ äåðåâà ÎÑ ïðîøèâêè.


Äëÿ ïîáóäîâè ïðîøèâêè ÏËÊ áóëî âèêîðèñòàíî íàñòóïíèé ïåðåë³ê ïàêåò³â:


Ïåðåë³ê ìîäóë³â ÿäðà Linux, ñòà䳿 ïîïåðåäíüî¿ ³í³ö³àë³çàö³¿, ç ìåòîþ çìåíøåííÿ ðîçì³ðó øòàìïó ³í³ö³àë³çàö³¿ áóëî çìåíøåíî äî ïåðåë³êó:


Äî ñêðèïòó ïðèãîòóâàííÿ äåðåâà áóëî äîäàíî ôóíêö³¿:


Ñêðèïò ³í³ö³àë³çàö³¿ (rc.sysinit.plc) áóëî íàä³ëåíî ôóíêö³ÿìè:


Ó ðåçóëüòàò³ öèõ ä³é òàáëèöÿ ìîíòóâàííÿ ê³íöåâîãî äåðåâà ÏËÊ íàáóëà âèãëÿäó:

Íàëàøòóâàííÿ ãðàô³÷íîãî ³íòåðôåéñó

Îäèí ³ç âàð³àíò³â ïðîøèâêè ñêëàäàºòüñÿ ³ç ãðàô³÷íèì ³íòåðôåéñîì, ÿêèé, îäíàê, ïîòð³áíî íàëàøòóâàòè äëÿ îòðèìàííÿ àâòîìàòè÷íîãî çàïóñêó ç ñåðåäîâèùåì â³çóàë³çàö³¿ OpenSCADA. Êð³ì òîãî ïîòð³áíî â³äçíà÷èòè, ùî ïðîøèâêà ç ãðàô³÷íèì ³íòåðôåéñîì íå ì³ñòèòü âñ³õ äðàéâåð³â òà ìîæå ïîòðåáóâàòè ¿¿ ïåðåáóäîâè ï³ä ïîòð³áíå îáëàäíàííÿ.


ϳñëÿ çàâàíòàæåííÿ òà âõîäó äî êîíñîë³ ïîòð³áíî ñêîíô³ãóðóâàòè XServer, àâòîìàòè÷íèé ãðàô³÷íèé âõ³ä, çàïóñê ãðàô³÷íîãî îòî÷åííÿ òà àâòîìàòè÷íèé çàïóñê OpenSCADA ³ç îòî÷åííÿ IceWM:

Ïàêåòíà áàçà ALTLinux T6

Íàñòóïíèì åòàïîì ó ñòâîðåí³ ïðîøèâîê ñòàâ ïåðåõ³ä íà ïàêåòíó áàçó äèñòðèáóòèâó ALTLinux T6.  ö³ëîìó ïðîöåäóðó ñòâîðåííÿ ïðîøèâêè áóëî çáåðåæåíî, ç íèçêîþ çì³í, àëå ïðè öüîìó áóëî äîäàíî äåÿê³ ïîêðàùåííÿ òà ðîçøèðåííÿ:


Îñê³ëüêè ç'ÿâèëàñÿ ìîæëèâ³ñòü ëåãêî äîâñòàíîâëþâàòè ïîòð³áí³ ïàêåòè áåçïîñåðåäíüî ³ç ðåïîçèòîð³ÿ òî â³äïàëà ïîòðåáà ó îêðåì³é çá³ðö³ ïðîøèâîê ³ç GUI. Òîáòî ìîæíà ëåãêî äîâñòàíîâèòè ïîòð³áíèé ìåíåäæåð â³êîí (WM) àáî îòî÷åííÿ ðîáî÷îãî ñòîëó ³ç ïîòð³áíèìè äðàéâåðàìè, ÷èì ñòâîðþâàòè îêðåìó ïðîøèâêó ³ç îáìåæåíèì ïåðåë³êîì äðàéâåð³â.


Ñêðèïò "startup-plc" âèÿâèâñÿ íåïîòð³áíèì ó íîâèõ ïðîøèâêàõ îñê³ëüêè ïåðåìîíòóâàííÿ íà çàïèñ êîðåíåâî¿ ÔÑ "root" çä³éñíþºòüñÿ ðàí³øå, íà ñòà䳿 ïåðâèííî¿ ³í³ö³àö³¿. Ñêðèïò "profiles/plñ/image-scripts.d/01system" ïåðåéìåíîâàíî ó "profiles/plñ/image-scripts.d/init1-PLC", îñê³ëüêè çì³íåíî òà ðîçøèðåíî. Ïåðåë³ê ïàêåò³â ïðîøèâêè çàëèøèâñÿ ó "profiles/pkg/lists/plñ.in" òà äåùî çì³íåíî.


Äëÿ îòðèìàííÿ íèçêè ñïåöèô³÷íèõ ïàêåò³â ïîòð³áíî ï³ä'ºäíàòè ðåïîçèò³ðèé "ALTLinux T6" â³ä ïðîåêòó OpenSCADA:

rpm ftp://ftp.oscada.org/ALTLinux/t6 openscada main

Ïðîöåäóðà ñòâîðåííÿ ïðîøèâêè ³ç øàáëîíó ôàêòè÷íî íå çì³íèëàñü:

# Ñòâîðåííÿ ñêðèïòó êîíô³ãóðàö³¿ "configure"
$ ./autoconf
# Êîíô³ãóðàö³ÿ ñêëàäàëüíèêà äëÿ ãåíåðàö³¿ øòàìï³â äèñê³â. Êëþ÷ "--with-imagetype" ìîæíà âñòàíîâèòè ó "iso", àáî îïóñòèòè,
# äëÿ ñòâîðåííÿ êîìá³íîâàíîãî ISO-øòàìïó
$ ./configure --with-distro=kdesktop --with-branding=altlinux-kdesktop --with-version=6.0 --with-language=en_US --with-imagetype=flash
# Çá³ðêà øòàìïó
$ make plc.cd


Âì³ñò âèõ³äíî¿ òåêè ³ç øòàìïîì òà âñòàíîâëåííÿ ïðîøèâêè íà ôàéëîâó ñèñòåìó FAT òà EXT2/3/4 â³äð³çíÿºòüñÿ ò³ëüêè ïåðåéìåíóâàííÿì ôàéëó àðõ³âó ÔÑ ³ç "plc" ó "live". Âñòàíîâëåííÿ ISO-øòàìïó íà USB-flash, HDD, SSD âèêîíóºòüñÿ êîìàíäîþ dd:

$ dd if=LP8x81-ALTLinuxT6-OpenSCADA_0.8.0.6-i586-plc.iso of=/dev/sd{x} bs=4096

Çàì³ñòü ôàéëó "work" ïîòð³áíî ñòâîðèòè ðîçä³ë EXT3 ç ì³òêîþ "alt-live-storage", ÿêùî öå íå ISO-øòàìï. Ñòâîðþâàòè íîâèé ðîçä³ë ìîæíà çà äîïîìîãîþ fdisk, ÿêùî FAT ðîçä³ë áóëî ñòâîðåíî íå íà âñüîìó äîñòóïíîìó ïðîñòîð³ äèñêó, àáî çà äîïîìîãîþ parted, äå ðîçä³ë FAT ìîæíà çìåíøèòè. Çà äåòàëÿìè ñòâîðåííÿ ðîçä³ëó â³ä³øëåìî äî äîêóìåíòàö³¿ íà fdisk àáî parted.


Êîíô³ãóðàö³ÿ ôàéë³â "syslinux/syslinux.cfg" òà "extlinux/extlinux.conf" íå çì³íèëàñÿ, îêð³ì çì³íè ³ì'ÿ àðõ³âó ÔÑ ³ç "plc" íà "live".


Ó ðåçóëüòàò³ îòðèìóºìî ïðîøèâêó ðîçì³ðîì â³ä ÿêà çàáåçïå÷óº:


Äëÿ ïîáóäîâè ïðîøèâêè ÏËÊ âèêîðèñòîâóâàâñÿ íàñòóïíèé ïåðåë³ê ïàêåò³â:


Ïåðåë³ê ìîäóë³â ÿäðà Linux, ñòà䳿 ïîïåðåäíüî¿ ³í³ö³àë³çàö³¿, áóâ äåùî çì³íåíèé òà ñêëàâ:


Ñêðèïò ï³äãîòîâêè äåðåâà "profiles/plñ/image-scripts.d/init1-PLC" âèêîíóº ôóíêö³¿:

ßäðî ðåàëüíîãî ÷àñó

Äëÿ íèçêè çàäà÷ ÏËÊ âàæëèâèì, ÷àñòî ³ êðèòè÷íèì, êðèòåð³ºì îòî÷åííÿ º éîãî ð³âåíü çàáåçïå÷åííÿ ðåàëüíîãî ÷àñó (RealTime), òîáòî ìîæëèâ³ñòü ðîáîòè çàäà÷ çã³äíî ³ç ïð³îðèòåòàìè ðåàëüíîãî ÷àñó òà çàáåçïå÷åííÿ ðåàêö³¿ íà ïîâ³äîìëåííÿ çã³äíî öèì ïðèîð³òåòàì.


ßäðî Linux ñàìî ïî ñîá³ íàäຠPOSIX ïîë³òèêè ïëàíóâàííÿ â ðåàëüíèì ÷àñîì "SCHED_FIFO" òà "SCHED_RR" ³ç ä³àïàçîíîì ïð³îðèòåò³â (0...100). Îäíàê âàæëèâèé êðèòåð³é "×àñòîòà òàéìåðó òà ÷àñ ðåàêö³¿ íà íüîãî" äî âåðñèé ÿäåð Linux 2.6.24 áóëè äóæå íèçüêèìè, çà ì³ðêàìè ñèñòåì ðåàëüíîãî ÷àñó. Ó ñó÷àñíèõ ÿäðàõ Linux (> 2.6.24) çàáåçïå÷åíî ï³äòðèìêó òàéìåð³â âèñîêî¿ ðîçä³ëüíî¿ çäàòíîñò³ (HPET), ùî çìåíøèëî ÷àñ ðåàêö³¿ íà òàéìåð äî ð³âíÿ 100 ì³êðîñåêóíä, îäíàê ñòàá³ëüí³ñòü öüîãî ÷àñó ðåàêö³¿ íå çàáåçïå÷åíî. Äëÿ çàáåçïå÷åííÿ ñòàá³ëüíîñò³ ðåàêö³¿ íà òàéìåð íà ð³âí³ 60 ì³êðîñåêóíä, à òàêîæ íèçêè ³íøèõ êðèòåð³¿â ðåàëüíîãî ÷àñó, íà öåé äåíü, ïîòð³áíî ÿäðî ñêëàäàòè ç îäíèì ³ç ðîçøèðåíü ðåàëüíîãî ÷àñó.


Ó äèñòðèáóòèâàõ ALTLinux ïîì³÷åíî ÿäðî 2.6.29-rt-up, ÿêå ç³áðàíî ³ç ðîçøèðåííÿì ðåàëüíîãî ÷àñó XENOMAI. Ó ³íøèõ äèñòðèáóòèâàõ, íàïðèêëàä OpenSuSE ïîì³÷åíî íàâ³òü ïðîäóêòè ç òàêèìè ðîçøèðåííÿìè.


Íà öåé ÷àñ á³ëüø âèñîê³ ïîêàçíèêè ðåàëüíîãî ÷àñó çàáåçïå÷óº ðîçøèðåííÿ The Real Time Preempt Patch, ïðè óâ³ìêíåí³ ïîâíî¿ ï³äòðèìêè (CONFIG_PREEMPT_RT), ïðîöåñ ñêëàäàííÿ òà ðåçóëüòàòè ðîáîòè Linux ÿäåð ç ÿêèìè áóäóòü â³äñòåæóâàòèñÿ ó öüîìó ðîçä³ë³.


Äëÿ òåñòóâàííÿ ð³âíÿ ðåàëüíîãî ÷àñó òèõ àáî ³íøèõ ÿäåð áóäåìî êîðèñòóâàòèñÿ óòèë³òîþ "Cyclictest", òèïîâèé ðÿäîê âèêëèêó òà àðãóìåíòè áóäóòü òàêèìè: "$ cyclictest -t1 -c1 -p 80 -n -i 200 -l 100000". Äå:


Ïàðà âèì³ð³â äëÿ ÿäåð Linux çàãàëüíîãî ïðèçíà÷åííÿ:

kernel-image-rt-up-2.6.29

Öå ÿäðî ì³ñòèòüñÿ ó äèñòðèáóòèâ³ ALTLinux 5.1, à òàêîæ ïåðåíåñåíî ó ëîêàëüíèé ðåïîçèòîð³é ïðîåêòó OpenSCADA, äëÿ ALTLinux T6. Öå ÿäðî ç³áðàíî ³ç ðîçøèðåííÿì XENOMAI òà AUFS, ùî äîçâîëÿº âèêîðèñòîâóâàòè éîãî ó ïðîøèâêàõ ³ç óïàêîâàíîþ ÊÔÑ, ùî ³ çðîáëåíî äëÿ ÏËÊ LP-8x81.


Ðåçóëüòàòè òåñò³â öüîãî ÿäðà:


ßê âèäíî ³ç ðåçóëüòàò³â òåñòó, ïàò÷ XENOMAI íå çàáåçïå÷óº ïðèñòîéíîãî ð³âíÿ ðåàëüíîãî ÷àñó ïðè âèêîðèñòàí³ ñòàíäàðòíèõ ìåõàí³çì³â ïëàíóâàííÿ ðåàëüíîãî ÷àñó POSIX, â òîé ÷àñ ÿê ÿäðà âåðñ³¿ 3 íàâ³òü áåç íàÿâíîñò³ îñîáëèâèõ ðîçøèðåíü ðåàëüíîãî ÷àñó çàáåçïå÷óþòü ïîì³òíî êðàùèé ðåçóëüòàò.


Ïîòðåáà ñêëàäàííÿ ñàìå öüîãî ÿäðà ³ç ïàò÷åì/ïàðàìåòðîì CONFIG_PREEMPT_RT ñòî¿òü ÷åðåç íàÿâí³ñòü íèçêè á³íàðíèõ ìîäóë³â â³ä ICP_DAS, äëÿ "LP8x81". Òàêîæ ñòî¿òü ïèòàííÿ çá³ðêè ÿäðà 2.6.33 ç ò³º¿-æ ïðè÷èíè, àëå äëÿ "LP8x81 Atom". Ïîïåðåäí³ çá³ðêè ÿäåð 2.6.29 òà 2.6.33 âèÿâèëè íèçêó ïðîáëåì, ÿê³ áóäóòü òóò îïèñàí³. Ðîçãëÿäàºòüñÿ òàêîæ âàð³àíò çá³ðêè ñó÷àñíîãî ÿäðà ³ç CONFIG_PREEMPT_RT, à ïîò³ì çàïèò íà çá³ðêó á³íàðíèõ ìîäóë³â ó "ICP DAS".


Ïðîöåñ ñêëàäàííÿ òà òåñòóâàííÿ:

  1. Ïàò÷³ CONFIG_PREEMPT_RT òà AUFS ÷àñ³â 2.6.29 êîíôë³êòóþòü íà ôóíêö³¿ "debug_mutex_set_owner()", ó CONFIG_PREEMPT_RT âèäàëåíà — çàì³íåíî íà "mutex_set_owner()".
  2. Ïðè ñêëàäàíí³ âèÿâëåíî íèçêó ïðîáëåì ³ç "# typedef void irqreturn_t;" — çàì³íåíî íà "#include <linux/irqreturn.h>".
  3. Ïåðøèé çàïóñê ³ç CONFIG_PREEMPT_RT, àëå áåç AUFS, ïðîéøîâ âäàëî — ðåçóëüòàò âèùå.
  4. Çàïóñê ³ç AUFS âèÿâèâ ïðîáëåìó âèä³ëåííÿ ïàì'ÿò³ AUFS ó "aufs_mmap()" — ðîáî÷èé êîä AUFS âçÿòî ö³ëêîì ³ç ïîïåðåäíüî¿ çá³ðêè "rt-up-2.6.29.alt2".
  5. Çàïóñê ³ç AUFS âèÿâèâ ïðîáëåìó çàâèñàííÿ íà êîð³íí³ ÔÑ ó AUFS, ñõîæå ÷åðåç ìîæëèâ³ñòü çàöèêëþâàííÿ/áëîêóâàííÿ RT-çàäà÷³ — âñòàíîâëåíî CONFIG_PREEMPT_NONE, íà LP8781 òà "AMD Turion" ïðîáëåì íå âèÿâëåíî (ìîæëèâî öÿ ïðîáëåìà ÷åðåç â³äñóòí³ñòü HPET íà PLX8).
  6. Íà ïåðøèé ïîãëÿä ÿäðî ïðàöþº íîðìàëüíî, àëå ïîì³÷åíî ç³ñêîâçóâàííÿ íà áåçïåðåðâíå íàðîùóâàííÿ ÷àñó çàï³çíåííÿ.
  7. Âèêîíàíî àäàïòàö³þ ÿäðà äëÿ á³íàðíî¿ ñóì³ñíîñò³ ³ç ìîäóëÿìè "slot" òà "icp" â³ä ICP_DAS. Ìîäóëü "8250_linpac" ïàäຠïðè çàâàíòàæåí³, à "icpdas_8250" ìຠáåçë³÷ íåðîçâ'ÿçàíèõ ñèìâîë³â — ïîòð³áíî ö³ ìîäóë³ ïåðåñêëàäàòè àáî ïðîáóâàòè ³íòåðôåéñè > COM2 ³í³ö³þâàòè ÷åðåç setserial — ìîäóë³ ïåðåñêëàäåíî, çàâäÿêè Golden Wang (òåõ. ï³äòðèìêà ICPDAS).
  8. Íîâå ÿäðî âñòàíîâëåíî ï³ä âèñîêå íàâàíòàæåííÿ, êîíô³ãóðàö³ºþ ïðîåêòó ÑÀÓ êóëüîâèõ áàðàáàííèõ ìëèí³â?:
    • Çá³é ìåðåæ³ ³ç äðàéâåðîì "via_rhine", ï³ñëÿ 4 ä³á ðîáîòè — çá³é î÷³êóâàíèé, ç³áðàíî äðàéâåð "rhinefet", âèïðîáóâàííÿ ïðîäîâæåíî.
    • Íà äðàéâåð³ "rhinefet" ñèñòåìà ï³ä íàâàíòàæåííÿì ïðîïðàöþâàëà òðè òèæí³. Îäíàê ïîì³÷åíî, ùî ïåðåðèâàííÿ 11, íà ÿêîìó âèñèòü ìàéæå âñå ñòàíäàðòíå îáëàäíàííÿ (USB, Ethernet òà ìîæå ùå ÷îãîñü), âèìèêàºòüñÿ òà ìåðåæà ïðàöþº ó ðåæèì³ "Pool", ùî ïîâ³ëüí³øå. Ìîæëèâî âèìêíåííÿ öüîãî ïåðåðèâàííÿ â³äáóâàºòüñÿ ³ ç "via_rhine", à â³í íå ìîæå ïðàöþâàòè ó ðåæèì³ "Pool", ÷îìó ³ ïàêåòè ó/³ç ìåðåæ³ íå õîäÿòü. Ïðîáëåìà ïîâ'ÿçàíà ³ç â³äìîâîþ òà ãåíåðàö³ºþ íåîáðîáëåíèõ ïåðåðèâàíü îäíèì ³ç îáëàäíàíü íà ïåðåðèâàí³ 11.
    • Âèïðàâëåíî âèêëþ÷åííÿì âèìêíåííÿ ïåðåðèâàíü çà äîïîìîãîþ ïàðàìåòðà ÿäðà Linux "noirqdebug".
    • Àäàïòàö³þ âäàëî çàâåðøåíî òà ïðîøèâêè íà îñíîâ³ öüîãî ÿäðà ãîòîâ³ äî ïðîìèñëîâî¿ åêñïëóàòàö³¿!
    • 01.03.2015: Çàì³ñòü ôóíêö³¿ EnableWDT() âèêîðèñòàíî EnableSysWDT(), ó çâ'ÿçêó ³ç îáìåæåííÿì äî 30 ñåêóíä òà öèêë³÷íèõ ïåðåâàíòàæåíü ÿêùî íå çàâàíòàæóºòüñÿ çà 30 ñåêóíä (äî òðüîõ ïåðåâàíòàæåíü).
    • 17.03.2015: Ïðè ó÷àñò³ ñëóæáè ï³äòðèìêè ICP_DAS âèïðàâëåíî ïðîáëåìó äðàéâåðó ïîñë³äîâíèõ ³íòåðôåéñ³â á³ëüø çà COM2, ÿêà ïðèçâîäèëà äî "çàìåðçàííÿ" ÿäðà Linux (ñõîæå ó çâ'ÿçêó ³ç áëîêóâàííÿì ïåðåðèâàíü) ï³ñëÿ çàêðèòòÿ îäíîãî ïîðòó òà àêòèâíîñò³ íà õî÷à-á îäíîìó ³íøîìó.
    • 29.07.2015: Âèÿâëåíî ùå îäíó ïðîáëåìó ³ç ìåðåæåþ ³ç ñõîæèìè ñèìïòîìàìè âèìêíåííÿ ïåðåðèâàííÿ 11, àëå: ïåðåðèâàííÿ 11 íå âèìèêàºòüñÿ òà âñ³ ³íø³ ïðèñòðî¿ íà íüîìó ïðàöþþòü, â³äòâîðþºòüñÿ ò³ëüêè íà êîíô³ãóðàö³ÿõ ³ç âèêîðèñòàííÿì îáîõ ³íòåðôåéñ³â ìåðåæ³, ïðè÷îìó ìîæëèâå "ãàëüìóâàííÿ" ò³ëüêè îäíîãî ³ç íèõ. Ïðîáëåìà âèð³øóºòüñÿ ò³ëüêè ïåðåâàíòàæåííÿì "çàãàëüìîâàíîãî" ìåðåæåâîãî ³íòåðôåéñó, êîìàíäîþ: ifdown eth0; ifup eth0. Äëÿ âèÿâëåííÿ òà ïåðåçàïóñêó ðåêîìåíäóºòüñÿ íà ð³âí³ OpenSCADA äîäàâàòè êîíòðîëü òðàô³êó òà áåçïîñåðåäíº ïåðåâàíòàæåííÿ ³íòåðôåéñó çà éîãî â³äñóòí³ñòþ.
    • 21.11.2016: Äðàéâåð "rhinefet" àäàïòîâàíî íà ïðåäìåò çàïîá³ãàííÿ áëîêóâàííÿ ïåðåðèâàíü òà âèìêíåííÿ âåêòîðó ïåðåðèâàíü îñê³ëüêè ðåæèì SHARE âèêîðèñòîâóºòüñÿ. Íàðàç³ äðàéâåð ïðàöþº îäíàê 19.12.2016 òàêîæ áóëî ïîì³÷åíî ãàëüìóâàííÿ ìåðåæ³ ³ç äâîìà öèìè àäàïòåðàìè ï³ñëÿ á³ëÿ äâîõ òèæí³â ðîáîòè.
     (2 Kb) ³äòàê öå îáëàäíàííÿ çëàìàíå äëÿ ðîáîòè äâîõ àäàïòåð³â òà ó öüîìó ÏËÊ âè ìîæåòå âèêîðèñòîâóâàòè ëèøå îäèí, äëÿ ñòàá³ëüíî¿ ðîáîòè!

 (2 Kb) Îòðèìàíå ÿäðî, ïåðåéìåíîâàíî ó "kernel-image-rt1-up-2.6.29.alt1", ìîæíà âèêîðèñòîâóâàòè äëÿ PLC ³ç HPET àáî òàéìåðîì âèñîêî¿ ðîçä³ëüíî¿ çäàòíîñò³, à òàêîæ ó "LP-8x81" òà "LP-8x81 Atom" (ò³ëüêè îäíå ÿäðî)!

kernel-image-rt-up-2.6.33

Ñêëàäàííÿ ÿäðà âåðñ³¿ 2.6.33 ïîòð³áíå äëÿ êîíòðîëåð³â ô³ðìè "ICP DAS" LP-8x81 òà LP-8x81 Atom ç ïðè÷èíè íàÿâíîñò³ ñàìå äëÿ íüîãî, ³ç ïàò÷åì CONFIG_PREEMPT_RT, á³íàðíèõ äðàéâåð³â "ICP DAS", äëÿ LP-8x81 Atom.


Ðåçóëüòàòè òåñò³â öüîãî ÿäðà:


Ïðîöåñ ñêëàäàííÿ òà òåñòóâàííÿ:

  1. Çá³ðêà ÿäðà ³ç âèõ³äíèõ "ICP DAS" (2.6.33.7) òà êîíô³ãóðàö³ºþ, óñïàäêîâàíîþ ç ÿäðà 2.6.29 (âèõ³äí³ òåêñòè ì³ñòÿòü ï³äîçð³ëî áàãàòî *.rej ôàéë³â, à òàêîæ "staging/comedi" íå ìîæå áóòè ñêëàäåíèé) — âàíòàæèòüñÿ òà â ö³ëîìó ïðàöþº; ìîäóë³ "ipic" òà "slot" âàíòàæàòüñÿ; ìîäóëü "8250_linpac" ïàäຠó ôóíêö³¿ "platform_device_add"; íèçêà ïðîãðàì çàâèñຠíà îïåðàö³ÿõ ³ç ÔÑ, ç ïîâ³äîìëåííÿì: "task openscada:2153 blocked for more than 120 seconds".
  2. Çàì³íà AUFS íà âåðñ³þ ³ç 2.6.29-rt1 — ïàäຠó rtmutex ïðÿìî íà çàâàíòàæåí³; çàì³íà íà îô³ö³éíó ³ç git ïîêàçàëà òàêèé-æå ðåçóëüòàò, â³ä ïî÷àòêó âèêîðèñòàíî ïàò÷ "aufs+sqfs4lzma-2.6.33.patch" â³ä DLink.
  3. Çá³ðêà îðèã³íàëüíîãî ÿäðà ç ïàò÷àìè CONFIG_PREEMPT òà AUFS — ïðîáëåìà çíîâó ç AUFS, àëå òåïåð â³í "/sbin/mingetty" ó ê³íö³ çíàéòè íå ìîæå.
  4. Çá³ðêà îðèã³íàëüíîãî 2.6.33.9 ÿäðà ç ïàò÷àìè CONFIG_PREEMPT òà AUFS — ïðîáëåìè ò³-æ.
  5. Çá³ðêà ³ç âèõ³äíèõ "ICP DAS" (2.6.33.7) äëÿ SMP — ìîäóëü OpenSCADA DAQ.JavaLikeCalc ïàäຠçà íåçðîçóì³ëîþ ïðè÷èíîþ.
  6. Çá³ðêà îðèã³íàëüíîãî ÿäðà ç ïàò÷àìè CONFIG_PREEMPT òà AUFS äëÿ SMP — òà-æ ïðîáëåìà, ùî ³ áåç SMP, õ³áà-ùî ò³ëüêè íå îäðàçó, à íà ïðèáëèçíî ï'ÿòîìó ïîòîö³.

 (2 Kb) Íà öåé ìîìåíò ÿäðî 2.6.33 ó çâ'ÿçö³ ³ç CONFIG_PREEMPT_RT òà AUFS íåðîáî÷å. ³äïîâ³äíî ÿêùî ïîòð³áíà áóäå ðîáîòà íà "LP-8x81 Atom" òî ðåêîìåíäóºòüñÿ âèêîðèñòîâóâàòè îðèã³íàëüíå Linux îòî÷åííÿ, ç³áðàâøè òà âñòàíîâèâøè OpenSCADA òóäè.

Diamond Systems ATH400, DMM32

Ïëàòè â³ä "Diamond Systems" ñòàëè ïåðøèìè íà ÿêèõ òåñòóâàëàñü òà ñòàá³ë³çóâàëàñü OpenSCADA. Ïåðøîþ ïëàòîþ ñòàâ îäíî-ïëàòíèé êîìï'þòåð PDF DocumentATH400 ôîðìôàêòîðó PC/104, íàâåäåí³ íà ðèñóíêó íèæ÷å. Íà öüîìó êîìï'þòåð³ îòî÷åííÿ ÎÑ, íà ïî÷àòêó, âñòàíîâëþâàëîñÿ òðàäèö³éíèì ìåòîäîì, à íàäàë³ çã³äíî âèêëàäåí³é âèùå êîíöåïö³¿ ñòâîðåííÿ ïðîøèâêè.


Àïàðàòí³ õàðàêòåðèñòèêè ïëàòè:

Öåíòðàëüíèé ïðîöåñîð: VIA Eden 400-660MHz
Îïåðàòèâíà ïàì'ÿòü: 128MB, çàïàÿíî íà ïëàòó
Ïîñò³éíà ïàì'ÿòü: IDE (44) ïîðò ñ UDMA-33
³äåî ï³äñèñòåìà: S3 Savage 4 Chipset ç ðîçøèðåíèì 3D/2D â³äåî; ï³äòðèìóþòüñÿ ïëîñê³ ïàíåë³, CRT òà LCD
Àóä³î ï³äñèñòåìà: ïðèñóòíÿ
²íòåðôåéñè/ïîðòè: 10/100Mbps Ethernet; 4 RS-232 ïîñë³äîâí³ ïîðòè; 4 USB 1.1 ïîðòè; PS/2 êëàâ³àòóðà òà ìèøà
Äæåðåëî æèâëåííÿ: +5VDC ±10% @ 2A
Ðîáî÷³ óìîâè: -40 ... +85°C
DAQ: 16AI (16 á³ò, 100 êÃö), 4AO, 24DIO, 2CNTR

Ïåðøèì çàâäàííÿì ö³º¿ ïëàòè òà OpenSCADA áóëà ðåàë³çàö³ÿ ôóíêö³¿ âèñîêî÷àñòîòíîãî (10 ÊÃö * 8 êàíàë³â) àðõ³âàòîðó ñèãíàë³â ãàçîâîãî êîìïðåñîðó äëÿ âèâ÷åííÿ ÿâèùà ïîìïàæó íà Àíàñòàñ³¿âñüê³é ÃËÊÑ.


Äðóãèì çàâäàííÿì ñòàâ ïðîòîòèï ÏËÊ âóçë³â åëåêòðîï³äñòàíö³é. Âæå äëÿ ö³º¿ çàäà÷³ ïðîøèâêà çáèðàëàñü íà îñíîâ³ íîâî¿ ïàêåòíî¿ áàçè. Ó ìåæàõ ö³º¿ çàäà÷³ ìîäóëü îïèòóâàííÿ äàíèõ ïëàò "Diamon Boards" áóëî óí³ô³êîâàíî äëÿ ï³äòðèìêè âñ³õ ïëàò âèðîáíèêà.


Diamond ATH400–128 (181 Kb)

Äðóãîþ ïëàòîþ ñòàëà ïëàòà ÏÏÎ PDF DocumentDMM32-AT, ïðåäñòàâëåíà íà ðèñóíêó íèæ÷å. Ïëàòà âèêîðèñòîâóâàëàñü äëÿ ñòâîðåííÿ ìàêåò³â òà åìóëÿòîð³â ïîëÿ òåõíîëîã³÷íîãî ÏÇ. Ïëàòà ìຠõàðàêòåðèñòèêè:

Äæåðåëî æèâëåííÿ: +5VDC ±10% @ 200mA
Ðîáî÷³ óìîâè: -40 to +85°C
DAQ: 32AI (16 á³ò, 200 êÃö), 4AO, 24DIO, 2CNTR

Diamond DMM-32X-AT (153 Kb)

Äîñë³äæåííÿ øóìîâèõ âëàñòèâîñòåé âèñîêî-³ìïåäàíñíèõ âõîä³â ïëàò â³ä Diamond Systems ó ð³çíèõ óìîâàõ çâåäåíî äî òàáëèö³ íèæ÷å:

Óìîâè Çîâí³øí³é ÁÆ: гâåíü øóìó, ì [Ãö] Âíóòð³øí³é ÁÆ: гâåíü øóìó, ì [Ãö] Çàóâàæåííÿ
(10 êÃö, ±0.625 Â, 20 ìêñ), Çàçåìëåíî-32 0.08 [-]
(10 êÃö, ±5 Â, 20 ìêñ), Çàçåìëåíî-32 0.5 [-] 0.35 [-]
(10 êÃö, ±5 Â, 20 ìêñ), Çàçåìëåíî-31, Íàâàíòàæåííÿ ∞ 5 [50, 270] 18 [50, 150]
(10 êÃö, ±5 Â, 20 ìêñ), Çàçåìëåíî-31, Íàâàíòàæåííÿ 1ìÎì 10 [50, 270]
(10 êÃö, ±5 Â, 20 ìêñ), Çàçåìëåíî-31, Íàâàíòàæåííÿ 100êÎì 7 [150, 50, 270] 7 [-]
(10 êÃö, ±5 Â, 20 ìêñ), Çàçåìëåíî-31, Íàâàíòàæåííÿ 10êÎì 4.5 [100] 6 [-]
(10 êÃö, ±5 Â, 20 ìêñ), Çàçåìëåíî-31, Íàâàíòàæåííÿ 1êÎì 0.9 [150] 1 [-]
(10 êÃö, ±5 Â, 20 ìêñ), Çàçåìëåíî-31, Íàâàíòàæåííÿ 100Îì 0.5 [-] 0.5 [-]

Kontron MOPSlcdLX

MOPSlcdLX ïðåäñòàâëÿº ñîáîþ îäíî-ïëàòíèé êîìï'þòåð ôîðìôàêòîðó PC/104, ïðåäñòàâëåíî íà ðèñóíêó íèæ÷å. Öåé êîìï'þòåð ïðèâàáèâ óâàãó ç ïðè÷èíè ïîð³âíÿíî íåâåëèêî¿ âàðòîñò³, çà ðàõóíîê çâè÷àéíîãî ä³àïàçîíó åêñïëóàòàö³¿ òà ìåíøîãî åíåðãîñïîæèâàííÿ òà ÿê íàñë³äîê ìåíøîãî íàãð³âó.


Àïàðàòí³ õàðàêòåðèñòèêè ïëàòè:

Öåíòðàëüíèé ïðîöåñîð: AMD LX800™ 500 MHz, áåçâåíòèëÿòîðíèé
Îïåðàòèâíà ïàì'ÿòü: DDR-RAM-SODIMM ñîêåò
Ïîñò³éíà ïàì'ÿòü: IDE (44) ïîðò
³äåî ï³äñèñòåìà: âáóäîâàíà ãðàô³êà ³ç ï³äòðèìêîþ âèâîäó íà ïëîñê³ ïàíåë³, CRT òà LCD
Àóä³î ï³äñèñòåìà: íåìàº
²íòåðôåéñè/ïîðòè: 10/100Mbps Ethernet (Intel® 82551ER); 2 RS-232 ïîñë³äîâíèõ ïîðòè; 2x USB 2.0; PS/2 êëàâ³àòóðà òà ìèøà, Floppy, LPT
Äæåðåëî æèâëåííÿ: +5VDC ±10% @ 1A
Ðîáî÷³ óìîâè: 0 ... 60°C

Ïëàòà âèêîðèñòîâóâàëàñÿ äëÿ îïðîáóâàííÿ ñòâîðåííÿ ñòàíö³é/ïàíåëåé îïåðàòîðà ç OpenSCADA, ó ïîä³áíîìó îòî÷åí³. Çãîäîì âèïëèëà íèçêà ïðîáëåì ç ö³ºþ ïëàòîþ:


Íà öåé ÷àñ, íà îñíîâ³ ö³º¿ ïëàòè, ãîòóºòüñÿ "Ïðîãðàìíèé îñöèëîãðàô", äëÿ ÷îãî íà íüîãî ç óñï³õîì çàâàíòàæåíî ñó÷àñíó ïðîøèâêó ³ç ÿäðîì "std-def" òà äîâñòàíîâëåíî ïëàòó DMM-32X-AT, ïðî ÿêó âèùå.


PLC (90 Kb)

Tri-M VSX104

VSX104 ïðåäñòàâëÿº ñîáîþ îäíî-ïëàòíèé êîìï'þòåð ôîðìôàêòîðó PC/104, ïðåäñòàâëåíî íà ðèñóíêó íèæ÷å. Öåé êîìï'þòåð ïðèâàáèâ óâàãó ç ïðè÷èíè íåâåëèêî¿ ö³íè òà íèçüêîãî åíåðãîñïîæèâàííÿ (< 2Âò) òà ÿê íàñë³äîê ìåíøîãî íàãð³âó. Îäíàê ó çâ'ÿçêó âèêîðèñòàííÿ íà íüîìó ïðîöåñîðó "Vortex86SX-300 ÌÃö" âèìàãàºòüñÿ îñîáëèâèé ï³äõ³ä äî ôîðìóâàííÿ îòî÷åííÿ ÎÑ, îñê³ëüêè âèêîðèñòàíî íàá³ð ³íñòðóêö³é i486 òà â³äñóòí³é ìàòåìàòè÷íèé ñîïðîöåñîð.


Àïàðàòí³ õàðàêòåðèñòèêè ïëàòè:

Öåíòðàëüíèé ïðîöåñîð: DM&P SoC Vortex86SX-300 ÌÃö
Îïåðàòèâíà ïàì'ÿòü: 128 ÌÁ DDR2 RAM ðîçïàÿíà íà ïëàò³
Ïîñò³éíà ïàì'ÿòü: ñëîò CompactFlash Type I, microSD òà 2 ïîðòè EIDE (Ultra DMA 100)
³äåî ï³äñèñòåìà: íåìàº
Àóä³î ï³äñèñòåìà: íåìàº
²íòåðôåéñè/ïîðòè: 10/100Mbps Ethernet; 4 RS-232 ïîñë³äîâíèõ ïîðò³â; 2x USB 2.0; PS/2 êëàâ³àòóðà òà ìèøà, LPT, Ðåçåðâóâàííÿ, SPI
Äæåðåëî æèâëåííÿ: +5VDC ±10% @ 370mA
Ðîáî÷³ óìîâè: -40 ... 85°C
DAQ: 1 ïîðò 16-á³òíîãî GPIO

Íà öåé ÷àñ ð³øåíü íà ö³é ïëàò³ íåìàº, îäíàê ïëàíóºòüñÿ ç³áðàòè äëÿ íå¿ îòî÷åííÿ, ìîæëèâî äëÿ àâòîíîìíî¿ ñèñòåìè îáë³êó.


VSX104 (225 Kb)

 (2 Kb) Ïåðåíàïðàâëåííÿ ³íòåðôåéñó BIOS íà COM-ïîðò ìîæíà ïðèìóñîâî âêëþ÷èòè çàçåìëåííÿì 10 ï³íó COM-ïîðòó.

ICOP VDX-6354D

VDX-6354D ïðåäñòàâëÿº ñîáîþ îäíî-ïëàòíèé êîìï'þòåð ôîðìôàêòîðó PC/104, ïðåäñòàâëåíî íà ðèñóíêó íèæ÷å. Öåé êîìï'þòåð ïîáóäîâàíî íà ïðîöåñîð³ "DM&P SoC CPU Vortex86DX- 800MHz", ÿêèé ïðîäóêòèâí³øå "Vortex86SX-300 ÌÃö" ó ïîïåðåäíüîìó ðîçä³ë³, îäíàê ³ åíåðãîñïîæèâàííÿ ö³º¿ ïëàòè âæå íå 2, à 4 Âàòà á³ëüøå íà ñòîð³íö³ ïðîåêòó (RU)


 (23 Kb)

ICP DAS LP-8x81

Ïðîìèñëîâ³ êîíòðîëåðè ñ³ìåéñòâà LP-8x81 ô³ðìè ICP DAS º ïåðøèì ïðîäóêòîì ³ç ñå𳿠LinPAC, ÿêèé ïîáóäîâàíî íà x86 ñóì³ñíîìó ïðîöåñîð³, ïîïåðåäí³ êîíòðîëåðè öüîãî ñ³ìåéñòâà îñíîâàí³ íà ïðîöåñîð³ ñ³ìåéñòâà ARM. Êð³ì x86 ïðîöåñîðó ö³ êîíòðîëåðè ìàþòü çíà÷í³ ðåñóðñè îïåðàòèâíî¿ ïàì'ÿò³ òà äèñêîâîãî ïðîñòîðó. Âñå öå äîçâîëèëî ðîçãëÿäàòè öåé êîíòðîëåð ÿê ïåðøîãî êàíäèäàòà ³ç ïðîäóêö³¿ ICP DAS äëÿ àäàïòàö³¿ OpenSCADA ó ÿêîñò³ ñåðåäîâèùà âèêîíàííÿ á³ëüøå íà ñòîð³íö³ ïðîåêòó (RU).


ÏËÊ ñåðèè LP-8x81. (84 Kb)

Avalue Ñåíñîðíà ïàíåëü FPC-1701

Ô³ðìà Avalue, ñóì³ñíî ç ¿¿ äèñòðèá'þòîðîì ó Ðîñ³¿ ô³ðìîþ ElTech, íàäຠøèðîêèé ñïåêòð ïàíåëüíèõ ÏÊ, ÿê³ ìîæóòü âèêîðèñòîâóâàòèñÿ ïî÷èíàþ÷è ³ç çâè÷íèõ îô³ñíèõ ìîíîáëîê³â òà çàê³í÷óþ÷è ïðîìèñëîâèìè ñåíñîðíèìè ïàíåëÿìè ó ôðîíòàëüíîìó âèêîíàíí³ êëàñó IP65. Ó çâ'ÿçêó âèêîðèñòàííÿ ñòàíäàðòíîãî îáëàäíàííÿ çàïóñê òà ðîáîòà OpenSCADA íà íèõ íå âèêëèêຠïðîáëåì á³ëüøå íà ñòîð³íö³ ïðîåêòó (RU).


 (214 Kb)

iROBO-3000a

iROBO-3000a ïðåäñòàâëÿº ³ç ñåáå áåçâåíòèëÿòîðíèé ïðîìèñëîâèé êîìï'þòåð ç âñòàíîâëåíèì Intel Atom D425 1.8 GHz ³ç VGA, 2xGb LAN, 4xCOM, 4xUSB, 1GB RAM, 1x2.5" SATA HDD 120GB, Mini-PCIe, 4x4 DIO, CF ñëîò, SIM Card ñëîò, Audio, WDT, ðîáî÷èé ä³àïàçîí òåìïåðàòóð -5...+55°C. Ïðîäóêòèâíîñò³ äàíîãî êîìï'þòåðà äîñòàòíüî äëÿ âèêîíàííÿ ÿê ôóíêö³é ñåðâåðó çáîðó, êîíòðîëþ òà êåðóâàííÿ, òàê ³ ôóíêö³é ñòàíö³¿ â³çóàë³çàö³¿. Îäíàê ó çâ'ÿçêó ³ç âèêîðèñòàííÿì íåïðîäóêòèâíîãî ïðîöåñîðó ðîäèíè Atom âèêîíàííÿ ìàòåìàòè÷íèõ ìîäåëåé òåõíîëîã³÷íèõ ïðîöåñ³â ïîòðåáóº âñ³õ ðåñóðñ³â ïðîöåñîðó. Íàïðèêëàä, ïðè âèêîíàíí³ ìàòåìàòè÷íî¿ ìîäåë³ ÀÃËÊÑ ïðîöåñîð íàâàíòàæóºòüñÿ íà 86%. Êîíòðîëåð ìຠñåðòèô³êàò "ÓêðÑÅÏÐÎ", ùî ìîæå áóòè âàæëèâèì äëÿ áàãàòüîõ êîðèñòóâà÷³â íà òåðèòî𳿠Óêðà¿íè.


iROBO-3000a (541 Kb)

Ðîáî÷å îòî÷åííÿ OpenSCADA äëÿ öüîãî êîìï'þòåðà áóäóâàëîñÿ íà îñíîâ³ ïàêåòíî¿ áàçè äèñòðèáóòèâó ALTLinux T6, à òàêîæ ñâ³æî-ç³áðàíîãî îòî÷åííÿ ñò³ëüíèö³ Trinity (TDE). Çá³ðêà îòî÷åííÿ çä³éñíþâàëàñÿ íà îñíîâ³ âèùåíàâåäåíî¿ êîíöåïö³¿ çà äîïîìîãîþ îíîâëåíîãî ïðîô³ëþ "mkimage". Ó íîâèé ïðîô³ëü òàêîæ áóëî äîäàíî ìåòó "plc", îäíàê ¿¿ ñóòí³ñòü çì³íèëàñÿ ôàêòè÷íî ñòàâøè êîﳺþ ìåòè "live", ùî ñòàëî ìîæëèâèì çàâäÿêè âïðîâàäæåííþ íà åòàï³ ïåðâèííî¿ ³í³ö³àë³çàö³¿ ïðîçîðîãî ìîíòóâàííÿ ðîçä³ëó ç ì³òêîþ "alt-live-storage" ÿê â³äîáðàæåííÿ óïàêîâàíî¿ ôàéëîâî¿ ñèñòåìè ³ç äîâ³ëüíèì äîñòóïîì íà ìîäèô³êàö³þ.  ö³ëîìó öå äîçâîëèëî ñòâîðèòè ô³êñîâàíå ÿäðî ïðîøèâêè ç áàçîâèì íàáîðîì ïðîãðàìíîãî îòî÷åííÿ, ðîçì³ðîì 300Ìá, òà ìîæëèâ³ñòþ â³ëüíîãî ðîçøèðåííÿ øëÿõîì äîâñòàíîâëåííÿ ïîòð³áíèõ ïàêåò³â ³ç äèñòðèáóòèâó.


Ó ÿêîñò³ îòî÷åííÿ ñò³ëüíèö³ áóëî îáðàíî "Trinity" ç ïðè÷èíè íàÿâíîñò³ ïðîáëåìè ôîíîâîãî àðòèôàêòèíãó ó çâ'ÿçö³ XOrgServer 1.10 + Qt4, à òàêîæ ìàëî¿ ðåñóðñîì³ñòêîñò³ TDE ïðè âèñîê³é ðîçâèíóòîñò³ òà ñòàá³ëüíîñò³.


Àðõ³â ïðîô³ë³â çá³ðêè íîâîãî îòî÷åííÿ îòðèìàâ íàçâó mkimage-profiles-6-kdesktop-plc.tgz, à îñòàííÿ çá³ðêà ïðîøèâêè ALTLinux_6-OpenSCADA_0.8.1-TDE_3.5.13.1-i586-flash.tar.

Advantech PCA-6753, PPC-L126

Ô³ðìà Advantech âèïóñêຠøèðîêèé ñïåêòð îáëàäíàííÿ äëÿ àâòîìàòèçàö³¿, ïî÷èíàþ÷è â³ä ïàíåëüíèõ ÏÊ òà çàê³í÷óþ÷è ìîäóëÿìè çáîðó äàíèõ ADAM.


Ó ìåæàõ ïðîåêòó ñèñòåìè çáîðó òà â³çóàë³çàö³¿ êîòëà ¹1 öåõó ÒÝÖ (RU) äî ðóê ïîòðàïèâ ïàíåëüíèé ÏÊ PPC-L126 òà ³íäóñòð³àëüíèé ÏÊ íà øàñ³ IPC-6608, ç ïðîöåñîðíîþ ïëàòîþ PCA-6753.


²íäóñòð³àëüíèé ÏÊ "PCA-6753" ìຠíàñòóïí³ õàðàêòåðèñòèêè:

Öåíòðàëüíèé ïðîöåñîð: Ìàëî-ñïîæèâàíèé NS GXm-200 ÌÃö (áåçâåíòèëÿòîðíèé)
Îïåðàòèâíà ïàì'ÿòü: 64 ÌÁ DIMM SDRAM
Ïîñò³éíà ïàì'ÿòü: SSD DiskOnChip® 2000, IDE (40 pin, UDMA 33, 256ÌÁ IDE Flash)
³äåî ï³äñèñòåìà: CX5530 VGA/LCD è 18-áèò LCD TFT
Àóä³î ï³äñèñòåìà: íåìàº
²íòåðôåéñè/ïîðòè: 10/100Mbps Ethernet (RTL-8139); RS-232 + RS-232/422/485 ïîñë³äîâí³ ïîðòè; 2 x USB 1.1 (õîñò), IR ïîðò; LPT; Floppy
Äæåðåëî æèâëåííÿ: +5VDC ±10% @ 1.54A
Ðîáî÷³ óìîâè: 0 ... 60°C

ÏËÊ PCA-6753F â ñèñòåìíîì áëîêå IPC-6608. (68 Kb)

Öåé êîíòðîëåð º âæå äîñòàòíüî ñòàðèì òà íèçüêîïðîäóêòèâíèì äëÿ ñó÷àñíîãî ïðîãðàìíîãî çàáåçïå÷åííÿ îäíàê äëÿ çàäà÷ ñåðåäîâèùà âèêîíàííÿ ÏËÊ â³í ùå ãîäèòüñÿ ³ íà íüîãî áóëî ç óñï³õîì çàâàíòàæåíî ïðîøèâêó íà îñíîâ³ ïàêåòíî¿ áàçè ALTLinux 5.1. Ïðè öüîìó ïðî ðåàëüíèé ÷àñ ìîâà íå âåëàñü, ó çâ'ÿçêó ³ç â³äñóòí³ñòþ òàéìåðó âèñîêî¿ ðîçä³ëüíî¿ çäàòíîñò³ (HPET).


Ïàíåëüíèé ÏÊ "PPC-L126" ìຠíàñòóïí³ õàðàêòåðèñòèêè:

Öåíòðàëüíèé ïðîöåñîð: VIA Eden 667 MHz
Îïåðàòèâíà ïàì'ÿòü: Äâà 168-pin DIMM ñîêåò (128 ÌÁ)
Ïîñò³éíà ïàì'ÿòü: CompactFlash òèïà I/II, IDE (44 pin, UDMA 33/66/100, 10 ÃÁ)
³äåî ï³äñèñòåìà: VIA Savage4 2D/3D/Video, ñåíñîðíèé åêðàí 12.1", ôðîíòàëüíà ïàíåëü: IP65/NEMA4
Àóä³î ï³äñèñòåìà: AC97 Ver. 2.0
²íòåðôåéñè/ïîðòè: 10/100Mbps Ethernet (RTL-8139); 3 x RS-232 + RS-232/422/485 ïîñë³äîâí³ ïîðòè; 2 x USB 1.1 (õîñò); PS/2 êëàâ³àòóðà òà ìèøà; LPT
Äæåðåëî æèâëåííÿ: 19VDC @ 3.3A
Ðîáî÷³ óìîâè: 0 ... 40°C

PPC-L126 (18 Kb)

Ïàíåëüíèé ÏÊ òàêîæ ìຠìàë³ ðåñóðñè äëÿ çàïóñêó ñó÷àñíîãî ãðàô³÷íîãî îòî÷åííÿ, òîìó äëÿ óñòàíîâêè íà íüîãî âèêîðèñòîâóâàâñÿ äèñòðèáóòèâ "ALTLinux T6" ³ç çàõîäàìè ïî îïòèì³çàö³¿:


Ïðèâåäåí³ çàõîäè äîçâîëèëè âòèñíóòèñÿ ó 128 ÌÁ îïåðàòèâíî¿ ïàì'ÿò³ ³ îòðèìàòè ïðè öüîìó ðîçâèíóòå òà ïðîäóêòèâíå ãðàô³÷íå îòî÷åííÿ. Äëÿ íàëàøòóâàííÿ ñåíñîðíîãî åêðàíó ELO âèêîðèñòîâóâàâñÿ ïàêåò ³ç äðàéâåðîì "elographics" — "xorg-drv-elographics". Äî êîíô³ãóðàö³éíîãî ôàéëó "xorg.conf" äîäàíî ñåêö³þ:


 
There are no files on this page.[Display files/form]
There is no comment on this page. [Display comments/form]