Показано с 1 по 9 из 9

Тема: Реализация изменения одного параметра по расписанию

  1. #1

    Question Реализация изменения одного параметра по расписанию

    Есть необходимость производить запись значения в параметр в определенное время, например в 7:00 записать 10, в 16:00 записать 5.) Язык ST(предпочтительней) или FBD.

    Ваши мысли по данному вопросу, как бы вы сделали наилучшим образом. Можете в виде простых мыслей описать, а можно и с примерами кода.

    Всех благодарю за участие.

    Плюсы в карму полетели.)

  2. #2

    По умолчанию

    Открыть протокол прибора и прочитать как записывать параметра.
    сформировать нужное количество пакетов или создать сборку пакетов динамически при помощи любого языка программирования. как условие номер прибора у вас не меняется.
    в любом языке программирования открыть ком порт (виртуальный если АС4 или физический если стоит АС3) и послать туда вышесформированый пакет.
    все примеры есть в С++ у овена рядом с их библиотекой интеграции приборов.
    я лично пишу в дельфи, там для вашей задачи надо 3 компонента : таймер, библиотека работы с ком портом или библиотека овен, и кнопка запуска/остановки. отмечу так же что для различных приборов различные методы посылки значений.
    Анонимности в сети нет, есть только отсутствие желания вас найти.

  3. #3

    По умолчанию

    Накидал за обед диспетчер для 4 будильников. В заданое время закидывает в переменную нужное значение.
    По образу и подобию можно нарастить до любого количества.
    Никаких проверок на корректность не вводил. К железу не привязывался - там сильно все по разному реализуется, сами сделаете.
    Вложения Вложения
    Life is complex: it has both real and imaginary components.

  4. #4
    Пользователь
    Регистрация
    01.12.2007
    Адрес
    Воронеж
    Сообщений
    155

    По умолчанию

    Надо учитывать что конкретные цифры можно и пропустить( питания, например, не было)
    По этому я бы сделал примерно так( для не корректируемых в процессе параметров):
    Код:
    IF( ( CUR_TIME >= 7:00) AND ( CUR_TIME < 16:00)) THEN
      IF( CUR_VALUE <> 10)THEN
        CUR_VALUE := 10;
      END_IF;
    ELSE
      IF( CUR_VALUE <> 5)THEN
        CUR_VALUE := 5;
      END_IF;
    END_IF;

  5. #5

    По умолчанию

    Цитата Сообщение от pt200 Посмотреть сообщение
    Надо учитывать что конкретные цифры можно и пропустить( питания, например, не было)
    По этому я бы сделал примерно так( для не корректируемых в процессе параметров):
    Код:
    IF( ( CUR_TIME >= 7:00) AND ( CUR_TIME < 16:00)) THEN
      IF( CUR_VALUE <> 10)THEN
        CUR_VALUE := 10;
      END_IF;
    ELSE
      IF( CUR_VALUE <> 5)THEN
        CUR_VALUE := 5;
      END_IF;
    END_IF;
    В сутках 24 часа. Когда время перевалит за 00:00 условие "( CUR_TIME < 16:00)" перестанет действовать и соответственно код неработоспособен, т.к., поставленную задачу не решает.

  6. #6
    Пользователь
    Регистрация
    01.12.2007
    Адрес
    Воронеж
    Сообщений
    155

    По умолчанию

    Цитата Сообщение от Cinks Посмотреть сообщение
    В сутках 24 часа. Когда время перевалит за 00:00 условие "( CUR_TIME < 16:00)" перестанет действовать и соответственно код неработоспособен, т.к., поставленную задачу не решает.
    Так для этого есть еще и 1я часть условия: "( CUR_TIME >= 7:00) AND ..." или я чего то не понимаю?

  7. #7

    По умолчанию

    Цитата Сообщение от pt200 Посмотреть сообщение
    Так для этого есть еще и 1я часть условия: "( CUR_TIME >= 7:00) AND ..." или я чего то не понимаю?
    Это как в последовательном соединении проводников, если один проводник исключить из цепи, вся сеть перестает работать.
    Вы же сами говорите в условии, что если "одно" и "второе" верны, то сделать "это". Ну и получается, что до 23:59 они верны, а вот уже после не верны.)
    Последний раз редактировалось Cinks; 18.03.2020 в 10:38.

  8. #8
    Пользователь
    Регистрация
    01.12.2007
    Адрес
    Воронеж
    Сообщений
    155

    По умолчанию

    Если честно не могу понять вопрос: чем время следующих сутках отличается от времени в предыдущих, каждый раз( практически) от 0 до 24х монотонно возрастает?
    Соответственно и условие каждый день работает одинаково

  9. #9

    По умолчанию

    Цитата Сообщение от pt200 Посмотреть сообщение
    Если честно не могу понять вопрос: чем время следующих сутках отличается от времени в предыдущих, каждый раз( практически) от 0 до 24х монотонно возрастает?
    Соответственно и условие каждый день работает одинаково
    Я немного ошибся, но сути это не меняет.
    Писал я за выражение IF( ( CUR_TIME <= 7:00) AND ( CUR_TIME > 16:00)), а у вас IF( ( CUR_TIME >= 7:00) AND ( CUR_TIME < 16:00)).

    Но сути это не изменило.

    IF( ( CUR_TIME >= 7:00) AND ( CUR_TIME < 16:00)) THEN ↚ здесь вы говорите, что если ( CUR_TIME >= 7:00) и ( CUR_TIME < 16:00) ОДНОВРЕМЕННО верны, THEN IF( CUR_VA...

    Представим, что время настало 00:00 или 00:01, будет ли верно при этом условие ( CUR_TIME >= 7:00) ?
    Нет, не будет. А если не верно одно условие в выражении, то не верно и все выражение в данном случае.
    Вроде так!

Похожие темы

  1. Ответов: 2
    Последнее сообщение: 02.03.2020, 09:10
  2. Ответов: 4
    Последнее сообщение: 23.11.2018, 14:58
  3. как регулировать скорость изменения параметра?
    от Салихов Ильдар в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 03.07.2018, 23:02
  4. Реализация скорости изменения уставки ТРМ101
    от Алекс_Минск в разделе Эксплуатация
    Ответов: 12
    Последнее сообщение: 27.04.2011, 13:00

Ваши права

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