Ìîäóëü: | Siemens |
Èìÿ: | Ñáîð äàííûõ Siemens |
Òèï: | DAQ |
Èñòî÷íèê: | daq_Siemens.so |
Âåðñèÿ: | 2.0.0 |
Àâòîð: | Ðîìàí Ñàâî÷åíêî |
Îïèñàíèå: | Ïðåäîñòàâëÿåò èñòî÷íèê äàííûõ ÏËÊ Siemens ïîñðåäñòâîì êàðò Hilscher CIF, ñ èñïîëüçîâàíèåì ïðîòîêîëà MPI, è áèáëèîòåêè Libnodave, èëè ñîáñòâåííîé, äëÿ îñòàëüíîãî. |
Ëèöåíçèÿ: | GPL |
Ïåðâîî÷åðåäíîé öåëüþ ñîçäàíèÿ ìîäóëÿ ÿâëÿåòñÿ îáåñïå÷åíèå ïîääåðæêè ïðîìûøëåííûõ êîíòðîëëåðîâ ôèðìû Siemens ñåðèè S7 (S7-200,300,400). Èñòîðè÷åñêè ñëîæèëîñü, ÷òî äîñòóï ê êîíòðîëëåðàì óêàçàííîé ôèðìû â ñåòè ProfiBus ïðîèçâîäèëñÿ òîëüêî ïîñðåäñòâîì ñîáñòâåííûõ êîììóíèêàöèîííûõ ïðîöåññîðîâ (CP5412, CP5613 è ò.ä.) è ñîáñòâåííîãî ïðîòîêîëà S7. Óêàçàííûå êîììóíèêàöèîííûå ïðîöåññîðû è API ê ïðîòîêîëó S7 äîñòàòî÷íî äîðîãîñòîÿùèå, êðîìå òîãî äðàéâåðà ê êîììóíèêàöèîííûì ïðîöåññîðàì è S7 API çàêðûòû, à òàêæå äîñòóïíû òîëüêî äëÿ ïëàòôîðìû Intel+Windows (âñòðå÷àëàñü èíôîðìàöèÿ î âîçìîæíîñòè êóïèòü äëÿ Linux).
 êà÷åñòâå àëüòåðíàòèâû êîììóíèêàöèîííûì ïðîöåññîðàì îò ôèðìû Siemens, êîòîðûå ïîçâîëÿþò ïîëíîöåííî ðàáîòàòü ñ êîíòðîëëåðàìè ôèðìû Siemens, ÿâëÿåòñÿ ñïåêòð êîììóíèêàöèîííûõ ïðîäóêòîâ ôèðìû Hilscher (http://hilscher.com) â ëèöå êîììóíèêàöèîííûõ ïðîöåññîðîâ CIF ñåðèè PB(Profibus) è áèáëèîòåêà LibnoDave (
http://libnodave.sourceforge.net).
Îñîáåííîñòüþ ïðîäóêòîâ Hilscher ÿâëÿåòñÿ ïîëíîñòüþ îòêðûòàÿ ñïåöèôèêàöèÿ ïðîòîêîëà îáìåíà ñ êîììóíèêàöèîííûì ïðîöåññîðîì, óíèôèöèðîâàííûé äðàéâåð äëÿ âñåõ ïëàò CIF, íàëè÷èå äðàéâåðà äëÿ ìíîãèõ ðàñïðîñòðàí¸ííûõ îïåðàöèîííûõ ñèñòåì(ÎÑ) è îòêðûòîñòü äðàéâåðà äëÿ ÎÑ Linux (GPL).
 îñíîâó äàííîãî ìîäóëÿ ïîëîæåí äðàéâåð âåðñèè 2.621 ôèðìû Hilsher, ëþáåçíî ïðåäîñòàâëåííûé ôèðìîé Hilsher â ëèöå Devid Tsaava äëÿ ÿäåð ñåðèè 2.6 ÎÑ Linux. Âñå íåîáõîäèìûå äëÿ ñáîðêè ôàéëû âêëþ÷åíû â ìîäóëü è íå òðåáóåòñÿ óäîâëåòâîðåíèÿ ñïåöèàëüíûõ çàâèñèìîñòåé. Äðàéâåð âåðñèè 2.621 äëÿ ïëàò CIF ìîæíî çàãðóçèòü
çäåñü.
Ñïåêòð ïëàò ôèðìû Hilsher ñåìåéñòâà CIF è óíèôèöèðîâàííûé äðàéâåð ïîääåðæèâàþò øèðî÷àéøèé ñïåêòð îáîðóäîâàíèÿ. Çàëîæèòü ïîääåðæêó âñåõ ýòèõ âîçìîæíîñòåé â äàííîì ìîäóëå, íå èìåÿ âñåãî ýòîãî îáîðóäîâàíèÿ íà ðóêàõ, íå ïðåäñòàâëÿåòñÿ âîçìîæíûì. Ïîýòîìó ïîääåðæêà òîãî èëè èíîãî îáîðóäîâàíèÿ áóäåò äîáàâëÿòüñÿ ïî ìåðå íàäîáíîñòè è íàëè÷èÿ îáîðóäîâàíèÿ. Ïî ñîñòîÿíèþ íà âåðñèþ 2.0.0 ìîäóëåì ïðåäîñòàâëÿåòñÿ ïîääåðæêà èñòî÷íèêîâ äàííûõ íà ñåòè ProfiBus èëè MPI ïîñðåäñòâîì ïðîòîêîëà MPI, íà ñêîðîñòÿõ ñåòè îò 9600Áîä äî 12ÌÁîä.  ÷àñòíîñòè ïîääåðæèâàþòñÿ è âûïîëíåíà ïðîâåðêà íà êîíòðîëëåðàõ ôèðìû Siemens ñåìåéñòâà S7 (S7-200,300,400).
Áèáëèîòåêà LibnoDave ÿâëÿåòñÿ ðåàëèçàöèåé, ïóò¸ì ðåâåðñèíæåíèðèíãà, ïðîòîêîëîâ MPI, S7, ISO-TSAP è äðóãèõ, êîòîðûå èñïîëüçóþòñÿ ïðè âçàèìîäåéñòâèè ñ êîíòðîëëåðàìè ôèðìû Siemens. Áèáëèîòåêîé ïîääåðæèâàþòñÿ ìíîãèå MPI è USB àäàïòåðû, à òàêæå ProfiNet. Êîììóíèêàöèîííûå ïðîöåññîðû ôèðìû Siemens, íà ïëàòôîðìàõ îòëè÷íûõ îò Windows, áèáëèîòåêîé íå ïîääåðæèâàþòñÿ. Íà äàííîì ýòàïå ìîäóëåì îáåñïå÷åíà ïîääåðæêà ïðîòîêîëà ISO-TSAP(ProfiNet) ïîñðåäñòâîì áèáëèîòåêè LibnoDave. Áèáëèîòåêà LibnoDave ïîëíîñòüþ âêëþ÷åíà â äàííûé ìîäóëü è íå òðåáóåò ðàçðåøåíèÿ çàâèñèìîñòåé êàê ïðè ñáîðêå, òàê è ïðè èñïîëíåíèè.
 êîäå áèáëèîòåêè LibnoDave ïðèñóòñòâóþò ñëîæíî-óëîâèìûå îøèáêè, êîòîðûå â îñíîâíîì âîñïðîèçâîäÿòñÿ ïîä áîëüøîé íàãðóçêîé è â ìîìåíò ïîäêëþ÷åíèé, ÷òî ïðèâîäèò ê ïîð÷å ïàìÿòè ïðîöåññà è ïàäåíèÿì â íåïðåäñêàçóåìûõ ìåñòàõ.  ñâÿçè ñ ýòèì, ñ âåðñèè 2 ýòîãî ìîäóëÿ, íà÷àò ïðîöåññ ïåðåïèñûâàíèÿ íóæíûõ ôóíêöèé è êîä ñâÿçè ISO-TCP óæå ãîòîâ ê èñïîëüçîâàíèþ.
Òàêæå ìîäóëåì ðåàëèçóþòñÿ ôóíêöèè ãîðèçîíòàëüíîãî ðåçåðâèðîâàíèÿ, à èìåííî ñîâìåñòíîé ðàáîòû ñ óäàë¸ííîé ñòàíöèåé ýòîãî-æå óðîâíÿ. Êðîìå ñèíõðîíèçàöèè çíà÷åíèé è àðõèâîâ àòðèáóòîâ ïàðàìåòðîâ ìîäóëåì îñóùåñòâëÿåòñÿ ñèíõðîíèçàöèÿ çíà÷åíèé âû÷èñëèòåëüíûõ øàáëîíîâ, ñ öåëüþ áåçóäàðíîãî ïîäõâàòà àëãîðèòìîâ.
Äðàéâåðîì ïëàò ñåìåéñòâà CIF ïîääåðæèâàåòñÿ âîçìîæíîñòü óñòàíîâêè äî 4 CIF ïëàò. Ñ öåëüþ êîíòðîëÿ çà íàëè÷èåì ïëàò â ñèñòåìå è âîçìîæíîñòè èõ êîíôèãóðàöèè, ìîäóëü ñîäåðæèò ôîðìó êîíòðîëÿ è êîíôèãóðàöèè CIF-ïëàò (ðèñ.1).
Ñ ïîìîùüþ ýòîé ôîðìû ìîæíî ïðîêîíòðîëèðîâàòü íàëè÷èå êîììóíèêàöèîííûõ ïðîöåññîðîâ, èõ êîíôèãóðàöèþ, à òàêæå íàñòðîèòü ïàðàìåòðû ñåòè ProfiBus â âèäå PB àäðåñà êîììóíèêàöèîííîãî ïðîöåññîðà è ñêîðîñòè øèíû ProfiBus.  äðóãîé âêëàäêå ìîäóëÿ (ðèñ.2) ìîæíî ïðîêîíòðîëèðîâàòü íàëè÷èå ðàçëè÷íûõ ñòàíöèé â ñåòè ProfiBus.
Äëÿ äîáàâëåíèÿ èñòî÷íèêà äàííûõ ñîçäà¸òñÿ è êîíôèãóðèðóåòñÿ îáúåêò êîíòðîëëåðà â ñèñòåìå OpenSCADA. Ïðèìåð âêëàäêè êîíôèãóðàöèè îáúåêòà êîíòðîëëåðà äàííîãî òèïà èçîáðàæåí íà ðèñóíêå 3.
Ñ ïîìîùüþ ýòîé âêëàäêè ìîæíî óñòàíîâèòü:
Ó÷èòûâàÿ âûñîêóþ èíòåëëåêòóàëüíîñòü èñòî÷íèêîâ äàííûõ â ëèöå ïðîìûøëåííûõ êîíòðîëëåðîâ ôèðìû Siemens S7-200,300,400, îáúåêòû ïàðàìåòðà âûïîëíÿþòñÿ íà îñíîâå øàáëîíîâ?. Äàííûé ïîäõîä ïîçâîëÿåò íå îãðàíè÷èâàòüñÿ æ¸ñòêèì ïåðå÷íåì òèïîâ ïàðàìåòðîâ, ÷òî îãðàíè÷èâàåò è âîçìîæíîñòè êîíòðîëëåðîâ, à ïðåäîñòàâèòü âîçìîæíîñòü ïîëüçîâàòåëþ ôîðìèðîâàòü íóæíûå åìó òèïû ïàðàìåòðîâ ñàìîñòîÿòåëüíî èëè èñïîëüçîâàòü áèáëèîòåêè óæå ðàçðàáîòàííûõ ðàíåå òèïîâ ïàðàìåòðîâ (øàáëîíîâ).
Èñõîäÿ èç ýòîãî, ìîäóëü ïðåäîñòàâëÿåò òîëüêî îäèí òèï ïàðàìåòðîâ — "Ëîãè÷åñêèé". Äîïîëíèòåëüíûìè êîíôèãóðàöèîííûìè ïîëÿìè ïàðàìåòðîâ äàííîãî ìîäóëÿ (ðèñ.4) ÿâëÿåòñÿ ïîëå âûáîðà øàáëîíà ïàðàìåòðà.
Äëÿ êîíôèãóðàöèè øàáëîíà ïàðàìåòðà ïðåäîñòàâëÿåòñÿ ñîîòâåòñòâóþùàÿ âêëàäêà. Ñîäåðæèìîå ýòîé âêëàäêè îïðåäåëÿåòñÿ êîíôèãóðàöèåé øàáëîíà, ò.å ôîðìèðóþòñÿ ñîîòâåòñòâóþùèå ññûëî÷íûå ïîëÿ è ïîëÿ óñòàíîâêè ïîñòîÿííûõ.
Òèïû ññûëîê îïðåäåëÿþòñÿ òèïîì ïàðàìåòðà â øàáëîíå (Ëîãè÷åñêèé, Öåëûé, Âåùåñòâåííûé è Ñòðîêîâûé) è îïðåäåëåíèåì çíà÷åíèÿ ññûëêè (äëÿ ãðóïïîâûõ ññûëîê). Îïðåäåëåíèå ãðóïïîâîé ññûëêè â øàáëîíå çàïèñûâàåòñÿ â ôîðìàòå: "{Èìÿ ññûëêè}|{Ñìåùåíèå â ÁÄ}|{Ðàçìåð çíà÷åíèÿ}", ãäå:
Íàãëÿäíûé ïðèìåð îáùåãî ïðîöåññà êîíôèãóðàöèè ïàðàìåòðà îò øàáëîíà è äî çíà÷åíèé ïðèâåäåí â ðèñóíêàõ îò 5 äî 8.
Ìîäóëåì ïîääåðæèâàåòñÿ àäðåñàöèÿ òîëüêî ê áëîêàì äàííûõ (ÁÄ) êîíòðîëëåðîâ.
Ìîäóëåì ïðåäóñìîòðåíà îñîáàÿ îáðàáîòêà ðÿäà àòðèáóòîâ øàáëîíà:
Ñòàíäàðòíûì ðåæèìîì çàïèñè äëÿ SCADA-ñèñòåì, âçàèìîäåéñòâóþùèõ ñ PLC, ÿâëÿåòñÿ ñèíõðîííûé ïîñêîëüêó ïîçâîëÿåò êîíòðîëèðîâàòü êîððåêòíîñòü çàâåðøåíèÿ îïåðàöèè çàïèñè. Îäíàêî â ñëó÷àå çàïèñè ìíîæåñòâà ïàðàìåòðîâ ñðàçó òàêîé ïîäõîä íå îïðàâäàí â âèäó îòïðàâêè ìíîæåñòâà ìåëêèõ çàïðîñîâ â êîíòðîëëåð, ÷òî ïåðåãðóæàåò PLC è çàíèìàåò áîëüøîé èíòåðâàë âðåìåíè. Ðåøåíèåì ýòîé ïðîáëåìû ÿâëÿåòñÿ àñèíõðîííàÿ çàïèñü ñìåæíûõ çíà÷åíèé îäíèì áëîêîì. Òàêîé ðåæèì ïîääåðæèâàåòñÿ ýòèì ìîäóëåì è ïîçâîëÿåò çàïèñûâàòü âñå ïàðàìåòðû ñðàçó ñìåæíûìè áëîêàìè ïî 240 áàéò. ×òåíèå è çàïèñü â òàêîì ðåæèìå ïðîèçâîäèòñÿ ñìåæíûìè áëîêàìè ñ ïåðèîäè÷íîñòüþ îïðîñà êîíòðîëëåðà.
Ïîñëå öåëåíàïðàâëåííîãî ïîèñêà áûëî îáíàðóæåíî íåñêîëüêî ðåøåíèé ïðîáëåìû êîììóíèêàöèè ñ ïðîìûøëåííûìè êîíòðîëëåðàìè ôèðìû Siemens ïîñðåäñòâîì ðàçëè÷íûõ êîììóíèêàöèîííûõ èíòåðôåéñîâ:
Äðàéâåð ôèðìû Hilscher äëÿ ïëàò ñåìåéñòâà CIF: file:cif2621.tgz
Ïàò÷ äëÿ ñáîðêè äðàéâåðà äëÿ ÿäðà Linux 2.6.29: file:lastkernels.patch