Mervis controllers support full configuration and communication via SSCP protocol. Detail description of this protocol is available in: SSCP description.
Basic features
Protocol is defined on application layer
TCP and serial bus implementations are currently available. UDP is used for autodetection and configuration.
Simple structure of communicated data packets
Easy to calculate packet size from header.
Extra headers and suffixes can be added for different communication layers - inner structure stays untouched.
Each data packet (except broadcast packets) carries information about destination address (8 bit slave ID). Only controller with that address is expected to respond.
SSCP can be used for any and all communication tasks
Communication of statistics, configuration, PLC detection, communication of values, remote debugging etc.
Communication buffer size can be negotiated by client
Protocol versioning is supported. Newer version is backward compatible with previous version but usage of deprecated and obsolote methods is not recommended.
Communication of Values
SSCP protocol supports long memory blocks. If the size of the buffer is not sufficient - multiple reads can be made and atomicity of the operation is guaranteed.
Every variable is identified by its communication ID.
Value is communicated as a block of memory. Offset and length can be used to read part of the larger data structure (array, struct, function block, …)
Memory data layout follows standard rules of data alignment (1-8 bytes)
.NET SDK
There is a SDK with .NET libraries. You can download it here.