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.

See the topic Message exchange mechanisms in PcVue for more information about what to optimize and how you can send commands from scripts.

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
CIMWAY("SENDMSG", "NetName.EqtName.FrameName", "Reset-File-Position");

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.

Copy
{
  "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"
  }
}