OpenSCADAWiki: Home Page Uk/Doc/F LibSYS ...

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

Ìîäóëü <FLibSYS> ï³äñèñòåìè "Ñïåö³àëüí³"

Ìîäóëü: FLibSYS
²ì'ÿ: Á³áë³îòåêà ôóíêö³é ñèñòåìíîãî API.
Òèï: Ñïåö³àëüí³
Äæåðåëî: spec_FLibSYS.so
Âåðñ³ÿ: 1.3.0
Àâòîð: Ðîìàí Ñàâî÷åíêî
Îïèñ: Íàäຠá³áë³îòåêó ñèñòåìíîãî API ñåðåäîâèùà êîðèñòóâàöüêîãî ïðîãðàìóâàííÿ.
˳öåíç³ÿ: GPL


Contents

Âñòóï

Ñïåö³àëüíèé ìîäóëü FLibSYS íàäຠâ ñèñòåìó OpenSCADA ñòàòè÷íó á³áë³îòåêó ôóíêö³é äëÿ ðîáîòè ç ñèñòåìîþ OpenSCADA íà ð³âí³ ¿¿ ñèñòåìíîãî API. Ö³ ôóíêö³¿ ìîæóòü âèêîðèñòîâóâàòèñÿ ó ñåðåäîâèù³ êîðèñòóâàöüêîãî ïðîãðàìóâàííÿ ñèñòåìè OpenSCADA äëÿ îðãàí³çàö³¿ íåîðäèíàðíèõ àëãîðèòì³â âçàºìî䳿.


Äëÿ àäðåñàö³¿ äî ôóíêö³¿ ö³º¿ á³áë³îòåêè ìîæíà âèêîðèñòîâóâàòè ñòàòè÷íó àäðåñó âèêëèêó "Special.FLibSYS.{Func}()" àáî äèíàì³÷íó "SYS.Special.FLibSYS["{Func}"].call()", "SYS.Special.FLibSYS.{Func}()". Äå {Func} — ³äåíòèô³êàòîð ôóíêö³¿ ó á³áë³îòåö³.


Íèæ÷å íàâåäåíî îïèñ êîæíî¿ ôóíêö³¿ á³áë³îòåêè. Äëÿ êîæíî¿ ôóíêö³¿ çä³éñíþâàëàñÿ îö³íêà ÷àñó âèêîíàííÿ. Âèì³ðþâàííÿ çä³éñíþâàëîñÿ íà ñèñòåì³ ç íàñòóïíèìè ïàðàìåòðàìè: Athlon 64 3000+ (ALTLinux 4.0(32á³ò)) øëÿõîì çàì³ðó çàãàëüíîãî ÷àñó âèêîíàííÿ ôóíêö³¿ ïðè âèêëèêó ¿¿ 1000 ðàç³â. Âèá³ðêà çä³éñíþâàëàñÿ ³ç ï'ÿòè îá÷èñëåíü ³ç îêðóãëåííÿì äî ìåíøîãî ö³ëîãî. ×àñ îòî÷óºòüñÿ êóòîâèìè äóæêàìè òà âèì³ðþºòüñÿ ó ì³êðîñåêóíäàõ.

1. Çàãàëüíîñèñòåìí³ ôóíêö³¿

1.1. Âèêëèê êîíñîëüíèõ êîìàíä òà óòèë³ò îïåðàö³éíî¿ ñèñòåìè (sysCall)

Îïèñ: Çä³éñíþº âèêëèê êîíñîëüíèõ êîìàíä ÎÑ. Ôóíêö³ÿ â³äêðèâຠøèðîê³ ìîæëèâîñò³ êîðèñòóâà÷ó OpenSCADA øëÿõîì âèêëèêó áóäü-ÿêèõ ñèñòåìíèõ ïðîãðàì, óòèë³ò òà ñêðèïò³â, à òàêîæ îòðèìàííÿ çà ïîñåðåäíèöòâîì íèõ äîñòóïó äî âåëè÷åçíîãî îá'ºìó ñèñòåìíèõ äàíèõ. Íàïðèêëàä êîìàíäà "ls -l" ïîâåðíå äåòàë³çîâàíèé âì³ñò ðîáî÷î¿ òåêè.
Ïàðàìåòðè:

ID ²ì'ÿ Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Ðÿäîê Ïîâåðíåííÿ
com Êîìàíäà Ðÿäîê Âõ³ä

Ïðèêëàä:

using Special.FLibSYS;
test=sysCall("ls -l");
messPut("Example",0,"Example: "+test);

1.2. SQL çàïèò (dbReqSQL)

Îïèñ: Ôîðìóâàííÿ SQL-çàïèòó äî ÁÄ.
Ïàðàìåòðè:

ID ²ì'ÿ Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Îá'ºêò(Ìàñèâ) Ïîâåðíåííÿ
addr Àäðåñà ÁÄ ðÿäîê Âõ³ä
req SQL-çàïèò Ðÿäîê Âõ³ä

1.3. Âóçîë XML (xmlNode)

Îïèñ: Ñòâîðåííÿ îá'ºêòó âóçëà XML.
Ïàðàìåòðè:

ID ²ì'ÿ Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Îá'ºêò(XMLNodeObj) Ïîâåðíåííÿ
name ²ì'ÿ Ðÿäîê Âõ³ä

Ïðèêëàä:

using Special.FLibSYS;
//Ñòâîðåííÿ îá'ºêòó "get" âóçëà XML.
req = xmlNode("get");
//Ñòâîðåííÿ  îá'ºêòó "get" âóçëà XML ³ç ñòâîðåííÿì àòðèáóò³â.
//sub_DAQ/mod_ModBus/cntr_1/prm_1 — øëÿõ çã³äíî ñòðóêòóðè ïðîåêòó
req = xmlNode("get").setAttr("path",);

1.4. Çàïèò ³íòåðôåéñó óïðàâë³ííÿ (xmlCntrReq)

Îïèñ: Çàïèò ³íòåðôåéñó óïðàâë³ííÿ äî ñèñòåìè çà ïîñåðåäíèöòâîì XML. Çâè÷àéíèé çàïèò çàïèñóºòüñÿ ó âèãëÿä³ "<get path="/OPath/%2felem"/>". Ïðè âêàçàíí³ ñòàíö³¿ çä³éñíþºòüñÿ çàïèò äî çîâí³øíüî¿ ñòàíö³¿.
Ïàðàìåòðè:

ID ²ì'ÿ Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Ðÿäîê Ïîâåðíåííÿ
req Çàïèò Îá'ºêò(XMLNodeObj) Âèõ³ä
stat Ñòàíö³ÿ Ðÿäîê Âõ³ä

Ïðèêëàä:

using Special.FLibSYS;
//Îòðèìàííÿ îçíàêè "Âêëþ÷åíèé/Âèêëþ÷åíèé" ïàðàìåòðàó "1" êîíòðîëåðó "1" ìîäóëÿ "ModBus".
//sub_DAQ/mod_ModBus/cntr_1/prm_1 — øëÿõ çã³äíî ñòðóêòóðè ïðîåêòó
req = xmlNode("get").setAttr("path",);
rez = xmlCntrReq(req);
messPut("test",0,"Çíà÷åííÿ: "+req.text());

//Âñòàíîâëåííÿ îçíàêè "Âêëþ÷åíèé" ïàðàìåòðó "1" êîíòðîëåðó "1" ìîäóëÿ "ModBus".
req = xmlNode("set").setAttr("path",).setText(1);
rez = xmlCntrReq(req);

//Âñòàíîâëåííÿ îçíàêè "Âèêëþ÷åíèé" ïàðàìåòðó "1" êîíòðîëåðó "1" ìîäóëÿ "ModBus".
req = xmlNode("set").setAttr("path",).setText(0);
rez = xmlCntrReq(req);

1.5. Àðõ³â çíà÷åíü (vArh)

Îïèñ: Îòðèìàííÿ îá'ºêòó àðõ³âó çíà÷åíü (VArchObj) øëÿõîì ï³äêëþ÷åííÿ äî àðõ³âó çà éîãî àäðåñîþ.
Ïàðàìåòðè:

ID ²ì'ÿ Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Îá'ºêò(VArchObj) Ïîâåðíåííÿ
name ²ì'ÿ, àäðåñà äî àòðèáóòó ïàðàìåòðà ç àðõ³âîì (DAQ.{Module}.{Cntr}.{Prm}.{Attr}) àáî áåçïîñåðåäíüî äî àðõ³âó çíà÷åíü (Archive.va_{ValArchive}). Ðÿäîê Âõ³ä

Îá'ºêò VArchObj

Ôóíêö³¿:

Ïðèêëàä:

using Special.FLibSYS;
val = vArh(strPath2Sep(addr)).get(time,uTime,0,archivator);
return val.isEval() ? "Ïîðîæíüî" : real2str(val,prec);

1.6. Áóôåð àðõ³âó çíà÷åíü (vArhBuf)

Îïèñ: Îòðèìàííÿ îá'ºêòó áóôåðó àðõ³âó çíà÷åíü (VArchObj) äëÿ âèêîíàííÿ ïðîì³æíèõ îïåðàö³é íàä êàäðàìè äàíèõ.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Îá'ºêò(VArchObj) Ïîâåðíåííÿ
tp Òèï çíà÷åíü àðõ³âó (0-Boolean, 1-Integer, 4-Real, 5-String) Ö³ëèé Âõ³ä 1
sz Ìàêñèìàëüíèé ðîçì³ð áóôåðó Ö³ëèé Âõ³ä 100
per Ïåð³îäè÷í³ñòü áóôåðó (ó ì³êðîñåêóíäàõ) Ö³ëèé Âõ³ä 1000000
hgrd Ðåæèì "Æîðñòêà ìåðåæà ÷àñó" Ëîã³÷íèé Âõ³ä 0
hres Ðåæèì "Âèñîêî¿ ðîçä³ëüíî¿ çäàòíîñò³ ÷àñó (ì³êðîñåêóíäè)" Ëîã³÷íèé Âõ³ä 0

1.7. Ââ³ä/Âèâ³ä (IO)

Îïèñ: Ââ³ä/Âèâ³ä ó: ôàéë, ñòðîêîâèé ïîò³ê.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Îá'ºêò(IO) Ïîâåðíåííÿ
name ²ì'ÿ ôàéëó àáî äàí³ (äëÿ ñòðîêîâîãî ïîòîêó) Ðÿäîê Âõ³ä
accs Äîñòóï äî ôàéëó (''-ñòðîêîâèé ïîò³ê;'r[+]'-÷èòàííÿ;'w[+]'-çàïèñ ç íóëÿ;'a[+]'-äîäàííÿ;...) Ðÿäîê Âõ³ä
mFormat Ôîðìàò äàíèõ ìàøèíè ('n'-ñèñò. ïîðÿäîê;'b'-BigEndian;'l'-LittleEndian) Ö³ëå Âõ³ä "n"
enc Êîäóâàííÿ ðÿäêó ó ôàéë³ Ëîã³÷íèé Âõ³ä

IO îá'ºêò

Çíà÷åííÿ:


Âëàñòèâîñò³:


Ôóíêö³¿:

2. Ôóíêö³¿ äëÿ ðîáîòè ç àñòðîíîì³÷íèì ÷àñîì

2.1. Ðÿäîê ÷àñó (tmFStr) <3047>

Îïèñ: Ïåðåòâîðþº àáñîëþòíèé ÷àñ ó ðÿäîê ïîòð³áíîãî ôîðìàòó. Çàïèñ ôîðìàòó â³äïîâ³äຠPOSIX-ôóíêö³¿ strftime.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
val Ðÿäîê ïîâíî¿ äàòè Ðÿäîê Ïîâåðíåííÿ
sec Ñåêóíäè Ö³ëå Âõ³ä 0
form Ôîðìàò Ðÿäîê Âõ³ä %Y-%m-%d %H:%M:%S

Ïðèêëàä:

using Special.FLibSYS;
test=tmFStr(SYS.time(),);
messPut("Example",0,"tmFStr(): "+test);

2.2. Ïîâíà äàòà (tmDate) <973>

Îïèñ: Ïîâåðòຠïîâíèé ÷àñ ó ñåêóíäàõ, õâèëèíàõ, ãîäèíàõ òà ³íøå, âèõîäÿ÷è ç àáñîëþòíîãî ÷àñó â ñåêóíäàõ â³ä åïîõè 1.1.1970.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
fullsec Ïîâí³ ñåêóíäè Ö³ëèé Âõ³ä 0
sec Ñåêóíäè [0...59] Ö³ëèé Âèõ³ä 0
min Õâèëèíè [0...59] Ö³ëèé Âèõ³ä 0
hour Ãîäèíè [0...23] Ö³ëèé Âèõ³ä 0
mday Äåíü ì³ñÿöÿ [1...31] Ö³ëèé Âèõ³ä 0
month ̳ñÿöü [0...11] Ö³ëèé Âèõ³ä 0
year гê, â³ä 1900 Ö³ëèé Âèõ³ä 0
wday Äåíü òèæíÿ [0...6] Ö³ëèé Âèõ³ä 0
yday Äåíü ó ðîêó [0...365] Ö³ëèé Âèõ³ä 0
isdst ˳òí³é ÷àñ Ö³ëèé Âèõ³ä 0

Ïðèêëàä:

using Special.FLibSYS;
curMin=curHour=curDay=curMonth=curYear=0;
tmDate(tmTime(),0,curMin,curHour,curDay,curMonth,curYear);
messPut("test",0,"Ïîòî÷íà õâèëèíà: "+curMin);
messPut("test",0,"Ïîòî÷íà ãîäèíà: "+curHour);
messPut("test",0,"Ïîòî÷íèé äåíü: "+curDay);
messPut("test",0,"Ïîòî÷íèé ì³ñÿöü: "+curMonth);
messPut("test",0,"Ïîòî÷íèé ð³ê: "+curYear);

2.3. Àáñîëþòíèé ÷àñ (tmTime) <220>

Îïèñ: Ïîâåðòຠàáñîëþòíèé ÷àñ â ñåêóíäàõ â³ä åïîõè 1.1.1970 òà ì³êðîñåêóíäàõ, ÿêùî usec âñòàíîâëåíî ó ïîçèòèâíå çíà÷åííÿ.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
sec Ñåêóíäè Ö³ëèé Ïîâåðíåííÿ 0
usec ̳êðîñåêóíäè Ö³ëèé Âèõ³ä -1

2.4. Êîíâåðòàö³ÿ ÷àñó ³ç ñèìâîëüíîãî ïðåäñòàâëåííÿ ó ÷àñ â ñåêóíäàõ, â³ä åïîõè 1.1.1970 (tmStrPTime) <2600>

Îïèñ: Ïîâåðòຠ÷àñ ó ñåêóíäàõ â³ä åïîõè 1.1.1970, âèõîäÿ÷è ³ç ñòðîêîâîãî çàïèñó ÷àñó, ó â³äïîâ³äíîñò³ ç âêàçàíèì øàáëîíîì. Íàïðèêëàä, øàáëîíó "%Y-%m-%d %H:%M:%S" â³äïîâ³äຠ÷àñ "2006-08-08 11:21:55". Îïèñ ôîðìàòó øàáëîíó ìîæíà îòðèìàòè ³ç äîêóìåíòàö³¿ íà POSIX-ôóíêö³þ "strptime".
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
sec Ñåêóíäè Ö³ëèé Ïîâåðíåííÿ 0
str Ðÿäîê äàòè Ðÿäîê Âõ³ä
form Ôîðìàò çàïèñó äàòè Ðÿäîê Âõ³ä %Y-%m-%d %H:%M:%S

Ïðèêëàä:

using Special.FLibSYS;
curMin=curHour=curDay=curMonth=curYear=0;
tmDate(tmTime(),0,curMin,curHour,curDay,curMonth,curYear);
test = tmStrPTime(""+curYear+"-"+(curMonth+1)+"-"+curDay+" 9:0:0",);
messPut("Example",0,"tmStrPTime(): "+test);

2.5. Ïëàíóâàííÿ ÷àñó ó ôîðìàò³ Cron (tmCron)

Îïèñ: Ïîâåðòຠ÷àñ, ñïëàíîâàíå ó ôîðìàò³ ñòàíäàðòó Cron ïî÷èíàþ÷è â³ä áàçîâîãî ÷àñó àáî â³ä ïîòî÷íîãî ÿêùî áàçîâèé íå âêàçàíèé.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
res Ðåçóëüòàò Ö³ëèé Ïîâåðíåííÿ 0
str Çàïèñ ó ñòàíäàðò³ Cron Ðÿäîê Âõ³ä * * * * *
base Áàçîâèé ÷àñ Ö³ëèé Âõ³ä 0

2.6. Ñîí (tmSleep)

Îïèñ: Êîðîòêèé ñîí â³ä íàíîñåêóíä òà äî STD_INTERF_TM (5 ñåêóíä).
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
res Ðåçóëüòàò Ö³ëèé Ïîâåðíåííÿ 0
tm ×àñ Ðåàëüíèé Âõ³ä 0

3. Ôóíêö³¿ ðîáîòè ç ïîâ³äîìëåííÿìè

3.1. Çàïèò ïîâ³äîìëåíü (messGet)

Îïèñ: Çàïèò ñèñòåìíèõ ïîâ³äîìëåíü.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì Ïî çàìîâ÷åííþ
rez Ðåçóëüòàò Îá'ºêò(Ìàñèâ) Ïîâåðíåííÿ
btm ×àñ ïî÷àòêó Ö³ëå Âõîä
etm ×àñ ê³íöÿ Ö³ëå Âõ³ä
cat Êàòåãîð³ÿ ïîâ³äîìëåííÿ Ðÿäîê Âõ³ä
lev гâåíü ïîâ³äîìëåííÿ Ö³ëèé Âõ³ä
arch Àðõ³âàòîð Ðÿäîê Âõ³ä

Ïåðåêëàä

3.2. Ãåíåðàöèÿ ñîîáùåíèÿ (messPut)

Îïèñàíèå: Ôîðìèðîâàíèå ñèñòåìíîãî ñîîáùåíèÿ.
Ïàðàìåòðû:

IDÏàðàìåòðÒèïÐåæèìÏî óìîë÷àíèþ
catÊàòåãîðèÿ ñîîáùåíèÿÑòðîêàÂõîä
levÓðîâåíü ñîîáùåíèÿÖåëûéÂõîä
messÒåêñò ñîîáùåíèÿÑòðîêàÂõîä

Ïðèìåð:

rnd_sq_gr11_lineClr="red";
Special.FLibSYS.messPut("Example",1,"Event: "+rnd_sq_gr12_leniClr);

4. Ôóíêöèè ðàáîòû ñ ñòðîêàìè

4.1. Ïîëó÷åíèå ðàçìåðà ñòðîêè (strSize) <114>

Îïèñàíèå: Èñïîëüçóåòñÿ äëÿ ïîëó÷åíèÿ ðàçìåðà.
Ïàðàìåòðû:

IDÏàðàìåòðÒèïÐåæèìÏî óìîë÷àíèþ
rezÐåçóëüòàòÖåëûéÂîçâðàò
strÑòðîêàÑòðîêàÂõîä

Ïðèìåð:

Special.FLibSYS.messPut("Example",1,"ReturnString: "+strSize("Example"));

4.2. Ïîëó÷åíèå ÷àñòè ñòðîêè (strSubstr) <413>

Îïèñàíèå: Èñïîëüçóåòñÿ äëÿ ïîëó÷åíèÿ ÷àñòè ñòðîêè.
Ïàðàìåòðû:

IDÏàðàìåòðÒèïÐåæèìÏî óìîë÷àíèþ
rezÐåçóëüòàòÑòðîêàÂîçâðàò
strÑòðîêàÑòðîêàÂõîä
posÏîçèöèÿÖåëûéÂõîä0
nÊîëè÷åñòâîÖåëûéÂõîä-1

Ïðèìåð:

using Special.FLibSYS;
test=strSubstr("Example", 0, strSize("Example")-1);
messPut("Example",1,"ReturnString: "+test);

4.3. Âñòàâêà îäíîé ñòðîêè â äðóãóþ (strInsert) <1200>

Îïèñàíèå: Èñïîëüçóåòñÿ äëÿ âñòàâêè îäíîé ñòðîêè â äðóãóþ.
Ïàðàìåòðû:

IDÏàðàìåòðÒèïÐåæèìÏî óìîë÷àíèþ
strÑòðîêàÑòðîêàÂûõîä
posÏîçèöèÿÖåëûéÂõîä0
insÂñòàâëÿåìàÿ ñòðîêàÑòðîêàÂõîä

4.4. Çàìåíà ÷àñòè ñòðîêè äðóãîé (strReplace) <531>

Îïèñàíèå: Èñïîëüçóåòñÿ äëÿ çàìåíû ÷àñòè ñðîêè äðóãîé ñòðîêîé.
Ïàðàìåòðû:

IDÏàðàìåòðÒèïÐåæèìÏî óìîë÷àíèþ
strÑòðîêàÑòðîêàÂûõîä
posÏîçèöèÿÖåëûéÂõîä0
nÊîëè÷åñòâîÖåëûéÂõîä-1
replÇàìåíÿþùàÿ ñòðîêàÑòðîêàÂõîä

4.5. Ðàçáîð ñòðîêè ïî ðàçäåëèòåëþ (strParse) <537>

Îïèñàíèå: Èñïîëüçóåòñÿ â ðàçáîðå ñòðîêè ïî ðàçäåëèòåëþ.
Ïàðàìåòðû:

IDÏàðàìåòðÒèïÐåæèìÏî óìîë÷àíèþ
rezÐåçóëüòàòÑòðîêàÂîçâðàò
strÑòðîêàÑòðîêàÂõîä
levÓðîâåíüÖåëûéÂõîä
sepÐàçäåëèòåëüÑòðîêàÂõîä"."
offÑìåùåíèåÖåëûéÂûõîä

Ïðèìåð:

using Special.FLibSYS;
ExapleString="Example:123";
test=strParse(ExapleString,1,":");
messPut("Example",0,"strParse(): "+test);

4.6. Ðàçáîð ïóòè (strParsePath) <300>

Îïèñàíèå: Èñïîëüçóåòñÿ â ðàçáîðå ïóòè íà ýëåìåíòû.
Ïàðàìåòðû:

IDÏàðàìåòðÒèïÐåæèìÏî óìîë÷àíèþ
rezÐåçóëüòàòÑòðîêàÂîçâðàò
pathÏóòüÑòðîêàÂõîä
levÓðîâåíüÖåëûéÂõîä
offÑìåùåíèåÖåëûéÂûõîä

Ïðèìåð:

using Special.FLibSYS;
test=strParsePath(path,0,"/");
messPut("Example",1,"strParsePath(): "+test);

4.7. Ïóòü â ñòðîêó ñ ðàçäåëèòåëåì (strPath2Sep)

Îïèñàíèå: Èñïîëüçóåòñÿ äëÿ ïðåîáðàçîâàíèÿ ïóòè â ñòðîêó ñ ðàçäåëèòåëåì.
Ïàðàìåòðû:

IDÏàðàìåòðÒèïÐåæèìÏî óìîë÷àíèþ
rezÐåçóëüòàòÑòðîêàÂîçâðàò
srcÈñòî÷íèêÑòðîêàÂõîä
sepÐàçäåëèòåëüÑòðîêàÂõîä"."

Ïðèìåð:

//Ïðåîáðàçóåì çíà÷åíèå "/ses_AGLKS/pg_so" àòðèáóòà "path" â çíà÷åíèå "ses_AGLKS.pg_so"
using Special.FLibSYS;
test = strPath2Sep(path);
messPut("Example",0,"path: "+path);
messPut("Example",0,"strPath2Sep(): "+test);


4.8. Êîäèðîâàíèå ñòðîêè â HTML (strEnc2HTML)

Îïèñàíèå: Èñïîëüçóåòñÿ äëÿ êîäèðîâàíèÿ ñòðîêè äëÿ èñïîëüçîâàíèÿ â èñõîäíèêå HTML.
Ïàðàìåòðû:

IDÏàðàìåòðÒèïÐåæèìÏî óìîë÷àíèþ
rezÐåçóëüòàòÑòðîêàÂîçâðàò
srcÈñòî÷íèêÑòðîêàÂõîä

4.9. Êîäèðîâàíèå òåêñòà â áèíàðíûé âèä (strEnc2Bin)

Îïèñàíèå: Èñïîëüçóåòñÿ äëÿ êîäèðîâàíèÿ òåêñòà â áèíàðíûé âèä, èç ôîðìàòà <00 A0 FA DE>.
Ïàðàìåòðû:

IDÏàðàìåòðÒèïÐåæèìÏî óìîë÷àíèþ
rezÐåçóëüòàòÑòðîêàÂîçâðàò
srcÈñòî÷íèêÑòðîêàÂõîä

4.10. Äåêîäèðîâàíèå òåêñòà èç áèíàðíîãî âèäà (strDec4Bin)

Îïèñàíèå: Èñïîëüçóåòñÿ äëÿ äåêîäèðîâàíèÿ òåêñòà èç áèíàðíîãî âèäà â ôîðìàò <00 A0 FA DE>.
Ïàðàìåòðû:

IDÏàðàìåòðÒèïÐåæèìÏî óìîë÷àíèþ
rezÐåçóëüòàòÑòðîêàÂîçâðàò
srcÈñòî÷íèêÑòðîêàÂõîä

4.11. Ïðåîáðàçîâàíèå âåùåñòâåííîãî â ñòðîêó (real2str)

Îïèñàíèå: Èñïîëüçóåòñÿ äëÿ ïðåîáðàçîâàíèÿ âåùåñòâåííîãî â ñòðîêó.
Ïàðàìåòðû:

IDÈìÿÒèïÐåæèìÏî óìîë÷àíèþ
rezÐåçóëüòàòÑòðîêàÂîçâðàò
valÇíà÷åíèåÂåùåñòâåííîåÂõîä
prcÒî÷íîñòüÖåëîåÂõîä4
tpÒèïÑòðîêàÂõîä"f"

4.12. Ïðåîáðàçîâàíèå öåëîãî â ñòðîêó (int2str)

Îïèñàíèå: Èñïîëüçóåòñÿ äëÿ ïðåîáðàçîâàíèÿ öåëîãî â ñòðîêó.
Ïàðàìåòðû:

IDÈìÿÒèïÐåæèìÏî óìîë÷àíèþ
rezÐåçóëüòàòÑòðîêàÂîçâðàò
valÇíà÷åíèåÖåëîåÂõîä
baseÁàçà, ïîääåðæèâàþòñÿ: 8, 10, 16ÖåëîåÂõîä10

4.13. Ïðåîáðàçîâàíèå ñòðîêè â âåùåñòâåííîå (str2real)

Îïèñàíèå: Èñïîëüçóåòñÿ äëÿ ïðåîáðàçîâàíèÿ ñòðîêè â âåùåñòâåííîå.
Ïàðàìåòðû:

IDÈìÿÒèïÐåæèìÏî óìîë÷àíèþ
rezÐåçóëüòàòÂåùåñòâåííîåÂîçâðàò
valÇíà÷åíèåÑòðîêàÂõîä

4.14. Ïðåîáðàçîâàíèå ñòðîêè â öåëîå (str2int)

Îïèñàíèå: Èñïîëüçóåòñÿ äëÿ ïðåîáðàçîâàíèÿ ñòðîêè â öåëîå.
Ïàðàìåòðû:

IDÈìÿÒèïÐåæèìÏî óìîë÷àíèþ
rezÐåçóëüòàòÖåëîåÂîçâðàò
valÇíà÷åíèåÑòðîêàÂõîä
baseÎñíîâàÖåëûéÂõîä0

4.15. Öèêëè÷åñêèé Èçáûòî÷íûé Êîä (CRC)

Îïèñàíèå: Ðåàëèçàöèÿ Öèêëè÷åñêîãî Èçáûòî÷íîãî Êîäà äëÿ äëèí 8-64 áèò.
Ïàðàìåòðû:

ID Ïàðàìåòð Òèï Ðåæèì Ïî óìîë÷àíèþ
rez Ðåçóëüòàò Öåëîå Âîçâðàò
data Äàííûå Ñòðîêà Âõîä
poly Ïîëèíîì (ðåâåðñèâíûé) Öåëûé Âõîä 40961 (0xA001)
width Øèðèíà Öåëûé Âõîä 16
init Èíèöèàëèçàöèÿ Öåëûé Âõîä -1 (0xFFFFFFFFFFFFFFFF)

4.16. Ñëåïîê ñîîáùåíèÿ 5 (MD5)

Îïèñàíèå: Ðàñ÷¸ò ñëåïêà ñîîáùåíèÿ 5.
Ïàðàìåòðû:

ID Ïàðàìåòð Òèï Ðåæèì Ïî óìîë÷àíèþ
rez Ðåçóëüòàò Ñòðîêà Âîçâðàò
data Äàííûå Ñòðîêà Âõîä

5. Ôóíêöèè ðàáîòû ñ âåùåñòâåííûì

5.1. Ðàçäåëåíèå float íà ñëîâà (floatSplitWord) <56>

Îïèñàíèå: Ðàçäåëåíèå float (4 áàéòîâ) íà ñëîâà (2 áàéòà).
Ïàðàìåòðû:

ID Ïàðàìåòð Òèï Ðåæèì Ïî óìîë÷àíèþ
val Çíà÷åíèå Âåùåñòâåííîå Âõîä
w1 Ñëîâî 1 Öåëûé Âûõîä
w2 Ñëîâî 2 Öåëûé Âûõîä

5.2. Îáúåäèíåíèå float èç ñëîâ (floatMergeWord) <70>

Îïèñàíèå: Îáúåäèíåíèå float (4 áàéòîâ) èç ñëîâ (2 áàéòà).
Ïàðàìåòðû:

ID Ïàðàìåòð Òèï Ðåæèì Ïî óìîë÷àíèþ
rez Ðåçóëüòàò Âåùåñòâåííîå Âîçâðàò
w1 Ñëîâî 1 Öåëûé Âõîä
w2 Ñëîâî 2 Öåëûé Âõîä

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

Íåêîòîðûå îáúåêòû ìîäóëÿ ïðåäîñòàâëÿþò ôóíêöèè ïîëüçîâàòåëüñêîãî ïðîãðàììèðîâàíèÿ.


Îáúåêò "Áèáëèîòåêà ôóíêöèé" (SYS.Special.FLibSYS)


Îáúåêò "Ïîëüçîâàòåëüñêàÿ ôóíêöèÿ" (SYS.Special.FLibSYS["funcID"])

Ññûëêè

Referring pages: HomePageUk/Doc
HomePageUk/Doc/DAQ
HomePageUk/Doc/FLibSYS


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