Просмотр полной версии : Фичи и баги OWEN Logic
Страницы :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[
20]
Да, OwenLogic для каждого прибора держит собственный формат cvs файла импорта-экспорта.
Делаете для новой платформы образец, который заполняете копированием из другого открытого файла.
Адреса регистров заполняете автоматически по условию "=ЯчейкаАдресаВерхнегоРегистра+ЕСЛИ(ЯчейкаТипаВерхн егоРегистра="Long";1;2)" - записал по памяти, может немного ошибся.
Я заполняю десятки и сотни переменных, как сетевых, так и стандартных, а штатным редактором пользуюсь крайне редко.
Обнаружил ошибку в симуляторе ПР205 для сетевых переменных.
Как воспроизвести:
1. объявить две сетевые целочисленные переменные, расположенные по последовательным адресам, объявить их энергонезависимыми и присвоить ненулевые начальные значения
2. на экране создать два элемента "ввод / вывод времени" и привязать обе переменные к этим элементам
При эмуляции переменные ведут себя как независимые и на экранных элементах показывают значения, соответствующие значениям по умолчанию.
На реальном ПР205 экранные элементы работают с непрерывными областями памяти в 4 байта и отображают на экране не значения отдельных регистров Modbus, а значения из объединения регистров.
Само по себе объяснение этому простое и поведение на реальном оборудовании ожидаемое, но поведение в симуляторе - ошибочное.
Прикладываю
- тестовую программу
- скрин эмулятора
- фото реального прибора при работе
Видно разные способы обработки пересекающихся участков памяти в симуляторе и в реальном приборе
Обнаружил ошибку в симуляторе ПР205 для сетевых переменных.
Как воспроизвести:
1. объявить две сетевые целочисленные переменные, расположенные по последовательным адресам, объявить их энергонезависимыми и присвоить ненулевые начальные значения
2. на экране создать два элемента "ввод / вывод времени" и привязать обе переменные к этим элементам
При эмуляции переменные ведут себя как независимые и на экранных элементах показывают значения, соответствующие значениям по умолчанию.
На реальном ПР205 экранные элементы работают с непрерывными областями памяти в 4 байта и отображают на экране не значения отдельных регистров Modbus, а значения из объединения регистров.
Само по себе объяснение этому простое и поведение на реальном оборудовании ожидаемое, но поведение в симуляторе - ошибочное.
Прикладываю
- тестовую программу
- скрин эмулятора
- фото реального прибора при работе
Видно разные способы обработки пересекающихся участков памяти в симуляторе и в реальном приборе
Так это не ошибка симулятора. И для меня очень неожиданно получить такой результат
kondor3000
05.09.2026, 21:32
Обнаружил ошибку в симуляторе ПР205 для сетевых переменных.
Как воспроизвести:
1. объявить две сетевые целочисленные переменные, расположенные по последовательным адресам, объявить их энергонезависимыми и присвоить ненулевые начальные значения
2. на экране создать два элемента "ввод / вывод времени" и привязать обе переменные к этим элементам
При эмуляции переменные ведут себя как независимые и на экранных элементах показывают значения, соответствующие значениям по умолчанию.
На реальном ПР205 экранные элементы работают с непрерывными областями памяти в 4 байта и отображают на экране не значения отдельных регистров Modbus, а значения из объединения регистров.
Само по себе объяснение этому простое и поведение на реальном оборудовании ожидаемое, но поведение в симуляторе - ошибочное.
На экране выведено число 4178313227, состоящее из 2 регистров (число 11 передаётся в регистр 16385 ) 90256
и 63756 например уже было записано в следующий регистр 16386. На скрине дата разложена на байты и собрано в 2 WORD.
Для подтверждения наличия бага, надо как минимум прочитать число в регистре 16386 или записать туда ноль.
Для подтверждения наличия бага, надо как минимум прочитать число в регистре 16386 или записать туда ноль.
"Я ж не о том, что по ноге кнутом, я ж о том, что - больно!" (c) ;)
Баг состоит в различном поведения симулятора и реального ПР205 - что подтверждено скрином из симулятора и фотографией экрана. И отличия в содержимом экрана на фото и на скрине этот баг подтверждают.
"Я ж не о том, что по ноге кнутом, я ж о том, что - больно!" (c) ;)
Баг состоит в различном поведения симулятора и реального ПР205 - что подтверждено скрином из симулятора и фотографией экрана. И отличия в содержимом экрана на фото и на скрине этот баг подтверждают.
А если не в контрол писать а в обычную переменную, что получится?
Конечно, косяк, но может это контрол как-то соседний регистр подтягивает, а с переменной будет норм?
А если не в контрол писать а в обычную переменную, что получится?
Конечно, косяк, но может это контрол как-то соседний регистр подтягивает, а с переменной будет норм?
Да, со "стандартными переменными" всё хорошо и всё ожидаемо работает и в симуляторе и на аппаратуре. Проверял.
Баг выявил, когда по просьбе других людей разбирал неработоспособность программы, которая отлично работает в симуляторе - люди ответственные и до выезда на объект проверили работоспособность в симуляторе.
Зная, что контролу нужно 4 байта, а Modbus регистр имеет размер 2 байта - можно найти выход в добавлении смежного регистра. Или каким-то другим способом.
Я бы поостерёгся делать предположение о последовательном размещении в памяти регистров, т.к. видел реализации на основе списков - пары регистр и его адрес. И Овен нигде не гарантировал такое размещение.
Исходная проблема - разное поведение в симуляторе и аппаратуре.
Да, со "стандартными переменными" всё хорошо и всё ожидаемо работает и в симуляторе и на аппаратуре. Проверял.
Баг выявил, когда по просьбе других людей разбирал неработоспособность программы, которая отлично работает в симуляторе - люди ответственные и до выезда на объект проверили работоспособность в симуляторе.
Зная, что контролу нужно 4 байта, а Modbus регистр имеет размер 2 байта - можно найти выход в добавлении смежного регистра. Или каким-то другим способом.
Я бы поостерёгся делать предположение о последовательном размещении в памяти регистров, т.к. видел реализации на основе списков - пары регистр и его адрес. И Овен нигде не гарантировал такое размещение.
Исходная проблема - разное поведение в симуляторе и аппаратуре.
Спасибо. А, можно попробовать скормить контролу последний в таблице регистр (20479). Интересно, что будет. И, по хорошему, этим должен Овен заниматься - такой косяк пропустить
Проверил с регистром 20479 - аналогичная ошибка, только на реальном ПР205 совсем другое значение, чем для первых двух регистров из примера выше.
Реакции от представителей Овен здесь не последовало - кину в багрепорт ТП.
Проверил с регистром 20479 - аналогичная ошибка, только на реальном ПР205 совсем другое значение, чем для первых двух регистров из примера выше.
Реакции от представителей Овен здесь не последовало - кину в багрепорт ТП.
Другое значение - это просто мусор в ячейке. Насколько я помню, народ уже сталкивался с тем,что при прошивке программа пишется поверх без очистки памяти
kondor3000
07.09.2026, 21:15
Другое значение - это просто мусор в ячейке. Насколько я помню, народ уже сталкивался с тем,что при прошивке программа пишется поверх без очистки памяти
Об этом и писал выше, это не баг, а сохранившееся значение в регистре 16386. Естественно оно отличается от симулятора, где точно ноль.
А в выложенном примере, этот регистр вообще не использован, естественно там остался мусор.
Списывать на баг некорректно созданный проект, вообще не правильно. Вывел 32 битную переменную на экран, будь добр задать оба регистра.
kondor3000, баг в кардинально разном отображении на дисплее в режиме симуляции и в реальном приборе.
Если бы симуляция продемонстрировала некорректность проекта, то проект был бы исправлен до выезда на объект, но симуляция показала нормальную работу.
Баг - в симуляторе. А в проекте - логическая ошибка, которую невозможно продемонстрировать в симуляторе из-за бага.
В симуляторе - баг.
В симуляторе - баг.
В симуляторе - баг.
Об этом и писал выше, это не баг, а сохранившееся значение в регистре 16386. Естественно оно отличается от симулятора, где точно ноль.
А в выложенном примере, этот регистр вообще не использован, естественно там остался мусор.
Списывать на баг некорректно созданный проект, вообще не правильно. Вывел 32 битную переменную на экран, будь добр задать оба регистра.
В смысле не баг? У Лоджика сетевая целочисленная слейв переменная 16 битная. Поэтому, при попытке подключить ее к 32 битному входу контрола переменная должна автоматом конвертироваться или генерироваться ошибка.
kondor3000
08.09.2026, 08:01
В смысле не баг? У Лоджика сетевая целочисленная слейв переменная 16 битная. Поэтому, при попытке подключить ее к 32 битному входу контрола переменная должна автоматом конвертироваться или генерироваться ошибка.
Вывел 32 битную переменную на экран, будь добр задать оба регистра. Автор задал 1 регистр, а второй прочитался из мусора.
И где тут баг?
Почему вы всё время пишите про 16 битный регистр, забывая, что для 32 бит. переменной указывается первый, а второй берётся автоматом,
сетевые в данном случае вообще не работают, а на дисплей выводится дата из памяти самой ПР.
Вывел 32 битную переменную на экран, будь добр задать оба регистра. Автор задал 1 регистр, а второй прочитался из мусора.
И где тут баг?
Почему вы всё время пишите про 16 битный регистр, забывая, что для 32 бит. переменной указывается первый, а второй берётся автоматом,
сетевые в данном случае вообще не работают, а на дисплей выводится дата из памяти самой ПР.
Т.е., если я в каком-нибудь CDS попробую переменную UINT записать в UDINT, то у меня еще и соседняя ячейка памяти туда автоматом запишется?
Валерий "mad Dog" Шмараев
09.09.2026, 07:13
парные с чётных начинать попробуйте.
shvitaliy
09.09.2026, 10:10
Это не среда разработки, а сплошное недоразумение. Как было сырым в начале, так и осталось.
Открыл старый проект ПР100.
Добавил в проект один свободный аналоговый вход, обвязал логикой.
Решил посмотреть в симуляторе, а там фиг вам. Вход никак не управляется. Сохранял, перезагружал, проверил настройки с другими входами, все ОК.
Привязанные ранее в проекте входа свободно управляются.
Это не среда разработки, а сплошное недоразумение. Как было сырым в начале, так и осталось.
Открыл старый проект ПР100.
Добавил в проект один свободный аналоговый вход, обвязал логикой.
Решил посмотреть в симуляторе, а там фиг вам. Вход никак не управляется. Сохранял, перезагружал, проверил настройки с другими входами, все ОК.
Привязанные ранее в проекте входа свободно управляются.
90281
Не этот случай?
shvitaliy
09.09.2026, 13:01
Все связи есть. Откатился на билд назад, все заработало
Умурзаков Денис
09.09.2026, 17:19
Все связи есть. Откатился на билд назад, все заработало
А можете, пожалуйста, прислать проект, в котором наблюдается ошибка? Проект можно прислать сюда или на почту d.unurzakov@owen.ru
Traveller
15.09.2026, 11:44
В общем есть один мелкий баг, но он провоцирует кучу лишних телодвижений:
Есть текстовое поле на экране размером 160х40, в нем коротенькая надпись 32-м шрифтом, если я меняю текст (не размер шрифта, а только текст), то надпись тут же меняются высота рамки с 40 на 44 и приходится постоянно это исправлять, со всеми вытекающими...
Еще баг.
При старте симуляции переменная дня недели, привязанные к часам дает некорректное значение - ноль. В итоге ST-шный макрос, который пытается это обработать, валится, и симуляция не запускается вообще.
Еще баг.
При старте симуляции переменная дня недели, привязанные к часам дает некорректное значение - ноль. В итоге ST-шный макрос, который пытается это обработать, валится, и симуляция не запускается вообще.
Так в чем баг? У новых ПРок в симуляции время работает только, полученное от функции в ST
Здравствуйте!
Столкнулся с проблемой при работе пользовательских функциональных блоков ST.
Контроллер: ПР225-24.1210.02.2.0
Owen Logic: 3.2.376.0
Проблема наблюдается на реальном ПР225, в режиме эмуляции не воспроизводится.
Удалось получить минимальный воспроизводимый пример.
1. Вложенный FB:
function_block PumpControllerTest
var_input
a01 : bool;
a02 : bool;
a03 : bool;
a04 : udint;
a05 : udint;
a06 : bool;
a07 : bool;
a08 : bool;
a09 : bool;
a10 : real;
a11 : real;
a12 : udint;
a13 : real;
a14 : real;
a15 : real;
a16 : real;
a17 : real;
a18 : real;
end_var
var_output
b01 : bool;
b02 : real;
b03 : udint;
b04 : bool;
b05 : bool;
end_var
var
c03 : bool;
c04 : bool;
c05 : bool;
c06 : bool;
c07 : bool;
c08 : bool;
c09 : bool;
c10 : bool;
c11 : real;
c12 : real;
c13 : udint;
c14 : udint;
c15 : real;
c16 : bool;
end_var
b03 := 2;
end_function_block
В данном FB выход `b03` всегда явно устанавливается в значение `2`:
b03 := 2;
2. Родительский FB:
function_block MainTest
var_input
a01 : bool;
a02 : bool;
a03 : real;
a04 : bool;
a05 : bool;
a06 : bool;
a07 : udint;
a08 : udint;
a09 : bool;
a10 : real;
a11 : real;
a12 : real;
a13 : real;
a14 : real;
a15 : real;
a16 : udint;
a17 : bool;
a18 : udint;
a19 : bool;
a20 : real;
a21 : real;
a22 : real;
a23 : real;
a24 : real;
a25 : real;
a26 : real;
a27 : real;
a28 : udint;
a29 : udint;
a30 : udint;
end_var
var_output
b01 : bool;
b02 : real;
b03 : udint;
b04 : bool;
b05 : bool;
end_var
var
c01 : PumpControllerTest;
c02 : bool;
c03 : bool;
c04 : bool;
//c05 : bool;
end_var
c01(
a01 := a01,
a02 := a02,
a03 := a04,
a04 := a07,
a05 := a08,
a06 := a05,
a07 := a06,
a08 := a09,
a09 := a17,
a10 := a03,
a11 := a10,
a12 := a16,
a13 := a11,
a14 := a12,
a15 := a13,
a16 := a14,
a17 := a15,
a18 := a20
);
b01 := c01.b01;
b02 := c01.b02;
b03 := c01.b03;
b04 := c01.b04;
b05 := c01.b05;
end_function_block
Результат на реальном ПР225:
c05 : bool;
закомментирована:
c01.b03 = 0
Если раскомментировать только эту переменную:
c05 : bool;
которая нигде не используется, результат становится:
c01.b03 = 2
При этом в обоих случаях в `PumpControllerTest` выполняется:
b03 := 2;
В режиме эмуляции Owen Logic в обоих вариантах:
b03 = 2
То есть поведение зависит от наличия одной неиспользуемой переменной BOOL в родительском FB.
Появляется подозрение на проблему, связанную с размещением/адресацией переменных или экземпляров ST-FB при компиляции. Точно утверждать, что это именно смещение памяти, не могу.
При этом обычная логика FB в данном тесте отсутствует - фактически проверяется только передача выходного значения вложенного пользовательского функционального блока.
Вопрос:
Известна ли такая проблема в Owen Logic 3.2.376.0 на ПР225?
В частности, может ли наличие/отсутствие неиспользуемой переменной в родительском ST-FB влиять на адресацию или передачу выходов вложенного ST-FB?
Во вложении прилагаю минимальный проект Owen Logic, на котором проблема воспроизводится на реальном ПР225.
Так в чем баг? У новых ПРок в симуляции время работает только, полученное от функции в ST
Я завожу дни недели снаружи, через переменную. А она некорректная изначально, идет ошибка в обработке и симуляция не запускается. В этом и баг.
kondor3000
18.09.2026, 19:23
Я завожу дни недели снаружи, через переменную. А она некорректная изначально, идет ошибка в обработке и симуляция не запускается. В этом и баг.
В симуляции там вообще ничего не работает. Если надо берите время и день недели тут, работает везде
Дата, Время и День недели через DT с 2000г. ____________ https://owen.ru/forum/showthread.php?t=40116#4
В симуляции там вообще ничего не работает. Если надо берите время и день недели тут, работает везде
Дата, Время и День недели через DT с 2000г. ____________ https://owen.ru/forum/showthread.php?t=40116#4
Все работает, если приходят корректные данные. Просто овеновцам надо одну циферку подправить и все.
И еще цвет отображения линий массивов поменять со светло-зеленого, на темно-зеленый, а то эти линии, нифига нормально не видно
Умурзаков Денис
21.09.2026, 09:42
Здравствуйте!
Столкнулся с проблемой при работе пользовательских функциональных блоков ST.
Контроллер: ПР225-24.1210.02.2.0
Owen Logic: 3.2.376.0
Проблема наблюдается на реальном ПР225, в режиме эмуляции не воспроизводится.
Удалось получить минимальный воспроизводимый пример.
1. Вложенный FB:
function_block PumpControllerTest
var_input
a01 : bool;
a02 : bool;
a03 : bool;
a04 : udint;
a05 : udint;
a06 : bool;
a07 : bool;
a08 : bool;
a09 : bool;
a10 : real;
a11 : real;
a12 : udint;
a13 : real;
a14 : real;
a15 : real;
a16 : real;
a17 : real;
a18 : real;
end_var
var_output
b01 : bool;
b02 : real;
b03 : udint;
b04 : bool;
b05 : bool;
end_var
var
c03 : bool;
c04 : bool;
c05 : bool;
c06 : bool;
c07 : bool;
c08 : bool;
c09 : bool;
c10 : bool;
c11 : real;
c12 : real;
c13 : udint;
c14 : udint;
c15 : real;
c16 : bool;
end_var
b03 := 2;
end_function_block
В данном FB выход `b03` всегда явно устанавливается в значение `2`:
b03 := 2;
2. Родительский FB:
function_block MainTest
var_input
a01 : bool;
a02 : bool;
a03 : real;
a04 : bool;
a05 : bool;
a06 : bool;
a07 : udint;
a08 : udint;
a09 : bool;
a10 : real;
a11 : real;
a12 : real;
a13 : real;
a14 : real;
a15 : real;
a16 : udint;
a17 : bool;
a18 : udint;
a19 : bool;
a20 : real;
a21 : real;
a22 : real;
a23 : real;
a24 : real;
a25 : real;
a26 : real;
a27 : real;
a28 : udint;
a29 : udint;
a30 : udint;
end_var
var_output
b01 : bool;
b02 : real;
b03 : udint;
b04 : bool;
b05 : bool;
end_var
var
c01 : PumpControllerTest;
c02 : bool;
c03 : bool;
c04 : bool;
//c05 : bool;
end_var
c01(
a01 := a01,
a02 := a02,
a03 := a04,
a04 := a07,
a05 := a08,
a06 := a05,
a07 := a06,
a08 := a09,
a09 := a17,
a10 := a03,
a11 := a10,
a12 := a16,
a13 := a11,
a14 := a12,
a15 := a13,
a16 := a14,
a17 := a15,
a18 := a20
);
b01 := c01.b01;
b02 := c01.b02;
b03 := c01.b03;
b04 := c01.b04;
b05 := c01.b05;
end_function_block
Результат на реальном ПР225:
c05 : bool;
закомментирована:
c01.b03 = 0
Если раскомментировать только эту переменную:
c05 : bool;
которая нигде не используется, результат становится:
c01.b03 = 2
При этом в обоих случаях в `PumpControllerTest` выполняется:
b03 := 2;
В режиме эмуляции Owen Logic в обоих вариантах:
b03 = 2
То есть поведение зависит от наличия одной неиспользуемой переменной BOOL в родительском FB.
Появляется подозрение на проблему, связанную с размещением/адресацией переменных или экземпляров ST-FB при компиляции. Точно утверждать, что это именно смещение памяти, не могу.
При этом обычная логика FB в данном тесте отсутствует - фактически проверяется только передача выходного значения вложенного пользовательского функционального блока.
Вопрос:
Известна ли такая проблема в Owen Logic 3.2.376.0 на ПР225?
В частности, может ли наличие/отсутствие неиспользуемой переменной в родительском ST-FB влиять на адресацию или передачу выходов вложенного ST-FB?
Во вложении прилагаю минимальный проект Owen Logic, на котором проблема воспроизводится на реальном ПР225.
Спасибо, о данном баге не знали. О причинах пока сказать не можем, нужно разбираться.
Спасибо, о данном баге не знали. О причинах пока сказать не можем, нужно разбираться.
Спасибо за ответ.
Прошу по возможности информировать меня о ходе работы по этому багу - в частности, когда будет установлена причина проблемы и когда появится исправление в OWEN Logic.
Буду благодарен, если сможете сообщать о результатах по мере продвижения.
kaftanati
23.09.2026, 17:05
Баг в актуальной версии:
1. Если свернуть часть переменных в панели (сворачивание групп)
2. Переключиться на другую вкладку (макроса)
3. Вернуться - снова все группы развернуты
kaftanati
24.09.2026, 09:43
Баг, очень давний
1. Раскрыть выпадающее меню или дождаться вывода на экран всплывающего сообщения справки
2. Уйти в другое приложение
3. Всплывшие модальные окна продолжают висеть в том же месте поверх всего, в т.ч. других приложений
4. Особенно неудобно. когда открыто несколько OL и приходится по всем переключаться в поисках источника такого всплывающего окна
kaftanati
24.09.2026, 10:26
Баг с ST редактором
Не валидируется блок комментария OutputDescription (может связано с опечаткой не только в справке, но и в обработчике)
90483
Баг с ST редактором
Не валидируется блок комментария OutputDescription (может связано с опечаткой не только в справке, но и в обработчике)
Этот параметр только для функции.
И не надо копировать - ставьте /// и редактор сам подскажет что туда можно запихать
90484
kaftanati
24.09.2026, 13:17
Как бы так... объяснить. Я вручную и не копирую (почти):
Вытащил все свои st-блоки из программ OL/CDS
Натравил на них ИИ агента
Он их рассортировал, поправил описание, нашел пару опечаток, а кой-где и незначимых ошибок (значимые давно все вылезли)
Теперь у меня библиотека всех своих наработок, которая кочует от проекта к проекту, ждет применения в AltaIDe и других проектах.
А попытку впихнуть OutputDescription для блока я проморгал: исполнительный агент получил задачу для всех блоков привести шапку/описание к одному/шаблонному виду (из справки я ему поля выкопировал). Я же зацепился за опечатку и тут же отрапортовал.
kaftanati
25.09.2026, 15:45
Панель переменных:
При вводе текста фильтра по имени переменной, в списке остаются не только переменные, подходящие под фильтр и папки их включающие, но и вовсе все папки (локальные, сетевые), в т.ч. пустые.
Много лишнего.
На картинке видно соотношение полезного "выхода" относительно "отвлекающего"
90499
Баг. Версия последняя. Контроллер ПР200-220-5.1.
Читаю по модбас несколько переменных из сервака и отображаю их на экране ПР. В "настройках прибора" для каждой из этих переменных поставил свойство "Запуск чтения" с нулевым значением (переменной присвоен 0).
В результате все данные продолжают отображаться и обновляться на экране.
Баг. Версия последняя. Контроллер ПР200-220-5.1.
Читаю по модбас несколько переменных из сервака и отображаю их на экране ПР. В "настройках прибора" для каждой из этих переменных поставил свойство "Запуск чтения" с нулевым значением (переменной присвоен 0).
В результате все данные продолжают отображаться и обновляться на экране.
Насколько я помню, "Запуск чтения" (управление на уровне запроса) не отменяет опрос на уровне устройства.
Насколько я помню, "Запуск чтения" (управление на уровне запроса) не отменяет опрос на уровне устройства.
даже в описании оговорено. "Запуск чтения" производит разовый запрос, чтобы не перегружать интерфейс.
При отключенной переменной чтение просходить не должно.
Сергей0308
28.09.2026, 16:25
Я тоже так и не понял как там что работает, в смысле, ещё много лет назад не мог запись наладить на ПР200, в смысле, снимаю галочку запись по изменению и у меня запись прекращается, привязываю переменную для разрешения записи, подаю в неё логическую единицу из константы, как Юрий Ревака утверждал должна идти постоянная запись, а у меня нет записи, хоть кол на голове теши, короче, вернул запись по изменению и опять всё заработало, запись пошла, разбираться не было времени. Через полгода или год опять в эту ловушку попал, что-то добавлял в проект, а про эту галку забыл, короче, лучше на столе сначала разобраться, чтобы в просак не попасть, это я так думаю!
Запуск Чтения - 1_ца должна длиться более таймаута или более периода чтения. Импульс тут не работает.
Запуск Чтения - 1_ца должна длиться более таймаута или более периода чтения. Импульс тут не работает.
Вот фирменное описание, если что))):
Запуск чтения — назначается переменная булевского типа (командная переменная) для принудительного чтения настраиваемой переменной: если значение командной переменной меняется с 0 на 1, мастер инициирует запрос на чтение, после успешного выполнения запроса значение командной переменной автоматически меняется с 1 на 0;
msl272 ну на ПР200 это не прокатывало. Было даже видео от Юрия Ревака с диаграммами. Если добавили то хорошо, вопрос а добавили ли? и в каких моделях ПР?
добавлю. В любом случае при нулевой "командной переменной" чтения происходить не должно.
Королев Кирилл
28.09.2026, 17:22
Баг. Версия последняя. Контроллер ПР200-220-5.1.
Читаю по модбас несколько переменных из сервака и отображаю их на экране ПР. В "настройках прибора" для каждой из этих переменных поставил свойство "Запуск чтения" с нулевым значением (переменной присвоен 0).
В результате все данные продолжают отображаться и обновляться на экране.
Насколько я помню, "Запуск чтения" (управление на уровне запроса) не отменяет опрос на уровне устройства.
В ПР, действительно, команда Запуск чтения не блокирует циклический опрос (который работает на уровне добавляемого slave-устройства), указываемый в параметре Период опроса.
Фактически, Запуск чтения - это не разрешение на отправку запросов с функцией чтения, а команда однократного принудительного чтения.
Скорее, соглашусь, что ожидаемое поведение - это именно запрет/разрешение. Однако, такое поведение было всегда. И если его изменить, то может нарушиться работа уже существующих пользовательских проектов при обновлении до актуальных версий ПО.
P.S. во втором поколении (ПР103, 205, 225) есть возможность настраивать период опроса индивидуально для каждой переменной, что позволяет задать его равным 0 и оставить чтение исключительно по команде.
Powered by vBulletin® Version 4.2.3 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot