Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 24

Тема: Видео урок написания своего приложения опрашивающего устройства по Modbus

  1. #11

    По умолчанию

    Есть такая штука как BitConverter.ToSingle
    https://msdn.microsoft.com/ru-ru/lib...=vs.90%29.aspx

    BitConverter в сочетании с Array.Reverse идеально подходит для модбаса.

    ну и отдельного потока для опроса не хватает....

  2. #12
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Есть NModbus (C#) и libmodbus (C). Как пользоваться первым я уже рассказывал: http://www.owen.ru/forum/showthread.php?t=20122

  3. #13

    По умолчанию

    Цитата Сообщение от BETEP Посмотреть сообщение
    Есть такая штука как BitConverter.ToSingle
    https://msdn.microsoft.com/ru-ru/lib...=vs.90%29.aspx

    BitConverter в сочетании с Array.Reverse идеально подходит для модбаса.

    ну и отдельного потока для опроса не хватает....

    С нетерпением ждём вашего примера с битконвертером.
    Помощь в настройке оборудования.
    Жариков Алексей
    Skype: zharikovaleksey
    e-mail: menatwork2014@yandex.ru

  4. #14

    По умолчанию

    разбор байтов в модбасовском ответе по нужным форматам
    nn-номер байта с которого разбор начинается.
    Код:
    Select Case tFormat_SelectedIndex(x)
        Case 0  'INT
            Array.Reverse(inBuffer, nn, 2)
            dataStr(x) = BitConverter.ToInt16(inBuffer, nn)
            nn = nn + 2
        Case 1  'UINT
            Array.Reverse(inBuffer, nn, 2)
            dataStr(x) = BitConverter.ToUInt16(inBuffer, nn)
            nn = nn + 2
        Case 2  'DINT
            If nn >= bez_srs - 2 Then Exit For
            Array.Reverse(inBuffer, nn, 4)
            dataStr(x) = BitConverter.ToInt32(inBuffer, nn)
            nn = nn + 4
        Case 3  'UDINT
            If nn >= bez_srs - 2 Then Exit For
            Array.Reverse(inBuffer, nn, 4)
            dataStr(x) = BitConverter.ToUInt32(inBuffer, nn)
            nn = nn + 4
        Case 4  'REAL
            If nn >= bez_srs - 2 Then Exit For
            Array.Reverse(inBuffer, nn, 2)
            Array.Reverse(inBuffer, nn + 2, 2)
            dataStr(x) = BitConverter.ToSingle(inBuffer, nn)
            nn = nn + 4
    End Select
    Цитата Сообщение от Yegor Посмотреть сообщение
    Есть NModbus (C#)
    хорошая библиотека, и на VB без проблем, и не нужно с сокетами заморачиваться.

  5. #15

    По умолчанию

    В моём примере отсутствует зависимость от сторонних библиотек. Что не мало важно.
    Помощь в настройке оборудования.
    Жариков Алексей
    Skype: zharikovaleksey
    e-mail: menatwork2014@yandex.ru

  6. #16

    По умолчанию

    http://bash.im/quote/415033 только лопату покупать в данном случае не нужно.

    К видео исходник приложить нужно, иначе толку мало...А на BitConverter.ToSingle нет смысла обижаться, знали бы Вы об этом раньше, не нагородили бы кучу строк при преобразовании к float.
    Обычно за подсказки благодарят.

  7. #17

    По умолчанию

    Прежде чем купить лопату, ты должен сначала деньги где-то достать. На это уйдёт больше года.
    Плюс люди узнают нутро протокола.

    К тому же я за олдскульное программирование. Не кодил ты на асме. Там вообще нет библиотек.
    Помощь в настройке оборудования.
    Жариков Алексей
    Skype: zharikovaleksey
    e-mail: menatwork2014@yandex.ru

  8. #18

    По умолчанию

    Цитата Сообщение от hilih Посмотреть сообщение
    Прежде чем купить лопату, ты должен сначала деньги где-то достать. На это уйдёт больше года.
    Плюс люди узнают нутро протокола.

    К тому же я за олдскульное программирование. Не кодил ты на асме. Там вообще нет библиотек.
    а можно сделать такой же мануал, но для C# ? , был бы очень признателен.
    я тоже считаю что понимать как работает MODBUS TCP да и любая другая вещь -нужно, чтобы быстро искать и понимать на каком уровне могут происходить
    ошибки. спасибо

  9. #19
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,583

    По умолчанию

    Тоже использую BitConverter и не только. Штатные процедуры C# для тех или иных задач очень экономят время и код.

    з.ы. не программист, просто так получилось....
    Иногда понимая логику работы ПЛК ищу что-то подобное в языке, которым пользуюсь и на удивление есть практически все, что необходимо.
    Единственное, почему-то запрощено работать с массивами через индексы в безопасном режиме. Ну и ладно....

    voale, если вам не в лом разбирать чужие исходники, есть прекрасная реализация Modbus TCP, RTU, ASCII у разработчика Rapid SCADA, исходники лежат на гитхабе. Найдете через официальный сайт.
    Изучайте, творите и так далее... Как раз на C#
    Последний раз редактировалось Kish; 24.05.2019 в 14:44.

  10. #20

    По умолчанию

    Цитата Сообщение от hilih Посмотреть сообщение
    Ещё бы мог сделать пример опроса устройства по Modbus TCP через локальную сеть или интернет, для OC Android или Windows Phone, используя eclipse. Помнится, делал для Windows Mobile, затерялось где-то.
    Без donate не буду.
    Алексей, очень нужен пример для OC Android. Если не видеоурок, то хотя бы пояснение, как написать приложение под Android для отображения состояния входа, а также отображение состояние выхода и его вкл/выкл, например для ПЛК110. Буду крайне признателен.

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Похожие темы

  1. Создание мобильного приложения
    от dinwings в разделе Сетевые технологии
    Ответов: 5
    Последнее сообщение: 25.02.2013, 18:19
  2. Разработка своего софта для поддержки OWEN ТРМ101, 201
    от iKarma в разделе Помощь Разработчикам
    Ответов: 2
    Последнее сообщение: 02.12.2012, 20:05
  3. Ответов: 2
    Последнее сообщение: 06.10.2009, 08:54
  4. ModBus устройства в PLC
    от kucherik в разделе ПЛК1хх
    Ответов: 9
    Последнее сообщение: 22.07.2008, 09:14

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •