PDA

Просмотр полной версии : Энергонезевасимые переменные и задержка в 1 цикл



kfvniiz
05.01.2024, 22:52
Имеем Owen Logic 2.5.342.0. Для воспроизведения глюка создаем простой проект для ПР200 1.x.
Вход I1 связываем с двумя переменными:Test и TestEE. Для TestEE включаем опцию энергонезависимость.
Переменные Test и TestEE привязываем к выходам Q1 и Q2 соответственно. Запускаем режим симулятора в пошаговом режиме.
Клацаем на входе I1, чтобы он стал равен 1. Делаем 1 шаг и видим, что выход Q1 =1, а выход Q2 =0 (см. снимок экрана). Чтобы выход Q2 стал равен 1 нужно сделать еще 1 шаг.

Получается, что переменные с включенной опцией энергонезависимости запаздывают на один шаг.
Это баг или фитча, и где в документации подобное поведение описано?
72779

Dimensy
06.01.2024, 00:00
Энергонезависимые и сетевые переменные записываются в конце цикла. Так же, можно экранной переменной в свойствах поставить "запись в конце цикла"

Сергей0308
06.01.2024, 00:08
Имеем Owen Logic 2.5.342.0. Для воспроизведения глюка создаем простой проект для ПР200 1.x.
Вход I1 связываем с двумя переменными:Test и TestEE. Для TestEE включаем опцию энергонезависимость.
Переменные Test и TestEE привязываем к выходам Q1 и Q2 соответственно. Запускаем режим симулятора в пошаговом режиме.
Клацаем на входе I1, чтобы он стал равен 1. Делаем 1 шаг и видим, что выход Q1 =1, а выход Q2 =0 (см. снимок экрана). Чтобы выход Q2 стал равен 1 нужно сделать еще 1 шаг.

Получается, что переменные с включенной опцией энергонезависимости запаздывают на один шаг.
Это баг или фитча, и где в документации подобное поведение описано?
72779

За счёт этого работают многие мои алгоритмы:

72780

https://owen.ru/forum/showthread.php?t=12691&page=63

Проблема в чём, Вы хотите чтобы не работали мои алгоритмы?

kfvniiz
06.01.2024, 00:53
Проблема в чём, Вы хотите чтобы не работали мои алгоритмы?
Особых проблем нет, просто пришлось чуть покопаться, чтобы понять почему программа работает не так как задумывалось. Такое поведение для энергонезависимых переменных неочевидно. В документации не нашел где оно описано. Соответственно не ясно, будет ли это работать так всегда или в очередной версии это поведение изменят.
Для задержки на один цикл есть линия задержки, а оказывается ее можно организовать еще, сделав переменную энергонезависимой.

Сергей0308
06.01.2024, 01:40
Особых проблем нет, просто пришлось чуть покопаться, чтобы понять почему программа работает не так как задумывалось. Такое поведение для энергонезависимых переменных неочевидно. В документации не нашел где оно описано. Соответственно не ясно, будет ли это работать так всегда или в очередной версии это поведение изменят.
Для задержки на один цикл есть линия задержки, а оказывается ее можно организовать еще, сделав переменную энергонезависимой.

Утверждать не буду, работало ли так изначально, изначально и энергонезависимых переменных не было, в ПР110!
Но, сколько помню, всегда вроде так работало! А, что никогда не менялось, в смысле, туда-сюда, это точно!