Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.191.24.202] |
|
Страницы: (6) « Первая ... 4 5 [6] все ( Перейти к последнему сообщению ) |
Сообщ.
#76
,
|
|
|
А проблема-то в чем? Поддержка ModBus-подобных протоколов реализуется прекрасно без всяких левых компонент, и обычно довольно быстро. Делать за вас всю работу никто просто так не будет. Добавлено На прикладном уровне работа с RS485/232 обычно мало чем отличается. |
Сообщ.
#77
,
|
|
|
Цитата shm @ А проблема-то в чем? Поддержка ModBus-подобных протоколов реализуется прекрасно без всяких левых компонент, и обычно довольно быстро. Делать за вас всю работу никто просто так не будет. [QUOTE] По оплате в личке давайте обсудим. Тому кто этим занимается работы на час. Участок который нужно перенести подписан разработчиком. |
Сообщ.
#78
,
|
|
|
Подниму старую тему. Но для меня новую.
Чтобы прояснить. В сети один мастер, например ноутбук, общается через переходник, например с 20-тью устройствами типа слейв, с соответствующими адресами. Устройства, слейв, типа реле. Включено, выключено... Слейв ничего не шлют в сеть? Мастер их постоянно дёргает? Я один раз в сеть кинул сообщение, "давай реле#18, включись". Слейв.id 18, включилось нет? Никто не знает. Мастер, спрашивает, включено или нет... Проясните в голове |
Сообщ.
#79
,
|
|
|
Цитата Serega_mexanik @ Слейв ничего не шлют в сеть? Мастер их постоянно дёргает? Я один раз в сеть кинул сообщение, "давай реле#18, включись". Слейв.id 18, включилось нет? Может зависеть от реализации. Нужно читать доки на конкретные устройства. --- Но если реализация хорошая, то конечно, слэйвы должны отвечать. Данными, если из него читаются данные. Или статусом, если выполняется запись. Сам факт ответа - уже статус. Что дивайс включен и работоспособен. Ответ не высылается на широковещательное сообщение - сообщение по адресу 0. --- Например, даётся команда "включить реле", а такой команды у конкретного дивайса нет. Или команда не выполнена по причине неисправности. Или выполнена успешно. Надо ответить кодом возврата операции. Всё это должно быть подробно описано в доках на дивайсы. хороший вариант описания |
Сообщ.
#80
,
|
|
|
Про формат посылки.
Это массив. Без знаковое, целое. 8 или 16. Почему, например не _int64 ? uint8 mas[7]; При передаче mas[0]=10; //0x10 сетевой адрес устройства mas[1]=0x00;//код функции запроса(это чтение, запись и ещё что-то)? mas[2]=100;//общая длина пакета. Где берецца? Из мануала к устройству? mas[3]=0x0*; mas[4]=0x0*; mas[5]=0x0*;// входные данные запроса. Берём из мануала к девайсу. (длина определяется mas[2] mas[6]=0x0*//идентификатор запроса. Тоже не ясно mas[7]= func_CRC16();// контрольная сумма (uint16_t) которая рассчитана хитро-функцией... Дальше, просто в порт кидаем данные. ComPort->send(mas[7]); И ждём ComPort->read(mas_otvet[7);//? Младший байт/старший. Пока непонятно что и зачем. Но в двух словах, Я спрашиваю девайсу, "какая температура", он отвечает в виде, например 25.5град, но виде кракозябр, которые расшифровываются своей функцией? |
Сообщ.
#81
,
|
|
|
Цитата Serega_mexanik @ Описаний Modbus в сети вагон и маленькая тележка. Начиная от википедии на русском и заканчивая полным описанием от авторов этого стандарта на английском. Вы хотите, чтобы вам их здесь пересказали? Зачем? Про формат посылки. |
Сообщ.
#82
,
|
|
|
Цитата Serega_mexanik @ Про формат посылки. Это массив. Без знаковое, целое. 8 или 16. Почему, например не _int64 ? Потому, что стандартный (широко распространённый) UART использует для приёма/передачи байты. Добавлено Цитата Serega_mexanik @ mas[2]=100;//общая длина пакета. Где берецца? Из мануала к устройству? В том числе. Но вообще-то у классического модбаса нет такой переменной. У многочисленных типа-его реализаций может быть. Для удобства. Переменная должна быть рассчитана при формировании конкретного пакета. Добавлено Цитата Serega_mexanik @ mas[6]=0x0*//идентификатор запроса. Тоже не ясно Дополнительная переменная, идентифицирующая конкретный пакет. Должна содержаться в ответе. Показывает, что полученный ответ на тот самый конкретный запрос. Добавлено Цитата Serega_mexanik @ И ждём ComPort->read(mas_otvet[7);//? Младший байт/старший. Пока непонятно что и зачем. Но в двух словах, Я спрашиваю девайсу, "какая температура", он отвечает в виде, например 25.5град, но виде кракозябр, которые расшифровываются своей функцией? Это всё читаем в доках на дивайс. Какой будет ответ, в каком формате данные, статусы итд. |
Сообщ.
#83
,
|
|
|
Ничего не понятно. Но, оч интересно.
Тыкните носом, что курить. Буду благодарен за кусочек кода |
Сообщ.
#84
,
|
|
|
Цитата Serega_mexanik @ Тыкните носом, что курить. Цитата Dushevny @ Начиная от википедии на русском и заканчивая полным описанием от авторов этого стандарта на английском. "Чтение документации из интернета вслух- 100 евро в час." |
Сообщ.
#85
,
|
|
|
Проблема свелась к преобразованию string to byte или byte[]
|