Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 26

Тема: Кто это все придумал?

  1. #11

    По умолчанию

    Вот только теперь "варнинги" сыплются постоянно...
    Можно было бы и забить на них, но мы ведь профессионалы! Недопускам костылей. Не так ли?
    Варнинги.png

  2. #12
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,064

    По умолчанию

    Цитата Сообщение от ВладОвен Посмотреть сообщение
    Вот только теперь "варнинги" сыплются постоянно...
    Можно было бы и забить на них, но мы ведь профессионалы! Недопускам костылей. Не так ли?
    Варнинги.png
    Удалите вообще действие из настроек чекбоксов (сейчас вы только переменную из действия удалили, а само действие осталось).

  3. #13

    По умолчанию

    А если в графическом элементе "Нажимной выключатель" в конфигурации ввода "OnValueChanged" разместить команду "Выполнить ST-код", то он при нажатии на этот выключатель должен выполниться один раз? Или я что-то не понимаю?

  4. #14
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,064

    По умолчанию

    Цитата Сообщение от ВладОвен Посмотреть сообщение
    А если в графическом элементе "Нажимной выключатель" в конфигурации ввода "OnValueChanged" разместить команду "Выполнить ST-код", то он при нажатии на этот выключатель должен выполниться один раз? Или я что-то не понимаю?
    Вы понимаете правильно.

  5. #15

    По умолчанию

    Привет. Подскажите, как присвоить переменной дату и время в момент нажатия на клавишу на экране?

    Будем использовать библиотеку CAA DTUtility и ее функциональный блок GetDateAndTime.
    Создадим на экране визуализации клавишу "Временной хлопок!" и в событии OnMouseClick разместим код:
    Код:
    PC_PRG.fbGetDateTime.xExecute := TRUE; // запустим ф-блок
    В основной программе расположим следующий код:
    Код:
    fbGetDateTime: DTU.GetDateAndTime; // при объявлении переменных создадим экземпляр ф-блока
    dtMyDateTime: DATE_AND_TIME; // объявляем переменную для хранения даты и времени последнего (крайнего) хлопка
    
    Основная программа:
    IF fbGetDateTime.xDone THEN // дождемся завершения работы ф-блока
        dtMyDateTime := fbGetDateTime.dtDateAndTime; // забираем результат
        fbGetDateTime.xExecute := FALSE; // деактивируем ф-блок
    END_IF
    При нажатии на клавишу дата и время не записываются в переменную.
    Что я делаю не так?
    Последний раз редактировалось ВладОвен; 21.06.2022 в 11:01.

  6. #16
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,064

    По умолчанию

    Цитата Сообщение от ВладОвен Посмотреть сообщение
    Привет. Подскажите, как присвоить переменной дату и время в момент нажатия на клавишу на экране?

    Будем использовать библиотеку CAA DTUtility и ее функциональный блок GetDateAndTime.
    Создадим на экране визуализации клавишу "Временной хлопок!" и в событии OnMouseClick разместим код:
    Код:
    PC_PRG.fbGetDateTime.xExecute := TRUE; // запустим ф-блок
    В основной программе расположим следующий код:
    Код:
    fbGetDateTime: DTU.GetDateAndTime; // при объявлении переменных создадим экземпляр ф-блока
    dtMyDateTime: DATE_AND_TIME; // объявляем переменную для хранения даты и времени последнего (крайнего) хлопка
    
    Основная программа:
    IF fbGetDateTime.xDone THEN // дождемся завершения работы ф-блока
        dtMyDateTime := fbGetDateTime.dtDateAndTime; // забираем результат
        fbGetDateTime.xExecute := FALSE; // деактивируем ф-блок
    END_IF
    При нажатии на клавишу дата и время не записываются в переменную.
    Что я делаю не так?
    Вы не вызываете блок.

    Надо так:

    "Создадим на экране визуализации клавишу "Временной хлопок!" и привяжем к ее параметру Конфигурация ввода/Нажатие/Переменная переменную PC_PRG.xGetDateAndTime типа BOOL.

    Код:
    // объявление переменных
    VAR
       fbGetDateTime: DTU.GetDateAndTime; // при объявлении переменных создадим экземпляр ф-блока
       dtMyDateTime: DATE_AND_TIME; // объявляем переменную для хранения даты и времени последнего (крайнего) хлопка
       xGetDateAndTime: BOOL; // команда чтения системного времени из визуализации
    END_VAR
    
    
    // код программы
    fbGetDateTime(xExecute := xGetDateAndTime);
    
    IF fbGetDateTime.xDone THEN // дождемся завершения работы ф-блока
        dtMyDateTime := fbGetDateTime.dtDateAndTime; // забираем результат
        fbGetDateTime(xExecute := FALSE); // деактивируем ф-блок. в данной реализации можно этого и не делать, потому что он будет автоматически деактивирован при отпускании кнопки в визуализации за счет первой строки программы
    END_IF

  7. #17

    По умолчанию

    Спасибо. Так заработало.
    Подскажите, а почему при нажатии на кнопку "Временной хлопок!" дата и время становятся равными: 21.06.2022 08:36:21 ?
    Хотя хлопок произошел в 21.06.2022 11:36:21 .
    При этом в соседнем поле на экране визуализации (для контроля) выводится текст %t[dd.MM.yyyy HH:mm:ss] (т.е. текущая дата/время). Там отображается 21.06.2022 11:36:21 , т.е. верные дата/время.
    Что может быть не так?

  8. #18
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,064

    По умолчанию

    Цитата Сообщение от ВладОвен Посмотреть сообщение
    Спасибо. Так заработало.
    Подскажите, а почему при нажатии на кнопку "Временной хлопок!" дата и время становятся равными: 21.06.2022 08:36:21 ?
    Хотя хлопок произошел в 21.06.2022 11:36:21 .
    При этом в соседнем поле на экране визуализации (для контроля) выводится текст %t[dd.MM.yyyy HH:mm:ss] (т.е. текущая дата/время). Там отображается 21.06.2022 11:36:21 , т.е. верные дата/время.
    Что может быть не так?
    Они не "становятся равными", они считываются без учета часового пояса (в UTC+0).
    Для наших контроллеров эта библиотека вообще не нужна - у нас системное время и часовой пояс доступны в узле OwenRTC в дереве проекта.

    2022-06-15_11-03-37.png

  9. #19

    По умолчанию

    Евгений, спасибо за оперативные и быстрые ответы. Без вас можно было бы волосы рвать от безнадёги (в т.ч. и на голове).

  10. #20

    По умолчанию

    Привет. Компилирую проект, но получаю кучу непонятных предупреждений. И нет указания где именно в коде произошло то, или иное предупреждение.
    Подскажите в чем дело? См. рисунок.
    Спасибо.
    Некие ошибки.png
    Последний раз редактировалось ВладОвен; 01.07.2022 в 16:37.

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

Ваши права

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