Передать значения sensor_1 и sensor_2 от одного ПК другому ПК, через протокол modbusTCP, используя библиотеку modbus_tk?
я студент и только начинаю изучать python. Но столкнулся с задачей, которую не знаю как решить, а именно: как передать значения sensor_1 и sensor_2 от одного ПК другому ПК, через протокол modbusTCP, используя библиотеку modbus_tk? Генерация показателей должна вызываться в отдельном потоке. Причем, master-ПК должен получить значения sensor_1 и sensor_2 как Read Holding Registers. Как обозначить значения sensor_1 и sensor_2 за регистры временного хранения на slave-ПК? Ниже привел примерный код для slave, но не уверен что смог правильно описать работу modbus_tcp:
import sys
import modbus_tk
import modbus_tk.defines as cst
import modbus_tk.modbus_tcp as modbus_tcp
import random
import time
from threading import Thread
class MyThread(Thread):
def __init__ (self, sensor_1=None, sensor_2=None):
Thread.__init__(self)
self.sensor_1 = sensor_1
self.sensor_2 = sensor_2
def run(self):
if self.sensor_1:
self.sensor_1 = random.randint(0, 40)
msg_1 = "Дистанция %s m." % self.sensor_1
print(msg_1)
if self.sensor_2:
self.sensor_2 = random.randint(0, 100)
msg_2 = "Скорость %s м/с." % self.sensor_2
print(msg_2)
def threads():
for i in range(4):
sensor_1 = (i+1)
my_thread1 = MyThread(sensor_1=sensor_1)
my_thread1.start()
my_thread1.join()
for i in range(4):
sensor_2 = (i+1)
my_thread2 = MyThread(sensor_2=sensor_2)
my_thread2.start()
my_thread2.join()
def main():
logger = modbus_tk.utils.create_logger(name="console", record_format="%(message)s")
try:
server = modbus_tcp.TcpServer()
logger.info("running...")
logger.info("enter 'quit' for closing the server")
server.start()
slave_1 = server.sensor_1(1)
slave_1.add_block('0', cst.HOLDING_REGISTERS, 0, 1)
slave_2 = server.sensor_2(1)
slave_2.add_block('0', cst.HOLDING_REGISTERS, 0, 1)
if __name__ == "__main__":
threads()
main()