Вячеслав Штейбезандт
5b2a64a39b
Реализовано и проверено: 1) Подключение устройства 2) Запись и чтение Coil и Holding регистров 3) Индикация работы МЗКТЭ и напряжения на ТЭ Реализовано и нуждается в проверке: 1) Поиск плат и установление их адресов в сети 2) Сканирование текущих настроек платы при подключении 3) Опрос текущих значений напряжений ТЭ по таймеру 4) Изменение скорости обмена, сетевого адреса плат и настройка контроля четности. #3
37 lines
1.7 KiB
Plaintext
37 lines
1.7 KiB
Plaintext
По модбасу: нужна терминалка для общения с МЗКТЭ. Вот краткое ТЗ
|
||
|
||
Команды:
|
||
0x01 Read Coils
|
||
0x03 Read Holding Registers
|
||
0x04 Read Input Registers
|
||
0x05 Write Single Coil
|
||
0x06 Write Single Register
|
||
0x0F Write Multiple Coils
|
||
0x10 Write Multiple Registers
|
||
|
||
Т.е. обращение будет к следующим типам данных:
|
||
- Входные регистры (MB_DataInRegsTypeDef),
|
||
- Регистры хранения (MB_DataHoldRegsTypeDef),
|
||
- Коилы (MB_DataCoilsTypeDef).
|
||
|
||
Там некоторые регистры еще парсяться, поэтому скидываю файл с структурой данных, который я сделал. В скобках указал имя typedef соответствующего типа данных в файле. Можешь его использовать, заодно мб придумаешь че можно улучшить.
|
||
|
||
|
||
По программе:
|
||
Там идет управление и контроль ТЭ (топливные элементы), которых всего 85 штук. С них снимается задаются две уставки: предупреждение и авария. Коилами можно исключать ТЭ из работы.
|
||
Также есть пару управляющих настроек и статус-регистр.
|
||
|
||
Соответственно можно сделать два окна:
|
||
- одно небольшое - для статуса МЗКТЭ
|
||
- второе большое - для ТЭ. Можно сделать 4 вкладки, в каждой 85 ячеек:
|
||
- Напряжение на ТЭ,
|
||
- Уставки "Предупреждение",
|
||
- Уставки "Авария",
|
||
- Исключения ТЭ
|
||
|
||
И можно сделать одно открываемое окно для настроек. Типа по кнопке "Настройки МЗКТЭ". Это для регистров хранения 170-174. И если что их запись должна быть только по команде 0x06 (сингл). Остальные уставки поддерживают запись 0x10 (мультипл).
|
||
|
||
Статус МКЗТЭ и Напряжения на ТЭ только считывается (команда 0x04)
|
||
Уставки "Предупреждение" и "Авария" можно считать и записать всеми способами (0x03, 0x06, 0x10)
|
||
Настройки МЗКТЭ можно считывать и записать только по одному регистру (0x03, 0x06)
|
||
Исключения ТЭ можно считывать и записывать всеми способами (0x01, 0x05, 0x0F) |