²ì'ÿ: | LP8x81 |
Çàñíîâàíî: | ëèñòîïàä 2009ð |
Âåðñ³ÿ: | 1.0.0 |
Ñòàòóñ: | GPL |
Ó÷àñíèêè: | Ðîìàí Ñàâî÷åíêî |
Ïåðåêëàä: | Ðîìàí Ñàâî÷åíêî |
Îïèñ: | Ïðîåêò ïðèñâÿ÷åíî ñòâîðåííþ ñåðåäîâèùà âèêîíàííÿ ÏËÊ äëÿ êîíòðîëåð³â ñå𳿠LP-8x81 ô³ðìè ICP DAS. |
Ïðîìèñëîâ³ êîíòðîëåðè ñ³ìåéñòâà LP-8x81 ô³ðìè
ICP DAS º ïåðøèì ïðîäóêòîì ç ñå𳿠LinPAC, ÿêèé ïîáóäîâàíî íà x86 ñóì³ñíîìó ïðîöåñîð³, ïîïåðåäí³ êîíòðîëåðè öüîãî ñ³ìåéñòâà çàñíîâàíî íà ïðîöåñîð³ ñ³ìåéñòâà ARM. Êð³ì x86 ïðîöåñîðó ö³ êîíòðîëåðè ìàþòü çíà÷í³ ðåñóðñè îïåðàòèâíî¿ ïàì'ÿò³ òà äèñêîâîãî ïðîñòîðó. Âñå öå äîçâîëèëî ðîçãëÿäàòè ö³ êîíòðîëåðè ÿê ïåðøèé êàíäèäàò ç ïðîäóêö³¿ ICP DAS äëÿ àäàïòàö³¿ OpenSCADA ó ÿêîñò³ ñåðåäîâèùà âèêîíàííÿ.
Îñíîâîþ äëÿ àäàïòàö³¿ OpenSCADA ó ÿêîñò³ ñåðåäîâèùà âèêîíàííÿ êîíòðîëåð³â ñ³ìåéñòâà LP-8x81 ñòàëà ïîòðåáà ó ñòâîðåí³ ÀÑÓ ÒÏ êåðóâàííÿ íàâàíòàæåííÿì øàðîâèõ ìëèí³â ïîìåëó âóã³ëëÿ äëÿ ÒÅÖ. Îñîáëèâ³ñòþ öüîãî òåõíîëîã³÷íîãî ïðîöåñó (ÒÏ) º íàÿâí³ñòü ñïåöèô³÷íèõ äî ðåñóðñ³â òà ôóíêö³ÿì êîíòðîëåðó âèìîã ïðè íåâåëèêîìó îá'ºì³ ïàðàìåòð³â. Êð³ì òîãî, âèð³øàëüíèì ôàêòîðîì áóëî îáìåæåíå ô³íàíñóâàííÿ. Âñ³ì ïðåä'ÿâëåíèì âèìîãàì çàäîâîëüíèëè êîíòðîëåðè ñ³ìåéñòâà LP-8x81:
Ìåòîþ äàíîãî ïðîåêòó áóëî ñòâîðåííÿ ñåðåäîâèùà âèêîíàííÿ íà îñíîâ³ OpenSCADA, à òàêîæ ïðîøèâêè ç ÎÑ Linux òà OpenSCADA äëÿ êîíòðîëåð³â öüîãî ñ³ìåéñòâà. Ïðåä'ÿâëÿëèñÿ íàñòóïí³ âèìîãè äî ñåðåäîâèùà âèêîíàííÿ òà ïðîøèâêè:
ÏËÊ (ðèñ.1) êîíñòðóêòèâíî âèêîíàíî çà ìîäóëüíèì ïðèíöèïîì, äå ìîäóë³ âñòàíîâëþþòüñÿ äî êîøèêà. Êîøèê ñïîëó÷åíî ç ïðîöåñîðíèì ìîäóëåì òà ìîæå ìàòè 0, 3 àáî 7 ñëîò³â äëÿ ìîäóë³â ðîçøèðåííÿ. Ìîäóë³ ðîçøèðåííÿ ìîæóòü áóòè äâîõ òèï³â, à ñàìå: ìîäóë³ íà ïàðàëåëüíó òà ïîñë³äîâíó øèíè. Ìîäóë³ íà ïàðàëåëüí³é øèí³ (I-8x) º øâèäêèìè. Ìîäóë³ íà ïîñë³äîâí³é øèí³ (I-87x) âñòàíîâëþþòüñÿ íà øèíó ³íòåðôåéñó RS-485 òà ïðàöþþòü ç³ øâèäê³ñòþ 115000 á³ò/ñ çà ïðîòîêîëîì DCON. Êð³ì ìîäóë³â áåçïîñåðåäíüî ó êîøèêó êîíòðîëåð ìîæå ðîçøèðþâàòèñÿ äîäàòêîâèìè êîøèêàìè ç ìîäóëÿìè íà ïîñë³äîâí³é øèí³ (I-87x) ÷åðåç ïîñë³äîâíèé ³íòåðôåéñè ïðîöåñîðó.
Ïðîöåñîð êîíòðîëåðà ìຠíàñòóïí³ òåõí³÷í³ õàðàêòåðèñòèêè:
CPU | AMD LX800 ïðîöåñîð (32-á³ò, 500 ÌÃö) |
Ñèñòåìíà ïàì'ÿòü | 1 GB RAM |
SRAM ç ïîäâ³éíèì æèâëåííÿì â³ä áàòàðå¿ | 512 ÊÁ (ç³ çáåðåæåííÿì ïðîòÿãîì 5 ðîê³â) |
Flash | 4 ÃÁ ÿê IDE Master |
EEPROM | 16 ÊÁ Çáåðåæåííÿ äàíèõ: 40 ðîê³â; 1,000,000 öèêë³â âèäàëåííÿ/çàïèñó. |
CF êàðòà | 8 ÃÁ (ï³äòðèìêà äî 32 ÃÁ) |
64-á³ò Ñåð³éíèé Íîìåð Îáëàäíàííÿ | Íàÿâíèé |
Ïîäâ³éíèé Watchdog òàéìåðó | Íàÿâíèé |
VGA | 640 x 480 ~ 1024 x 768 |
Ethernet ïîðòè | RJ-45 x 2, 10/100 Base-TX Ethernet Êîíòðîëåð (Àâòî-ïîãîäæåííÿ, àâòî MDI/MDI-X, LED ³íäèêàòîð) |
USB 1.1 (õîñò) | 2 |
COM1 | Âíóòð³øí³ êîìóí³êàö³¿ ç ìîäóëÿìè I-87K ó ñëîòàõ |
COM2 | RS-232 (RxD, TxD è GND); Íå ³çîëüîâàíèé |
COM3 | RS-485 D2+,D2-;ñàìî-íàëàøòóâàííÿ ASIC âñåðåäèí³ |
COM4 | RS-232/RS-485 (RxD, TxD, CTS, RTS è GND äëÿ RS-232, Data+ è Data- äëÿ RS-485); Íå ³çîëüîâàíèé |
COM5 | RS-232 (RxD, TxD, CTS, RTS, DSR, DTR, CD, RI è GND); Íå ³çîëüîâàíèé |
Ðîáî÷à òåìïåðàòóðà | -25 ~ +75 °C |
Âèõ³äíå ïðîãðàìíå îòî÷åííÿ ïðåäñòàâëÿº ñîáîþ äèñòðèáóòèâ Linux ç ãðàô³÷íèì îòî÷åííÿì Gnome òà ç âñòàíîâëåíèìè äðàéâåðàìè ñïåö³àë³çîâàíîãî îáëàäíàííÿ. Êð³ì òîãî, îòî÷åííÿ ì³ñòèòü êîìï³ëÿòîð "C" ç LinPAC SDK, à òàêîæ ³íòåðïðåòàòîð ìîâè Perl.
Âðàõîâóþ÷è, ùî íåâ³äîìî âèõ³äíîãî äèñòðèáóòó, ÿêèé âèêîðèñòàíî ïîñòà÷àëüíèêîì òà ÿê íàñë³äîê íå îìîâëåíî ìîæëèâ³ñòü âñòàíîâëåííÿ äîäàòêîâîãî ÏÇ, òîä³ âèêîðèñòàííÿ òàêîãî îòî÷åííÿ ÿê º, ïî ïåðøå - îáòÿæëèâî, ïî äðóãå - íå ìîæå áóòè ñï³âñòàâëåíî ç íàÿâíèìè àïàðàòíèìè ðåñóðñàìè. Êð³ì òîãî âèõ³äíå ÿäðî Linux 2.6.18 äàëåêå äî ïðåä'ÿâëåíèõ âèìîã.
Âèõîäÿ÷è ç öèõ îñíîâíèõ âèìîã, âèð³øåíî áóëî ñòâîðèòè ïîâí³ñòþ íîâå ïðîãðàìíå îòî÷åííÿ.  îñíîâó öüîãî ïðîãðàìíîãî îòî÷åííÿ áóëî ïîêëàäåíî äèñòðèáóòèâ ALTLinux p5, ÿäðî Linux 2.6.29-rt-up òà OpenSCADA 0.6.4.2. Âèáðàíå ÿäðî çàäîâîëüíÿº âñ³ì ïðåä'ÿâëåíèì âèìîãàì, à äèñòðèáóòèâ ALTLinux p5 äîçâîëÿº çáèðàòè êîìïàêòí³ ïðîøèâêè ï³ä ïîòð³áí³ âèìîãè.
Âèá³ð íîâîãî îòî÷åííÿ ïîñòàâèâ íàñ ïåðåä ôàêòîì â³äñóòíîñò³ âèõ³äíèõ òåêñò³â äëÿ äðàéâåð³â ñïåöèô³÷íîãî îáëàäíàííÿ ïîñòà÷àëüíèêà. Öþ ïðîáëåìó áóëî âèð³øåíî ñóì³ñíî ç ðîçðîáíèêàìè âèõ³äíîãî ïðîãðàìíîãî îòî÷åííÿ, ÿê³ ïîãîäèëèñÿ àäàïòóâàòè òà ç³áðàòè âëàñí³ äðàéâåðà ï³ä ïîòð³áíå ÿäðî Linux. Àðõ³â öèõ ìîäóë³â íàÿâíèé òóò.
Äëÿ ðåàë³çàö³¿ ï³äòðèìêè îáëàäíàííÿ êîíòðîëåð³â LP-8x81 òà ìîäóë³â ñå𳿠I-8000 áóëî ñòâîðåíî ìîäóëü DAQ.ICP_DAS äëÿ ñèñòåìè OpenSCADA. Ìîäóëü íàäຠâ ñèñòåìó OpenSCADA ï³äòðèìêó ð³çíîìàí³òíîãî îáëàäíàííÿ ô³ðìè ICP DAS çà ïîñåðåäíèöòâîì á³áë³îòåêè API ô³ðìè libi8k.a.
Ïðîøèâêà ïðîãðàìíîãî îòî÷åííÿ ñòâîðþâàëàñÿ ó â³äïîâ³äí³ñòþ ç ³íñòðóêö³ºþ òóò. Ó äîïîâíåííÿ äî ñòàíäàðòíèõ ìàòåð³àë³â áóëî ñòâîðåíî ïàêåò ç ôàéëàìè ïîòð³áíèìè äëÿ êîíòðîëåð³â LP-8x81 kernel-modules-icp-rt-up-1.0.0-alt1.2.src.rpm. Êð³ì òîãî, ïðîô³ëü çá³ðêè ïðîøèâîê áóëî àäàïòîâàíî íà çá³ðêó äëÿ LP-8x81.
Ó ïðîöåñ³ âèïðîáîâóâàííÿ ïðîãðàìíîãî îòî÷åííÿ áóëî âèÿâëåíî, ùî ñòàíäàðòíèé äðàéâåð ìåðåæåâèõ êîíòðîëåð³â "via-rhine" ïðàöþº íå êîðåêòíî, à ñàìå â³äáóâàºòüñÿ ïàä³ííÿ øâèäêîñò³ ìåðåæ³ íà ïîðÿäîê ï³ñëÿ íîðìàëüíî¿ ðîáîòè ïðîòÿãîì â³ä ä³á äî òèæí³â. Ïðîáëåìó áóëî âèð³øåíî àäàïòàö³ºþ òà çá³ðêîþ äðàéâåðà "rhinefet" â³ä VIA.
Ó ðåçóëüòàò³ áóëî îòðèìàíî òà çàïóùåíî ó ðîáîòó ïðîøèâêó ïðîãðàìíîãî îòî÷åííÿ, ÿêà çàäîâîëüíÿº âñ³ì ïîñòàâëåíèì âèìîãàì. Íà öåé ÷àñ îòî÷åííÿ ïðàöþº íà òðüîõ êîíòðîëåðàõ LP-8781 òà âèêîíóº ôóíêö³¿: