Announcement

Collapse
No announcement yet.

Modbus Read P2000 Energy Analyzer

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • RogerR
    replied
    For the hex address, try to leave off the 4000... use only "10" decimal for the "H" hex value.
    Is your Modbus Function Code 3 for registers?

    Monitor the bits for the communication on the MRX instruction.
    In Progress
    Complete
    Success
    Error
    Timeout
    Exception Response String

    Is there an error and if so, what is the exception?

    You can also try to read only one value to a tag to test.

    Leave a comment:


  • jflores13
    started a topic Modbus Read P2000 Energy Analyzer

    Modbus Read P2000 Energy Analyzer

    Hi guys,

    I'm trying to perform my first Modbus Serial read on an Accuenergy Energy Analyzer that has an RS485 port. I'm trying to use the Modbus Read (MRX) instruction, but I have had no luck.

    Before I tried to make it work, first I made sure my analyzer's parameters were compatible with my hardware config, so I set up the correct protocol, slave address, baud rate, parity, stop bits, etc. After, I checked the analyzer's manual to find the data addresses I would need to read. I needed to read 8 words (4 float values) so I created a 1D array of type float with 4 columns.

    Then, I set up my MRX instruction to serial port, wrote the correct slave node number, turned off word swap, chose my array to store the read, transferred the project, turned on the enable contact to trigger the instruction, but nothing appears on my array.

    This is the first time, as I said before, that I try to read something via Modbus Serial. So, before I get into more complex troubleshooting, I would like to ask about a couple of things I was doubtful with when configuring the instruction:
    - The "Slave Modbus Start Address" is the first address for the information I want to read, right? So, to the right of that on the instruction window, there is a +400000. I am confused because the data I want to retrieve is, according to the analyzer's manual, on address 4000H. I converted that to decimal and it's 16384, and that's the address I entered on the text field. Am I doing this wrong? I feel like I am because I need to read below that address, but how would I do that?
    - The data type for the registers to be read is float, which is also the data type I chose for the array. Do I need to choose a different or generic data type?

    Thanks a lot! Greetings.
Working...
X