Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/chempik1234/pyrtutrends

Программа на PyQt5, позволяющая записывать данные с регистров, получаемые по протоколу Modbus, в виде графиков, а потом сохранять их и импортировать с привязкой по времени и логами.
https://github.com/chempik1234/pyrtutrends

json modbus modbus-rtu modbus-tcp pymodbus pymodbustcp pyqt pyqt5 pyqt5-desktop-application pyqtgraph pythom python3 qt-designer qtdesigner

Last synced: 5 days ago
JSON representation

Программа на PyQt5, позволяющая записывать данные с регистров, получаемые по протоколу Modbus, в виде графиков, а потом сохранять их и импортировать с привязкой по времени и логами.

Awesome Lists containing this project

README

        

# :chart_with_upwards_trend:PyRtuTrends
:question: Программа на __PyQt5__, позволяющая записывать данные с регистров, получаемые по протоколу Modbus, **в виде графиков**, а потом _сохранять_ их и _импортировать_ с **привязкой по времени** и логами.
## :boom:Преимущества связаны с настройками:
* все они _(как и файлы сохранения)_ хранятся в легко читаемом формате в **отдельном файле**, который можно **быстро отредактировать** под нужное Modbus-устройство
* изменения сохраняются и загружаются в несколько кликов
* настроек много: цвета графиков, их названия и обозначения входов, формат хранения значений в регистрах (среди них: 32- и 64-битные float, 16-битные int, float в виде int, дискретные входы/выходы)

> Заметьте, что данные для подключения из настроек просто являются __значениями__ полей ввода __по умолчанию__, подключение и изменение настроек связи проводится в программе, это редактировать не обязательно. Подключение можно осуществить по Modbus TCP и Modbus RTU.

### :file_folder: Автосохранение
Присутствует возможность **автосохранения** каждые несколько часов (помогает избежать потери несохранённых данных и разделить график на части). Для этого надо создать в текущей директории папку `Autosave` :exclamation:

В файле _settings.json_, который загружается по умолчанию и поэтому __не должен быть удалён__, хранятся **примеры** всех настроек, но для понимания стоит изучить следующее:

| Хранение | Формат записи | Пример |
|-|-|-|
| Целое число | _адрес регистра_ как число или строка | 14874 или "V35032" или "H3A1A" - результат один |
| Дробь в виде целого числа, которое надо разделить на 1000 (16 бит) | [_адрес_, " / 1000"] | [14874, " / 1000"] |
| Дробное число в 2 или 4 регистрах (32 или 64 бита вместо 16) | [_адрес_, _кол-во регистров_] | [14874, 2] - это 14874 и 14875 |
| Дискреты (1 из 16 битов в регистре) | [_адрес регистра_, _номер бита_, значение-если-0, значение-если-1] | пусть в регистре `14874` записано `0000000000000001`, тогда [14874, 0, 1, 2] прочитает __1__, но так как приложение связано с построением графиков, они не должны наслаиваться друг на друга из-за одних и тех же возможных значений `(0 и 1)`, поэтому их надо _заменить на другие_, в данном случае - 1 и 2 (например, если один график по оси Y лежит на `[1, 2]`, следующий можно вынести на `[3, 4]`) |