Satec PM130 Powermeter
This driver supports communication over Ip with Satec PM130 devices, in particular the PM130P, PM130E and PM130EH series. It is based on Modbus/TCP.
Supported functions
-
Read and write Holding Registers
-
16-bit Scaled Integer (read and write)
-
32-bit Long Integer (read and write)
-
32-bit Floating point (read)
-
32-bit Modulo-10000 (read)
-
CHAR sequence (read and write)
-
-
Reading records with parameters from Data Logs #1 - #16 with device timestamp
-
Reading records Event Logs with device timestamp
Network properties
This topic only includes a reference of objects' properties.
See the topic How to configure networks devices and frames for more information about how to configure communication objects.
| General properties | |
| Name | The name of the network |
| Description | The description of the network (optional) |
| Activate at start-up | If enabled, the network will start upon Equipment communication start-up |
|
Advanced properties |
|
|
Timeout |
Use default value |
|
Networking |
|
|
Servers |
The list of PcVue stations where the network will be active |
Device properties
| General properties | |
| Name | The name of the device |
| Description | The description of the device (optional) |
| Equipment type | Select the type of equipment that best suits the field device you want communicate with. The list of frame types and address ranges depend on the equipment type. |
| Address | The Ip address of the field device. Some drivers also support configuration by host name. |
| Slave address | The slave address of the field device |
| Activate at start-up | If enabled, the device will start upon network start-up |
|
Advanced properties |
|
|
Connection |
|
|
Timeout |
Maximum waiting time between a request and the reply from the equipment |
|
Port number |
The port number of the field device |
|
Reconnect period |
Minimum period between attempts to recover a connection. This period is also used as a waiting period after a time-out. |
| Specific timezone | The time offset to be added to local timestamps received from the device to convert them into UTC. |
|
Miscellaneous |
|
|
Virtual |
Reserved. Do not select. |
| Message delay | Reserved. Leave default value 0. |
Frame addressing
Depending on the equipment type you have selected when configuring the device, you have access to the following type of frames.
The Starting address and Quantity properties define the memory address range for each frame, how it is read from and written to, and how it is interpreted in PcVue.
| Data type | Access | Max quantity | Starting address | Description |
| Real | ||||
|---|---|---|---|---|
| 32-bit Floating point |
Read |
62 | 0..65535 |
Modbus function 03 (Read Holding Registers) Modbus function 06 (Write Single Register) Modbus function 16 (Write Multiple registers) |
| Text | ||||
| CHAR sequence |
Read/Write |
250 | 0..65535 |
Modbus function 03 (Read Holding Registers) Modbus function 06 (Write Single Register) Modbus function 16 (Write Multiple registers) |
| Event Log |
Read |
400 | 0..399 |
Mapping: Offset 0 : Status For a register variable (8-bit unsigned int): 0 – No error, else ErrorCode Offset 1: Trigger value For a bit variable: Toggles with each new record Offset 100: Event Cause Offset 200: Event Point Offset 300: Event Effect For a text variable (\0-terminated string - Max 99 characters UTF-8 encoding) Request/Response: Modbus function 03 (Read Holding Registers) Modbus function 06 (Write Single Register) Modbus function 16 (Write Multiple registers) The configuration file cwpIpPM130P.json is used to define text for Event Cause, Event Point, and Event Effect from record data. See an example of the file below. |
| Word | ||||
| 16-bit Scaled Integer |
Read/Write |
125 | 0..65535 |
Modbus function 03 (Read Holding Registers) Modbus function 06 (Write Single Register) Modbus function 16 (Write Multiple registers) |
| Double word | ||||
| 32-bit Long Integer |
Read/Write |
62 | 0..65535 |
Modbus function 03 (Read Holding Registers) Modbus function 06 (Write Single Register) Modbus function 16 (Write Multiple registers) |
| Data Log |
Read |
10 | 0..9 |
Parameter: Data Log number: Data Log #1 - #16 Mapping: Offset 0 : Status 0 – No error, else ErrorCode Offset 1: Log value #1 Offset 2: Log value #2 Offset 3: Log value #3 Offset 4: Log value #4 Offset 5: Log value #5 Offset 6: Log value #6 Offset 7: Log value #7 Offset 8: Log value #8 Offset 9: Log value #9 Request/ Response: Modbus function 03 (Read Holding Registers) Modbus function 06 (Write Single Register) Modbus function 16 (Write Multiple registers) |
| 32-bit Modulo-10000 |
Read |
62 | 0..65535 |
Modbus function 03 (Read Holding Registers) Modbus function 06 (Write Single Register) Modbus function 16 (Write Multiple registers) |
Driver status
The driver status provides driver-specific information to supplement the frame general status. For more information on status in general, refer to the topic General communication status.
| Driver status | Description |
| 0x0001 | Modbus illegal function |
| 0x0002 | Modbus illegal data address |
| 0x0003 | Modbus illegal data value |
| 0x0004 | Modbus server device failure |
| 0x0100 | Response does not match request |
| 0x0101 | Response does not match request |
| 0x0102 | Response does not match request |
| 0x0202 | Error with TCP socket |
| 0x0203 | Configuration file cwpIpPM130P.json not found |
| 0x0204 | Can not open configuration file |
| 0x0205 | Can not parse configuration file |
| 0x0206 | No Data Log file to read |
| 0x0207 | No Event Log file to read |
SCADA Basic scripting
You can control communication with this driver in SCADA Basic scripts with the CIMWAY instruction.
The driver also supports the following specific capabilities in SCADA Basic.
Sending a control message to the driver
IntVal = CIMWAY (SENDMSG, CommObjectName, CommandString);
Return type: INTEGER.
|
Argument |
Meaning |
|
CommObjectName |
Identifies the target object identifier: All networks: Empty string. A specific network: NetworkId. A specific device: NetworkID.EquipmentId. A specific frame: NetworkID.EquipmentId.FrameId. Type STR. |
|
CommandString |
The command to send to the driver. Type STR. See below for the list of messages supported by the driver. |
Control messages for Satec PM130:
| Control message | Description |
|
Send the Reset-File-Position command for Event Log and Data Log |
Command string syntax is "Reset-file-position". ComObj must be the name of a frame, for example NET.DEV1.FRAME1. Example: Copy
|
Example of the cwpIpPM130P.json file
The configuration file cwpIpPM130P.json is used to define text for Event Cause, Event Point, and Event Effect from record data.
{
"CAUSE": {
"0x5B": "Communication",
"0x5C": "Front Panel Operation",
"0x5D": "Self-Check Diagnostics",
"0x62": "Hardware Diagnostics",
"0x63": "External"
},
"POINT_ID": {
"0x03": "Data memory",
"0x04": "Factory setup",
"0x05": "Access/Password setup",
"0x06": "Basic setup",
"0x07": "Communications setup",
"0x08": "Real-time clock",
"0x09": "Digital inputs setup",
"0x0A": "Pulse counters setup",
"0x0B": "AO setup",
"0x0E": "Timers setup",
"0x10": "Event/alarm setpoints",
"0x11": "Pulsing setup",
"0x12": "User assignable register map",
"0x14": "Data log setup",
"0x15": "File/Memory setup",
"0x16": "TOU energy registers setup",
"0x18": "TOU daily profiles",
"0x19": "TOU calendar",
"0x1B": "RO Setup",
"0x1C": "User selectable options",
"0x1F": "DNP 3.0 class 0 map",
"0x20": "DNP 3.0 options setup",
"0x21": "DNP 3.0 events setup",
"0x22": "DNP 3.0 event setpoints",
"0x23": "Calibration registers",
"0x24": "Date/Time Setup",
"0x25": "Net setup"
},
"POINT_ID_HARDWARE": {
"0x02": "RAM/Data error",
"0x03": "Hardware watchdog reset",
"0x04": "Sampling fault",
"0x05": "CPU exception",
"0x06": "Reserved",
"0x07": "Software watchdog reset",
"0x0D": "Low battery",
"0x0F": "EEPROM fault"
},
"POINT_ID_EXTERNAL": {
"0x00": "Power down",
"0x08": "Power up",
"0x09": "External reset"
},
"EFFECT_ARRAYS": {
"0x64": "Counter cleared",
"0x6A": "Data Log file cleared",
"0xF1": "Setpoint cleared"
},
"EFFECT_ID": {
"0x0000": "None",
"0x6000": "Total energy registers cleared",
"0x6100": "All total maximum demands cleared",
"0x6101": "Power maximum demands cleared",
"0x6102": "Volt/Ampere maximum demands cleared",
"0x6200": "Summary/TOU energy registers cleared",
"0x6300": "Summary/TOU maximum demand registers cleared",
"0x6400": "All counters cleared",
"0x6500": "Min/Max log cleared",
"0x6A00": "Event Log file cleared",
"0x6B06": "Communication counters cleared",
"0xF200": "Setup/Data cleared",
"0xF300": "Setup reset",
"0xF400": "Setup changed",
"0xF500": "RTC set"
}
}