OpenSCADAWiki: Doc/Program Manual/part5 ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of Doc/ProgramManual/part5 from 2017-02-27 12:56:56..

5. Îáùåñèñòåìíîå API ïîëüçîâàòåëüñêîãî ïðîãðàììèðîâàíèÿ.

API ïîëüçîâàòåëüñêîãî ïðîãðàììèðîâàíèÿ ïðåäñòàâëÿåò ñîáîé äåðåâî îáúåêòîâ ñèñòåìû OpenSCADA, êàæäûé îáúåêò êîòîðîãî ìîæåò ïðåäñòàâëÿòü ñîáñòâåííûé ïåðå÷åíü ñâîéñòâ è ôóíêöèé. Ñâîéñòâà è ôóíêöèè îáúåêòîâ ìîãóò èñïîëüçîâàòüñÿ ïîëüçîâàòåëåì â ïðîöåäóðàõ íà ÿçûêàõ ïîëüçîâàòåëüñêîãî ïðîãðàììèðîâàíèÿ OpenSCADA. Òî÷êîé âõîäà äëÿ äîñòóïà ê îáúåêòàì ñèñòåìû OpenSCADA èç ÿçûêà ïîëüçîâàòåëüñêîãî ïðîãðàììèðîâàíèÿ JavaLikeCalc ÿâëÿåòñÿ çàðåçåðâèðîâàííîå ñëîâî "SYS" êîðíåâîãî îáúåêòà OpenSCADA. Íàïðèìåð, äëÿ äîñòóïà ê ôóíêöèè èñõîäÿùåãî òðàíñïîðòà íóæíî çàïèñàòü: SYS.Transport.Serial.out_ModBus.messIO(mess);.


API îáúåêòîâ, ïðåäîñòàâëÿåìûõ ìîäóëÿìè, îïèñûâàåòñÿ â ñîáñòâåííîé äîêóìåíòàöèè ìîäóëÿ.

5.1. Îáùåñèñòåìíûå ïîëüçîâàòåëüñêèå îáúåêòû.

Àáñòðàêòíûé îáúåêò ïðåäñòàâëÿåò ñîáîé àññîöèàòèâíûé êîíòåéíåð ñâîéñòâ è ôóíêöèé. Ñâîéñòâà ìîãóò ñîäåðæàòü êàê äàííûå ÷åòûð¸õ áàçîâûõ òèïîâ, òàê è äðóãèå îáúåêòû. Äîñòóï ê ñâîéñòâàì îáúåêòà îáû÷íî îñóùåñòâëÿåòñÿ ïîñðåäñòâîì çàïèñè èì¸í ñâîéñòâ ÷åðåç òî÷êó ê îáúåêòó "obj.prop", à òàêæå ïîñðåäñòâîì çàêëþ÷åíèÿ èìåíè ñâîéñòâà â êâàäðàòíûå ñêîáêè "obj["prop"]". Î÷åâèäíî, ÷òî ïåðâûé ìåõàíèçì ñòàòè÷åí, à âòîðîé ïîçâîëÿåò óêàçûâàòü èìÿ ñâîéñòâà ÷åðåç ïåðåìåííóþ. Áàçîâîå îïðåäåëåíèå îáúåêòà íå ñîäåðæèò ôóíêöèé. Îïåðàöèè êîïèðîâàíèÿ îáúåêòà íà ñàìîì äåëå äåëàþò ññûëêó íà èñõîäíûé îáúåêò. Ïðè óäàëåíèè îáúåêòà îñóùåñòâëÿåòñÿ óìåíüøåíèÿ ñ÷¸ò÷èêà ññûëîê, à ïðè äîñòèæåíèè ñ÷¸ò÷èêà ññûëîê íóëÿ îáúåêò óäàëÿåòñÿ ôèçè÷åñêè.


Ðàçíûå êîìïîíåíòû ìîãóò äîîïðåäåëÿòü áàçîâûé îáúåêò îñîáûìè ñâîéñòâàìè è ôóíêöèÿìè. Ñòàíäàðòíûì ðàñøèðåíèåì îáúåêòà ÿâëÿåòñÿ ìàññèâ "Array".

Îáúåêò Array

Îñîáåííîñòüþ ìàññèâà ÿâëÿåòñÿ òî, ÷òî îí ðàáîòàåò ñî ñâîéñòâàìè, êàê ñ èíäåêñàìè, è ïîëíîå èõ èìåíîâàíèå áåññìûñëåííî, à çíà÷èò äîñòóïåí ìåõàíèçì îáðàùåíèÿ òîëüêî çàêëþ÷åíèåì èíäåêñà â êâàäðàòíûå ñêîáêè "arr[1]". Ìàññèâ õðàíèò ñâîéñòâà â ñîáñòâåííîì êîíòåéíåðå îäíîìåðíîãî ìàññèâà. Öèôðîâûå ñâîéñòâà ìàññèâà èñïîëüçóþòñÿ äëÿ äîñòóïà íåïîñðåäñòâåííî ê ìàññèâó, à ñèìâîëüíûå ðàáîòàþò êàê ñâîéñòâà îáúåêòà.


Ìàññèâ ïðåäîñòàâëÿåò ñïåöèàëüíîå ñâîéñòâî "length" äëÿ ïîëó÷åíèÿ ðàçìåðà ìàññèâà "var = arr.length;". Òàêæå ìàññèâ ïðåäîñòàâëÿåò ñëåäóþùèå ôóíêöèè:

Îáúåêò RegExp

Îáúåêò ðàáîòû ñ ðåãóëÿðíûìè âûðàæåíèÿìè, îñíîâàí íà áèáëèîòåêå PCRE. Ïðè ãëîáàëüíîì ïîèñêå óñòàíàâëèâàåòñÿ àòðèáóò îáúåêòà "lastIndex", ÷òî ïîçâîëÿåò ïðîäîëæèòü ïîèñê ïðè ñëåäóþùåì âûçîâå ôóíêöèè.  ñëó÷àå íåóäà÷íîãî ïîèñêà àòðèáóò "lastIndex" ñáðàñûâàåòñÿ â íîëü.


 êà÷åñòâå àðãóìåíòîâ ñîçäàíèÿ îáúåêòà ïåðåäà¸òñÿ ñòðîêà ñ òåêñòîì ðåãóëÿðíîãî âûðàæåíèÿ è ôëàãè â âèäå ñòðîêè ñèìâîëîâ:


Ñâîéñòâà îáúåêòà:


Ôóíêöèè îáúåêòà:


Îáúåêò XMLNodeObj

Ôóíêöèè:

5.2. Ñèñòåìà (SYS)

Ôóíêöèè îáúåêòà:

5.3. Ëþáîé îáúåêò (TCntrNode) äåðåâà OpenSCADA (SYS.*)

Ôóíêöèè îáúåêòà:

5.4. Ïîäñèñòåìà "Áåçîïàñíîñòü" (SYS.Security)

Ôóíêöèè îáúåêòà ïîäñèñòåìû (SYS.Security):


Ôóíêöèè îáúåêòà ïîëüçîâàòåëÿ (SYS.Security["usr_User"]):


Ôóíêöèè îáúåêòà ãðóïïû (SYS.Security["grp_Group"]):

5.5. Ïîäñèñòåìà "ÁÄ" (SYS.BD)

Ôóíêöèè îáúåêòà ÁÄ (SYS.BD["TypeDB"]["DB"]):


Ôóíêöèè îáúåêòà Òàáëèöû (SYS.BD["TypeDB"]["DB"]["Table"]):


5.6. Ïîäñèñòåìà "Ñáîð äàííûõ" (SYS.DAQ)

Ôóíêöèè îáúåêòà ïîäñèñòåìû (SYS.DAQ):


Ôóíêöèè îáúåêòà êîíòðîëëåðà (SYS.DAQ["Modul"]["Controller"]):


Ôóíêöèè îáúåêòà ïàðàìåòðà êîíòðîëëåðà (SYS.DAQ["Modul"]["Controller"]["Parameter"]):


Ôóíêöèè îáúåêòà àòðèáóòà ïàðàìåòðà êîíòðîëëåðà (SYS.DAQ["Modul"]["Controller"]["Parameter"]["Attribute"]):


Ôóíêöèè îáúåêòà áèáëèîòåêè øàáëîíà (SYS.DAQ[tmplb_Lib"]) è øàáëîíà (SYS.DAQ[tmplb_Lib"]["Tmpl"]) ïàðàìåòðà êîíòðîëëåðà:

5.6.1. Ìîäóëü DAQ.JavaLikeCalc

Action source page doesn't exist yet(/Doc / Java Like Calc?)

5.6.2. Ìîäóëü DAQ.LogicLev

Action source page doesn't exist yet(/Doc / Logic Lev?)

5.6.3. Ìîäóëü DAQ.BlockCalc

Action source page doesn't exist yet(/Doc / Block Calc?)

5.6.4. Ìîäóëü DAQ.ModBus

Action source page doesn't exist yet(/Doc / Mod Bus?)

5.7. Ïîäñèñòåìà "Àðõèâû" (SYS.Archive)

Ôóíêöèè îáúåêòà ïîäñèñòåìû:


Ôóíêöèè îáúåêòà àðõèâàòîðà ñîîáùåíèé (SYS.Archive["mod_Modul"]["mess_Archivator"]):


Ôóíêöèè îáúåêòà àðõèâàòîðà çíà÷åíèé (SYS.Archive["val_Modul"]["val_Archivator"]):


Ôóíêöèè îáúåêòà àðõèâà (SYS.Archive["va_Archive"]):

5.8. Ïîäñèñòåìà "Òðàíñïîðòû" (SYS.Transport)

Ôóíêöèè îáúåêòà âõîäÿùåãî òðàíñïîðòà (SYS.Transport["Modul"]["in_Transp"]):


Ôóíêöèè îáúåêòà èñõîäÿùåãî òðàíñïîðòà (SYS.Transport["Modul"]["out_Transp"]):


5.9. Ïîäñèñòåìà "Ïîëüçîâàòåëüñêèå èíòåðôåéñû" (SYS.UI)

5.9.1. Ìîäóëü UI.VCAEngine

Action source page doesn't exist yet(/Doc / Koncepcija Sredy Vizualizacii / part 4 / part 14?)

5.10. Ïîäñèñòåìà "Ñïåöèàëüíûå" (SYS.Special)

5.10.1. Ìîäóëü Special.FLibSYS

Action source page doesn't exist yet(/Doc / F Lib SYS?)

5.10.2. Ìîäóëü Special.FLibMath

Action source page doesn't exist yet(/Doc / F Lib Math?)

5.10.3. Ìîäóëü Special.FLibComplex1

Action source page doesn't exist yet(/Doc / F Lib Complex 1?)


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