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--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--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 namesName
Name,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
, AlarmPoint
dataPointSourceType
- Forced source data typeBool
, Int64
, Double
, String
, DateTime
getKey[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
, number
setTransformation
- 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
, ConditionalAlarmBlock
setProperties
- 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
, SOFTPLCLINK
DriverChannelParameters
- 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)