Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- from pymodbus.client.sync import ModbusSerialClient as ModbusClient
- from pymodbus.constants import Endian
- from pymodbus.payload import BinaryPayloadDecoder
- from pymodbus.payload import BinaryPayloadBuilder
- from pymodbus.client.sync import ModbusTcpClient
- #client = ModbusClient(method='rtu', port='31.133.10.68', timeout=1, stopbits = 1, bytesize = 8, parity='E', baudrate= 9600)
- client = ModbusTcpClient('31.133.10.68')
- connection = client.connect()
- print connection
- data = {}
- response = client.read_holding_registers(0x2020,4,unit=0x001)
- decoder = BinaryPayloadDecoder.fromRegisters(response.registers, Endian.Big, wordorder=Endian.Big)
- data['Freq'] = "%0.2f" % decoder.decode_32bit_float()
- print "Grid Freq: %0.2f" % decoder.decode_32bit_float()
- response = client.read_holding_registers(0x2008,2,unit=0x001)
- decoder = BinaryPayloadDecoder.fromRegisters(response.registers, Endian.Big, wordorder=Endian.Big)
- print "L1 V: %0.2f" % decoder.decode_32bit_float()
- response = client.read_holding_registers(0x2068,4,unit=0x001)
- decoder = BinaryPayloadDecoder.fromRegisters(response.registers, Endian.Big, wordorder=Endian.Big)
- print "L1 A: %0.2f" % decoder.decode_32bit_float()
- response = client.read_holding_registers(0x2070,4,unit=0x001)
- decoder = BinaryPayloadDecoder.fromRegisters(response.registers, Endian.Big, wordorder=Endian.Big)
- print "L2 A: %0.2f" % decoder.decode_32bit_float()
- response = client.read_holding_registers(0x206C,4,unit=0x001)
- decoder = BinaryPayloadDecoder.fromRegisters(response.registers, Endian.Big, wordorder=Endian.Big)
- print "L3 A: %0.2f" % decoder.decode_32bit_float()
- response = client.read_holding_registers(0x2080,4,unit=0x001)
- decoder = BinaryPayloadDecoder.fromRegisters(response.registers, Endian.Big, wordorder=Endian.Big)
- print "Power: %0.2f" % decoder.decode_32bit_float()
- response = client.read_holding_registers(0x20E0,4,unit=0x001)
- decoder = BinaryPayloadDecoder.fromRegisters(response.registers, Endian.Big, wordorder=Endian.Big)
- print "Cos fi: %0.2f" % decoder.decode_32bit_float()
- response = client.read_holding_registers(0x3000,4,unit=0x001)
- decoder = BinaryPayloadDecoder.fromRegisters(response.registers, Endian.Big, wordorder=Endian.Big)
- print "Total: %0.2f" % decoder.decode_32bit_float()
- print data
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement