Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 21 по 30 из 38

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

  1. #21

    По умолчанию

    Ведь можно галочку "энергонезависимость"
    у выбранных сетевых переменных в cлейве снять, тогда при выключении
    питания переменная обнулится ?

  2. #22

    По умолчанию

    Вы не стой стороны подходите к решению.

    Если этот бит - команда - например, "ПУСК", то нужно применить импульсное управление включением. Т.е. при получении
    - командного слова из Modbus/OwenCloud выделить бит команды, а всё слово обнулить
    - бит от локальной панели ПР - обнулить его через таймер TP
    - бит из алгоритма - подать через RTRIG
    Все три импульса объединить через OR и подать на RS-trig (с приоритетом сброса).

    Сброс - аналогично, но только останов от защитной блокировки должен действовать на сброс триггера непрерывно, а команды - импульсами.

  3. #23

    По умолчанию

    Здравствуйте!
    Как все-таки при выключении питания ПР205 обнулить целочисленную сетевую переменную, которая преобразованная в булевское значение поступает на вход макроса Damper_1 ?
    Схема, которую предложил EFrol подойдет для этого ?
    Изображения Изображения

  4. #24

    По умолчанию

    Цитата Сообщение от AHom Посмотреть сообщение
    Здравствуйте!
    Как все-таки при выключении питания ПР205 обнулить целочисленную сетевую переменную, которая преобразованная в булевское значение поступает на вход макроса Damper_1 ?
    Схема, которую предложил EFrol подойдет для этого ?
    Отследить момент отключения питания скорее всего не получится, но можно обнулить её сразу:
    damper_1,пример.JPG

  5. #25

    По умолчанию

    Пишу как думаю. Из Owen Cloud в том числе посылаются команды по сети в ПР на запись. Команда записалась. Теперь питание ПР выключилось, например на доли секунд и снова включилось.
    При этом записанная команда не изменила своего прежнего значения, 1-а по прежнему висит. Как Owen Cloud "узнает", что питание прибора было выключено на доли секунд ?
    Была предложена схема, которая обнулить netVar только в первом цикле программы.
    Но у меня вопросы.
    Почему netVar будет 0 ? На выходе таймера RTRIG будет 1 на один цикл программы сразу при включении питания, при этом на на выходе SEL значение с 3-его входа, т.е. нет значения.
    После этого на выходе SEL значение со 2-его входа, т.е. netVar-это то значение, которое как раз и
    задано с Owen Cloud ?
    Изображения Изображения
    • Тип файла: jpg Owen1.jpg (32.1 Кб, Просмотров: 5)

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

    По умолчанию

    Цитата Сообщение от AHom Посмотреть сообщение
    Здравствуйте!
    Как все-таки при выключении питания ПР205 обнулить целочисленную сетевую переменную, которая преобразованная в булевское значение поступает на вход макроса Damper_1 ?
    Схема, которую предложил EFrol подойдет для этого ?
    На ПР205 снять галку с энергонезависимости

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

    По умолчанию

    Цитата Сообщение от AHom Посмотреть сообщение
    Пишу как думаю. Из Owen Cloud в том числе посылаются команды по сети в ПР на запись. Команда записалась. Теперь питание ПР выключилось, например на доли секунд и снова включилось.
    При этом записанная команда не изменила своего прежнего значения, 1-а по прежнему висит. Как Owen Cloud "узнает", что питание прибора было выключено на доли секунд ?
    Была предложена схема, которая обнулить netVar только в первом цикле программы.
    Но у меня вопросы.
    Почему netVar будет 0 ? На выходе таймера RTRIG будет 1 на один цикл программы сразу при включении питания, при этом на на выходе SEL значение с 3-его входа, т.е. нет значения.
    После этого на выходе SEL значение со 2-его входа, т.е. netVar-это то значение, которое как раз и
    задано с Owen Cloud ?
    А тут зависит от того как облако пишет в ПРку. Можно, ведь, записать и забыть, а можно без перерыва циклически писать. В первом случае обнуление сработает, во втором нет

  8. #28

    По умолчанию

    Я бы сделал так - с импульсным управлением от облака (Modbus) и из алгоритма программы, и с потенциальным от локальной панели ПР
    ST:
    Код:
    FUNCTION_BLOCK MTR_Control
    
        VAR_INPUT
            bPgmStart       : BOOL; // Импульсная команда ПУСК из программы
            bPgmStop        : BOOL; // Импульсная команда СТОП из программы
            bHmiStart       : BOOL; // Импульсная команда ПУСК из вышестоящей системы
            bHmiStop        : BOOL; // Импульсная команда СТОП из вышестоящей системы
            bLocalCtrl_In   : BOOL; // Потенциальная команда ПУСК (и состояние) от локальной панели
            bEmergencyStop  : BOOL; // Состояние кнопки АВАРИЙНЫЙ ОСТАНОВ
            Enable          : BOOL; // Разрешение работы из программы
        END_VAR
    
        VAR_OUTPUT
            bStart          : BOOL; // Потенциальная команда ВКЛЮЧИТЬ
            bLocalCtrl_Out  : BOOL; // Обновление входной переменной команды и состояния от локальной панели
        END_VAR
    
        VAR
            rtrigPgmStart   : BOOL; // для выделения фронта импульсной команды
            rtrigPgmStop    : BOOL; // для выделения фронта импульсной команды
            rtrigLocalCtrl  : BOOL; // для выделения фронта импульсной команды
        END_VAR
    
        IF Enable AND NOT bEmergencyStop THEN
            // если работа разрешена и кнопка АВАРИЙНЫЙ ОСТАНОВ не нажата
            
            // если пришёл фронт команды ПУСК от любого из источников - включить
            IF (bPgmStart AND NOT rtrigPgmStart)
            OR bHmiStart
            OR (bLocalCtrl_In AND NOT rtrigLocalCtrl)
            THEN
                bStart := TRUE;
            END_IF
    
            // если пришёл фронт команды СТОП от любого из источников - выключить
            IF (bPgmStop AND NOT rtrigPgmStop)
            OR bHmiStop
            OR (NOT bLocalCtrl_In AND rtrigLocalCtrl)
            THEN
                bStart := FALSE;
            END_IF
        ELSE
            // если работа не разрешена или нажата кнопка АВАРИЙНЫЙ ОСТАНОВ - выключить
            bStart := FALSE;
        END_IF
    
        // для выделения фронта команд
        rtrigPgmStart := bPgmStart;
        rtrigPgmStop := bPgmStop;
    
        // команда от локальной панели - потенциальная, поэтому для исключения формирования импульса
        // от неё на следующем машинном цикле при изменении состояния от другого источника
        // предыдущее состояние устанавливается текущему только если управление выполнилось от локальной панели
        IF bLocalCtrl_In XOR bStart THEN
            rtrigLocalCtrl := bStart;
        ELSE
            rtrigLocalCtrl := bLocalCtrl_In;
        END_IF
    
        // Owen Logic не позволяет работать с переменными InOut, поэтому переменная команды-состояния
        // локальной панели обновляется за пределами ФБ
        bLocalCtrl_Out := bStart;
    
    END_FUNCTION_BLOCK


    Команда из облака - бит в принятом слове. Слово сразу после приёма и декодирования обнуляется, команда однократно исполняется.
    В облаке настроить на передачу команды в течение нескольких секунд.
    Сразу же обрабатывается сигнал аварии (кнопки СТОП) и инициализации при включении питания.

    Мне кажется - так будет работать.

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

  9. #29

    По умолчанию

    Если записать и забыть, то ведь такая схема обнуления сетевой переменной в первом цикле при включении питания ПР должна работать ( в схему предложенную EFrol
    на 3-ий вход добавил константу со значением 0 ) ?
    Dimensy можете привести пример, когда в ПР из Owen Cloud без перерыва циклически что-то пишется, когда обнуление не сработает ?
    Изображения Изображения

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

    По умолчанию

    Вроде подобное делали много лет тому назад: https://owen.ru/forum/showthread.php...l=1#post376273
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя

Похожие темы

  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

Ваши права

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