Alex469 это сложновато объяснить. Программа это простыня FB, которая выполняется последовательно, и возможно переменная, в которую вы записали данные, участвует на этой простыне еще в каком-то месте и вам ну очень надо, чтобы она не изменилась, пока вся простыня FB не выполнится.
Задам вопрос более конкретно. В проекте ПР100 выступает в качестве модбас мастера. Имеется еще 3 слейва. Все аппараты связаны по RS485 (modbus RTU). В проекте один из слейвов панель оператора. Среди прочего мастер должен считать целочисленное значение с панели оператора (сетевая переменная O_Gen_Power_Setting_MB, в настройках переменной указана только функция чтения 03, функции записи нет) и передать без обработки в другой слейв (сетевая переменная GenPower_MB, в настройках переменной указаны функции чтения 03 и записи 10). Чтение O_Gen_Power_Setting_MB осуществляется с использованием "Запуск чтения". Запись в GenPower_MB осуществляется с использованием "Запись по изменению". Кроме этого в проекте достаточно много других сетевых переменных и, соответственно, куча других обменов между мастером и слейвами. Вопрос: нужно ли указывать для сетевой переменной GenPower_MB "Запись в конце цикла" ? Если нужно, то почему?
Здравствуйте!
Начал изучать Owen Logic. Как сделать переход между экранами?
В учебных видео список переходов появлялся сразу при создании нового экрана, но в новых версиях, похоже, что-то изменилось.
У меня так:
Безымянный.PNG
А в видео так:
Безымянный2.PNG
С уважением, Ревака Юрий.
Инженер группы технической поддержки компании "ОВЕН"
e-mail: yu.revaka@owen.ru
Шаблон описания ошибки ПР или OL http://ftp-ow.owen.ru/softupdate/OWE...s/Shablon.docx
Видео уроки по ПР200 и OWEN Logic http://edu.owen.ru/series/pr200_rev/
Другие видеоролики по тематике ПР https://www.youtube.com/channel/UCj4...H5H3d_t6iDlQOQ
Увидел, нужно было в контекстном меню группы экранов выбрать "редактировать группу" и затем настраивать экраны в окне группы.
С первого раза оказалось не очевидно, спасибо за быстрый ответ!
Добрый день.
Нужно передать несколько (например, 10) булевых переменных из ПР200 в облако и у части из них менять значения.
Вариант 1 - просто 10 булевых переменных.
Вариант 2 - упаковать битовой маской в целочисленный в ПР200, в облаке сделать 10 переменных с одним адресом, но разными битовыми масками для каждой.
Вопрос 1. Будет ли экономия трафика/уменьшение задержек в варианте 2, то есть, будет ли переменная запрашиваться 1 раз и парситься в облаке на 10 переменных, или же будет 10 раз запрашиваться с применением своей битовой маски к каждому запросу?
Вопрос 2. Имеет ли это практический смысл, если передача через Ethernet, на трафик пофиг? В варианте 1 код читать понятнее, всё прозрачно.
Вопрос 3. Может я что-то упускаю и есть более простые способы для решения подобной задачи?
Обязательно упаковать в 1 переменную, например 512, но битовой маской получится только читать.
Чтобы записывать, то надо к ним обращаться чтением записью 01 и 15 функцией из облака по адресам булевых переменных. Тоесть для адреса 512 (200h) адреса будут 2000h, 2001h .. 200fh, где младший разряд это номер бита, начиная с нуля.
Экономии трафик не будет, поскольку пр200 не поддерживает групповые запросы и чтение каждого бита будет идти отдельной командой.
Если вы будете по одной булевой переменной в каждый регистр класть, то извините это 10 регистров, между прочим, всего из 64.
Насчёт наглядности непонятно. В конце поляны делаете упаковщик/распаковщик и работаете с булевыми переменными как обычно. Нюанс только один + всё булевы переменные превращаются в энергонезависимые
У Вас вариантов нет. В слейве ПР200 с булевыми переменными не работает.