Страница 4 из 4 ПерваяПервая ... 234
Показано с 31 по 38 из 38

Тема: Запись переменной с двух мест по сети и с экрана

  1. #31

    По умолчанию

    AHom, определитесь, что в конечном счёте требуется без манипуляций с кодом, без грязных хаков с принудительными обнулениями при включении или отключении электропитания.

    Из облака (или от панели оператора) и от местной панели ПР могут формироваться следующие переключения:
    - команды управления (ВКЛ/ОТКЛ), которые при выключении электропитания гарантированно обнуляются, выключая агрегат (переводя его в безопасное состояние)
    - режимы работы (РУЧ/АВТ, ЗИМА/ЛЕТО), которые сохраняют значение при выключении электропитания

    мой взгляд на способ управления:
    Для работы из нескольких источников (локальная панель, облако, программа, аварийный останов) удобнее всего сигналы управления от этих источников сделать импульсными и изменения состояния агрегата выполнять по фронту команды.

    Для этого на панели оператора (в облаке) делают 2 кнопки - ВКЛ и ОТКЛ, которые устанавливают в true определённые биты (разные) в слове управления. Программа после выделения бит команд обнуляет принятое слово, тем самым формируя импульс команды. Этот импульс можно сделать и свойствами панели - некоторые позволяют формировать импульс на несколько секунд - но связь по Modbus, а тем более с облаком может прерваться в неподходящий момент, поэтому по цифровому интерфейсу принимается команда и командное слово приводится в исходное состояние.
    Таким образом устраняется противоречие между состоянием агрегата и состоянием команды в каждом из источников команд.

    Для локальной панели ПР тоже было бы идеально сделать 2 кнопки, но интерфейс будет неудобным и загромождённым. Поэтому придётся пойти на компромисс и отступить от предложенной схемы и делать совмещённый бит - и команда и состояние. И значит сложнее его обрабатывать.


    Выше я привёл пример обработки команды. В своих программах делаю сложнее - разделяю управление на автоматическое (из программы) и на ручное дистанционное (от локальной панели или из облака) - при помощи обычного bSEL. Но Вы по образцу сможете самостоятельно подогнать под собственные нужды.
    Для переключения режима нужно будет немного изменить программу ФБ - вынести переключаемый бит из локальных в глобальные энергонезависимые переменные.

    Ещё раз повторю вопрос - требуется переключить команду или режим?

  2. #32
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,175

    По умолчанию

    Цитата Сообщение от FPavel Посмотреть сообщение
    мой взгляд на способ управления:
    Для работы из нескольких источников ... удобнее всего сигналы управления от этих источников сделать импульсными и изменения состояния агрегата выполнять по фронту команды.
    Для этого на панели оператора (в облаке) делают 2 кнопки - ВКЛ и ОТКЛ, которые устанавливают в true определённые биты...
    А нафига какие-то биты когда само число представляет 65тыс команд

    Цитата Сообщение от FPavel Посмотреть сообщение
    мой взгляд на способ управления:
    ...
    Для этого на панели оператора (в облаке) делают 2 кнопки - ВКЛ и ОТКЛ, которые устанавливают в true определённые биты .
    Даже в ИП320 по кнопе можно записать XXXX в нужный регистр. Которого одного хватит чуть меньше чем для всего.


    Цитата Сообщение от FPavel Посмотреть сообщение
    ... В своих программах делаю сложнее - разделяю управление на автоматическое (из программы) и на ручное дистанционное (от локальной панели или из облака) - при помощи обычного bSEL?
    Вообще не разделяю.
    Исполнительные части работают только по получаемым в свой ящик командам-сообщениям.
    Команды принимаются в одно центральное место, а в нужные места-приемники раскладывает почтальон - диспетчер команд. CASE рулит.
    Команды могут прилетететь и сверху и с местной панели управления и с автоматической части логики.
    Если нужно строго от автоматической логики, почтальон сообщения от запрещёных источников кладет в топку.
    Команды можно занести в журнал. Для отладки удобно.
    Если припрет, несложно сделать очередь команд.

  3. #33

    По умолчанию

    Здравствуйте !
    FPavel команду нужно переключить (обнулить) посланную из Owen Cloud при выключении и последующем включении ПР.

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

    По умолчанию

    Цитата Сообщение от AHom Посмотреть сообщение
    Здравствуйте !
    FPavel команду нужно переключить (обнулить) посланную из Owen Cloud при выключении и последующем включении ПР.
    Если Вы хотите чтобы команда, при её наличии не исполнялась при перезагрузке ПР делайте формирование команд по фронту сигнала, тогда проблем не должно возникнуть, если не будете принудительно обнулять(снимать) команду при перезагрузке ПР, мне так кажется!
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  5. #35

    По умолчанию

    Цитата Сообщение от AHom Посмотреть сообщение
    Здравствуйте !
    FPavel команду нужно переключить (обнулить) посланную из Owen Cloud при выключении и последующем включении ПР.
    ПР никак не определяет для программы пользователя состояние отключения электропитания, а включение - возможно определить.
    В такой постановке задача не решаема средствами ПР и Owen Logic.
    При замене ПР на ПЛК - Овен ПЛК2хх - в задачах можно настроить обработку по разным событиям - и включение питание и отключение питания.

    Заменяйте на ПЛК и сможете решить именно эту задачу именно в такой постановке.

    Если же требуется подать команду включения от нескольких источников и состояние агрегата после включения электропитания окажется в безопасном (отключённом) состоянии, то посмотрите мой пример.
    Мой пример - это и есть такая команда и такое состояние.
    Этот эффект получается за счёт того, что RS-триггер после включения питания находится в выключенном состоянии и до прихода команд включиться - в этом состоянии и будет пребывать.
    Чтобы была возможность применять команды от нескольких источников - время их действия ограничивается одним машинным циклом - когда оговаривается, что переключение будет выполняться только по фронту команды - от импульса.
    Команда из облака поступает в сетевой переменной, после выделения команды - сетевая переменная обнуляется, чем и создаётся импульс.
    От других источников (программа и локальная панель ПР) выделение фронта производится в коде - можно явно через RTRIG, а можно через дополнительную переменную предыдущего состояния входа - у меня вторым способом.

    Пример работает - проверил в отладчике. В "живой" ПР, думаю тоже будет работать.

    Берите пример и разбирайтесь, подгоняйте под свои нужды.

  6. #36

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    А нафига какие-то биты когда само число представляет 65тыс команд
    ...
    Спасибо, хорошая идея. Воспользуюсь в следующем проекте.
    Именно в Owen Logic будет несколько неудобно из-за отсутствия именованных констант.

    Как понимаю, в моём примере отличие только в количестве команд на одну переменную (но это скрыто в макросе UnpackBits, который можно заменить на сетку сравнений с константами - CASE), и месте обработки, а последующая часть будет сходной, за исключением, что игнорирование команды у меня выполняется не на этапе распределения команд в CASE, а в коде управления каждого из агрегатов.

    Как понимаю, потребуется очередь (или разные переменные по числу источников) - команды из Modbus и из локальной панели могут прийти одновременно и один из источников будет пропущен при записи в одну и ту же переменную. И цикл обработки очереди команд (вернее, переменных хранения для каждого из источников команд).

  7. #37
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,175

    По умолчанию

    Цитата Сообщение от FPavel Посмотреть сообщение
    ...потребуется очередь (или разные переменные по числу источников) - команды из Modbus и из локальной панели могут прийти одновременно и один из источников будет пропущен при записи в одну и ту же переменную. ...
    Не потребуется. Во всех вариантах придется выбирать кто главней в таких чуть чаще чем никогда случаях.

    Как понимаю, в моём примере отличие только ...
    .... а в коде управления каждого из агрегатов.
    В общем да. Но в моем варианте при других конфигурациях/задачах лазить только почтальона (если не меняется база).

    А отсутствие констант это всего лишь открыть и сравнить 2 линейных списка: [где-то] констант со значениями и [здесь] определителей CASE.
    Это же не хитросплетения кода. Особенно если это квадратики в виде атласа жд РФ.

    --
    Но еще раз - это лично мое. Я не собираюсь говорить что "нада именно так" в отличие от некоторых бывающих тут. Решений всегда тьма.
    Главное - внутреннее удовлетворение результатом для того кто делает. А как - вообще пофиг.

  8. #38

    По умолчанию

    Спасибо.
    Идею уловил, попробую. Если не справлюсь - никогда не поздно вернуться к прежнему решению.

Страница 4 из 4 ПерваяПервая ... 234

Похожие темы

  1. Задание переменной по сети RS485 и с экрана ПР200
    от Антон_Б в разделе Среда программирования OWEN Logic
    Ответов: 8
    Последнее сообщение: 12.05.2025, 13:07
  2. Задание контроллеру из двух мест
    от kanadchikov в разделе ПЛК1хх
    Ответов: 28
    Последнее сообщение: 09.12.2020, 07:32
  3. Ответов: 0
    Последнее сообщение: 29.05.2019, 10:56
  4. Запись уставки с экрана ПР200 и по сети
    от KoT'86 в разделе Программируемые реле
    Ответов: 2
    Последнее сообщение: 02.12.2017, 13:04
  5. Управление частотниками из двух мест
    от KRUPSKIY в разделе Подбор Оборудования
    Ответов: 14
    Последнее сообщение: 31.03.2017, 12:27

Ваши права

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