Na stránce https://generator.mervis.info lze vygenerovat Mervis SCADA projekt podle zadaných parametrů a volitelně s využitím mapovacího souboru ve formátu XLSX.
Parametry lze definovat jako jednotlivé hodnoty v textovém poli, nebo mohou být uloženy v textovém souboru (např. params.txt) a vybrány z vašeho počítače.
Dále lze využít tzv. mapovací soubor ve formátu XLSX, ve kterém mohou být definovány jednotlivé datové body. V tomto souboru je možné transformovat vstupní hodnoty (klíče a hodnoty) na nové, čímž lze vytvořit vlastní datovou strukturu pro výsledný projekt.
Níže jsou popsány jednotlivé dostupné možnosti. Na stránce Příklady jsou uvedeny konkrétní praktické příklady použití.
--projId 5eee5946-293c-4753-9495-d6b11f73d670 Jedinečný GUID jako identifikátor projektu--projName ExampleProject Srozumitelný název projektu--projTimeZone Europe/Prague Časové pásmo projektu--outputDirectory 5eee5946-293c-4753-9495-d6b11f73d670 Adresář pro generované soubory--outputFileSuffix _p5 (volitelné) Určuje příponu výstupního souboru. V tomto příkladu je název výstupního souboru nastaven na <projId>.data_p5 místo <projId>.data.--mdbKeyMappingTable [filepath] Excelový soubor s direktivami pro zpracování dat. Podporuje více cest k souborům oddělených čárkou.--forceTimestamp [value] Vynutit konkrétní časové razítko pro všechny generované hodnoty (výchozí: min)'min' (0001-01-01T00:00:00), 'current' (aktuální UTC), nebo explicitní ISO formát např. '2025-03-25T14:30:00.000'--sourceType [MervisDb|DataHub|SharkPlc] Určuje typ zdroje dat
Při použití mapovacího souboru s --mdbKeyMappingTable bez zadání --sourceType běží generátor v mapping-only mode:
--mdbDpNameKey, --mdbTreeLevelKeys)--mdbConnStr)--useDbV2 a --mdbExportOnlyIdKeys--mdbConnStr [connection_string] Připojovací řetězec MervisDb – formát: rcwaredb://user_name:password@host:port/?protocol=http,endpoint=MervisDbAcces,uriaccess=MervisDbAcces--mdbSourceKeys [keys] Páry klíč–hodnota, které se mají zahrnout do generování--mdbSourceKeysSkip [keys] Páry klíč–hodnota, které se mají z generování vynechat--pmUrl [url] URL správce projektu – formát: http://localhost:5123/--dataHubUrl [url] URL datového hubu – formát: http://localhost:5005/hub/data/--dataHubLogin [username] Uživatelské jméno pro přihlášení k Data Hubu--dataHubPass [password] Heslo k Data Hubu--dataNodeIds [ids] Konkrétní ID datových uzlů ke zpracování--dataHubUpdatePeriod [seconds] Interval aktualizace čtecí skupiny z Data Hubu v sekundách (výchozí: 2)--pmPropFilter [filter] Filtrování vlastností PM--connectionType [Tcp|Proxy|CloudAccess] Typ připojení k SharkPLC--host [hostname] Adresa hostitele SharkPLC--port [number] Port SharkPLC--ssl [true|false] Použít připojení TLS/SSL--validateCertificate [true|false] Ověřit SSL certifikáty--plcAddr [number] Adresa zařízení (výchozí: 1)--plcUser [username] Uživatelské jméno pro autentizaci PLC--plcPassword [password] Heslo pro autentizaci PLC--readTimeout [timespan] Časový limit pro čtecí operaci--proxyId [id] Identifikátor proxy pro připojení přes proxy--caChannelId [id] Identifikátor kanálu CloudAccess--caUser [username] Uživatelské jméno CloudAccess--caPassword [password] Heslo CloudAccess--mdbFrom [ISO_datetime] Zahrnout pouze proměnné novější než zadaný čas--mdbTo [ISO_datetime] Zahrnout pouze proměnné starší než zadaný čas--mdbDpNameKey [key_name] Klíč použitý pro názvy datových bodůNameName,Description{Name}"{Name, '([^\:]):(.)', $2} ({Guid})"--mdbTreeLevelKeys [path] Klíče pro hierarchické uspořádáníLevel1/Level2/Level3--mdbDpNameKey pro použití šablon--sortBy [keys] Řadit datové body podle zadaných klíčů (příklad: "Level1,Level2,myLevel3,Name")--notSortDataPoints [true|false] Zakázat abecední řazení datových bodů (výchozí: false)--keepEmptyFolders [true|false] Zachovat prázdné skupiny ve výstupu (výchozí: false)--mdbExportOnlyIdKeys [true|false] Exportovat pouze ID klíče jako parametry ovladače (výchozí: false)--driverDataUpdatePeriod [milliseconds] Interval aktualizace čtení proměnných z ovladače (výchozí: 100)--dataHubTimestampValidityLimit [timespan] Limit platnosti časového razítka. Při překročení limitu je vyvolána chyba komunikace. (výchozí: žádný), (příklad: P1DT4H30M)--mdbUrl [url] Volitelné. Vynutit, aby URL databáze v datovém souboru byla nahrazena touto hodnotou--dpVisualDecimals 3 nastavení počtu desetinných míst pro všechny numerické datové body {"type":"linear","unit":"°C","decimalPlaces":1,"params":{"k":0.1, "q":0}}
definuje počet desetinných míst pro konkrétní datový bod
--mdbUnitKey FixedUnit určuje klíč použitý pro nastavení jednotky{"type":"linear","unit":"°C","decimalPlaces":1,"params":{"k":0.1, "q":0}}
definuje jednotky pro konkrétní datový bod
--dbWriteModeOn [true|false] Povolit režim zápisu při přístupu k databázi (výchozí: false)--dbWriteModeDecimals [number] Počet desetinných míst při zápisu do databáze (výchozí: 2)--dbWriteModeNoTriggers [true|false] Zakázat spouštěče při zápisu do databáze (výchozí: false)--dbWriteModeSamplingInterval [seconds] Interval vzorkování pro zápis do databáze--useDbV2 [true|false] Použít vlastnosti databáze verze 2 (výchozí: false)--dbEnableWriteFromDriver [true|false] Povolit zápis z ovladače MervisDb (výchozí: false)--dbUseSourcePropertyTimestampForSave [true|false] Při ukládání do DB použít časové razítko zdrojové vlastnosti (výchozí: false)--mdbDataSpecification [specification] Specifikace pro získávání dat (výchozí: MaxTimestamp)MinTimestamp, MaxTimestamp, FirstLessThanReferenceDateTime, FirstLessThanOrEqualThanReferenceTime, FirstGreaterThanReferenceDateTime, FirstGreaterThanOrEqualThanReferenceTime, MaxGoodThroughTime--mdbDateTimeShift [timespan] Časový posun pro načítání dat (příklad: -PT1H30M)--mdbWriteValueDbSaveInterval [timespan] Interval ukládání pro zápisové operace (výchozí: 1H, příklad: P1DT1H30M)--mdbCommErrorIntervalMultiple [number] Chyba komunikace, pokud je poslední hodnota starší než zadaný násobek intervalu (0 = zakázáno)dataPointId – Explicitní GUID datového bodudataPointType – Základní typ datového boduDiscreteInput, DiscreteOutput, AnalogInput, AnalogOutput, StringInput, StringOutput, DateTimeInputOutput, PlanningCalendarForBasicTpg, BasicTpg, AlarmPointdataPointSourceType – Vynucený typ zdrojových datBool, Int64, Double, String, DateTimegetKey[index] – Definice klíče podmínky pro porovnání řádkugetKey1, getKey2)getValue[index] – Definice hodnoty podmínky pro porovnání řádkusetKey[index] – Nastavení nebo úprava názvu klíčesetValue[index] – Nastavení nebo úprava hodnoty klíče{keyname}setIsId[index] – Označení klíče jako identifikátorusetTagKey[index] – Definice názvu tagusetTagValue[index] – Definice hodnoty tagu{keyname}setTagType[index] – Definice typu hodnoty tagustring (výchozí), bool, numbersetTransformation – Aplikace transformace datsetMetadata – Alternativní název pro setTransformationsetTransformation. Stejná funkcionalita a syntaxe jako setTransformationsetAlarm – Konfigurace alarmu[custom][index] – Sloupce generátoru dokumentacesetProperties1, Driver, setCALayer{keyname} – Nahrazuje se hodnotou zadaného klíče*tagname – Předpona hvězdičky pro povolení duplicitních tagůsetBlock – Konfigurace blokování pro datové bodykind (typ blokování), propRef (referenční vlastnost), propBlockValue (hodnota, která aktivuje blokování)PermanentFunctionBlock, PermanentAlarmBlock, ConditionalFunctionBlock, ConditionalAlarmBlocksetProperties – Definice vlastností datového boduReferenceValueProperty, DoubleValueProperty, Int64ValueProperty, BoolValueProperty, StringValueProperty, DateTimeValueProperty{properties: [{name:"PropName", type: "doubleValueProperty", value: "123.45", unit: "°C"}]}
setGroupRights – Konfigurace přístupových práv- type: User/Group - access: R/RA/RW - R – pouze pro čtení - RA – čtení a akce s alarmy - RW – čtení/zápis
{group_name: "GroupName", rights: [{type: "Group", name: "GroupName", access: "rw"}]}
Driver – Typ komunikačního driveruSSCP, MERVISDB, MODBUS, AMITWEBSOCKET, INSPECTOR, SOFTPLCLINKDriverChannelParameters – Parametry konfigurace driveru
SSCP:
{"pauseBetweenTelegrams": 2000, "host": "localhost", "port": 12346, "user": "admin", "password": "rw", "proxyId": "PRX232232", "ssl": false, "slaveId": 0 }
MervisDb:
{"pauseBetweenRequestCycles": "PT10S", "writeValueDbSaveInterval": "PT1H", "readRequestVariableCount": 1000, "url": "http://localhost:9876/RcWareDbAccess", "user": "rc_user", "password": "rc_user", "dataSpecification": 0, "dateTimeShift": "PT15M" }
Modbus:
{ "host": "localhost", "port": 502, "useCloudAccess": "true", "cloudAccess": { "host": "cloudaccess.mervis.info", "port": 23000, "ssl": "true", "channelId": "chxxxxxxx", "user": "uxxxxxxxx", "password": "pxxxxxxxx" } }
Pokud je specifikována část cloudAccess, bude použita pro komunikaci.
AmitWebSocket:
{ "host": "amitws.mervis.info", "port": 80, "useCloudAccess": "false", "cloudAccess": { "host": "cloudaccess.mervis.info", "port": 23000, "ssl": "true", "channelId": "chxxxxxxx", "user": "uxxxxxxxx", "password": "pxxxxxxxx" } }
SoftPlcLink:
Bez CloudAccess:
{"host": "hostname", "port": portnumber, "user": "user", "password": "password"}
S CloudAccess:
{"host": "localhost", "port": portnumber, "user": "user", "password": "password", "useCloudAccess": "true", "cloudAccess": {"host": "host", "port": portnumber, "ssl": "true/false", "channelId": "channel", "user": "user", "password": "password"}}
setCALayer – Definice vrstvy plánovacího kalendářesetCADefaultValue – Výchozí hodnota kalendářesetCAEmailForNotifications – Nastavení e-mailových notifikacísetCANotificationBlacklist – Seznam vyloučení notifikacísetCASumLayer – Vrstva souhrnu kalendářesetCATPGDefinition – Definice TPG pro kalendářsetCATPGSetup – Konfigurace TPG nastavení{items: [...], max: 100, min: 0, type: "Planning", noExceptions: false}
setCAType – Specifikace typu kalendářeModbusDeviceAddress – Adresa Modbus zařízení (hodnota v bajtech)ModbusReadFunctionCode – Čtecí funkční kód ModbusModbusWriteFunctionCode – Zapisovací funkční kód ModbusModbusStartingAddress – Počáteční adresa registruModbusQuantity – Počet registrů ke čteníModbusVariableType – Typ proměnné (Bit, UInt16, SInt16, Float32 atd.)ModbusByteOrder – Konfigurace pořadí bajtůViz stránka Příklady pro příklad se specifikací Modbus.
SSCPCOMMUID – Komunikační UID (povinné)SSCPOFFSET – Offset v paměti (povinné)SSCPLEN – Délka dat (povinné)SSCPELEMENTTYPE – Datový typ prvku (povinné)SSCPTIMEISSYSTEMRTC – Příznak systémového RTC (volitelné)SSCPTPGSPECS – Specifikace TPG (volitelné)SPLCID – ID prvku SoftPLC (povinné)SPLCNAME – Název proměnné (povinné)SPLCDATETIMEISEPOCH – Příznak epochy pro DateTime (volitelné)INSPECTORTARGET – Cílový selektor (povinné)INSPECTORDATAID – Identifikátor dat (povinné)INSPECTORDIRECTTARGET – Přímý odkaz na cíl (povinné)AMITWEBSOCKETVARIABLEID – Identifikátor proměnné (povinné)AMITWEBSOCKETVARIABLETYPE – Typ proměnné (povinné)AMITWEBSOCKETVARIABLEMATRIXROW – Index řádku matice (volitelné)AMITWEBSOCKETVARIABLEMATRIXCOL – Index sloupce matice (volitelné)AMITWEBSOCKETVARIABLETPGTYPE – Typ TPG (volitelné)AMITWEBSOCKETVARIABLETPGMIN – Minimální hodnota TPG (volitelné)AMITWEBSOCKETVARIABLETPGMAX – Maximální hodnota TPG (volitelné)