OpenSCADAWiki: Using/PLC/firmware ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of Using/PLC/firmware from 2016-12-13 16:37:48..

Ïðîøèâêà è ñîçäàíèå ïðîãðàììíîãî îêðóæåíèÿ ÏËÊ àðõèòåêòóðû x86

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

Èíñòðóìåíòû è ñáîðêà ðàáî÷èõ îêðóæåíèé ïðîøèâîê ñî ñæàòîé ÊÔÑ, íà îñíîâå äèñòðèáóòèâà ALTLinux

Ïåðåä ðåàëèçàöèåé ïðîøèâêè ÏËÊ, äàííîãî ðàçäåëà, ñòàâèëèñü ñëåäóþùèå òðåáîâàíèÿ:


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

Çà îñíîâó ôîðìèðîâàíèÿ ÏËÊ-øàáëîíà áûë âçÿò ñòàíäàðòíûé "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, HDD è SSD. Îäíàêî â ñëó÷àå ñ USB-flash ìîæåò áûòü ïðîáëåìà ñ îæèäàíèåì èíèöèàëèçàöèè USB-ïîäñèñòåìû è íóæíî áóäåò íåìíîãî "ïîáåãàòü" ïî äèàëîãàì çàãðóç÷èêà.


Ôàéëîâàÿ ñèñòåìà ìîæåò áûòü FAT èëè EXT2/3.  ñëó÷àå ñ EXT3 ìîíòèðîâàíèå êîðíÿ ïðîèçâîäèòñÿ êàê EXT2, èç-çà ïðîáëåì â èíèöèàëèçàòîðå.  ñëó÷àå ñ EXT2/3 íóæíî áóäåò èñïîëüçîâàòü íå çàãðóç÷èê 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 èñïîëüçóåòñÿ. Íà äàííûé ìîìåíò äðàéâåð ðàáîòàåò è åãî ïðîâåðêà äëÿ äâóõ àäàïòåðîâ óäà÷íî çàâåðøåíà. Ïîõîæå äðàéâåð "via-rhine" çäåñü èìååò ðåàëüíûå ïðîáëåìû â áëîêèðîâàíèè, ïðè ðàáîòå ñ äâóìÿ ñåòåâûìè àäàïòåðàìè íà îäíîì âåêòîðå ïðåðûâàíèÿ.

 (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 Âàòà áîëüøå íà ñòðàíèöå ïðîåêòà


 (23 Kb)

ICP DAS LP-8x81

Ïðîìûøëåííûå êîíòðîëëåðû ñåìåéñòâà LP-8x81 ôèðìû ICP DAS ÿâëÿþòñÿ ïåðâûì ïðîäóêòîì èç ñåðèè LinPAC, êîòîðûé ïîñòðîåí íà x86 ñîâìåñòèìîì ïðîöåññîðå, ïðåäûäóùèå êîíòðîëëåðû ýòîãî ñåìåéñòâà îñíîâàíû íà ïðîöåññîðå ñåìåéñòâà ARM. Êðîìå x86 ïðîöåññîðà ðàññìàòðèâàåìûå êîíòðîëëåðû îáëàäàþò çíà÷èòåëüíûìè ðåñóðñàìè îïåðàòèâíîé ïàìÿòè è äèñêîâîãî ïðîñòðàíñòâà. Âñ¸ ýòî ïîçâîëèëî ðàññìàòðèâàòü äàííûå êîíòðîëëåðû êàê ïåðâîãî êàíäèäàòà èç ïðîäóêöèè ICP DAS äëÿ àäàïòàöèè OpenSCADA â êà÷åñòâå ñðåäû èñïîëíåíèÿ áîëüøå íà ñòðàíèöå ïðîåêòà.


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

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

Ôèðìà Avalue, ñîâìåñòíî ñ å¸ äèñòðèáþòåðîì â Ðîññèè ôèðìîé ElTech, ïðåäîñòàâëÿåò øèðîêèé ñïåêòð ïàíåëüíûõ ÏÊ, êîòîðûå ìîãóò èñïîëüçîâàòüñÿ íà÷èíàÿ ñ îáû÷íûõ îôèñíûõ ìîíîáëîêîâ è çàêàí÷èâàÿ ïðîìûøëåííûìè ñåíñîðíûìè ïàíåëÿìè â ôðîíòàëüíîì èñïîëíåíèè êëàññà IP65.  âèäó èñïîëüçîâàíèÿ ñòàíäàðòíîãî îáîðóäîâàíèå çàïóñê è ðàáîòà OpenSCADA íà íèõ íå âûçûâàåò ïðîáëåì áîëüøå íà ñòðàíèöå ïðîåêòà.


 (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°Ñ. Ïðîèçâîäèòåëüíîñòè äàííîãî êîìïüþòåðà äîñòàòî÷íî äëÿ âûïîëíåíèÿ êàê ôóíêöèé ñåðâåðà ñáîðà, êîíòðîëÿ è óïðàâëåíèÿ, òàê è ôóíêöèé ñòàíöèè âèçóàëèçàöèè. Îäíàêî ââèäó èñïîëüçîâàíèÿ íåïðîèçâîäèòåëüíîãî ïðîöåññîðà ñåìåéñòâà "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.tgz, à ïîñëåäíÿÿ ñáîðêà ïðîøèâêè ALTLinux_6-OpenSCADA_0.8.1-TDE_3.5.13.1-i586-flash.tar.

Advantech PCA-6753, PPC-L126

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


 ðàìêàõ ïðîåêòà ñèñòåìû ñáîðà è âèçóàëèçàöèè êîòëà ¹1 öåõà ÒÝÖ â ðóêè ïîïàë ïàíåëüíûé ÏÊ 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]