Добрый день! Заранее прошу прощения за нубский вопрос. Подскажите, есть частотник поддержкой протокола rs 485. Как его можно подключить к Raspberry PI для получения данных по данному протоколу?
Проблема. том, что слабо представляю как это сделать - брать расширение для машины? Или можно подключить как-то напрямую?
У малинки есть UART - это "почти" RS485/232/422. Вам нужен преобразователь интерфейсов uart - rs485. Для начала посмотрите на max485 - как обычный и примитивный преобразователь он должен вас удовлетворить, да и в китае есть готовые модули, но потом, когда всё заработает, рекомендую поискать микросхему с развязкой. И вот полезная статья.
Если умеете программировать... при этом купив USB-RS485 (у меня на дебиане, не помню тип устройства... даже установку дров не попромил)... и протокол Modbus RTU то ничего сложного в этом нет. На малине ведь Debian/Raspbian. Тем более, что с последовательным портом умеете работать. Как пример: Код (C++): //команда 6 - запись в один регистр int MRTU_CMD_6(U8 Dev, U16 Addr, U16 Reg) { U16 crc; int wcount; int rcount; txbuf[0] = Dev; //адрес txbuf[1] = 6; //команда txbuf[2] = (U8)((Addr & 0xFF00) >> 8); txbuf[3] = (U8)(Addr & 0xFF); txbuf[4] = (U8)((Reg & 0xFF00) >> 8); txbuf[5] = (U8)(Reg & 0xFF); // crc = MRTU_CRC(&txbuf[0], 6); txbuf[7] = (U8)((crc >> 8) & 0xFF); txbuf[6] = (U8)(crc & 0xFF); (*(U16*)(&txbuf[6])) = crc; wcount = write(fd, &txbuf[0], 8); if (wcount < 0) { perror("Write"); return -1; } usleep(75000); memset(&rxbuf[0], 0, _szbuf); rcount = read(fd, &rxbuf[0], _szbuf); if (rcount < 0) { perror("Read"); return -1; } return 0; } Этим запишете значение в регистр частотника(скорость, реверс и т.п.). Обратите внимание, что управление(приём-передача) с USB-RS485 не требуется. Довольно удобно.
Это НЕ ПРОТОКОЛ. Это всего лишь интерфейс. В этом интерфейсе (о, боже!) даже скорости не стандартизированы. Тогда не лезь.