Ответы в темах
-
АвторЗаписи
-
sergey_narva
УчастникСамое интересное, как оказалось, конкретно для PZEM004T V3.0 совершенно без разницы какие данные предаются в 0x42. По любому происходит обнуление регистра подсчета энергии. В ответ получаем пакет полностью совпадающий с переданным. Если смотреть по документации, принятый пакет, с большой долей вероятности, не совпадет с переданным только в случае неисправности «железа» (микросхемы).
Т.е.пакет 0x01 0x42 0x80 0x11
ответ 0x01 0x42 0x80 0x11
приводит к обнулению регистра подсчета энергии (это пакет без данных — адрес устройства, функциональный код, CRC), также как и пакеты с данными:пакет 0x01 0x42 0x00 0x00 0xA1 0xCC
ответ 0x01 0x42 0x00 0x00 0xA1 0xCCпакет 0x01 0x42 0x80 0x11 0x00 0x00
ответ 0x01 0x42 0x80 0x11 0x00 0x00ну и так далее.
sergey_narva
УчастникВоспользовался подсказкой, спасибо jurasskpark, попробовал реализовать через DrvModbus. Через администратор отправил через команду данные
80 11
получил следующееsergey_narva
Участник-
Ответ изменён 2 года, 6 месяцев назад пользователем
sergey_narva.
-
Ответ изменён 2 года, 6 месяцев назад пользователем
sergey_narva.
sergey_narva
Участникsergey_narva
УчастникДля соединения устройства используется драйвер Modbus RTU
sergey_narva
УчастникЗдравствуйте!
Хотелось бы продолжить тему по отправке нестандартных команд.
Согласно описанию выше в теме, это анализатор PZEM004T.
Описание пакета:
2.5 Reset energy
The command format of the master to reset the slave’s energy is (total 4 bytes):
Slave address + 0x42 + CRC check high byte + CRC check low byte.
Correct reply: slave address + 0x42 + CRC check high byte + CRC check low byte.
Error Reply: Slave address + 0xC2 + Abnormal code + CRC check high byte + CRC check low byte
2.7 CRC check
CRC check use 16bits format, occupy two bytes, the generator polynomial is X16 + X15 + X2 +1, the polynomial value used for calculation is 0xA001.
The value of the CRC check is a frame data divide all results of checking all the bytes except the CRC check value.Для сброса показаний энергии необходимо отправить пакет.
Пакет имеет фиксированный формат:
для устройства с адресом 0x01 — 01 42 80 11
для устройства с адресом 0x02 — 02 42 80 E1
для устройства с адресом 0x03 — 03 42 81 71Возможно ли отправлять эти пакеты с помощью драйвера DrvTester?
sergey_narva
УчастникЗдравствуйте!
А какова цена вопроса реализации опции нестандартной команды в драйвере?
-
Ответ изменён 2 года, 6 месяцев назад пользователем
-
АвторЗаписи