Доброе день
Подскажите пожалуйста : есть rspberry P3 , работает как мастер и опрашивает устройство (анализатор сети) по протоколу madbus используя pymodbus .Сейчас получают данные на сервер каждую минуту. Необходимо получать эти данные по запросу например набирая в браузере ip/sensor1 получать значение напряжения ,затем ip/sensor2-частоты и.т.д.
Что надо подправить в коде ,для того ,чтобы получить такую схему опроса анализатора сети.
Заранее благодарен.
Подскажите пожалуйста : есть rspberry P3 , работает как мастер и опрашивает устройство (анализатор сети) по протоколу madbus используя pymodbus .Сейчас получают данные на сервер каждую минуту. Необходимо получать эти данные по запросу например набирая в браузере ip/sensor1 получать значение напряжения ,затем ip/sensor2-частоты и.т.д.
Что надо подправить в коде ,для того ,чтобы получить такую схему опроса анализатора сети.
Заранее благодарен.
Python:
import time
import pymodbus
import serial
from pymodbus.pdu import ModbusRequest
from pymodbus.client.sync import ModbusSerialClient as ModbusClient
from pymodbus.transaction import ModbusRtuFramer
from pymodbus.constants import Endian
from pymodbus.payload import BinaryPayloadDecoder as decode
from pymodbus.payload import BinaryPayloadBuilder as builder
client = ModbusClient(method='rtu', port='/dev/ttyUSB0', parity='N',stopbits=1, baudrate=9600,timeout=60,strict=False )
client.connect()
while True:
W=client.read_holding_registers(3902,2,unit=1)
W_d = decode.fromRegisters(W.registers,byteorder =Endian.Big,wordorder=Endian.Little)
W_d ={'float':W_d.decode_32bit_float(),}
with open ('/var/www/html/index.html','w') as f:
for i,value in W_d.items():
try:
iteritems
except NameError:
print ((value),file=f)
W=value
VF1=client.read_holding_registers(3926,2,unit=1)
VF1_d = decode.fromRegisters(VF1.registers,byteorder =Endian.Big,wordorder=Endian.Little)
VF1_d ={'float':VF1_d.decode_32bit_float(),}
with open ('/var/www/html/frequency.html','w') as f:
for i,value in VF1_d.items():
try:
iteritems
except NameError:
print ((value),file=f)
VF1=value
AF1=client.read_holding_registers(3928,2,unit=1)
AF1_d = decode.fromRegisters(AF1.registers,byteorder =Endian.Big,wordorder=Endian.Little)
AF1_d ={'float':AF1_d.decode_32bit_float(),}
with open ('/var/www/html/corrent.html','w') as f:
for i,value in AF1_d.items():
try:
iteritems
except NameError:
print ((value),file=f)
AF1=value
client.close()