DrvCnlDLMS Communicator Driver (Custom)
Functional Description
DrvCnlDLMS is a custom Communicator driver in ScadaV6CommExt for field device connectivity. Protocol details follow the source implementation.
Scope and Version
- Source:
ScadaV6CommExt/DrvCnlDLMS.Logic - TFM:
net8.0 - Version:
6.0.0
Install and Enable
- Deploy driver binaries to Communicator folders.
- Activate driver in Administrator → Communicator → Drivers.
- Upload configuration and restart Communicator.
Line and Device Configuration
- Create a communication line with the proper channel type.
- Add device and set address/timeouts.
- Set polling options and CmdLine as required by this driver; see Functional notes and configuration (template and source) below for file names, address format, and line keys.
CustomOptions (extracted)
| Key | Default | Note |
|---|---|---|
未在源码中匹配到明显的 GetValueAs* 调用,请在 Administrator 中打开该驱动的设备/线路配置界面逐项确认。 | ||
Code hints
(当前未提取到典型配置片段,请直接查阅源码目录中的 Logic 文件。)
Administrator UI (DrvCnlDLMS.View)
Configure in Administrator → Communicator. Labels below come from the View language pack.
- View source:
ScadaV6CommExt/DrvCnlDLMS.View - Main forms:
FrmSerialPortChannelOptions.csFrmTcpClientChannelOptions.csFrmUdpChannelOptions.cs
| Phrase key | Text |
|---|---|
pbConnectionModeHint.ToolTip | Individual - Communicator establishes an individual TCP connection with each device. Shared - Communicator establishes a single shared connection for all devices of the communication line using specified remote IP address. Shared connection is used, for example, if the devices are connected via an Ethernet-Serial gateway. |
pbRemoteUdpPortHint.ToolTip | The default remote UDP port. The same for all devices of the communication line. |
pbBehaviorHint.ToolTip | Master - Communicator sends request to a device and receives answer. Slave - Communicator passively waits for data from a device. |
pbTcpPortHint.ToolTip | In individual connection mode it is used as a default TCP port if no port is specified for a device. In shared connection mode the parameter is required. The 502 port is the default Modbus TCP port. |
pbBehaviorHint.ToolTip | Master - Communicator sends request to a device and receives answer. Slave - Communicator passively waits for data from a device. |
pbRemoteIpAddressHint.ToolTip | The default remote IP address. It can be used, for example, if the devices are connected via an Ethernet-Serial gateway. |
this | Serial Port Options |
gbPort | Serial Port |
lblTcpPort | Remote TCP port |
cbDeviceMapping.Items[0] | By IP address |
pbDeviceMappingHint.ToolTip | The method of binding a new incoming connection to a device: By IP address - remote IP address equals a device string address. Driver determined - algorithm is implemented in the device driver. |
lblLocalUdpPort | Local UDP port |
pbLocalUdpPortHint.ToolTip | Local UDP port for incoming connections. Incoming connections must be allowed by a firewall. |
lblRemoteUdpPort | Remote UDP port |
lblPortName | Port name |
lblBaudRate | Baud rate |
cbBehavior.Items[0] | Master |
cbBehavior.Items[1] | Slave |
this | TCP Client Options |
pbHostHint.ToolTip | Remote DNS name or IP address in case of using shared connection. |
this | UDP Options |
lblDeviceMapping | Device mapping |
cbDeviceMapping.Items[1] | Driver determined |
lblRemoteIpAddress | Remote IP address |
ChannelTypeNotFound | Communication channel type not found. |
lblDataBits | Data bits |
lblParity | Parity |
cbParity.Items[0] | None |
cbParity.Items[1] | Odd |
cbParity.Items[2] | Even |
Functional notes and configuration (template and source)
Derived from Logic/Common and device template XML: driver behavior and the Administrator/Communicator fields to set (address, CmdLine, line CustomOptions, template nodes).
Logic location
ScadaV6CommExt/DrvCnlDLMS.Logic- Common: n/a
Overrides
n/a
CmdLine / template
未匹配到 PollingOptions.CmdLine 单行片段。
DeviceConfig properties referenced
| Property | Note |
|---|---|
| 未检测到 DeviceConfig.* 引用(可能使用基类封装)。 | |
Line CustomOptions
| Key | Default |
|---|---|
| 未在 Logic 中检测到 CustomOptions.GetValueAs*(可能全部从设备模板 XML 读取)。 | |
XML keys (Common)
| Node | Note |
|---|---|
| 未在 Common 中解析到 GetChildAs*/AppendElem 节点(或无 Common 工程)。 | |
Code excerpt
80: {
81: options = new UdpChannelOptions(channelConfig.CustomOptions);
82: }
83:
127: {
128: options = new TcpClientChannelOptions(channelConfig.CustomOptions);
129: }
130:
Troubleshooting
- No data: line, address, template, connectivity.
- Template load errors: check logs.
- Options ignored: verify option scope (line vs device).