Ask our Experts
Didn't find what you are looking for? Ask our experts!
New Community Ranking System
Our Community ranking system has recently been updated. You may notice changes in user rankings and receive system messages or notifications. If you have questions about how the new ranking works, please refer to the announcement post for more details (click here).
Schneider Electric support forum about Power Meters (ION, PowerTag, PowerLogic) and Power Quality from design, implementation to troubleshooting and more.
Search in
Please select a country to continue with beta search.
Link copied. Please paste this link to share this article on your social media post.
Hello,
I am trying to communicate with a Schneider Electric PowerLogic PM5350 using RS-485 Modbus from a Raspberry Pi and I am not receiving any response from the meter. I would appreciate any guidance from someone who has worked with this device before.
Hardware setup:
PM5350 connected to a USB-to-RS485 converter (Waveshare adapter with FT232RL and SP485EEN). The Raspberry Pi detects the adapter correctly as /dev/ttyUSB0.
Wiring:
PM5350 D1+ (pin 20) → RS485 A+
PM5350 D0- (pin 19) → RS485 B-
PM5350 GND / COM → Adapter GND
Communication parameters configured on the meter:
Protocol: Modbus
Address: 1
Baud rate: 9600
Parity: Even
On the host side I am using 9600-8E1.
Tests performed:
I tested communication using Python (minimalmodbus and raw serial) and also using mbpoll on Linux. I tried reading several registers such as 3026 (Voltage L-L Avg) using both function code 03 and 04.
Example command used:
sudo mbpoll -m rtu -b 9600 -P even -s 1 -a 1 -t 3 -r 3026 -c 2 /dev/ttyUSB0
The result is always the same:
frames transmitted: OK
frames received: 0
connection timed out
Additional troubleshooting steps:
• Verified USB-RS485 adapter is working and detected by Linux
• Swapped A/B lines
• Tested Modbus RTU, Modbus ASCII, and JBUS
• Scanned all Modbus addresses from 1-247
In every case the master transmits correctly but the PM5350 never sends any response frame.
My questions are:
Is there any additional setting required to enable the RS-485 port on the PM5350?
Does the port require termination or bias resistors when only one master and one meter are connected?
Is there another menu option that enables COM1 or Modbus communications that I might have missed?
Any advice would be greatly appreciated.
Thank you.
Martin.
Link copied. Please paste this link to share this article on your social media post.
Hi @martini002
It sounds like you have already checked the basic items. Since you are still getting “0 frames received” even after swapping the A/B lines and scanning all addresses, the issue is most likely related to a physical‑layer hardware requirement.
If the Waveshare FT232RL + SP485EEN USB‑to‑RS485 adapter does not include bias resistors (pull‑up / pull‑down) on the A/B lines, so the bus may float, which can prevent the PM5350 from detecting any incoming request.
If possible, try performing a loopback test: disconnect the meter, and if you have a second USB‑to‑RS485 adapter, connect it to your PC and check whether you can see the Raspberry Pi’s transmissions using a serial monitor such as PuTTY or Tera Term.
If your cable is short (less than 2–3 meters), termination is usually not required, but you can try adding a 100‑ohm resistor across terminals D0 and D1 to stabilize the line.
I am not familiar with the exact mbpoll syntax you are using, but for simplicity, try reading the Product ID Number at register 90, which is a straightforward INT16 register. (The PM5350 should return 15244.)
Finally, note that many Schneider meters use Base‑1 addressing. If your tool or library uses Base‑0 addressing, then float32 registers such as 3026 and 3027 may need to be requested as 3025 and 3026. Likewise, register 90 may need to be polled as 89 depending on the addressing mode.
Best Regards,
-Mehran
L3 Expert Advanced metering
Link copied. Please paste this link to share this article on your social media post.
Hi @martini002
It sounds like you have already checked the basic items. Since you are still getting “0 frames received” even after swapping the A/B lines and scanning all addresses, the issue is most likely related to a physical‑layer hardware requirement.
If the Waveshare FT232RL + SP485EEN USB‑to‑RS485 adapter does not include bias resistors (pull‑up / pull‑down) on the A/B lines, so the bus may float, which can prevent the PM5350 from detecting any incoming request.
If possible, try performing a loopback test: disconnect the meter, and if you have a second USB‑to‑RS485 adapter, connect it to your PC and check whether you can see the Raspberry Pi’s transmissions using a serial monitor such as PuTTY or Tera Term.
If your cable is short (less than 2–3 meters), termination is usually not required, but you can try adding a 100‑ohm resistor across terminals D0 and D1 to stabilize the line.
I am not familiar with the exact mbpoll syntax you are using, but for simplicity, try reading the Product ID Number at register 90, which is a straightforward INT16 register. (The PM5350 should return 15244.)
Finally, note that many Schneider meters use Base‑1 addressing. If your tool or library uses Base‑0 addressing, then float32 registers such as 3026 and 3027 may need to be requested as 3025 and 3026. Likewise, register 90 may need to be polled as 89 depending on the addressing mode.
Best Regards,
-Mehran
L3 Expert Advanced metering
You’ve reached the end of your document
Create your free account or log in to subscribe to the board - and gain access to more than 10,000+ support articles along with insights from experts and peers.