On the https://generator.mervis.info website, you can generate a Mervis SCADA project according to the specified parameters, optionally using a mapping file in XLSX format.
Parameters can be defined either as individual values in the text field or stored in a text file (e.g., params.txt) and selected from your computer.
Additionally, you can use a mapping file in the XLSX format, in which individual data points can be defined. This file allows transforming input values (keys and values) into new ones, enabling the creation of your own data structure for the resulting project.
Individual available options are described below. Specific practical examples are listed on the Examples page.
--projId 5eee5946-293c-4753-9495-d6b11f73d670 Unique GUID as project identifier--projName ExampleProject Human-readable project name--projTimeZone Europe/Prague Project timezone--outputDirectory 5eee5946-293c-4753-9495-d6b11f73d670 Output directory for generated files--outputFileSuffix _p5 (optional) Specify output file suffix. In this example, the output filename is set to <projId>.data_p5, instead of <projId>.data--mdbKeyMappingTable [filepath] Excel file with data processing directives. Supports multiple comma-separated filepaths.--forceTimestamp [value] Force specific timestamp for all generated values (default: min)'min' (0001-01-01T00:00:00), 'current' (current UTC), or explicit ISO format like '2025-03-25T14:30:00.000'--sourceType [MervisDb|DataHub|SharkPlc] Specifies the data source type
When using a mapping file with --mdbKeyMappingTable without specifying --sourceType, the generator operates in mapping-only mode:
--mdbDpNameKey, --mdbTreeLevelKeys)--mdbConnStr)--useDbV2 and --mdbExportOnlyIdKeys options--mdbConnStr [connection_string] MervisDb connection string - Format: rcwaredb://user_name:password@host:port/?protocol=http,endpoint=MervisDbAcces,uriaccess=MervisDbAcces--mdbSourceKeys [keys] Key-value pairs to include in generation--mdbSourceKeysSkip [keys] Key-value pairs to exclude from generation--pmUrl [url] Project manager URL - Format: http://localhost:5123/--dataHubUrl [url] Data hub URL - Format: http://localhost:5005/hub/data/--dataHubLogin [username] Data hub login credentials--dataHubPass [password] Data hub password--dataNodeIds [ids] Specific data node IDs to process--dataHubUpdatePeriod [seconds] Update period for data hub read group in seconds (default: 2)--pmPropFilter [filter] PM properties filter--connectionType [Tcp|Proxy|CloudAccess] Connection method to SharkPLC--host [hostname] SharkPLC host address--port [number] SharkPLC port number--ssl [true|false] Use TLS/SSL connection--validateCertificate [true|false] Validate SSL certificates--plcAddr [number] Device address (default: 1)--plcUser [username] PLC authentication username--plcPassword [password] PLC authentication password--readTimeout [timespan] Read operation timeout--proxyId [id] Proxy identifier for proxy connections--caChannelId [id] CloudAccess channel identifier--caUser [username] CloudAccess username--caPassword [password] CloudAccess password--mdbFrom [ISO_datetime] Only include variables newer than specified time--mdbTo [ISO_datetime] Only include variables older than specified time--mdbDpNameKey [key_name] Key used for data point namesNameName,Description{Name}"{Name, '([^\:]):(.)', $2} ({Guid})"--mdbTreeLevelKeys [path] Keys for hierarchical orderingLevel1/Level2/Level3--mdbDpNameKey for template syntax--sortBy [keys] Sort data points by specified key values (example: "Level1,Level2,myLevel3,Name")--notSortDataPoints [true|false] Disable alphabetical sorting of data points (default: false)--keepEmptyFolders [true|false] Preserve empty groups in output (default: false)--mdbExportOnlyIdKeys [true|false] Export only ID keys as driver parameters (default: false)--driverDataUpdatePeriod [milliseconds] Driver variable read update period (default: 100)--dataHubTimestampValidityLimit [timespan] Timestamp validity limit. Communication error is set when timestamp exceeds this limit. (default: none), (example: P1DT4H30M)--mdbUrl [url] Optional. Force DB URL in the data file to this value--dpVisualDecimals 3 setting for all numerical data points {"type":"linear","unit":"°C","decimalPlaces":1,"params":{"k":0.1, "q":0}}
defines the number of decimal places for a specific data point
--mdbUnitKey FixedUnit defines which key should be used to set the unit{"type":"linear","unit":"°C","decimalPlaces":1,"params":{"k":0.1, "q":0}}
defines units for a specific data point
--dbWriteModeOn [true|false] Enable write mode for database access (default: false)--dbWriteModeDecimals [number] Decimal places for database writes (default: 2)--dbWriteModeNoTriggers [true|false] Disable database write triggers (default: false)--dbWriteModeSamplingInterval [seconds] Sampling interval for database writes--useDbV2 [true|false] Use version 2 database properties (default: false)--dbEnableWriteFromDriver [true|false] Enable write from MervisDb driver (default: false)--dbUseSourcePropertyTimestampForSave [true|false] Use source property's timestamp when saving to DB (default: false)--mdbDataSpecification [specification] Data retrieval specification (default: MaxTimestamp)MinTimestamp, MaxTimestamp, FirstLessThanReferenceDateTime, FirstLessThanOrEqualThanReferenceTime, FirstGreaterThanReferenceDateTime, FirstGreaterThanOrEqualThanReferenceTime, MaxGoodThroughTime--mdbDateTimeShift [timespan] Time shift for data retrieval (example: -PT1H30M)--mdbWriteValueDbSaveInterval [timespan] Save interval for write operations (default: 1H, example: P1DT1H30M)--mdbCommErrorIntervalMultiple [number] Communication error when last value is older than given multiple of interval (0 = disabled)dataPointId - Explicit data point GUIDdataPointType - Data point core typeDiscreteInput, DiscreteOutput, AnalogInput, AnalogOutput, StringInput, StringOutput, DateTimeInputOutput, PlanningCalendarForBasicTpg, BasicTpg, AlarmPointdataPointSourceType - Forced source data typeBool, Int64, Double, String, DateTimegetKey[index] - Define condition key for row matchinggetKey1, getKey2)getValue[index] - Define condition value for row matchingsetKey[index] - Set or modify key namesetValue[index] - Set or modify key value{keyname} syntaxsetIsId[index] - Mark key as identifiersetTagKey[index] - Define tag key namesetTagValue[index] - Define tag value{keyname} syntaxsetTagType[index] - Define tag value typestring (default), bool, numbersetTransformation - Apply data transformationsetMetadata - Alternative name for setTransformationsetTransformation column type. Same functionality and syntax as setTransformationsetAlarm - Alarm configuration[custom][index] - Document generator columnssetProperties1, Driver, setCALayer{keyname} - Replace with value of specified key*tagname - Prefix tag key with asterisk to allow duplicatessetBlock - Block configuration for data pointskind (block type), propRef (property reference), propBlockValue (trigger value)PermanentFunctionBlock, PermanentAlarmBlock, ConditionalFunctionBlock, ConditionalAlarmBlocksetProperties - Data point property definitionsReferenceValueProperty, DoubleValueProperty, Int64ValueProperty, BoolValueProperty, StringValueProperty, DateTimeValueProperty{properties: [{name:"PropName", type: "doubleValueProperty", value: "123.45", unit: "°C"}]}
setGroupRights - Access rights configuration- type: User/Group - access: R/RA/RW - R – read-only - RA – read and alarm actions - RW – read/write
{group_name: "GroupName", rights: [{type: "Group", name: "GroupName", access: "rw"}]}
Driver - Communication driver typeSSCP, MERVISDB, MODBUS, AMITWEBSOCKET, INSPECTOR, SOFTPLCLINKDriverChannelParameters - Driver configuration parameters
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" } }
If the cloudAccess part is specified, it will be used for communication.
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:
Without CloudAccess:
{"host": "hostname", "port": portnumber, "user": "user", "password": "password"}
With 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 - Planning calendar layer definitionsetCADefaultValue - Default calendar valuesetCAEmailForNotifications - Email notification settingssetCANotificationBlacklist - Notification blacklistsetCASumLayer - Calendar summary layersetCATPGDefinition - TPG definition for calendarsetCATPGSetup - TPG setup configuration{items: [...], max: 100, min: 0, type: "Planning", noExceptions: false}
setCAType - Calendar type specificationModbusDeviceAddress - Modbus device address (byte value)ModbusReadFunctionCode - Modbus read function codeModbusWriteFunctionCode - Modbus write function codeModbusStartingAddress - Starting register addressModbusQuantity - Number of registers to readModbusVariableType - Variable type (Bit, UInt16, SInt16, Float32, etc.)ModbusByteOrder - Byte order configurationSee the Examples page for an example with Modbus specification.
SSCPCOMMUID - Communication UID (required)SSCPOFFSET - Memory offset (required)SSCPLEN - Data length (required)SSCPELEMENTTYPE - Element data type (required)SSCPTIMEISSYSTEMRTC - System RTC flag (optional)SSCPTPGSPECS - TPG specifications (optional)SPLCID - SoftPLC element ID (required)SPLCNAME - Variable name (required)SPLCDATETIMEISEPOCH - DateTime epoch flag (optional)INSPECTORTARGET - Target selector (required)INSPECTORDATAID - Data identifier (required)INSPECTORDIRECTTARGET - Direct target reference (required)AMITWEBSOCKETVARIABLEID - Variable identifier (required)AMITWEBSOCKETVARIABLETYPE - Variable type (required)AMITWEBSOCKETVARIABLEMATRIXROW - Matrix row index (optional)AMITWEBSOCKETVARIABLEMATRIXCOL - Matrix column index (optional)AMITWEBSOCKETVARIABLETPGTYPE - TPG type (optional)AMITWEBSOCKETVARIABLETPGMIN - TPG minimum value (optional)AMITWEBSOCKETVARIABLETPGMAX - TPG maximum value (optional)