Страница 14 из 16 ПерваяПервая ... 41213141516 ПоследняяПоследняя
Показано с 131 по 140 из 157

Тема: Конфигуратор vs modbus.lib

  1. #131
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    980

    По умолчанию

    Появилось желание посмотреть внутренности библиотеки modbus.lib. Но тот экземпляр, что есть у меня не позволяет просмотреть код ФБ.
    Я часто встречал рекомендацию посмотреть код библиотеки, значит раньше он был открыт. Кто-нибудь может поделиться открытым экземпляром?

  2. #132
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

    Цитата Сообщение от SKV Посмотреть сообщение
    Появилось желание посмотреть внутренности библиотеки modbus.lib. Но тот экземпляр, что есть у меня не позволяет просмотреть код ФБ.
    Я часто встречал рекомендацию посмотреть код библиотеки, значит раньше он был открыт. Кто-нибудь может поделиться открытым экземпляром?
    правой кнопкой по любому ФБ и в свойствах сменить права
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  3. #133
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    980

    По умолчанию

    Спасибо, помогло.

  4. #134
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    980

    По умолчанию

    Добрый вечер, уважаемые форумчане.
    Разобрал библиотеку Modbus.lib.
    Хочу поделиться важными замечаниями.

    1. Для проведения опроса требуется минимум 3 цикла обращения к соответствующему блоку.
    На 1-м цикле: блок формирует посылку, отсылает ее в порт;
    На 2-м цикле: блок занимается чтением из порта (циклов чтения может быть много);
    На 3-м цикле: завершается опрос.
    Данные выводы следуют из анализа ФБ MB_UNI_IO (см. рисунок MB_UNI_IO).

    Почему я обращаю на это внимание?
    Потому что, если ваша PLC_PRG выполняется, например, 15 мс (у меня есть реальный проект, где такое время выполнения на ПЛК110 старой модификации), то на опрос даже 1 регистра на любой скорости сети!!! вы будете тратить 30 мс.

    Для решения данной проблемы необходимо вынести вызов ФБ Modbusа в отдельную задачу, которую вызывать чаще чем основную PLC_PRG (см. этот пост).

    2. При использовании блока MB_WR_REGS (запись регистров хранения), в том случае, если блок вернул ошибку, то перед повторным вызовом данного блока необходимо заново формировать буфер посылки. В противном случае вы пошлете не то, что ожидаете, так как MB_WR_REG использует переданный ему буфер для формирования полной посылки Modbus.
    Изображения Изображения
    Последний раз редактировалось Спорягин Кирилл; 31.08.2016 в 17:14.

  5. #135
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,276

    По умолчанию

    Цитата Сообщение от Спорягин Кирилл Посмотреть сообщение
    Хочу поделиться важными замечаниями.
    1. Для проведения опроса требуется минимум 3 цикла обращения к соответствующему блоку..
    Ессно. Или предлагаете не выходя из цикла ждать у моря погоды ?
    Тогда не удивительно что
    ваша PLC_PRG выполняется, например, 15 мс (у меня есть реальный проект, где такое время выполнения на ПЛК110 старой модификации
    По мне, так сижу как на иголках коли цикл на МО1 уходит за 2-3мс.

    Про RTU. (Ascii не юзаю, но в том же ключе)
    1.Отправили запрос. Ну и кого ждем ? Вышли
    2.Умудрились получить все данные. А это не данные, а просто мусор. Даже если очень похож на правильный ответ. В пакет этот мусор превращается после соотв.паузы. А откуда паузу отчитывать если не знаем когда пришел последний байт ? Для нас последний байт пришел именно сейчас. Выходим. Не ждать же паузу в цикле.
    3.В порту - тихо, время вышло. Тот кусок мусора оказываецца - пакет. Надоть его разобрать. Разобрали ? Вот тут можно прям в этом цикле перейти к п.1

    Для решения данной проблемы необходимо вынести вызов ФБ Modbusа в отдельную задачу, которую вызывать чаще чем основную PLC_PRG
    За каким PLC_PRG вызывать реже модбас-блока ? Какое отношение цикл опроса имеет к циклу ПЛК ?
    ПЛК встал, поел-попил, глянул почту, и убежал по своим делам. Какое ему дело до графика движения почтальона ?


    в том случае, если блок вернул ошибку, то перед повторным вызовом данного блока необходимо заново формировать буфер посылки
    А причем тут MB_WR_REGS ? Перед любым вызовом любого блока формируется необходимый на данный момент буфер. Буфер это тарелка в столовой. Каждый ее наполняет чем хочет перед использованием.
    Последний раз редактировалось Валенок; 31.08.2016 в 18:30.

  6. #136
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    980

    По умолчанию

    Важно, что в 2 цикла он не уложится, т.е. на 1-м цикле отослал, а на 2-м получил - так не получается. Всегда есть 3-й цикл, в котором авторы библиотеки Modbus.lib проверяют, что
    больше ничего не приходит. Поэтому всегда на опрос устройства тратится время >= 2*MinCycleLength.

  7. #137
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    980

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    По мне, так сижу как на иголках коли цикл на МО1 уходит за 2-3мс.
    У меня есть проект с временем выполнения 15 мс. Видимо, Ваши проекты меньше.

  8. #138
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    980

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    А причем тут MB_WR_REGS ? Перед любым вызовом любого блока формируется необходимый на данный момент буфер. Буфер это тарелка в столовой. Каждый ее наполняет чем хочет перед использованием.
    Буфер Вы сформировали, а затем блок MB_WR_REGS его же использовал, для своих целей. Поэтому думать, что буфер никто не трогал (я думал, что буфер никто не трогает) не верно.

  9. #139
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,276

    По умолчанию

    Цитата Сообщение от Спорягин Кирилл Посмотреть сообщение
    Важно, что в 2 цикла он не уложится, т.е. на 1-м цикле отослал, а на 2-м получил - так не получается..
    1.Кому важно ?
    2.Циклы попутали - см.выше
    3.А получается - см. выше и ниже. Правда за счет непонятного замедления PLC_PRG. И накой это ?


    Цитата Сообщение от Спорягин Кирилл Посмотреть сообщение
    авторы библиотеки Modbus.lib проверяют, что больше ничего не приходит..
    Поправлю :
    "авторы Modbus.lib проверяют..."
    Иначе это не модбас.
    А совместить 1й и 3й можно. И это останется модбасом.

  10. #140
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,276

    По умолчанию

    Цитата Сообщение от Спорягин Кирилл Посмотреть сообщение
    У меня есть проект с временем выполнения 15.
    Ну есть.. Я могу для 3х строчек и 500мс сделать.

    Цитата Сообщение от Спорягин Кирилл Посмотреть сообщение
    Видимо, Ваши проекты меньше.
    В каких единицах мерием ? Если в мс - то да, говорил же что от 3мс напрягает почему-то

Страница 14 из 16 ПерваяПервая ... 41213141516 ПоследняяПоследняя

Похожие темы

  1. Библиотеки MODBUS.LIB и OWENNET.LIB
    от desperadoes в разделе ПЛК1хх
    Ответов: 7
    Последнее сообщение: 30.01.2014, 20:15
  2. Modbus.lib и МДВВ
    от ПРОЕКТ-П в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 17.05.2013, 15:04
  3. Ответов: 4
    Последнее сообщение: 18.09.2012, 22:16
  4. ПЛК100 и Modbus.lib
    от Slev в разделе ПЛК1хх
    Ответов: 14
    Последнее сообщение: 19.03.2012, 08:22
  5. RTE + Modbus.lib
    от K.I.V. в разделе ПЛК3хх
    Ответов: 10
    Последнее сообщение: 09.07.2008, 10:30

Ваши права

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