Страница 1121 из 1178 ПерваяПервая ... 1216211021107111111119112011211122112311311171 ... ПоследняяПоследняя
Показано с 11,201 по 11,210 из 11771

Тема: ВОПРОС-ОТВЕТ (отвечаем на простые вопросы от новичков)

  1. #11201

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение

    ... здесь можно внятно решить только на биб-ках.
    Мне показалось, что у kondor3000 очень даже просто и корректно получилось.

    Подскажите, а о каких библиотеках идет речь? Можно ссылку на этот материал?

  2. #11202

    По умолчанию

    Цитата Сообщение от vsa Посмотреть сообщение
    Я правильно понял, что Вы специально "обрывали" связь для подтверждения, что передача данных идет по определенной последовательности?
    Просто поймал скрин по времени, если по 1000 мс по умолчанию в ОРС (запись, потом чтение каждой переменной), то прямо видно как они записываются по очереди в ОРС сервер слейв, в программе тоже всё видно.

    Примеры чтения и записи через биб-ки есть на сайте
    Примеры / Примеры сетевого обмена/ Обмен через библиотеки Modbus и OwenNet, вам нужен обмен через библиотеки Modbus
    https://owen.ru/product/codesys_v2/example_program
    Последний раз редактировалось kondor3000; 27.01.2025 в 10:43.

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

    По умолчанию

    Цитата Сообщение от vsa Посмотреть сообщение
    Мне показалось, что у kondor3000 очень даже просто и корректно получилось.
    Может. Может и биб-ки не нужны- я же говорил.
    Непонятно само требование именно такой записи в изложенном вами же виде. Оно несколько нечастое. И подходит ли оно.
    Допускаю что в описании слейва так и есть (бывает).
    Но так же пока нет никаких исключений варианта что вы что-то недопоняли (про слейв) и какой-то фигней занимаетесь

  4. #11204

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Может. Может и биб-ки не нужны- я же говорил.
    Непонятно само требование именно такой записи в изложенном вами же виде. Оно несколько нечастое. И подходит ли оно.
    Допускаю что в описании слейва так и есть (бывает).
    Но так же пока нет никаких исключений варианта что вы что-то недопоняли (про слейв) и какой-то фигней занимаетесь
    У меня в проекте несколько ВУ (выпрямители) . И когда включается наша СУ, то нужно дистанционно активизировать эти слейвы ВУ. А для этого необходимо через один регистр запустить (вывести из "спящего" режима), а уж только потом, через другой регистр, прописать режим работы ВУ. Это один из примеров, когда требуется отработка последовательной записи данных в регистры по Modbus. Нарушать последовательность нельзя.

  5. #11205

    По умолчанию

    вывести из "спящего" режима
    а при "погружении" в спячку - они разве "обнуляются"?
    через другой регистр, прописать режим работы ВУ.
    каким образом ячейка памяти с адресом этого регистра обнуляется? разве у слейва нет retain?
    каким-то образом он же помнит значение регистра для пробуждения? почему же он должен потерять режим работы ДО спячки?
    и если он в спячке, то каким образом слейв ждёт записи в регистр "побудки"? он же тоже должен быть в спячке
    а если он не спит, значит не спит и память режима ВУ, и значит никакого жесткача с записью регистра как такового - нет.
    а если он спит, то никакого страшного не случится, если в режим будет записано другое значение другого режима (допустим ошибочно)
    сдаётся мне, что как и говорилось изначально и потом добито мистером Серый Волк -
    При условии что именно это нужно.
    именно это и не нужно
    вы что-то недопоняли (про слейв) и какой-то фигней занимаетесь
    как-то так видится со стороны

  6. #11206

    По умолчанию

    И опять вопрос по Modbus. Начинаю понимать, почему мои предыдущие вопросы вызвали столько эмоциональных ответов. Всем большое спасибо!
    Допустим, я организовал сиcтему, когда ПЛК Master и один Slave UMD:

    Read101_Write104.png

    Правильно ли я понял, что независимо (!) от того, что мы делаем в программе контроллера с регистрами Read101, Read103 и Write104 система обмена данными по Modbus будет постоянно циклически обновлять в UMD значения Read101 и Read103. И цикл обмена будет определяться параметром Poling time, если Work mode = By poll time. А значение Write104 будет записываться во внутренний регистр 104 ВУ только в случае изменения его значения. Для этого Work mode=By value change.
    И даже, если мы скроем в условном операторе все обращения к регистрам ВУ, и условие будет FALSE, то в UMD в эти регистры все равно будут записываться значения из ВУ.
    Если у меня в Slave UMD будет 20 регистров для чтения, то они будут постоянно считываться из ВУ и передаваться в ПЛК.
    Я прав?

  7. #11207

    По умолчанию

    Цитата Сообщение от vsa Посмотреть сообщение
    И опять вопрос по Modbus. Начинаю понимать, почему мои предыдущие вопросы вызвали столько эмоциональных ответов. Всем большое спасибо!
    Допустим, я организовал сиcтему, когда ПЛК Master и один Slave UMD:
    Правильно ли я понял, что независимо (!) от того, что мы делаем в программе контроллера с регистрами Read101, Read103 и Write104 система обмена данными по Modbus будет постоянно циклически обновлять в UMD значения Read101 и Read103. И цикл обмена будет определяться параметром Poling time, если Work mode = By poll time. А значение Write104 будет записываться во внутренний регистр 104 ВУ только в случае изменения его значения. Для этого Work mode=By value change.
    И даже, если мы скроем в условном операторе все обращения к регистрам ВУ, и условие будет FALSE, то в UMD в эти регистры все равно будут записываться значения из ВУ.
    Если у меня в Slave UMD будет 20 регистров для чтения, то они будут постоянно считываться из ВУ и передаваться в ПЛК.
    Я прав?
    Ничего не понял.
    Короче считываться будут постоянно циклически, если By poll time, а записываться только по изменению, если стоит By value change.
    Поэтому у меня в примере присвоение на запись след. переменной, только после чтения предыдущей.
    Последний раз редактировалось kondor3000; 29.01.2025 в 14:08.

  8. #11208

    По умолчанию

    Я хотел сказать, что, когда мы считываем в программе значение регистров ВУ, то на самом деле мы считываем значения из UMD. А в UMD регистры заполняются от ВУ по Modbus циклически не зависимо от того, читаем мы эти регистры в программе или нет!

  9. #11209

    По умолчанию

    Цитата Сообщение от vsa Посмотреть сообщение
    Я хотел сказать, что, когда мы считываем в программе значение регистров ВУ, то на самом деле мы считываем значения из UMD. А в UMD регистры заполняются от ВУ по Modbus циклически не зависимо от того, читаем мы эти регистры в программе или нет!
    Немного не так, если переменная чтения есть в программе, то она каждый цикл будет получать значение из UMD и изменить её в программе не выйдет никак.
    А менять значения в переменной, точнее присвоить на запись, вы можете когда вам это нужно.

  10. #11210

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Немного не так, если переменная чтения есть в программе, то она каждый цикл будет получать значение из UMD и изменить её в программе не выйдет никак.
    А менять значения в переменной, точнее присвоить на запись, вы можете когда вам это нужно.
    Я так и предполагал. Переменные для чтения я и не хотел изменять в программе. Только чтение. Тут главное, то , что переменные чтения в UMD считываются из регистров ВУ постоянно и циклически. И это происходит, когда мы в программе вообще не обращаемся к этим переменным.

Страница 1121 из 1178 ПерваяПервая ... 1216211021107111111119112011211122112311311171 ... ПоследняяПоследняя

Метки этой темы

Ваши права

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