Pymodbus - Read input register of Energy meter over rs485 on uart of raspberry pi3

Pymodbus - Read input register of Energy meter over rs485 on uart of raspberry pi3

Date : October 24 2020, 06:10 PM
I wish did fix the issue. If I'm not getting it wrong, you're defining your GPIO pin correctly but you're never toggling it high and low. To be able to drive the DE/~RE signal on your RS485 chip you should take the GPIO high before you write on the bus and low right after to be able to read the answer from your meter.
Unfortunately, I'm afraid what you're trying to do is not possible with pyModbus out of the box. You can take a look at this link:
code :
./autogen.sh && ./configure --prefix=/usr && make && sudo make install

Share : facebook icon twitter icon
Unable to read Select Energy meter MFM 384 C

Unable to read Select Energy meter MFM 384 C

By : 张文君
Date : March 29 2020, 07:55 AM
I wish did fix the issue. Solved : I have 2 Wire RS 485 from energy meter and i have always (Even while energy meter is responding through Rx+ and Rx- lines )enabled Tx+ and Tx- , Which caused corruption of transmitted data from energy meter
pymodbus read meter registers

pymodbus read meter registers

By : braulio
Date : March 29 2020, 07:55 AM
it fixes the issue I think you should set the unit and port argument, and for getting the value use the rr.registers, so you need to know the unit_ID value, and the device port.
In most cases, the unit is 1 and the port is 502 as the modbus default.
code :
from pymodbus.client.sync import ModbusTcpClient

client = ModbusTcpClient('', port=502)

if client.connect():
    res = client.read_holding_registers(40012, count=3, unit=1)

    if not res.isError():
    '''.isError() was implemented in pymodbus version 1.4.0 and above.'''
        # handling error

How to read/write a device's register connected to a gateway with pymodbus via TCP

How to read/write a device's register connected to a gateway with pymodbus via TCP

By : Brandon
Date : March 29 2020, 07:55 AM
To fix this issue First you should know about your modbus slave register tables(your sensor) and know about it functions codes if read function code is 0x3 you should use Read Holding Registers and if function code is 0x4 you should use Read Input Registers functions
after that you should find your require register address , ex:temp register address is 0x05 and number of bytes is 2 and your sensor id is 230 and requirement function code is 0x3
code :
read_holding_registers(0x05 , 2, unit=230)  
How should negative numbers be represented in the pymodbus input register?

How should negative numbers be represented in the pymodbus input register?

By : user2653429
Date : March 29 2020, 07:55 AM
I wish did fix the issue. The floats are to be represented in IEEE-754 hex format before writing in to the datastore. You can do something like this to achieve it.
code :
# Import BinaryPayloadBuilder and Endian
from pymodbus.payload import BinaryPayloadBuilder, Endian
# Create the builder, Use the correct endians for word and byte
builder = BinaryPayloadBuilder(byteorder=Endian.Big, wordorder=Endian.Big)
busvoltages = [120.0, 501.3, -65.2, 140.3, -202.4]
builder.reset() # Reset Old entries
for vol in busvoltages:
payload = builder.to_registers()   # Convert to int values
# payload will have these values [17136, 0, 17402, 42598, 49794, 26214, 17164, 19661, 49994, 26214]
context[slave_id].setValues(2, 0, payload)  # write to datablock
>>> from pymodbus.payload import BinaryPayloadDecoder, Endian
>>> r = client.read_input_registers(0, 10, unit=1)
# Use the same byte and wordorders
>>> d = BinaryPayloadDecoder.fromRegisters(r.registers, byteorder=Endian.Big, wordorder=Endian.Big)
>>> d.decode_32bit_float()
>>> d.decode_32bit_float()
>>> d.decode_32bit_float()
>>> d.decode_32bit_float()
>>> d.decode_32bit_float()
>>> # Further reads after the registers are exhausted will throw struct error
>>> d.decode_32bit_float()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/sanjay/.virtualenvs/be3/lib/python3.6/site-packages/pymodbus/payload.py", line 440, in decode_32bit_float
    handle = self._unpack_words(fstring, handle)
  File "/Users/sanjay/.virtualenvs/be3/lib/python3.6/site-packages/pymodbus/payload.py", line 336, in _unpack_words
    handle = unpack(up, handle)
struct.error: unpack requires a buffer of 4 bytes
Raspberry Pi RS485/Uart Modbus

Raspberry Pi RS485/Uart Modbus

By : Alzbeta Ivanovicova
Date : March 29 2020, 07:55 AM
it fixes the issue The code in example-2 actually works correctly. I just needed to format the response.
code :
print RecievedData.encode('hex')
Related Posts Related Posts :
  • How not to output default T4 generated file?
  • RichTextBox EnableAutoDragDrop=true requires CTRL key pressed when dropping a ListBox item?
  • How can I get Symbolic-Name of an Osgi bundle which is using one of my exported packages?
  • Get network address of a file in AppleScript
  • What is purpose of T4 Generator in T4toolbox
  • How to correctly formalize the command line usage of GNU/Linux commands?
  • What's the difference between a UseCase and a Workflow?
  • How to write a virtual machine
  • NServiceBus FullDuplex sample compiled and debugging against .NET 4.0 framework throws exception
  • Glade: How do I pass more than one argument to a signal handler?
  • Case statements in VHDL
  • New NSData with range of old NSData maintaining bytes
  • How do I convert a column of text URLs into active hyperlinks in Excel?
  • serial port parity
  • @Override fix-code shortcut in NetBeans
  • Import small number of records from a very large CSV file in Biztalk 2006
  • How to clear browser's cache from server side?
  • Execute remote Lua Script
  • Website.com/cpanel access
  • Which LOGO implementation?
  • How to add files to a document library in a site definition in SharePoint 2007?
  • JavaFX layouts question
  • Is it possible to access variable of subclass using object of superclass in polymorphism
  • How can the reliability of Software be checked through analysis?
  • Prototype Multi-Event Observation for Multi-Elements
  • maximum stored proc name in firebird
  • AutoComplete implementation
  • How is it that i am getting two different open ids for the same site for the same user
  • Revision histories and documenting changes
  • How to use Int13H Ext to read /write all sectors on each partition of harddisk (>8GB)
  • Dijit.Dialog 1.4, setting size is limited to 600x400 no matter what size I set it
  • Windows Phone 7 Notifications/Pop/Toasts
  • StructureMap: "No default instance of plugin defined" - even though it is
  • Getting HTTPS working with Traefik and GCE Ingress
  • flask with bootstrap4, not show modal, use CDN works well
  • How to get the formatted view of YQL as result?
  • wsadmin is taking 10 minutes to connect to Application Server
  • TCL array values updation based on command line argument
  • Wordpress: help with posts_nav_link()
  • how to retrieve information from deleted row
  • How does one align code (braces, parens etc) in vi?
  • Are there videos/tutorials that show one or more technical SAP upgrade tasks from 46C R/3 to ECC 6.0?
  • Are there any B-tree programs or sites that show visually how a B-tree works
  • Couple o' quick questions on Apache Lucene
  • how to add hyperlink to particular node of tree in ext js
  • Number sequence in AXAPTA
  • Using Zope object unique id ( _p_oid ) to access object itself
  • Work with protocol OAuth without browser?
  • Searching Amazon only returns 10 items
  • Whois list of Top Level Domain against their corresponding registrar
  • How to bring perforce client work space into sync with depot as of specific time of a specific date
  • How is a neural network called that is NOT convolutional
  • How to convert WSDL file to class file
  • iPhone Safari does not auto scale back down on portrait->landscape->portrait
  • how to build rabbitmq C client lib on windows
  • UITableView hide sectionindex but retain sections
  • Good .net4 profiler
  • UNIX Signal lost
  • How do I exclude the sources jar in mvn deploy?
  • RCP update site for multiple platforms
  • shadow
    Privacy Policy - Terms - Contact Us © 35dp-dentalpractice.co.uk