Страница 299 из 360 ПерваяПервая ... 199249289297298299300301309349 ... ПоследняяПоследняя
Показано с 2,981 по 2,990 из 3600

Тема: разные вопросы новичка

  1. #2981

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Вот вариант с суточным расписанием из макс. 10 интервалов включенного состояния
    В начале некоторые соглашения
    Время включения и время выключения для каждого интервала будем задавать с экрана ПР в виде целых чисел типа
    1235 для времени 12:35
    1841 для времени 18:41
    это упростит задачу ввода с экрана ПР
    Вложение 66738

    Да и количество переменных для расписания будет меньше
    Вложение 66739

    Включением выключением будет заниматься функция на ST
    Код:
    function Scheduler: bool; // Интервальный суточный таймер 
    //(c) Petera для форума ОВЕН
        var_input //объявление входных переменных
            Enbl: bool;     //Разрешение работы функции
            curHH: udint;   //Текущее время - часы
            curMM: udint;   //Текущее время - минуты
            //Далее расписание только интервалы включенного состояния
            //Формат времени вкл/выкл в виде 1230 - для 12:30 чч:мм
            TODon1: udint;
            TODoff1: udint;
            TODon2: udint;
            TODoff2: udint;
            TODon3: udint;
            TODoff3: udint;
            TODon4: udint;
            TODoff4: udint;
            TODon5: udint;
            TODoff5: udint;
            TODon6: udint;
            TODoff6: udint;
            TODon7: udint;
            TODoff7: udint;
            TODon8: udint;
            TODoff8: udint;
            TODon9: udint;
            TODoff9: udint;
            TODon10: udint;
            TODoff10: udint;
        end_var
        
        var //объявление локальных переменных
            Schedule: array [0..9] of udint; // Для упакованного расписание
            curTOD: udint;  //текущее время в виде 1230 - для 12:30 чч:мм
            i: udint;
            tmp_on: udint;
            tmp_off: udint;
        end_var
        if not Enbl then Scheduler := false;
        else
             curTOD := curHH * 100 + curMM; //текущее время в виде 1230 - для 12:30 чч:мм
             //Т.к. двухмерные массивы не поддерживаются
             //упаковываем интервалы в одномерный массив
             //получаем формат времени вкл - выкл в виде 12301445 - для вкл в 12:30 и выкл в 14:45
            Schedule[0] :=TODon1 *10000 + TODoff1;
            Schedule[1] :=TODon2 *10000 + TODoff2;
            Schedule[2] :=TODon3 *10000 + TODoff3;
            Schedule[3] :=TODon4 *10000 + TODoff4;
            Schedule[4] :=TODon5 *10000 + TODoff5;
            Schedule[5] :=TODon6 *10000 + TODoff6;
            Schedule[6] :=TODon7 *10000 + TODoff7;
            Schedule[7] :=TODon8 *10000 + TODoff8;
            Schedule[8] :=TODon9 *10000 + TODoff9;
            Schedule[9] :=TODon10 *10000 + TODoff10;
            Scheduler := false;
            //ищем попадание текущего времени в интервалы расписания
            for i := 0 to  9 do
                tmp_on := Schedule[i] / 10000;
                tmp_off := Schedule[i] mod 10000;
                if tmp_on < tmp_off then
                    if curTOD >= tmp_on and curTOD <= tmp_off then
                        Scheduler := true;
    //                   exit;
                    end_if
               end_if
           end_for       
        end_if    
    end_function
    Вложение 66740

    Как видно - интервалы могут быть не отсортированными, т.е. с экрана можно вводить или редактировать в любом порядке
    даже могут быть задействованы не все 10.
    В процессе работы для исключения интервала из работы можно просто сделать начало = концу или сделать начало = конец = 0

    ЗЫ.
    Количество интервалов можно увеличить добавляя необходимое кол. входных переменных TODon и TODoff и добавив шагов в цикл for i := 0 to 9
    Добрый день. Как-то не очень точно работает функция "Scheduler", включение по расписанию включается почно по времени, а выключение по расписанию почему-то спустя 1 минуту:
    Расписание_1.PNG
    Расписание_2.PNG
    Расписание_3.PNG
    Хотя должно выключаться точно по указанному времени, может я где-то ошибся?
    Вложения Вложения

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

    По умолчанию

    Цитата Сообщение от Pvalp Посмотреть сообщение
    Добрый день. Как-то не очень точно работает функция "Scheduler", включение по расписанию включается почно по времени, а выключение по расписанию почему-то спустя 1 минуту:
    Расписание_1.PNG
    Расписание_2.PNG
    Расписание_3.PNG
    Хотя должно выключаться точно по указанному времени, может я где-то ошибся?
    Думаю, что дело в строчке
    if curTOD >= tmp_on and curTOD <= tmp_off then
    нужно исправить на
    if curTOD >= tmp_on and curTOD < tmp_off then
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  3. #2983

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Думаю, что дело в строчке
    if curTOD >= tmp_on and curTOD <= tmp_off then
    нужно исправить на
    if curTOD >= tmp_on and curTOD < tmp_off then
    Да, действительно, подправил строку в функции, теперь работает правильно.
    Спасибо.

  4. #2984

    По умолчанию

    Цитата Сообщение от Королев Кирилл Посмотреть сообщение
    Добрый день!

    Напишите, пожалуйста, на support@owen.ru. Приложите Ваш проект Owen Logic и заводской номер ТРМ32.
    прислал вам 2 дня назад ...
    P.S.
    Имеется пр200 и трм32 щ7 и передача данных через пе210 в owencloud .
    Нужно изменять данные в трм32 удаленно , все сделал всё читается и записывается , но с есть проблема , в трм32 нельзя в программировании листать и толком лазить по настройкам , всегда возвращается к одному параметру как будто идет вечная запись настроек с овенклауда .
    Не знаю как обьяснить , приложу видео и тестовый проект ( кусок из основного проекта )
    Вложения Вложения
    Последний раз редактировалось shmnpay; 02.04.2023 в 19:23.

  5. #2985
    Пользователь
    Регистрация
    31.01.2015
    Адрес
    Новосибирск
    Сообщений
    87

    По умолчанию

    Задумался над реализацией нажатия только одной кнопки из 10-ти.
    Если нажато более одной любой клавиши, на выходе 0, при нажатии только одной, любой клавиши, на выходе 1.
    Реализовал, все работает, но мне кажется, что я сделал через заднее место.
    Пробовал через логические операторы, не смог осилить мозгом.
    Пробовал через двоичную систему, получается громоздко.
    Хочу услышать рекомендации, правильным путем пошел или нет?
    2023-04-03_15-18-47.jpg
    Вложения Вложения

  6. #2986
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,665

    По умолчанию

    ProRus тут больше вопрос зачем это если на выходе при любой кнопке 1-ца?

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

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    ProRus тут больше вопрос зачем это если на выходе при любой кнопке 1-ца?
    Я думаю, что ТОЛЬКО при любой ОДНОЙ кнопке, а не при двух, трех и т.д.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  8. #2988
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,665

    По умолчанию

    petera это понятно, что при любой ОДНОЙ, но зачем? или еще будет код проверки какая кнопка нажата и что она нажата одна (этот код) и тогда выполняем какое-то действие?

  9. #2989

    По умолчанию

    Цитата Сообщение от ProRus Посмотреть сообщение
    Задумался над реализацией нажатия только одной кнопки из 10-ти.
    Если нажато более одной любой клавиши, на выходе 0, при нажатии только одной, любой клавиши, на выходе 1.
    Реализовал, все работает, но мне кажется, что я сделал через заднее место.
    Пробовал через логические операторы, не смог осилить мозгом.
    Например вот так 1 10 КСОР.jpg

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

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Например вот так 1 10 КСОР.jpg
    Это Вы проходной выключатель сделали включения из 10 мест, автор совсем не такой алгоритм хотел, насколько его понимаю!

    Мой вариант:

    Не более 1.png

    Не более 1.owl

    Даже так, попроще:

    Не более 1_2.png

    Не более 1_2.owle

    И, совсем забыл сказать: легко расширяется до 32 входов, в смысле, просто добавить на входе второй макрос вставки(записи) бит, макрос с расширением(имеется специальный вход) и настройками(в свойствах макроса), короче, даже дополнительных макросов не потребуется!
    Последний раз редактировалось Сергей0308; 03.04.2023 в 13:16.
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

Страница 299 из 360 ПерваяПервая ... 199249289297298299300301309349 ... ПоследняяПоследняя

Похожие темы

  1. Вопросы новичка!!!
    от sau в разделе ПЛК1хх
    Ответов: 42
    Последнее сообщение: 02.05.2022, 19:57
  2. Вопросы новичка по MasterScada
    от MrNobody в разделе Master SCADA 3
    Ответов: 4
    Последнее сообщение: 04.09.2014, 15:39
  3. ПЛК 110 - Вопросы новичка?
    от di-s в разделе ПЛК1хх
    Ответов: 10
    Последнее сообщение: 06.09.2011, 15:12
  4. Вопросы полного новичка
    от Korion в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 09.02.2010, 10:08
  5. Вопросы новичка по ПЛК
    от Ollegator в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 07.07.2009, 10:29

Ваши права

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