Как сделать функцию rtu Instrument.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как сделать функцию rtu Instrument.

Сообщение Anonymous »

Сначала какая-то база на том, что я делаю, как я делаю:
У меня есть устройство IoT, которое подключено к счетчику, это устройство IoT отправляет данные на мой сервер, и я кодировал его в Python и выполняю модуль импорта для подключения к клиенту и общению. ( мне не нужно использовать Pymodbus )
Я должен написать какое -то значение по адресу регистра в метре. (Чтение регистра по адресу работает нормально).
Как я получаю и отправляю данные в настоящее время?

Код: Выделить всё

connection, client_address = socket.accept() //socket coming from 'import socket'
connection.recv(20) // receives in a while loop
< /code>
После получения данных я конвертирую их в нужную мне форму функцию get_command_response из класса прибора. (Инструмент здесь является экземпляром класса прибора Джонаса Берга из https://github.com/pyhys/minimalmodbus с использованием [b] 2019 [/b], старая версия, не последняя 2023, но не имеет значения) 
   convertedDataResponse = self.instrument.get_command_response(
data_from_socket,
self.current_func_code
Отправка: Отправка работает нормально, когда мне нужно прочитать регистр по упомянутому адресу реестра в метре, это работает нормально. Фрагмент того, как я это делаю ниже: < /p>

Код: Выделить всё

 dataToSend, funcCode = self.instrument.read_registers(
registerAddress, //register address to be read
numberOfRegisters, //total registers
functioncode=function_code   // 3 or 4 mainly
)
self.connection.sendall(dataToSend) //I send data request to  read the address of register to server, it works fine because i get correct expected response of this sent data in connection.recv(..).
Где сейчас проблема? Интерфейс Функция для записи регистра (инструмент.

Код: Выделить всё

WhatToSendHere=self.instrument.write_register(17004,200.0,2,16,False)
self.connection.sendall(WhatToSendHere)
Большинство примеров в Google использует pymodbus [/b] и modbusclient класс предоставляет прямой интерфейс для записи регистрации, но я должен использовать только модуль сокета и отправить команду/данные на сервер с использованием connection.sendall (**) или некоторую аналогичную функцию. (Как я объясняю, это работает для регистрации чтения из -за возвращаемого типа функции read_registers, которую я могу использовать для отправки на сервер, но не в состоянии сделать это для функции write_register, используя этот интерфейс MinimalModbus от Jonas Berg)
или есть какая -либо другая функция, которую я могу использовать с минимального модба)
или есть другая функция, которую я могу использовать с минимального модба, чтобы записать, чтобы записать, используя модуль сокета, чтобы отправить Intepention of arecater?>

Подробнее здесь: https://stackoverflow.com/questions/796 ... ut-not-pym
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»