Просто поймал скрин по времени, если по 1000 мс по умолчанию в ОРС (запись, потом чтение каждой переменной), то прямо видно как они записываются по очереди в ОРС сервер слейв, в программе тоже всё видно.
Примеры чтения и записи через биб-ки есть на сайте
Примеры / Примеры сетевого обмена/ Обмен через библиотеки Modbus и OwenNet, вам нужен обмен через библиотеки Modbus
https://owen.ru/product/codesys_v2/example_program
Последний раз редактировалось kondor3000; 27.01.2025 в 10:43.
Может. Может и биб-ки не нужны- я же говорил.
Непонятно само требование именно такой записи в изложенном вами же виде. Оно несколько нечастое. И подходит ли оно.
Допускаю что в описании слейва так и есть (бывает).
Но так же пока нет никаких исключений варианта что вы что-то недопоняли (про слейв) и какой-то фигней занимаетесь
У меня в проекте несколько ВУ (выпрямители) . И когда включается наша СУ, то нужно дистанционно активизировать эти слейвы ВУ. А для этого необходимо через один регистр запустить (вывести из "спящего" режима), а уж только потом, через другой регистр, прописать режим работы ВУ. Это один из примеров, когда требуется отработка последовательной записи данных в регистры по Modbus. Нарушать последовательность нельзя.
а при "погружении" в спячку - они разве "обнуляются"?вывести из "спящего" режима
каким образом ячейка памяти с адресом этого регистра обнуляется? разве у слейва нет retain?через другой регистр, прописать режим работы ВУ.
каким-то образом он же помнит значение регистра для пробуждения? почему же он должен потерять режим работы ДО спячки?
и если он в спячке, то каким образом слейв ждёт записи в регистр "побудки"? он же тоже должен быть в спячке
а если он не спит, значит не спит и память режима ВУ, и значит никакого жесткача с записью регистра как такового - нет.
а если он спит, то никакого страшного не случится, если в режим будет записано другое значение другого режима (допустим ошибочно)
сдаётся мне, что как и говорилось изначально и потом добито мистером Серый Волк -именно это и не нужноПри условии что именно это нужно.
как-то так видится со сторонывы что-то недопоняли (про слейв) и какой-то фигней занимаетесь
И опять вопрос по 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 регистров для чтения, то они будут постоянно считываться из ВУ и передаваться в ПЛК.
Я прав?
Последний раз редактировалось kondor3000; 29.01.2025 в 14:08.
Я хотел сказать, что, когда мы считываем в программе значение регистров ВУ, то на самом деле мы считываем значения из UMD. А в UMD регистры заполняются от ВУ по Modbus циклически не зависимо от того, читаем мы эти регистры в программе или нет!