Просмотр полной версии : Работа с экранами ПР200
BurmistrpvPA
02.12.2025, 16:17
Добрый день!
Прошу помощи с проблемой: на ПР200 не удается записать значение переменной через элемент "Ввод/Вывод(Bool)" на экране. Переход между экранами при изменении данной переменной работает, а вот запись в основной программе не происходит. Пробовал вешать на нее RS-триггер, чтобы поймать - не срабатывает.
При этом если изменить переменную напрямую в программе при отладке, то все срабатывает как надо. А через экран - нет.
Находил тут информацию, что нужно поставить запись в конце цикла, но и это не помогает
87024
87025
BurmistrpvPA
02.12.2025, 17:25
Если я правильно понял, то не получается использовать одну и ту же переменную для перехода на какой-либо другой экран и для работы в основной программе. Сейчас попробовал изменять при помощи "Ввод/Вывод(Bool)" переменную, с её помощью менять другую переменную в основной программе, а уже по изменению этой второй переменной переключать экран. Как-то странно это всё. Я наверное что-то не понимаю, поэтому буду пробовать дальше.
kondor3000
02.12.2025, 18:59
Добрый день!
Прошу помощи с проблемой: на ПР200 не удается записать значение переменной через элемент "Ввод/Вывод(Bool)" на экране. Переход между экранами при изменении данной переменной работает, а вот запись в основной программе не происходит. Пробовал вешать на нее RS-триггер, чтобы поймать - не срабатывает.
При этом если изменить переменную напрямую в программе при отладке, то все срабатывает как надо. А через экран - нет.
Находил тут информацию, что нужно поставить запись в конце цикла, но и это не помогает
87025
С чего у вас запись будет, если у вас выход в воздухе висит, он и не работает у вас.
BurmistrpvPA
02.12.2025, 19:22
Эта переменная записывается с экрана. Сейчас быстро не найду, но где-то я встречал информацию, что достаточно писать переменную прямо с экрана. По крайней мере с элементом "Ввод/Вывод(int/float)" такой принцип работает без проблем - я в основной программе поставил просто входной блок переменной, не используя выходной блок. А вот с вариантом Boolean не работает. Точнее работает, но только если использовать что-то одно - либо запись переменной в основной программе, либо изменение экрана. В общем-то я решил свою задачу используя такой костыль - пишу переменную с экрана (и только с него), затем эта переменная запускает логику программы и меняет другую переменную, которая уже меняет экран. Так работает.
BurmistrpvPA
02.12.2025, 19:50
Сейчас специально проверил еще раз (прошу прощение за имена переменных, уже лень красоту наводить):
Если делаю просто запись переменной <5555555555> с экрана, то триггер срабатывает. Если я при этом вешаю еще и событие перехода на другой экран, то триггер уже не срабатывает, хотя ничего кроме события перехода на другой экран я не добавлял. При этом событие перехода на другой экран происходит корректно.87031
Собственно, событие перехода выглядит так:
87032
kondor3000
02.12.2025, 20:09
А если так, переменная привязана к изменению с экрана и к переходу 87034
Если надо можно и на триггер отправить
BurmistrpvPA
03.12.2025, 08:15
А если так, переменная привязана к изменению с экрана и к переходу 87034
Если надо можно и на триггер отправить
У Вас корректно работает? У меня ситуация не поменялась, так же переход на экран работает, а переменная не срабатывает
87043
Нужно, чтобы переменная перехода на экран была установлена ну хоть 0,5-1 секунду.
Я для перехода на экран заводил отдельную переменную и дёргал её по R_TRIG + TP
BurmistrpvPA
03.12.2025, 10:26
Нужно, чтобы переменная перехода на экран была установлена ну хоть 0,5-1 секунду.
Я для перехода на экран заводил отдельную переменную и дёргал её по R_TRIG + TP
Так переход на экран у меня работает нормально, у меня переменная не меняется в основной программе, если я меняю её через экран и при этом делаю переход на другой экран. То есть одновременно два этих события не получается сделать
У Вас корректно работает? У меня ситуация не поменялась, так же переход на экран работает, а переменная не срабатывает
87043
Короче, давно это было, когда Ревака был тут.
Вот что он говорил про использовании переменной для перехода по экранам, после установки бита из 0 в 1 происходит переход на заданный экран и переменная АВТОМАТИЧЕСКИ сбрасывается в "0".
Бит сбрасывается без Вашего участия, аппаратно
Информация появилась случайно, когда обсуждали неустойчивый переход между экранами от дискретного входа. Изменение в одну сторону, задаем "1", контроллер формирует "0".
https://owen.ru/forum/showthread.php?t=28579&p=326753&viewfull=1#post326753
https://owen.ru/forum/showthread.php?t=28579&p=326762&viewfull=1#post326762
Так переход на экран у меня работает нормально, у меня переменная не меняется в основной программе, если я меняю её через экран и при этом делаю переход на другой экран. То есть одновременно два этих события не получается сделать
Ну, вот, пробуйте
Powered by vBulletin® Version 4.2.3 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot