OpenSCADAWiki: Home Page Uk/Doc/ Serial ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of HomePageUk/Doc/Serial from 2016-11-19 08:51:20..
English (1 Kb) English
Russian (1 Kb) Ðóññêàÿ
 (2 Kb) Ïåðåêëàä

Ìîäóëü <Serial> ï³äñèñòåìè "Òðàíñïîðòè"

Ìîäóëü: Serial
²ì'ÿ: Ïîñë³äîâíèé ³íòåðôåéñ
Òèï: Òðàíñïîðò
Äæåðåëî: tr_Serial.so
Âåðñ³ÿ: 1.6.0
Àâòîð: Ðîìàí Ñàâî÷åíêî, Ìàêñèì Êî÷åòêîâ
Îïèñ: Íàäຠïîñë³äîâíèé ³íòåðôåéñ. Âèêîðèñòîâóºòüñÿ äëÿ îáì³íó äàíèìè ÷åðåç ïîñë³äîâí³ ³íòåðôåéñè òèïó RS232, RS485, GSM òà ³íø³.
˳öåíç³ÿ: GPL

Contents

Âñòóï

Ìîäóëü òðàíñïîðòó Serial íàäຠâ ñèñòåìó ï³äòðèìêó òðàíñïîðò³â, îñíîâàíèõ íà ïîñë³äîâíèõ ³íòåðôåéñàõ òèïó RS232, RS485, GSM òà ³íøå. ϳäòðèìóþòüñÿ âõ³äí³ òà âèõ³äí³ òðàíñïîðòè. Äîäàòè íîâ³ âõ³äí³ òà âèõ³äí³ ³íòåðôåéñè ìîæíà çà ïîñåðåäíèöòâîì êîíô³ãóðàö³¿ òðàíñïîðòíî¿ ï³äñèñòåìè ó áóäü ÿêîìó êîíô³ãóðàòîð³ ñèñòåìè OpenSCADA.


Ó ðåæèì³ ìîäåìó ìîäóëåì ï³äòðèìóºòüñÿ çì³øàíèé ðåæèì ðîáîòè. Çì³øàíèé ðåæèì ìຠíà óâàç³ íàÿâí³ñòü âõ³äíîãî òðàíñïîðòó, ÿêèé î÷³êóº çîâí³øí³õ ï³äêëþ÷åíü, à òàêîæ âèõ³äíîãî òðàíñïîðòó íà òîìó-æ ïðèñòðî¿. Òîáòî âõ³äíèé òðàíñïîðò áóäå ³ãíîðóâàòè âñ³ çàïèòè ïðè íàÿâíîñò³ âñòàíîâëåíîãî âèõ³äíèì òðàíñïîðòîì ï³äêëþ÷åííÿ, â òîé-æå ÷àñ âèõ³äíèé òðàíñïîðò íå áóäå çä³éñíþâàòè ñïðîá âñòàíîâëåííÿ ï³äêëþ÷åííÿ ïðè íàÿâíîñò³ ï³äêëþ÷åííÿ äî âõ³äíîãî òðàíñïîðòó àáî ï³äêëþ÷åííÿ ³íøîãî âèõ³äíîãî òðàíñïîðòó, íàïðèêëàä, ç ³íøèì íîìåðîì òåëåôîíó.


 (2 Kb) Ó çâè÷àéíîìó ðåæèì³ ïîñë³äîâíîãî ³íòåðôåéñó íå äîïóñêàºòüñÿ áàãàòîðàçîâå âèêîðèñòàííÿ îäíîãî é òîãî-æ ïîðòó ó âõ³äíèõ òà âèõ³äíèõ òðàíñïîðòàõ. Ãëîáàëüíîãî áëîêóâàííÿ ïîñë³äîâíîãî ïðèñòðîþ íå çä³éñíþºòüñÿ ó çâ'ÿçêó ³ç íåîäíîçíà÷í³ñòþ öüîãî ïðîöåñó íà ñèñòåìíîìó ð³âí³, à áàãàòîðàçîâå âèêîðèñòàííÿ ìîæå ïðèâåñòè äî íåïåðåäáà÷óâàíèõ ïðîáëåì. Ïðè ïîòðåá³ ó îðãàí³çàö³¿ ëîêàëüíîãî ïîñë³äîâíîãî êàíàëó ç ïàðîþ ïîâ'ÿçàíèõ ïîðò³â ðåêîìåíäóºòüñÿ âèêîðèñòîâóâàòè êîìàíäó "$ socat -d -d pty,raw,echo=0,perm=0666 pty,raw,echo=0,perm=0666".

1. Âõ³äí³ òðàíñïîðòè

Ñêîíô³ãóðîâàíèé òà çàïóùåíèé âõ³äíèé òðàíñïîðò â³äêðèâຠïîðò ïîñë³äîâíîãî ³íòåðôåéñó äëÿ î÷³êóâàííÿ çàïèò³â ê볺íò³â. Êîæíèé âõ³äíèé ³íòåðôåéñ îáîâ'ÿçêîâî ïîâ'ÿçóºòüñÿ ç îäíèì ³ç äîñòóïíèõ òðàíñïîðòíèõ ïðîòîêîë³â, äî ÿêîãî ïåðåäàþòüñÿ âõ³äí³ ïîâ³äîìëåííÿ.


ijàëîã êîíô³ãóðàö³¿ âõ³äíîãî ïîñë³äîâíîãî ³íòåðôåéñó çîáðàæåíî íà ðèñ.1.


ijàëîã êîíô³ãóðàö³¿ âõ³äíîãî ïîñë³äîâíîãî ³íòåðôåéñó. (82 Kb)
Ðèñ.1. ijàëîã êîíô³ãóðàö³¿ âõ³äíîãî ïîñë³äîâíîãî ³íòåðôåéñó.

Çà äîïîìîãîþ öüîãî ä³àëîãó ìîæíà âñòàíîâèòè:


Òðàíñïîðò ï³äòðèìóº ìîæëèâ³ñòü ðîáîòè ó ðåæèì³ ìîäåìó. Öåé ðåæèì âêëþ÷àºòüñÿ ï'ÿòèì ïàðàìåòðîì àäðåñè òà ïåðåäáà÷ຠî÷³êóâàííÿ äçâ³íêà â³ä â³ääàëåíîãî ìîäåìó (çàïèò "RING"), â³äïîâ³ä³ íà äçâ³íîê (êîìàíäà "ATA") òà íàñòóïíî¿ ïåðåäà÷³ çàïèò³â â³ä â³ääàëåíî¿ ñòàíö³¿ ïðîòîêîëó òðàíñïîðòó. ³äêëþ÷åííÿ ñåàíñó çâ'ÿçêó çä³éñíþºòüñÿ ³í³ö³àòîðîì ç'ºäíàííÿ òà ïðèçâîäèòü äî ïåðåï³äêëþ÷åííÿ ìîäåìó ïðèéìà÷à íà î÷³êóâàííÿ íîâèõ äçâ³íê³â.


Äëÿ íàëàøòóâàííÿ ìîäåìó âõ³äíîãî òðàíñïîðòó ïåðåäáà÷åíî ñïåö³àëüíó âêëàäêó "Ìîäåì" (ðèñ.2).


Âêëàäêà "Ìîäåì" êîíô³ãóðàö³¿ ìîäåìó âõ³äíîãî ïîñë³äîâíîãî ³íòåðôåéñó. (78 Kb)
Ðèñ.2. Âêëàäêà "Ìîäåì" êîíô³ãóðàö³¿ ìîäåìó âõ³äíîãî ïîñë³äîâíîãî ³íòåðôåéñó.

Çà äîïîìîãîþ öüîãî ä³àëîãó ìîæíà âñòàíîâèòè íàñòóïí³ âëàñòèâîñò³ ðîáîòè ç ìîäåìîì:


Ïåðåêëàä

2. Èñõîäÿùèå òðàíñïîðòû

Ñêîíôèãóðèðîâàííûé è çàïóùåííûé èñõîäÿùèé òðàíñïîðò îòêðûâàåò ïîðò ïîñëåäîâàòåëüíîãî èíòåðôåéñà äëÿ îòïðàâêè çàïðîñîâ ÷åðåç íåãî.


Ãëàâíàÿ âêëàäêà ñòðàíèöû êîíôèãóðàöèè èñõîäÿùåãî ïîñëåäîâàòåëüíîãî èíòåðôåéñà èçîáðàæ¸íà íà ðèñ.3.


Ãîëîâíà âêëàäêà ñòîð³íêè êîíô³ãóðàö³¿ âèõ³äíîãî ïîñë³äîâíîãî ³íòåðôåéñ³. (85 Kb)
Ðèñ.3. Ãëàâíàÿ âêëàäêà ñòðàíèöû êîíôèãóðàöèè èñõîäÿùåãî ïîñëåäîâàòåëüíîãî èíòåðôåéñà.

Ñ ïîìîùüþ ýòîãî äèàëîãà ìîæíî óñòàíîâèòü:


Òðàíñïîðò ïîääåðæèâàåò âîçìîæíîñòü ðàáîòû â ðåæèìå ìîäåìà. Äàííûé ðåæèì âêëþ÷àåòñÿ íàëè÷èåì ïÿòîãî ïàðàìåòðà àäðåñà è ïîäðàçóìåâàåò îñóùåñòâëåíèå çâîíêà ïî òåëåôîíó, óêàçàííîìó ïÿòûì ïàðàìåòðîì, â ìîìåíò çàïóñêà òðàíñïîðòà. Ïîñëå óñòàíîâêè ñâÿçè ñ óäàë¸ííûì ìîäåìîì âñå çàïðîñû ïåðåäà÷è íàïðàâëÿþòñÿ ñòàíöèè çà óäàë¸ííûì ìîäåìîì. Îòêëþ÷åíèå ñåàíñà ñâÿçè, ñ îñòàíîâêîé òðàíñïîðòà, îñóùåñòâëÿåòñÿ ïî òàéìàóòó àêòèâíîñòè.


Òðàíñïîðò ìîæåò ðàáîòàòü ñ àïïàðàòíîé øèíîé I2Ñ åñëè â êà÷åñòâå óñòðîéñòâà âûáðàòü "/dev/i2c-{N}" è øèíà ïîçâîëèò óñòàíîâèòü àäðåñ ïîä÷èí¸ííîãî óñòðîéñòâà êîìàíäîé I2C_SLAVE, èç ïåðâîãî áàéòà çàïðîñà. Ñêîðîñòü è ôîðìàò íå èãðàþò ðîëè â äàííîì ðåæèìå. Èç òàéìàóòîâ òóò ôàêòè÷åñêè ðàáîòàåò òîëüêî âðåìÿ ñèìâîëà è â îñíîâíîì äëÿ ðàñ÷¸òà îæèäàíèÿ ïîâòîðà çàïðîñà.


Äëÿ íàñòðîéêè ìîäåìà èñõîäÿùåãî òðàíñïîðòà ïðåäóñìîòðåíà ñïåöèàëüíàÿ âêëàäêà "Ìîäåì" (ðèñ.4).


Âêëàäêà "Ìîäåì" êîíô³ãóðàö³¿ ìîäåìó âèõ³äíîãî ïîñë³äîâíîãî ³íòåðôåéñó. (94 Kb)
Ðèñ.4. Âêëàäêà "Ìîäåì" êîíôèãóðàöèè ìîäåìà èñõîäÿùåãî ïîñëåäîâàòåëüíîãî èíòåðôåéñà.

Ñ ïîìîùüþ ýòîãî äèàëîãà ìîæíî óñòàíîâèòü ñëåäóþùèå ñâîéñòâà ðàáîòû ñ ìîäåìîì:

3. API ïîëüçîâàòåëüñêîãî ïðîãðàììèðîâàíèÿ

Îáúåêò "Èñõîäÿùèé òðàíñïîðò" (SYS.Transport.Serial.out_{OutTransport})

4. Çàìå÷àíèÿ

Êîììóíèêàöèè ÷åðåç ïîñëåäîâàòåëüíûå èíòåðôåéñû èìåþò ðÿä îñîáåííîñòåé. Íàèáîëåå âàæíîé îñîáåííîñòüþ ÿâëÿåòñÿ êðèòåðèé îêîí÷àíèÿ ñîîáùåíèÿ è âðåìÿ îæèäàíèÿ ýòîãî êðèòåðèÿ.  îäíèõ ïðîòîêîëàõ òàêèì êðèòåðèåì ÿâëÿåòñÿ ïðèçíàê îêîí÷àíèÿ èëè óêàçàííûé ðàçìåð ñîîáùåíèÿ.  äðóãèõ ïðîòîêîëàõ òàêèì êðèòåðèåì ÿâëÿåòñÿ îòñóòñòâèå äàííûõ âî âõîäÿùåì ïîòîêå â òå÷åíèå óêàçàííîãî âðåìåíè, âðåìÿ ñèìâîëà.  îáîèõ ñëó÷àÿõ âðåìÿ îæèäàíèÿ êðèòåðèÿ èëè ñèìâîëà ÿâëÿåòñÿ êëþ÷åâûì è ñèëüíî ñêàçûâàåòñÿ íà îáùåì âðåìåíè îáìåíà. Ñëåäîâàòåëüíî, ÷åì ìåíüøå ýòî âðåìÿ òåì ëó÷øå. Òóò è âîçíèêàåò ïðîáëåìà ëàòåíòíîñòè îáîðóäîâàíèÿ è åãî äðàéâåðîâ.


Ïðîâåðèòü ëàòåíòíîñòü êàíàëà îáìåíà è òåì ñàìûì îïòèìàëüíî íàñòðîèòü âðåìÿ äîæèäàíèÿ, ñèìâîëà ìîæíî ñ ïîìîùüþ èíòåðôåéñà âêëàäêè "Çàïðîñ" èñõîäÿùåãî òðàíñïîðòà. Äëÿ ýòîãî íåîáõîäèìî óêàçàòü îáðàçöîâûé çàïðîñ ñîîòâåòñòâóþùåãî ïðîòîêîëà, óêàçàòü "Îæèäàòü òàéìàóò", îòîñëàòü çàïðîñ è ïðîêîíòðîëèðîâàòü åãî öåëîñòíîñòü. Äëÿ ïîëó÷åíèÿ áîëåå ðåïðåçåíòàòèâíîãî ðåçóëüòàòà íåîáõîäèìî çàïðîñ ïîâòîðèòü íåñêîëüêî ðàç. Åñëè íàáëþäàåòñÿ ïîëó÷åíèå íåïîëíûõ îòâåòîâ, òî âðåìÿ ñèìâîëà íåîáõîäèìî óâåëè÷èòü, èíà÷å ìîæíî óìåíüøèòü.


Íà âñòðîåííîì îáîðóäîâàíèè ïîñëåäîâàòåëüíûõ èíòåðôåéñîâ RS232/422/485 ìîæíî äîáèòüñÿ íèçêîãî óðîâíÿ ëàòåíòíîñòè, âïëîòü äî åäèíèö ìèëëèñåêóíä. Îäíàêî, íà âûñîêî-íàãðóæåííûõ ñèñòåìàõ ñ ìíîæåñòâîì çàäà÷ â ïðèîðèòåòå ðåàëüíîãî âðåìåíè ëàòåíòíîñòü ìîæåò ñòàòü íåäåòåðìèíèðîâàííîé â ñâÿçè ñ èñïîëíåíèåì ïîòîêà îáñëóæèâàíèÿ ñîáûòèé ÿäðà Linux â íèçêîì ïðèîðèòåòå. Äëÿ ðåøåíèÿ ýòîé ïðîáëåìû íåîáõîäèìî óñòàíîâèòü âûñîêèé ïðèîðèòåò ýòèì ïîòîêàì, ÷òî ìîæíî ñäåëàòü ñ ïîìîùüþ ñêðèïòà, ïîìåñòèâ åãî, íàïðèìåð, â "/etc/rc.local":


Ýòîò ñêðèïò íå èìååò ñìûñëà äëÿ ÿäåð Linux ðåàëüíîãî âðåìåíè, ñ ïàò÷åì PREEMPT_RT, ïîñêîëüêó âñå ïîòîêè ïðåðûâàíèé è ñîáûòèé òàì óæå çàïóñêàþòñÿ â ïðèîðèòåòå ðåàëüíîãî âðåìåíè.


Íà âíåøíåì îáîðóäîâàíèè ïîñëåäîâàòåëüíûõ èíòåðôåéñîâ, íàïðèìåð, â ïåðåõîäíèêàõ USB->RS232/422/485, ìîæåò âîçíèêíóòü ïðîáëåìà âûñîêîé ëàòåíòíîñòè, ñâÿçàííàÿ ñ îñîáåííîñòüþ àïïàðàòíîé ðåàëèçàöèè èëè åãî äðàéâåðà. Ðåøàòü ýòó ïðîáëåìó íóæíî ïóò¸ì èçó÷åíèÿ íàñòðîåê ýòîãî îáîðóäîâàíèÿ èëè óñòàíîâêîé áîëüøîãî âðåìåíè îæèäàíèÿ, ñèìâîëà!


Ïîõîæèì îáðàçîì îïðåäåëÿåòñÿ è îïòèìàëüíîå âðåìÿ ïîäêëþ÷åíèÿ, à èìåííî: óñòàíîâèòü âðåìÿ ïîäêëþ÷åíèÿ â çíà÷åíèå ïî óìîë÷àíèþ äëÿ äàííîé ñêîðîñòè (ñòàâèòñÿ ïðè ñìåíå ñêîðîñòè â àäðåñå), ñíÿòü "Îæèäàòü òàéìàóò", îòîñëàòü çàïðîñ. Åñëè îòâåò ïðèø¸ë òî áåð¸ì èçìåðåííîå âðåìÿ îòêëèêà óñòðîéñòâà, óäâàèâàåì è óñòàíàâëèâàåì ïîëó÷åííîå çíà÷åíèå êàê âðåìÿ ïîäêëþ÷åíèÿ. Íåîáîñíîâàííîå ïðåâûøåíèå âðåìåíè ïîäêëþ÷åíèÿ ïðèâåä¸ò ê áîëüøèì îæèäàíèÿì â ñëó÷àå îòñóòñòâèÿ óñòðîéñòâà, à òàêæå ñðàáàòûâàíèÿ çàùèòíûõ òàéìàóòîâ âíóòðåííèõ ïðîöåäóð.

Âèðòóàëüíûé-ëîêàëüíûé ïîñëåäîâàòåëüíûå èíòåðôåéñû

×àñòî äëÿ ëîêàëüíîé ïðîâåðêè, áåç ôèçè÷åñêîãî îáîðóäîâàíèÿ, íåîáõîäèìà ïàðà ïîðòîâ ïîäêëþ÷åííûõ â îäíó ñåòü. Ñîçäàíèå òàêèõ ïîðòîâ è âûïîëíåíèå ìíîæåñòâà äðóãèõ îïåðàöèé íàä ïîñëåäîâàòåëüíûì ïîòîêîì ïîçâîëÿåò âûïîëíÿòü óòèëèòà socat. Íàïðèìåð, äëÿ ñîçäàíèÿ äâóõ ñâÿçàííûõ ïîðòîâ íóæíî âûïîëíèòü êîìàíäó, êîòîðàÿ ñîçäàñò èõ è ñîîáùèò àäðåñà:

Ïðîáðîñ ïîñëåäîâàòåëüíîãî èíòåðôåéñà ÷åðåç ñåòü Ethernet

 íåêîòîðûõ ñëó÷àÿõ áûâàåò ïîëåçíûì ïðîáðîñèòü ïîðò ïîñëåäîâàòåëüíîãî èíòåðôåéñà óäàë¸ííîé ìàøèíû íà ëîêàëüíûé ïîðò, íàïðèìåð, äëÿ îïðîñà óñòðîéñòâ ïîäêëþ÷åííûõ ê ïîñëåäîâàòåëüíîìó èíòåðôåéñó óäàë¸ííîé ìàøèíû. Êîíå÷íî, åñëè óñòàíîâèòü íà óäàë¸ííóþ ìàøèíó OpenSCADA â êîíôèãóðàöèè PLC, òî ìîæíî áóäåò ñðàçó âûïîëíÿòü îáðàáîòêó ýòèõ äàííûõ, ïðåäâàðèòåëüíîå áóôåðèðîâàíèå-àðõèâèðîâàíèå è ò.ä., íî èíîãäà îáîðóäîâàíèå ìîæåò áûòü ñëîæíûì äëÿ çàïóñêà OpenSCADA, ãäå è ñïàñàåò âîçìîæíîñòü ïðîáðîñà ïîñëåäîâàòåëüíîãî ïîòîêà ÷åðåç ñåòü. Äëÿ ðåøåíèÿ ýòîé çàäà÷è ìîæíî âîñïîëüçîâàòüñÿ òîé-æå óòèëèòîé socat èëè remserial, ser2net, êàêóþ óäàñòñÿ ñîáðàòü è çàïóñòèòü íà óäàë¸ííîé ìàøèíå. Ïðèìåðû ïðîáðîñà ïîñëåäîâàòåëüíîãî ïîðòà:


 ñëó÷àå ñ "socat", à âîçìîæíî è äðóãèõ óòèëèò, ìîæíî íà êëèåíòñêîé ñòîðîíå îïóñòèòü çàïóñê äðàéâåðà EthernetTCP->Serial è ïîäêëþ÷àòüñÿ èç OpenSCADA ïðÿìî íà TCP-ïîðò óäàë¸ííîãî óñòðîéñòâà.


 (2 Kb)  ðàáîòå ÷åðåç äðàéâåð EthernetTCP->Serial åñòü îñîáåííîñòü, êîòîðàÿ ñâÿçàííà ñ íàëè÷èåì äâóõ òàéìàóòîâ ïîäêëþ÷åíèÿ, îäèí â äðàéâåðå, äðóãîé â Transport.Sockets. Âàæíî ÷òîáû çíà÷åíèå ýòîãî òàéìàóòà â Transport.Sockets áûë áîëüøå ÷åì â äðàéâåðå èíà÷å âîçìîæíî ñìåùåíèå è ïîëó÷åíèå íà çàïðîñ çàïîçäàëûé îòâåò îò ïðåäûäóùåãî çàïðîñà.


Ìíîãèå ïðîèçâîäèòåëè ïðîìûøëåííîãî êîììóíèêàöèîííîãî îáîðóäîâàíèÿ âûïóñêàþò ãîòîâûå êîíâåðòåðû èç Ethernet â RS-232/422/485, êîòîðûå ìîãóò èñïîëüçîâàòüñÿ ñ OpenSCADA òàêèì-æå îáðàçîì. Êîììåíòàðèè è ïåðå÷åíü êîíâåðòåðîâ ñ êîòîðûìè ðàáîòà OpenSCADA ïðîâåðåíà:

Ññûëêè

Referring pages: HomePageUk/Doc
HomePageUk/Doc/DCON
HomePageUk/Function
HomePageUk/Using/PLC/firmware
HomePageUk/Using/PLC/firmwareARM


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