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--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--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ůName
Name,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
, AlarmPoint
dataPointSourceType
– Vynucený typ zdrojových datBool
, Int64
, Double
, String
, DateTime
getKey[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
, number
setTransformation
– 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
, ConditionalAlarmBlock
setProperties
– 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
, SOFTPLCLINK
DriverChannelParameters
– 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é)