Procedure to send commands over Modbus to PM5000 using Modbus Tester
Customer wants to send a command to a PM5000 to perform remote configuration or a meter reset.
PM5300 (PM5330, PM5340)
PM5500 (PM5560, PM5563)
Remote meter configuration / resets
*Warning: The command procedure listed here can cause undesirable results to your product if applied incorrectly. Before sending any commands, verify all commands and parameters are correct. If you have any doubts, contact Technical Support for guidance.*
The following instructions use Modbus Tester to read and write the commands. Other Modbus polling software's can also be used.
Step 1: Identify the Command Number and necessary Parameters
- Open the Modbus Register List
- Navigate to the Commands tab and locate the desired command
- Write down the Command Number and the Parameters
In this example, the user wants to send the Reset All Energies command to the PM5560. As shown in Table 1, the Reset All Energies command number is 2020. This command also has 1 parameter, the command semaphore. This information will be necessary in Step 3.
|Table 1: Modbus Register List Excerpt
|Reset All Energies
||(1) Command Semaphore
Step 2: Get the Semaphore
- In Modbus Tester, set the Data Type to "Holding Register (R03 / W16)".
- The Command Semaphore is stored in Modbus register 5680. Therefore, set the Starting Register to 5680.
- Set # or Registers to be 1.
- Then Click on Read once.
Note: During this time no other communication with the meter should run in the background. Otherwise it may cause in error.
Note: Only perform the reading operation once. Doing more than once will cause in error. If by mistake the operation is performed more than one time then it is advised to try to do the operation again after 4 min.
- Write down the Semaphore value
Step 3: Sending the Command
- In Modbus Tester, set the Starting Register to 5000 and the # of Registers to 2.
Note: If the command requires more than 2 parameters, increase the # of Registers accordingly. Modbus Tester only allows a maximum of 10 registers. If there are greater than 10 parameters for the given command, then a different Modbus polling software that is capable of writing more than 10 registers must be used.
- Set register 5000 to the Command value
- Set register 5001 to the Semaphore value
- Set registers 5002 - 5124 to the parameter values, if used
For this example, recall that Reset All Energies has a Command value of 2020.
Register 5000 = 2020
Register 5001 = 62283
Registers 5002 - 5124 = not used for this command
- Then Click "Write"
What commands are available?
A full list of the commands that can be sent to the PM5000 are detailed in the Modbus Register List under the Commands tab.
The table below lists several of the most common commands:
|Warm Start Reset
|Reset Cycle Count
|Reset All Min/Max
|Reset All Demands
|Reset Power Demand
|Reset All Peak Demands
|Reset Power Peak Demands
|Reset Input Metering Peak Demand
|Reset All Energies
|Reset All Accumulated Energies
|Reset Input Metering Accumulations
|Clear Data Log
|Reset Diagnostic Log
What is a Semaphore and what is its purpose?
The semaphore is a number that is used to control write access to the PM5000. The semaphore can only be read once in a 4 min by a single master. Therefore, it is the only master that can send a command within the 4 min period. This process guarantees that the PM5000 is only receiving a command from one device at a time.
NOTE: The semaphore value which is received is valid for 4 minutes when not used, that is 4 minutes from the previous semaphore write.
For example: if the received semaphore value is used at the 3rd minute 30th second from when the value is received, then the same semaphore is valid for next 4 minutes.
You may use the semaphore value multiple times within that 4 minute window.
You will need to read the command semaphore again after 4 minutes from the previous read has elapsed in order to get the new number.