Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 19

Тема: Перезапись переменной саму в себя (из двух источников)

  1. #1

    По умолчанию Перезапись переменной саму в себя (из двух источников)

    Здравствуйте. Создавал макрос в программе и решил его проверить. Суть макроса - при приходе значения (температуры) с одного из источников, переписывать его на все другие. Например: ввод с экрана - F, ввод по сети RS - P, промежуточная переменная - S. Если F<>S, а S=P, то значение F записывается и в P, и в S. Все переменные с плавающей точкой.
    Проблемы начались во время отладки в симуляторе. При изменении параметра F всё работало как надо, но в симуляторе не было возможности изменить параметр P. Получилось изменять параметр P в симуляции, только выставив на экране поле ввода параметра P. Однако после этого ни изменения параметра P, ни изменения параметра F не применяются ( записываю в поле число, а ничего не меняется, даже шага программы не проходит). Насколько я понял, это из-за того, что в программе уже есть выходной блок параметра, что ни введи на вводном блоке, параметр не изменится, сколько линий задержки между ними не вставляй (я пробовал).
    По-этому у меня есть несколько вопросов: почему нельзя менять значение переменной без поля ввода на экране? И есть ли для Owen logic решения записи значения в переменную с двух источников (саму в себя).
    Изображения Изображения

  2. #2

    По умолчанию

    Цитата Сообщение от Dead Kid Посмотреть сообщение
    Здравствуйте. Создавал макрос в программе и решил его проверить. Суть макроса - при приходе значения (температуры) с одного из источников, переписывать его на все другие. Например: ввод с экрана - F, ввод по сети RS - P, промежуточная переменная - S. Если F<>S, а S=P, то значение F записывается и в P, и в S. Все переменные с плавающей точкой.
    Проблемы начались во время отладки в симуляторе. При изменении параметра F всё работало как надо, но в симуляторе не было возможности изменить параметр P. Получилось изменять параметр P в симуляции, только выставив на экране поле ввода параметра P. Однако после этого ни изменения параметра P, ни изменения параметра F не применяются ( записываю в поле число, а ничего не меняется, даже шага программы не проходит). Насколько я понял, это из-за того, что в программе уже есть выходной блок параметра, что ни введи на вводном блоке, параметр не изменится, сколько линий задержки между ними не вставляй (я пробовал).
    По-этому у меня есть несколько вопросов: почему нельзя менять значение переменной без поля ввода на экране? И есть ли для Owen logic решения записи значения в переменную с двух источников (саму в себя).
    Если вы хотя бы воспользовались поиском, то нашли бы не один вариант, например макрос petera (если не ошибаюсь)
    Вложения Вложения
    Последний раз редактировалось kondor3000; 08.04.2022 в 19:03.

  3. #3
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    1,126

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Если вы хотя бы воспользовались поиском, то нашли бы не один вариант, например макрос petera (если не ошибаюсь)
    А еще, в библиотеке макросов есть блоки SelChgF, SelChgI и SelChgB которые на выход записывают значение одного из двух входов, которое менялось последним

  4. #4

    По умолчанию

    Спасибо большое за готовые макросы. К сожалению при импортировании их в мой проект одна из переменных жалуется на наличие циклической связи в одной из переменных. Если запустить симуляцию игнорируя это, то макрос работает только с одной переменной, вторую, к которой идёт жёлтая линия, изменить не позволяет. При замене жёлтой линии на задержку уже возникает жалоба на первую переменную. При вставке линии задержки на обе переменные их значения не меняются (что ни вводи в поле значения, всё равно 0). Наличие промежуточной переменной никак не влияет на ситуацию. Если убрать с экрана поля ввода этих переменных, то циклических связей нет, но и в симуляции я не могу поменять значения переменных (переменные просто не нажимаются и не появляется поле ввода).
    Изображения Изображения

  5. #5
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,840

    По умолчанию

    Цитата Сообщение от Dead Kid Посмотреть сообщение
    Спасибо большое за готовые макросы. К сожалению при импортировании их в мой проект одна из переменных жалуется на наличие циклической связи в одной из переменных. Если запустить симуляцию игнорируя это, то макрос работает только с одной переменной, вторую, к которой идёт жёлтая линия, изменить не позволяет. При замене жёлтой линии на задержку уже возникает жалоба на первую переменную. При вставке линии задержки на обе переменные их значения не меняются (что ни вводи в поле значения, всё равно 0). Наличие промежуточной переменной никак не влияет на ситуацию. Если убрать с экрана поля ввода этих переменных, то циклических связей нет, но и в симуляции я не могу поменять значения переменных (переменные просто не нажимаются и не появляется поле ввода).
    Обе переменные надо прямо на выходе макроса объединять!
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  6. #6

    По умолчанию

    Всё также, как я и говорил в прошлом посте. Подозреваю это из-за полей ввода на экране. Но если убираю поля ввода, то не могу менять значения в симуляции, да и с экрана нужно всё-таки вводить значения. Работаю на ПР200, если это имеет значение.
    rzHf95lM0EQ.jpg

  7. #7
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,840

    По умолчанию

    Цитата Сообщение от Dead Kid Посмотреть сообщение
    Всё также, как я и говорил в прошлом посте. Подозреваю это из-за полей ввода на экране. Но если убираю поля ввода, то не могу менять значения в симуляции, да и с экрана нужно всё-таки вводить значения. Работаю на ПР200, если это имеет значение.
    rzHf95lM0EQ.jpg
    Сделай в свойствах нижней переменной "запись в конце цикла"

    ЗЫ
    Захват-01.png
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  8. #8
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    8,236

    По умолчанию

    Цитата Сообщение от Dead Kid Посмотреть сообщение
    Здравствуйте. Создавал макрос в программе и решил его проверить. Суть макроса - при приходе значения (температуры) с одного из источников, переписывать его на все другие. Например: ввод с экрана - F, ввод по сети RS - P, промежуточная переменная - S. Если F<>S, а S=P, то значение F записывается и в P, и в S. Все переменные с плавающей точкой.
    Проблемы начались во время отладки в симуляторе. При изменении параметра F всё работало как надо, но в симуляторе не было возможности изменить параметр P. Получилось изменять параметр P в симуляции, только выставив на экране поле ввода параметра P. Однако после этого ни изменения параметра P, ни изменения параметра F не применяются ( записываю в поле число, а ничего не меняется, даже шага программы не проходит). Насколько я понял, это из-за того, что в программе уже есть выходной блок параметра, что ни введи на вводном блоке, параметр не изменится, сколько линий задержки между ними не вставляй (я пробовал).
    По-этому у меня есть несколько вопросов: почему нельзя менять значение переменной без поля ввода на экране? И есть ли для Owen logic решения записи значения в переменную с двух источников (саму в себя).
    Даже Т-триггерами управляли из нескольких мест: https://owen.ru/forum/showthread.php?t=26216&page=222

    32 Т-триггера + управление из нескольких мест(по сети).PNG
    Последний раз редактировалось Сергей0308; 08.04.2022 в 22:11.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  9. #9

    По умолчанию

    Спасибо, но получилось только с одной переменной. Для другой переменной всё ещё жалуется на циклическую связь. При добавлении строки на экран для этой переменной и настройке записи в конце цикла решается. Без строки на экране возможности поставить в конце цикла - нет. Можно решить без добавления строки на экран?tdkYx4NG8cU.jpg

  10. #10
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    1,126

    По умолчанию

    Цитата Сообщение от Dead Kid Посмотреть сообщение
    Спасибо, но получилось только с одной переменной. Для другой переменной всё ещё жалуется на циклическую связь. При добавлении строки на экран для этой переменной и настройке записи в конце цикла решается. Без строки на экране возможности поставить в конце цикла - нет. Можно решить без добавления строки на экран?tdkYx4NG8cU.jpg
    Поставьте переменной энергонезависимость

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Ответов: 9
    Последнее сообщение: 16.06.2023, 12:50
  2. Ответов: 2
    Последнее сообщение: 26.12.2019, 09:55
  3. циклическая перезапись retain плк160
    от Brandon_heat_dre в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 15.08.2019, 16:59
  4. Перезапись энергонезависимой переменной по сети
    от anthrwpos в разделе Среда программирования OWEN Logic
    Ответов: 18
    Последнее сообщение: 11.09.2018, 10:15
  5. Задание уставки из нескольких источников
    от vlad_t в разделе ПЛК1хх [М02]
    Ответов: 3
    Последнее сообщение: 17.08.2018, 11:03

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •