Форум сайта python.su
0
Добрый день!
Развернул сервер для обмена в протоколе Modbus TCP на базе pymodbus3.
Перед запуском сервера в Datastore for Modbus Server Context задал нулевые значения для обмена с клиентом.
Обмен работает, в клиенте наблюдаю 0 значения.
А как теперь в сервере можно изменять заданные значения для обмена с клиентом?
Изменять их каким то образом в Datastore?
Помогите кто сталкивался с таким.
Офлайн
72
Да, у Datastore методы set_values и get_values
Офлайн
0
Применяю метод set_values.
В результате получаю, что fc3 почему то не имеет метода set_values.
Не знаю правильно или нет пишу, может ошибка в написании кода?
Python 3.4.4 (v3.4.4:737efcadf5a6, Dec 20 2015, 20:20:57) [MSC v.1600 64 bit (AMD64)] on win32 Type "copyright", "credits" or "license()" for more information. >>> from pymodbus3.server.sync import StartTcpServer >>> from pymodbus3.datastore import ModbusSequentialDataBlock >>> from pymodbus3.datastore import ModbusSlaveContext, ModbusServerContext >>> fc3 = ModbusSequentialDataBlock(0, [0] * 2000) >>> fc3 <pymodbus3.datastore.store.ModbusSequentialDataBlock object at 0x0000000003327240> >>> fc3.setValues(0, random.randint(0, 1)) Traceback (most recent call last): File "<pyshell#5>", line 1, in <module> fc3.setValues(0, random.randint(0, 1)) AttributeError: 'ModbusSequentialDataBlock' object has no attribute 'setValues' >>>
Офлайн
72
не вижу у вас применения set_values, вижу setValues
Офлайн
0
ок! Спасибо!
Писал по инструкциии pymodbus3.pdf.
Взял от сюда - https://github.com/uzumaxy/pymodbus3/blob/master/doc/pymodbus3.pdf
В ней указано -
setValues(address, values)
Sets the requested values of the datastore
Parameters
• address – The starting address
• values – The new values to be set
Здесь тоже setValues -
https://pythonhosted.org/pymodbus/library/datastore.html?highlight=modbussequentialdatablock#pymodbus.datastore.ModbusSequentialDataBlock
Может есть какое другое описание, более свежее?
Офлайн
72
kvnКонечно, в исходниках все видно :D
Может есть какое другое описание, более свежее?
Офлайн