Кто-нибудь знает способ чтения с приложением python 13 слов с одного и того же адреса устройства через протокол Modbus Serial RTU - PullRequest
0 голосов
/ 29 февраля 2020

Я пытаюсь создать приложение python, которое будет работать на Raspberry Pi 4B. Мне нужно будет связаться по протоколу Modbus RTU с устройством. Это устройство ATEQ F620. У меня проблема, потому что мне нужно изменить некоторые параметры на этом устройстве, и я не знаю, как это сделать. Мне удалось изменить тестовую программу, запустить тестовую программу и прочитать активную программу.

ИЗМЕНЕНИЕ НОМЕРА ПРОГРАММЫ Чтобы изменить номер текущей программы, необходимо написать одно слово по адресу 02 00h номер программы (см. таблицу «Адреса слов» главы 3 параграфа 2.1). Отправка: 01 10 02 00 00 01 02 02 00 84 f0

  • pymodbus: client.write_register address = 512 value = 0 unit = 255

ЗАПУСК ЦИКЛА НА ТЕКУЩЕЙ ПРОГРАММЕ Для запуска текущей программы необходимо выполнить битовую запись со значением FFh на адрес 01h: Отправка: 01 05 00 01 FF 00 DD FA

  • pymodbus: client.write_coil address = 1 value = 255 unit = 255

Следующее вызывает у меня головную боль, потому что при вышеупомянутом я должен был написать или прочитать слово, написать один бит:

КОНЕЦ СОСТОЯНИЯ ЦИКЛА, ЧТЕНИЕ В ЖИВОЙ СТРУКТУРЕ Чтобы прочитать статус конца цикла в оперативной структуре, он должен прочитать 13 слов по адресу 30h (см. Главу 7 таблицы, параграф 4 «Состояние и меры в реальном времени»): Отправка: 01 03 00 30 00 0D 84 00

  • pymodbus: я не могу понять, как читать 13 слов на одном адресе или записывать более одного слова на один адрес.

СОЗДАНИЕ ТИП ТЕСТА Вопрос: 01 10 00 7F 00 04 08 01 00 15 00 E8 03 00 00 E5 B8 01 1) Запрос на станцию ​​01. 10 2) Написать. 00 7F 3) По адресу "00 7Fh". 00 04 4) 4 слова по 16 байтов. 08 5) Поэтому 8 байтов. 01 00 6) Соответствует требуемому количеству записываемых параметров. 15 00 7) Загрузите идентификатор типа теста, читайте 00 15h = 21d (относится к таблице параметров). E8 03 00 00 8) Считать 00 00 03 E8h = 1000 (d), делить на 1000 = 1 (d), поэтому тип испытания = утечка. E5 B8 CR C.

Буду признателен, если кто-нибудь сможет мне помочь. Спасибо

...