From OpenSCADAWiki
Jump to: navigation, search
Name Version License Source Languages Author Description
Service procedures library 1.0 Free (GPL) DB SQLite: File:OscadaLibs.db.gz, Most actual SQL en Roman Savochenko Library of the service procedures of different using.
  • Address: JavaLikeCalc => servProc
  • Compatibility: OpenSCADA >= 0.9

The library is wrote on the JavaLikeCalc language and aimed for different using.

To addressing the library functions you can use the static call address DAQ.JavaLikeCalc.lib_servProc.{Func}() or dynamic SYS.DAQ.JavaLikeCalc["lib_servProc"]["{Func}"].call(), SYS.DAQ.JavaLikeCalc["lib_servProc"].{Func}()". Where {Func} — function identifier in the library.

For connection the library to a project of the OpenSCADA station you can obtain the database file as:

  • supplied with a ready and proper package of the Linux distribution like to "openscada-libdb-main", "openscada-LibDB.Main";
  • directly taken for most actual one from the subversion repository and converted to the DB SQLite file in way:
$ wget http://oscada.org/svn/trunk/OpenSCADA/data/LibsDB/OscadaLibs.sql
$ sqlite3 -init OscadaLibs.sql OscadaLibs.db .exit

This obtained file next you can place into the project's database directory of the station and create the database object for the DB module "SQLite", registering the database file in the configuration.

To connect the library to a project of the OpenSCADA station it is possible by downloading the attached file of the database, placing it in in the database directory of the station's project and creating the database object for the DB module "SQLite", indicating the database file in the configuration.

1 TEST: Packing of the archiver on FS (archPackFStests)

Author: Roman Savochenko
Version: 1.0
License: GPL2
Description: Tests set for packing of the value archives to File System, to check the optimization algorithm. The stages are provided:

  • Stage 0: Filling the main values: "1,1,10,10,100,100,1000,1000,10000,10000,EVAL"
  • Stage 1: Changing to different value 20: "1,1,20,10,100,100,1000,1000,10000,10000,EVAL"
  • Stage 2: Setting a value for merging (equal) to the up (10): "1,1,20,10,10,100,1000,1000,10000,10000,EVAL"
  • Stage 3: Setting a value for merging (equal) to the down (1000): "1,1,20,10,10,1000,1000,1000,10000,10000,EVAL"
  • Stage 4: Setting a different value to the end 20000: "1,1,20,10,10,1000,1000,1000,10000,10000,20000,EVAL"
  • Stage 5: Changing the end value for merging to the up (10000): "1,1,20,10,10,1000,1000,1000,10000,10000,10000,EVAL"
  • Stage 6: Setting a value to the end for merging to the up (10000): "1,1,20,10,10,1000,1000,1000,10000,10000,10000,10000,EVAL"
  • Stage 7: Setting the end value to EVAL: "1,1,20,10,10,1000,1000,1000,10000,10000,10000,EVAL"
  • Stage 8: Setting an equal value for inserting 10000: "1,1,20,10,10,1000,1000,1000,10000,10000,10000,EVAL"

Function parameters:

Identifier Name Type Mode Default
tm Start time (14.03.2015 21:37) Integer Input 1426361839
per Period, seconds Integer Input 60
addr Archive address String Input test123
archiver Archiver address String Input FSArch.1m
step Step (0-8), -1 for all Integer Input -1

2 TEST: Release (releaseTests)

Author: Roman Savochenko
Version: 2.0
Description: Set of formal tests of the OpenSCADA releases:
0: System
1: Security User/Group tests
2: Transport subsystem tests

  • Data transferring through output and input transports by the test "TrOut":
means presence of the input transports with the name "testRelease[{N}]" and the connected output transport adress into description or address field (if equal one).

3: Protocol subsystem tests

  • Execution of the test controller object DAQ.ModBUS.testTCP:
means presence of the controller object DAQ.ModBUS.testTCP.
  • Execution of the test controller object DAQ.OPC_UA.test:
means presence of the controller object DAQ.OPC_UA.test.
  • Send requests to a test-echo protocol from a transport:
means presence of the user protocol object Protocol.UserProtocol.up_test.

4: Archive subsystem tests

  • Using the test "Mess" of the module "SystemTests" for archiving messages:
means presence the message archivers "test";
  • Assign/Clear archiving from the parameter attribute:
means presence "/DAQ/LogicLev/experiment/F3" with the attribute "ed", and the value archivers "1s"
  • The tests "Archive" of the value archiver to verify the correctness of the functioning of the sequential mechanism for packaging by "SystemTests":
means presence the archive "testArch_cntr" with the data period 1s and processed by the archiver FSArch.1s.

5: DB subsystem tests

  • The tests "BD" of the module "SystemTests":
means presence of the test DB with the name "testRelease".

6: DAQ subsystem tests

  • Test "Param" from the module "SystemTests":
presence of the DAQ parameter LogicLev.experiment.F3.
  • Test "Val" of the module "SystemTests" for the parameter attribute:
presence of the DAQ parameter LogicLev.experiment.F3.var.
  • Blocks create/remove, change, load, save and load from config and copy, set link:
presence the DAQ controller object "KM102cntr" for copy the block scheme.
presence the DAQ parameter LogicLev.experiment.F3.var.

7: UI subsystem tests
8: Special subsystem tests
Function parameters:

Identifier Name Type Mode Default
sub Subsystem (-1:All;0:SYS;1:Security;2:Transport;... Integer Input -1
rez Result Text Output
rezF Result for HTML file Text Output

3 CRC 16 (crc16)

Author: Roman Savochenko
Version: 1.0
Description: Standard Cyclic Redundancy Check (CRC) with free setting the polynomial, by default 0x8005. It isn't actual more by the common common CRC implementing.
Function parameters:

Identifier Name Type Mode Default
in Input String Input
out Result Integer Output
poly Polynomial (reversion) Integer Input 40961

4 Archives recalculation (procArh)

Author: Roman Savochenko
Version: 1.0
Description: Value archives recalculation.
Function parameters:

Identifier Name Type Mode Default
fromarch From archive String Input Archive.va_ai3_code
toarch To archive String Input Archive.va_ai3_dP
begs Begin time String Input 2006-08-08 9:21:56
ends End time String Input 2006-08-08 11:21:55

5 EXT: WackoWiki to MediaWiki (wacko2media)

Author: Roman Savochenko
Version: 1.0
Description: Procedure of conversion Wiki-dialect from WackoWiki to MediaWiki. Used to move OpenSCADA Wiki to MediaWiki.
Function parameters:

Identifier Name Type Mode Default
ndb MySQL DB id String Input wiki
wpg Wiki page String Input HomePageUk/Doc/SQLite
rez Result Text Return

6 EXT: Off-line documentation (docOffLine)

Author: Roman Savochenko
Version: 1.0
Description: Procedure of forming the offline documentation of OpenSCADA from Wiki by reading and processing the specified Wiki pages on different languages, currently it is: English, Ukrainian, Russian.
Function parameters:

Identifier Name Type Mode Default
res Result String Output
reqTr Tries of requests Integer Output 3
resDir Results directory String Input /home/roman/roman/work/Проекти/OpenSCADA/doc/
pages Pages list of "{wiki}:{langs}:{dest}" Text Input
Documents:en,uk,ru:index.html
Documents/Release_0.9:en,uk,ru:Release_0.9.html
About:en,uk,ru:About.html
Documents/Terms:en,uk,ru:Terms.html
Functions_and_demands:en,uk,ru:Functions_and_demands.html
Works/To_do:en:To_do.html
Documents/FAQ:en,uk,ru:FAQ.html
Documents/Quick_start:en,uk,ru:Quick_start.html
Documents/Program_manual:en,uk,ru:Program_manual.html
Documents/How_to:en,ru,uk:How_to.html
Documents/How_to/Install:en,ru,uk:How_to_Install.html
Documents/How_to/Live_disk:en,ru,uk:How_to_Live_disk.html
Documents/How_to/Violations,_alarms_and_notifications:en,ru,uk:How_to_Violations.html
Documents/How_to/Cyclic_programming:en,ru,uk:How_to_Cyclic_programming.html
Documents/How_to/Debug:en,ru,uk:How_to_Debug.html
Documents/How_to/Transferring_project_configuration:en,ru,uk:How_to_Transferring_project_configuration.html
Documents/How_to/Build_from_source:en,ru,uk:How_to_Build_from_source.html
Documents/How_to/Crash_report:en,ru,uk:How_to_Crash_report.html
Documents/How_to/Create_module:en,ru,uk:How_to_Create_module.html
Documents/DAQ:en,uk,ru:DAQ.html
Documents/User_API:en,uk,ru:User_API.html
Documents/API:en:API.html
Modules/SQLite:en,uk,ru:Modules/SQLite.html
Modules/MySQL:en,uk,ru:Modules/MySQL.html
Modules/FireBird:en,uk,ru:Modules/FireBird.html
Modules/DBF:en,uk,ru:Modules/DBF.html
Modules/PostgreSQL:en,uk,ru:Modules/PostgreSQL.html
Modules/Sockets:en,uk,ru:Modules/Sockets.html
Modules/Serial:en,uk,ru:Modules/Serial.html
Modules/SSL:en,uk,ru:Modules/SSL.html
Modules/SelfSystem:en,uk,ru:Modules/SelfSystem.html
Modules/UserProtocol:en,uk,ru:Modules/UserProtocol.html
Modules/HTTP:en,uk,ru:Modules/HTTP.html
Modules/JavaLikeCalc:en,uk,ru:Modules/JavaLikeCalc.html
Modules/LogicLev:en,uk,ru:Modules/LogicLev.html
Modules/BlockCalc:en,uk,ru:Modules/BlockCalc.html
Modules/DAQGate:en,uk,ru:Modules/DAQGate.html
Modules/System:en,uk,ru:Modules/System.html
Modules/ModBus:en,uk,ru:Modules/ModBus.html
Modules/DCON:en,uk,ru:Modules/DCON.html
Modules/OPC_UA:en,uk,ru:Modules/OPC_UA.html
Modules/SNMP:en,uk,ru:Modules/SNMP.html
Modules/ICP_DAS:en,uk,ru:Modules/ICP_DAS.html
Modules/Siemens:en,uk,ru:Modules/Siemens.html
Modules/DiamondBoards:en,uk,ru:Modules/DiamondBoards.html
Modules/Comedi:en,uk,ru:Modules/Comedi.html
Modules/SoundCard:en,uk,ru:Modules/SoundCard.html
Modules/BFN:en,uk,ru:Modules/BFN.html
Modules/SMH2Gi:en,uk,ru:Modules/SMH2Gi.html
Modules/GPIO:en,uk,ru:Modules/GPIO.html
Modules/FSArch:en,uk,ru:Modules/FSArch.html
Modules/DBArch:en,uk,ru:Modules/DBArch.html
Modules/VCAEngine:en,uk,ru:Modules/VCAEngine.html
Modules/QTStarter:en,uk,ru:Modules/QTStarter.html
Modules/QTCfg:en,uk,ru:Modules/QTCfg.html
Modules/Vision:en,uk,ru:Modules/Vision.html
Modules/WebCfgD:en,uk,ru:Modules/WebCfgD.html
Modules/WebCfg:en,uk,ru:Modules/WebCfg.html
Modules/WebVision:en,uk,ru:Modules/WebVision.html
Modules/WebUser:en,uk,ru:Modules/WebUser.html
Modules/FLibSYS:en,uk,ru:Modules/FLibSYS.html
Modules/SystemTests:en,uk,ru:Modules/SystemTests.html
Modules/FLibMath:en,uk,ru:Modules/FLibMath.html
Modules/FLibComplex1:en,uk,ru:Modules/FLibComplex1.html
pagesCur Current pages list of "{wiki}:{langs}:{dest}", for empty here used "pages" Text Input