На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
Страницы: (6) « Первая ... 4 5 [6]  все  ( Перейти к последнему сообщению )  
> ModBus
    Цитата unduty @
    Кто может помочь прикрутить ModBus для rs485 ?

    А проблема-то в чем? Поддержка ModBus-подобных протоколов реализуется прекрасно без всяких левых компонент, и обычно довольно быстро. Делать за вас всю работу никто просто так не будет.

    Добавлено
    На прикладном уровне работа с RS485/232 обычно мало чем отличается.
    Сообщение отредактировано: shm -
    Цитата TheMachine @
    т.е. в общем случае вы правы конечно, а мне надо спать больше а пить меньше
      Цитата shm @
      А проблема-то в чем? Поддержка ModBus-подобных протоколов реализуется прекрасно без всяких левых компонент, и обычно довольно быстро. Делать за вас всю работу никто просто так не будет.

      [QUOTE]
      По оплате в личке давайте обсудим. Тому кто этим занимается работы на час. Участок который нужно перенести подписан разработчиком.
      Сообщение отредактировано: unduty -
        Подниму старую тему. Но для меня новую.

        Чтобы прояснить.
        В сети один мастер, например ноутбук, общается через переходник, например с 20-тью устройствами типа слейв, с соответствующими адресами.
        Устройства, слейв, типа реле. Включено, выключено...

        Слейв ничего не шлют в сеть? Мастер их постоянно дёргает? Я один раз в сеть кинул сообщение, "давай реле#18, включись". Слейв.id 18, включилось нет? Никто не знает. Мастер, спрашивает, включено или нет...

        Проясните в голове
          Цитата Serega_mexanik @
          Слейв ничего не шлют в сеть? Мастер их постоянно дёргает? Я один раз в сеть кинул сообщение, "давай реле#18, включись". Слейв.id 18, включилось нет?

          Может зависеть от реализации.
          Нужно читать доки на конкретные устройства.
          ---
          Но если реализация хорошая, то конечно, слэйвы должны отвечать.
          Данными, если из него читаются данные.
          Или статусом, если выполняется запись.
          Сам факт ответа - уже статус. Что дивайс включен и работоспособен.
          Ответ не высылается на широковещательное сообщение - сообщение по адресу 0.
          ---
          Например, даётся команда "включить реле", а такой команды у конкретного
          дивайса нет. Или команда не выполнена по причине неисправности.
          Или выполнена успешно. Надо ответить кодом возврата операции.
          Всё это должно быть подробно описано в доках на дивайсы.
          хороший вариант описания
          Сообщение отредактировано: ЫукпШ -
          Подпись была выключена в связи с наложенным заземлением.
            Про формат посылки.
            Это массив. Без знаковое, целое. 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град, но виде кракозябр, которые расшифровываются своей функцией?
              Цитата Serega_mexanik @
              Про формат посылки.
              Описаний Modbus в сети вагон и маленькая тележка. Начиная от википедии на русском и заканчивая полным описанием от авторов этого стандарта на английском. Вы хотите, чтобы вам их здесь пересказали? Зачем?
                Цитата 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град, но виде кракозябр, которые расшифровываются своей функцией?

                Это всё читаем в доках на дивайс.
                Какой будет ответ, в каком формате данные, статусы итд.
                Подпись была выключена в связи с наложенным заземлением.
                  Ничего не понятно. Но, оч интересно.
                  Тыкните носом, что курить. Буду благодарен за кусочек кода
                    Цитата Serega_mexanik @
                    Тыкните носом, что курить.

                    Цитата Dushevny @
                    Начиная от википедии на русском и заканчивая полным описанием от авторов этого стандарта на английском.

                    "Чтение документации из интернета вслух- 100 евро в час."
                      Проблема свелась к преобразованию string to byte или byte[]
                      1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                      0 пользователей:


                      Рейтинг@Mail.ru
                      [ Script Execution time: 0,1143 ]   [ 15 queries used ]   [ Generated: 22.01.19, 01:03 GMT ]