Найти - Пользователи
Полная версия: MODBUS или заморочки с CRC
Начало » Python для новичков » MODBUS или заморочки с CRC
1 2
krasoffski
Настройки ком порта на обоих сторонах должны быть идентичны.
1) скорость
2) четность нечетность (pariry)
3) стоповые биты

Еще есть вероятность, неправильно считаешь CRC16 (не тот полином используешь)
В мадбасе есть команда для проверки связи с устройством. Код не помню, но смысл такой устройство отправляет то, что приняло, если CRC верен.
Если не секрет, что за прибор???

Я всегда высчитывал CRC по данной проге, если не оговаривалось исключений. Програ писалась для контроллера на с, но интерпретировать на python думаю не составит труда.
WORD CRC (BYTE *data, INT lenght)
{
INT i, j;
WORD CRC = 0xFFFF, bit;

for(i=0; i<lenght; i++)
{
CRC ^= (WORD)data[i];

for(j=0; j<8; j++)
{
bit = CRC & 0x0001;
CRC >>= 1;
if(bit) CRC ^= 0xA001;
}
}
return CRC;
}
CryptSpirit
pyuser спасибо завтра буду пробовать.
krasoffski
Настройки ком порта на обоих сторонах должны быть идентичны.
1) скорость
2) четность нечетность (pariry)
3) стоповые биты
Все делал как написано в документации к прибору.
krasoffski
Если не секрет, что за прибор???
Не секрет. UA-112
krasoffski
(не тот полином используешь)
Да черт его знает. Как понять то.
На осциллографе вроде галяк. Скорее всего разъем не так паяем.
CryptSpirit
У меня вопрос. Будет ли работать тот код который я нацарапал?
pyuser, если можно то ссылки на документацию к МАК2000 (хочу сравнить описание к протаколам) либо пример использования класса mak2k()
pyuser
документация у меня была в печатном виде и я вернул ее вместе с девайсом :(
использовать класс очень просто:
в конструктор передаются объект типа serial.Serial иID девайса (на одной шине может быть не один девайс)
метод append добавляет регистры, которые будут читаться (по сути важен только параметр item_register)
метод read читает в цикле каждый регистр
метод group_read читает все регистры сразу
соответственно для чтения используется или один или другой (group_read, понятно, более предпочтителен)
атрибут registers - результат чтения
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB