Configuration file of the OpenSCADA system is provided to store the system and general configuration of OpenSCADA-station. Only in the configuration file and through the command-line options you can specify the part of the key system parameters of the station, so familiarity with the structure of the configuration file is necessary for professionals who make solutions based on OpenSCADA.
The configuration file of the OpenSCADA system can be called somehow, but the oscada.xml name and derived from it are accepted. The configuration file is usually indicated when you start the station by the command-line option "--config=/home/roman/roman/work/OScadaD/etc/oscada_demo.xml". For the convenience of the calling the startup scripts of the station are created with the correct configuration file or used the project manager at start script openscada_start. For example script (openscada_demo) uses for the demo station execution:
#!/bin/sh
openscada --config=/etc/oscada_demo.xml $@
If the configuration file is not specified then the standard configuration file: /etc/oscada.xml is used.
Structure of the configuration file based on the extensible markup language XML. Therefore the strict adherence to the rules of XML syntax is required. An example of the configuration file of the OpenSCADA, with configuration nodes of most of the OpenASCADA components, is given below:
<?xml version="1.0" encoding="UTF-8" ?> <OpenSCADA> <!-- This is the OpenSCADA configuration file. --> <station id="AGLKS"> <!-- Describe internal parameters for station. The station is OpenSCADA program. --> <prm id="StName">AGLKS</prm> <prm id="StName_ru">АГЛКС</prm> <prm id="StName_uk">АГЛКС</prm> <prm id="WorkDB">SQLite.GenDB</prm> <prm id="LogTarget">10</prm> <prm id="Lang2CodeBase">en</prm> <prm id="SaveAtExit">0</prm> <prm id="SavePeriod">0</prm> <node id="sub_BD"> <prm id="SYSStPref">0</prm> <tbl id="DB"> <fld ID="GenDB" TYPE="SQLite" NAME="Generic DB" NAME_ru="Основная БД" NAME_uk="Основна БД" ADDR="St.db" CODEPAGE="UTF-8"/> </tbl> </node> <node id="sub_Security"> <!-- <tbl id="Security_user"> <fld NAME="root" DESCR="Super user" DESCR_ru="Супер пользователь" DESCR_uk="Супер користувач" PASS="openscada"/> <fld NAME="user" DESCR="System user" DESCR_ru="Системный пользователь" DESCR_uk="Системний користувач" PASS=""/> </tbl> <tbl id="Security_grp"> <fld NAME="root" DESCR="Super users groups" DESCR_ru="Группа суперпользователей" DESCR_uk="Група суперкористувачів" USERS="root;user"/> </tbl>--> </node> <node id="sub_ModSched"> <prm id="ModAllow">*</prm> <prm id="ModDeny"></prm> <prm id="ChkPer">0</prm> </node> <node id="sub_Transport"> <!-- <tbl id="Transport_in"> <fld ID="WEB_1" MODULE="Sockets" NAME="Generic WEB interface" NAME_ru="Основной WEB интерфейс" NAME_uk="Основний WEB інтерфейс" DESCRIPT="Generic transport for WEB interface." DESCRIPT_ru="Основной транспорт для WEB интерфейса." DESCRIPT_uk="Основний транспорт для WEB інтерфейсу." ADDR="TCP::10002:0" PROT="HTTP" START="1"/> <fld ID="WEB_2" MODULE="Sockets" NAME="Reserve WEB interface" NAME_ru="Резервный WEB интерфейс" NAME_uk="Резервний WEB інтерфейс" DESCRIPT="Reserve transport for WEB interface." DESCRIPT_ru="Резервный транспорт для WEB интерфейса." DESCRIPT_uk="Резервний транспорт для WEB інтерфейсу." ADDR="TCP::10004:0" PROT="HTTP" START="1"/> </tbl> <tbl id="Transport_out"> <fld ID="testModBus" MODULE="Sockets" NAME="Test ModBus" NAME_ru="Тест ModBus" NAME_uk="Тест ModBus" DESCRIPT="Data exchange by protocol ModBus test." DESCRIPT_ru="Тест обмена по протоколу ModBus." DESCRIPT_uk="Тест обміну за протоколом ModBus." ADDR="TCP:localhost:10502" START="1"/> </tbl>--> </node> <node id="sub_DAQ"> <!-- <tbl id="tmplib"> <fld ID="test2" NAME="Test 2" NAME_ru="Тест 2" NAME_uk="Тест 2" DESCR="" DESCR_ru="" DESCR_uk="" DB="tmplib_test2"/> </tbl> <tbl id="tmplib_test2"> <fld ID="test2" NAME="Test 2" NAME_ru="Тест 2" NAME_uk="Тест 2" DESCR="" DESCR_ru="" DESCR_uk="" PROGRAM="JavaLikeCalc.JavaScript
cnt=5*i;"/> </tbl> <tbl id="tmplib_test2_io"> <fld TMPL_ID="test2" ID="i" NAME="I" NAME_ru="I" NAME_uk="I" TYPE="4" FLAGS="160" VALUE="" POS="0"/> <fld TMPL_ID="test2" ID="cnt" NAME="Cnt" NAME_ru="Cnt" NAME_uk="Cnt" TYPE="4" FLAGS="32" VALUE="" POS="0"/> </tbl>--> <node id="mod_LogicLev"> <!-- <tbl id="DAQ"> <fld ID="test2" NAME="Test 2" NAME_ru="Тест 2" NAME_uk="Тест 2" DESCR="" DESCR_ru="" DESCR_uk="" ENABLE="1" START="1" PRM_BD="test2prm" PERIOD="1000" PRIOR="0"/> </tbl> <tbl id="test2prm"> <fld SHIFR="test2" NAME="Test 2" NAME_ru="Тест 2" NAME_uk="Тест 2" DESCR="" DESCR_ru="" DESCR_uk="" EN="1" MODE="2" PRM="test2.test2"/> </tbl>--> </node> <node id="mod_System"> <!-- <tbl id="DAQ"> <fld ID="DataOS" NAME="Data OS" NAME_ru="Даные ОС" NAME_uk="Дані ОС" DESCR="Data of services and subsystems OS." DESCR_ru="Данные сервисов и подсистем ОС." DESCR_uk="Дані сервісів та підсистем ОС." ENABLE="1" START="1" AUTO_FILL="0" PRM_BD="DataOSprm" PERIOD="1000" PRIOR="0"/> </tbl> <tbl id="DataOSprm"> <fld SHIFR="CPU" NAME="CPU load" NAME_ru="Нагрузка CPU" NAME_uk="Навантаження CPU" DESCR="" DESCR_ru="" DESCR_uk="" EN="1" TYPE="CPU" SUBT="gen"/> <fld SHIFR="MEM" NAME="Memory" NAME_ru="Память" NAME_uk="Пам\'ять" DESCR="" DESCR_ru="" DESCR_uk="" EN="1" TYPE="MEM"/> </tbl> --> </node> <node id="mod_DiamondBoards"> <!-- <tbl id="DAQ"> <fld ID="Athena" NAME="Athena board" NAME_ru="Плата Athena" NAME_uk="Плата Athena" DESCR="" DESCR_ru="" DESCR_uk="" ENABLE="1" START="0" BOARD="25" PRM_BD_A="AthenaAnPrm" PRM_BD_D="AthenaDigPrm" ADDR="640" INT="5" DIO_CFG="0" ADMODE="0" ADRANGE="0" ADPOLAR="0" ADGAIN="0" ADCONVRATE="1000"/> </tbl> <tbl id="AthenaAnPrm"> <fld SHIFR="ai0" NAME="AI 0" NAME_ru="AI 0" NAME_uk="AI 0" DESCR="" DESCR_ru="" DESCR_uk="" EN="0" TYPE="0" CNL="0" GAIN="0"/> </tbl> <tbl id="AthenaDigPrm"> <fld SHIFR="di0" NAME="DI 0" NAME_ru="DI 0" NAME_uk="DI 0" DESCR="" DESCR_ru="" DESCR_uk="" EN="0" TYPE="0" PORT="0" CNL="0"/> </tbl> --> </node> <node id="mod_BlockCalc"> <!-- <tbl id="DAQ"> <fld ID="Model" NAME="Model" NAME_ru="Модель" NAME_uk="Модель" DESCR="" DESCR_ru="" DESCR_uk="" ENABLE="1" START="1" PRM_BD="Model_prm" BLOCK_SH="Model_blcks" PERIOD="1000" PRIOR="0" PER_DB="0" ITER="1"/> </tbl> <tbl id="Model_blcks"> <fld ID="Klap" NAME="Klapan" NAME_ru="Клапан" NAME_uk="Клапан" DESCR="" DESCR_ru="" DESCR_uk="" FUNC="DAQ.JavaLikeCalc.lib_techApp.klap" EN="1" PROC="1"/> </tbl> <tbl id="Model_blcks_io"> <fld BLK_ID="Klap" ID="l_kl1" TLNK="0" LNK="" VAL="50"/> <fld BLK_ID="Klap" ID="l_kl2" TLNK="0" LNK="" VAL="20"/> </tbl> <tbl id="Model_prm"> <fld SHIFR="l_kl" NAME="Klap lev" NAME_ru="Полож. клапана" NAME_uk="Полож. клапана" DESCR="" DESCR_ru="" DESCR_uk="" EN="1" IO="Klap.l_kl1"/> </tbl> --> </node> <node id="mod_JavaLikeCalc"> <!-- <tbl id="DAQ"> <fld ID="CalcTest" NAME="Calc Test" NAME_ru="Тест вычисл." NAME_uk="Тест обчисл." DESCR="" DESCR_ru="" DESCR_uk="" ENABLE="1" START="1" PRM_BD="CalcTest_prm" FUNC="TemplFunc.d_alarm" SCHEDULE="1" PRIOR="0" ITER="1"/> </tbl> <tbl id="CalcTest_val"> <fld ID="in" VAL="0"/> <fld ID="alrm" VAL=""/> <fld ID="alrm_md" VAL="1"/> <fld ID="alrm_mess" VAL="Error present."/> </tbl> <tbl id="CalcTest_prm"> <fld SHIFR="alrm" NAME="Alarm" NAME_ru="Авария" NAME_uk="Аварія" DESCR="" DESCR_ru="" DESCR_uk="" EN="1" FLD="alrm"/> </tbl> <tbl id="lib"> <fld ID="TemplFunc" NAME="" NAME_ru="" NAME_uk="" DESCR="" ESCR_ru="" DESCR_uk="" DB="lib_TemplFunc"/> </tbl> <tbl id="lib_TemplFunc"> <fld ID="d_alarm" NAME="Digit alarm" NAME_ru="Авария по дискр." NAME_uk="Аварія за дискр" DESCR="" FORMULA="alrm=(in==alrm_md)?"1:"+alrm_mess:"0";"/> </tbl> <tbl id="lib_TemplFunc_io"> <fld F_ID="d_alarm" ID="in" NAME="Input" NAME_ru="Вход" NAME_uk="Вхід" TYPE="3" MODE="0" DEF="" HIDE="0" POS="0"/> <fld F_ID="d_alarm" ID="alrm" NAME="Alarm" NAME_ru="Авария" NAME_uk="Аварія" TYPE="0" MODE="1" DEF="" HIDE="0" POS="1"/> <fld F_ID="d_alarm" ID="alrm_md" NAME="Alarm mode" NAME_ru="Режим аварии" NAME_uk="Режим аварії" TYPE="3" MODE="0" DEF="" HIDE="0" POS="2"/> <fld F_ID="d_alarm" ID="alrm_mess" NAME="Alarm message" NAME_ru="Сообщ. аварии" NAME_uk="Повід. аварії" TYPE="0" MODE="0" DEF="" HIDE="0" POS="3"/> </tbl>--> </node> <node id="mod_Siemens"> <!-- <tbl id="DAQ"> <fld ID="test2" NAME="Test 2" NAME_ru="Тест 2" NAME_uk="Тест 2" DESCR="" DESCR_ru="" DESCR_uk="" ENABLE="1" START="1" PRM_BD="test2prm" PERIOD="1000" PRIOR="0" CIF_DEV="0" ADDR="5" ASINC_WR="0"/> </tbl> <tbl id="test2prm"> <fld SHIFR="test2" NAME="Test 2" NAME_ru="Тест 2" NAME_uk="Тест 2" DESCR="" DESCR_ru="" DESCR_uk="" EN="1" TMPL="S7.ai_man"/> </tbl>--> </node> <node id="mod_SNMP"> <!-- <tbl id="DAQ"> <fld ID="test2" NAME="Test 2" NAME_ru="Тест 2" NAME_uk="Тест 2" DESCR="" DESCR_ru="" DESCR_uk="" ENABLE="1" START="1" PRM_BD="test2prm" PERIOD="1000" PRIOR="0" ADDR="localhost" COMM="public" PATTR_LIM="20"/> </tbl> <tbl id="test2prm"> <fld SHIFR="test2" NAME="Test 2" NAME_ru="Тест 2" NAME_uk="Тест 2" DESCR="" DESCR_ru="" DESCR_uk="" EN="1" OID_LS="system"/> </tbl>--> </node> <node id="mod_ModBus"> <!-- <tbl id="DAQ"> <fld ID="test2" NAME="Test 2" NAME_ru="Тест 2" NAME_uk="Тест 2" DESCR="" DESCR_ru="" DESCR_uk="" ENABLE="1" START="1" PRM_BD="test2prm" PERIOD="1000" PRIOR="0" TRANSP="Sockets" ADDR="exlar.diya.org" NODE="1"/> </tbl> <tbl id="test2prm"> <fld SHIFR="test2" NAME="Test 2" NAME_ru="Тест 2" NAME_uk="Тест 2" DESCR="" DESCR_ru="" DESCR_uk="" EN="1" ATTR_LS="321:0:tst:Test"/> </tbl>--> </node> <node id="mod_DAQGate"> <!-- <tbl id="DAQ"> <fld ID="test2" NAME="Test 2" NAME_ru="Тест 2" NAME_uk="Тест 2" DESCR="" DESCR_ru="" DESCR_uk="" ENABLE="1" START="1" PRM_BD="test2prm" PERIOD="1000" PRIOR="0" SYNCPER="60" STATIONS="loop" CNTRPRM="System.AutoDA"/> </tbl>--> </node> <node id="mod_DCON"> <!--<tbl id="DAQ"> <fld ID="test2" NAME="Test 2" NAME_ru="Тест 2" NAME_uk="Тест 2" DESCR="" DESCR_ru="" DESCR_uk="" ENABLE="1" START="1" PRM_BD="test2prm" PERIOD="1" PRIOR="0" ADDR="" REQ_TRY="1"/> </tbl> <tbl id="test2prm"> <fld SHIFR="test2" NAME="Test 2" NAME_ru="Тест 2" NAME_uk="Тест 2" DESCR="" DESCR_ru="" DESCR_uk="" EN="1" MOD_TP="0" MOD_ADDR="1" CRC_CTRL="1"/> </tbl>--> </node> <node id="mod_ICP_DAS"> <!--<tbl id="DAQ"> <fld ID="test2" NAME="Test 2" NAME_ru="Тест 2" NAME_uk="Тест 2" DESCR="" DESCR_ru="" DESCR_uk="" ENABLE="1" START="1" PRM_BD="test2prm" PERIOD="1" PRIOR="0" BUS="1" BAUD="115200" LP_PRMS="" REQ_TRY="3"/> </tbl> <tbl id="test2prm"> <fld SHIFR="test2" NAME="Test 2" NAME_ru="Тест 2" NAME_uk="Тест 2" DESCR="" DESCR_ru="" DESCR_uk="" EN="1" MOD_TP="552985" MOD_ADDR="0" MOD_SLOT="1" MOD_PRMS="0"/> </tbl>--> </node> <node id="mod_OPC_UA"> <!--<tbl id="DAQ"> <fld ID="test2" NAME="Test 2" NAME_ru="Тест 2" NAME_uk="Тест 2" DESCR="" DESCR_ru="" DESCR_uk="" ENABLE="1" START="1" PRM_BD="test2prm" SCHEDULE="1" PRIOR="0" SYNCPER="60" ADDR="" EndPoint="opc.tcp://localhost:4841" SecPolicy="None" SecMessMode="1" Cert="" PvKey="" AttrsLimit="100"/> </tbl> <tbl id="test2prm"> <fld SHIFR="test2" NAME="Test 2" NAME_ru="Тест 2" NAME_uk="Тест 2" DESCR="" DESCR_ru="" DESCR_uk="" EN="1" ND_LS=""/> </tbl>--> </node> <node id="mod_SoundCard"> <!--<tbl id="DAQ"> <fld ID="test2" NAME="Test 2" NAME_ru="Тест 2" NAME_uk="Тест 2" DESCR="" DESCR_ru="" DESCR_uk="" ENABLE="1" START="1" PRM_BD="test2prm" CARD="" SMPL_RATE="8000" SMPL_TYPE="1"/> </tbl> <tbl id="test2prm"> <fld SHIFR="test2" NAME="Test 2" NAME_ru="Тест 2" NAME_uk="Тест 2" DESCR="" DESCR_ru="" DESCR_uk="" EN="1" CHANNEL="0"/> </tbl>--> </node> </node> <node id="sub_Archive"> <prm id="MessBufSize">1000</prm> <prm id="MessPeriod">5</prm> <prm id="ValPeriod">1000</prm> <prm id="ValPriority">10</prm> <!-- <tbl id="Archive_mess_proc"> <fld ID="StatErrors" MODUL="FSArch" NAME="Errors" NAME_ru="Ошибки" NAME_uk="Помилки" DESCR="Local errors\' archive" DESCR_ru="Архив локальных ощибок" DESCR_uk="Архів локальних помилок" START="1" CATEG="/DemoStation*" LEVEL="4" ADDR="ARCHIVES/MESS/stError/"/> <fld ID="NetRequsts" MODUL="FSArch" NAME="Net requests" NAME_ru="Сетевые запросы" NAME_uk="Мережеві запити" DESCR="Requests to server through transport Sockets." DESCR_ru="Запросы к серверу через транспорт Sockets." DESCR_uk="Запити до сервера через транспорт Sockets." START="1" CATEG="/DemoStation/Transport/Sockets*" LEVEL="1" ADDR="ARCHIVES/MESS/Net/"/> </tbl> <tbl id="Archive_val_proc"> <fld ID="1h" MODUL="FSArch" NAME="1hour" NAME_ru="1час" NAME_uk="1год" DESCR="Averaging for hour" DESCR_ru="Усреднение за час" DESCR_uk="Усереднення за годину" START="1" ADDR="ARCHIVES/VAL/1h/" V_PER="360" A_PER="60"/> </tbl> <tbl id="Archive_val"> <fld ID="test1" NAME="Test 1" NAME_ru="Тест 1" NAME_uk="Тест 1" DESCR="Test 1" DESCR_ru="Тест 1" DESCR_uk="Тест 1" START="1" VTYPE="1" BPER="1" BSIZE="200" BHGRD="1" BHRES="0" SrcMode="0" Source="" ArchS=""/> </tbl>--> </node> <node id="sub_Protocol"> </node> <node id="sub_UI"> <node id="mod_QTStarter"> <prm id="StartMod">QTCfg</prm> </node> <node id="mod_WebCfg"> <prm id="SessTimeLife">20</prm> </node> <node id="mod_VCAEngine"> <!-- <tbl id="LIB"> <fld ID="test2" NAME="Test 2" NAME_ru="Тест 2" NAME_uk="Тест 2" DESCR="" DESCR_ru="" DESCR_uk="" DB_TBL="wlib_test2" ICO="" USER="root" GRP="UI" PERMIT="436"/> </tbl> <tbl id="wlib_test2"> <fld ID="test2" ICO="" PARENT="/wlb_originals/wdg_Box" PROC="" PROC_ru="" PROC_uk="" PROC_PER="-1" USER="root" GRP="UI" PERMIT="436"/> </tbl> <tbl id="wlib_test2_io"> <fld IDW="test2" ID="name" IO_VAL="Test 2" IO_VAL_ru="Тест 2" IO_VAL_uk="Тест 2" SELF_FLG="" CFG_TMPL="" CFG_TMPL_ru="" CFG_TMPL_uk="" CFG_VAL=""/> <fld IDW="test2" ID="dscr" IO_VAL="Test module 2" IO_VAL_ru="Тест модуля 2" IO_VAL_uk="Тест модуля 2" SELF_FLG="" CFG_TMPL="" CFG_TMPL_ru="" CFG_TMPL_uk="" CFG_VAL=""/> </tbl> <tbl id="PRJ"> <fld ID="test2" NAME="Test 2" NAME_ru="Тест 2" NAME_uk="Тест 2" DESCR="" DESCR_ru="" DESCR_uk="" DB_TBL="prj_test2" ICO="" USER="root" GRP="UI" PERMIT="436"/> </tbl> <tbl id="prj_test2"> <fld OWNER="/test2" ID="pg1" ICO="" PARENT="/wlb_originals/wdg_Box" PROC="" PROC_ru="" PROC_uk="" PROC_PER="-1" USER="root" GRP="UI" PERMIT="436" FLGS="1"/> <fld OWNER="/test2/pg1" ID="pg2" ICO="" PARENT="/wlb_originals/wdg_Box" PROC="" PROC_ru="" PROC_uk="" PROC_PER="-1" USER="root" GRP="UI" PERMIT="436" FLGS="0"/> </tbl> <tbl id="prj_test2_incl"> <fld IDW="/prj_test2/pg_pg1" ID="wdg1" PARENT="/wlb_originals/wdg_Box"/> </tbl>--> </node> </node> <node id="sub_Special"> <node id="mod_SystemTests"> <prm id="Param" on="0" per="5" name="LogicLev.experiment.F3"/> <prm id="XML" on="0" per="10" file="/etc/oscada.xml"/> <prm id="Mess" on="0" per="10" categ="" arhtor="DBArch.test3" depth="10"/> <prm id="SOAttach" on="0" per="20" name="../../lib/openscada/daq_LogicLev.so" mode="0" full="1"/> <prm id="Val" on="0" per="1" name="LogicLev.experiment.F3.var" arch_len="5" arch_per="1000000"/> <prm id="Val" on="0" per="1" name="System.AutoDA.CPULoad.load" arch_len="10" arch_per="1000000"/> <prm id="DB" on="0" per="10" type="MySQL" addr="server.diya.org;roman;123456;oscadaTest" table="test" size="1000"/> <prm id="DB" on="0" per="10" type="DBF" addr="./DATA/DBF" table="test.dbf" size="1000"/> <prm id="DB" on="0" per="10" type="SQLite" addr="./DATA/test.db" table="test" size="1000"/> <prm id="DB" on="0" per="10" type="FireBird" addr="server.diya.org:/var/tmp/test.fdb;roman;123456" table="test" size="1000"/> <prm id="TrOut" on="0" per="1" addr="TCP:127.0.0.1:10001" type="Sockets" req="time"/> <prm id="TrOut" on="0" per="1" addr="UDP:127.0.0.1:10001" type="Sockets" req="time"/> <prm id="TrOut" on="0" per="1" addr="UNIX:./oscada" type="Sockets" req="time"/> <prm id="TrOut" on="0" per="1" addr="UDP:127.0.0.1:daytime" type="Sockets" req="time"/> <prm id="SysContrLang" on="0" per="10" path="/Archive/FSArch/mess_StatErrors/%2fprm%2fst"/> <prm id="ValBuf" on="0" per="5"/> <prm id="Archive" on="0" per="30" arch="test1" period="1000000"/> <prm id="Base64Code" on="0" per="10"/> </node> </node> </station> </OpenSCADA>
Lets examine in details the structure of the configuration file. A configuration file can contain a configuration of several stations in the sections <station id="AGLKS"/>. To attribute set the identifier of the station. Using one or another section of the station at startup is specified by the command-line option --station=AGLKS. Section of the station directly contains parameters of the station and subsystems' sections. Configuration options of the section are written in the form <prm id="StName">AGLKS</prm>. Where in the attribute <id> the ID of the attribute is specified, and in the tag's body the value of parameter "AGLKS" is specified. The list of available options and their description for the station and all other sections can be obtained from the console by calling OpenSCADA with parameter --help.
Sections of subsystem (<node id="sub_DAQ" />) contains parameters of subsystem, sections of modules and sections of tables of reflections of the data of databases in the configuration file. Sections of modules (<node id="mod_DiamondBoards" />) contain the individual parameters of modules and sections of tables of reflection of the data of databases in the configuration file.
Sections of the tables of reflection of the data of databases are provided for placement in the configuration file records of DB tables for the OpenSCADA components. Lets examine the table of incoming transports "Transport_in" of subsystem transports (<node id="sub_Transport">) from the example of configuration file above. The table contains two records with fields: ID, MODULE, NAME, DESCRIPT, ADDR, PROT, START. After booting with this section and in general without the DB in the subsystem "Transports" of the "Sockets" module you'll see two input transports. Formats of the table's structures of the main components are included in the demo configuration files. For the details of the database's structure you should read the relevant documentation of modules or simple save the object into the configuration file.
The result of the command: # ./openscada_AGLKS --help
***************************************************************************
********** OpenSCADA v0.9 (Linux-3.16.0-4-amd64). *********
***************************************************************************
===========================================================================
==================== Generic options ======================================
===========================================================================
-h, --help Info message about the system options.
--config=<file> The station configuration file.
--station=<id> The station identifier.
--statName=<name> The station name.
--demon, --daemon Start into the daemon mode.
--pidFile=<file> The file for the programm process ID place here.
--coreDumpAllow Set the limits for a core dump creation allow on the crash.
--messLev=<level> Process messages <level> (0-7).
--log=<direct> Direct messages to, by bitfield:
0x1 - syslogd;
0x2 - stdout;
0x4 - stderr;
0x8 - the messages archive.
----------- The config-file station '/' parameters -----------
StName <nm> Station name.
WorkDB <Type.Name> Work DB (type and name).
WorkDir <path> Work directory.
ModDir <path> Modules directory.
IcoDir <path> Icons directory.
DocDir <path> Documents directory.
MessLev <level> Messages <level> (0-7).
SelDebCats <list> Debug categories list (separated by ';').
LogTarget <direction> Direct messages to, by bitfield:
0x1 - syslogd;
0x2 - stdout;
0x4 - stderr;
0x8 - the messages archive.
Lang <lang> Work-internal language, like "en_US.UTF-8".
Lang2CodeBase <lang> Base language for variable texts translation, two symbols code.
MainCPUs <list> Main used CPUs list (separated by ':').
SaveAtExit <true> Save the system at exit.
SavePeriod <sec> Save the system period.
=================== Subsystem "Module scheduler" options =================
--modPath=<path> Modules <path> (/var/os/modules/).
------------ Parameters of section '/sub_ModSched/' in config-file -----------
ModPath <path> Path to shared libraries(modules).
ModAllow <list> List of shared libraries allowed for automatic loading, attaching and starting (bd_DBF.so;daq_JavaLikeCalc.so).
Use '*' value for allow all modules.
ModDeny <list> List of shared libraries deny for automatic loading, attaching and starting (bd_DBF.so;daq_JavaLikeCalc.so).
ChkPer <sec> Period of checking at new shared libraries(modules).
========================= Subsystem "DB" options ========================
----------- The config-file station '/sub_BD/' parameters -----------
SYSStPref <1> Use station id prefix into generic (SYS) table.
======================= Subsystem "Security" options ====================
======================= Subsystem "Transports" options ==================
=============== Subsystem "Transport protocols" options =================
======================= The module <Protocol:HTTP> options =======================
---------- Parameters of the module section '/sub_Protocol/mod_HTTP/' in config-file ----------
AuthTime <min> Life time of the authentication, minutes (default 10).
=================== Subsystem "Data acquisition" options ================
------------ Parameters of section '/sub_DAQ/' in config-file -----------
RdStLevel <lev> The current station redundant level.
RdTaskPer <s> The redundant task call period.
RdRestConnTm <s> Restore connection timeout to dead reserve stations.
RdRestDtTm <hour> Restore data archive depth from a reserve station after deadline.
RdStList <list> Redundant stations list, separated symbol ';' (st1;st2).
======================== Subsystem "Archives" options ===================
------------ Parameters of section '/sub_Archive/' in config-file -----------
MessBufSize <items> Messages buffer size.
MessPeriod <sec> Message archiving period.
ValPeriod <msec> Values archiving period.
ValPriority <level> Values task priority level.
MaxReqMess <items> Maximum request messages.
MaxReqVals <items> Maximum request values.
======================= The module <Archive:FSArch> options =======================
--noArchLimit Disable archives limit to the file number. Use for see archives mode, not work.
======================= Subsystem "Special" options =====================
======================= The module <Special:SystemTests> options =======================
---------- Parameters of the module section '/sub_Special/mod_SystemTests/' in config-file ----------
All tests main options:
id test's id;
on on test's flag;
per repeat period (sek).
*** Test's options ***
1) Param DAQ parameters test. Make read a parameter's attributes and configuration fields.
1:name DAQ parameter address
2) XML XML file parsing test. Parse and show selected file structure.
1:file XML file
3) Mess Messages archive test. Periodic read new messages from archive, for selected archivator.
1:arhtor Archivator
2:categ Messages category pattern
3:depth Messages depth (s)
4) SOAttach Attach/detach module test.
1:name Path to module
2:mode Mode (1-attach;-1-detach;0-change)
3:full Full attach(to start)
5) Val Parameter attribute's value test.
Periodic make gathering for last value of selected attribute, and also gathering from archive for selected depth.
1:name Parameter attribute path
2:arch_len Archive value getting depth (s)
3:arch_per Archive value getting period (us)
6) DB Full database test. Make:
- make/open DB;
- make/open table;
- make multiply records for determined structure;
- modify multiply records;
- get and check values for multiply records;
- modify record and table structure;
- remove multiply records;
- close/remove table;
- close/remove DB.
1:type DB type
2:addr DB address
3:table DB table
4:size Records number
7) TrOut Output and/or input transports test.
Make test for output transport by send the request to selected input transport.
1:addr Address
2:type Transport module
3:req Request text
8) SysContrLang System control language test.
Make request to language elements by full path set.
Full path to language element have view </Archive/%2fbd%2fm_per>.
Full path contained two included path.
First </d_Archive/> is path to the node of the control tree.
Second </bd/m_per> is path to concrete node's element.
1:path Path to language element
9) ValBuf Value buffer tests.
Contain 13 tests for all aspects of value buffer (subsystem "Archives").
10) Archive Value archive allocation tests.
Contain 7(8) tests for value archivator for check to correct working the consecutive pack mechanism.
1:arch Value archive
2:period Values period (us)
3:archtor Archivator
11) Base64Code Mime Base64 encoding algorithm tests.
===================== Subsystem "User interfaces" options ===============
======================= The module <UI:QTCfg> options =======================
---------- Parameters of the module section '/sub_UI/mod_QTCfg/' in config-file ----------
StartPath <path> Configurator start path.
StartUser <user> No password requested start user.
======================= The module <UI:QTStarter> options =======================
----------- Qt debug commandline options ----------
--sync Switches to synchronous mode X11 for debugging.
--widgetcount Prints debug message at the end about number of widgets
left undestroyed and maximum number of widgets existed at
the same time.
----------- Qt commandline options ----------------
--qws With Qt for Embedded Linux makes this application the server.
--style=<nm> Sets GUI style to <nm> (windows, platinum, plastique, ...).
--stylesheet=<path> Sets styleSheet by <path> to file that contains.
--session=<nm> Restores from an earlier session <nm>.
--reverse Sets layout direction to Qt::RightToLeft.
--graphicssystem=<nm> Sets the backend to be used for on-screen widgets and QPixmaps (raster, opengl).
--display=<nm> Sets the X display name (default it is $DISPLAY).
--geometry=<geom> Sets the client geometry of the first window that is shown.
---------- Parameters of the module section '/sub_UI/mod_QTStarter/' in config-file ----------
StartMod <moduls> Start modules list (sep - ';').
======================= The module <UI:Vision> options =======================
---------- Parameters of the module section '/sub_UI/mod_Vision/' in config-file ----------
StartUser <user> No password requested start user.
UserPass <pass> User password for no local start.
RunPrjs <list> Run projects list on the module start.
RunPrjsSt {0;1} Display status for run projects (default = 1).
WinPosCntrSave {0;1} Windows position control and save (default = 1).
ExitLstRunPrjCls {0;1}Exit on last run project close (default = 1).
CachePgLife <hours> Cached pages lifetime.
VCAstation <id> VCA station id ('.' - local).
RestoreTime <seconds> Restore connection time.
======================= The module <UI:WebVision> options =======================
---------- Parameters of the module section '/sub_UI/mod_WebVision/' in config-file ----------
SessTimeLife <time> Time of the session life, minutes (default 10).