Страница 83 из 99 ПерваяПервая ... 3373818283848593 ... ПоследняяПоследняя
Показано с 821 по 830 из 983

Тема: СПК - Примеры программ, инструкции, полезные советы, FAQ

  1. #821

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Понятно. Вам надо переключиться на профессиональный набор свойств. См. СПК. FAQ, п. 8.2.
    Спасибо за оперативную помощь! Все получилось.

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

    По умолчанию ФБ REAL_TIME_CLOCK

    По просьбе Эдуарда_Н - выкладываю ФБ для работы с системным временем, аналогичный по функционалу блокам из библиотеки SPK_TOOLS, которая несовместима с последними прошивками СПК.

    Для работы блока требуются библиотеки CAA DTUtil и Standard64.

    Блок выложен в формате PLCopenXML. Для импорта ФБ в проект необходимо выделить узел Application, в меню Проект выбрать команду Import PLCopenXML и указать путь к xml-файлу. В появившемся окне необходимо выделить галочками нужные компоненты (ФБ REAL_TIME_CLOCK и вспомогательную функцию LEAD_ZERO), после чего нажать ОК.

    27-06-2017 8-11-05.png

    Блок совмещает функционал ФБ Real_Time_Clock и Change_Real_Time_Clock из библиотеки SPK_TOOLS.
    На выходах блока отображается текущее системное время, в т.ч. в строковом виде.
    На входах блока задается устанавливаемое системное время. Установка происходит по переднему фронту входа xSetDateAndTime.
    Можно изменять только отдельные разряды (например, только секунды).
    Блок проверяет корректность вводимых значений - при попытке установки 13-го месяца будет установлен 12-й, при установке 0-го - 1-ый.

    27-06-2017 7-54-32.png
    Вложения Вложения

  3. #823
    Пользователь Аватар для Эдуард_Н
    Регистрация
    22.09.2014
    Адрес
    Курган
    Сообщений
    1,611

    По умолчанию

    Большое спасибо.
    Вопрос.
    Эту переменную: eCurrentDayOfWeek: DTU.RTCLK.WEEKDAY; как использовать?

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

    По умолчанию

    Цитата Сообщение от Эдуард_Н Посмотреть сообщение
    Большое спасибо.
    Вопрос.
    Эту переменную: eCurrentDayOfWeek: DTU.RTCLK.WEEKDAY; как использовать?
    Это перечисление, которое содержит номера дней (1 - понедельник) с их англоязычным обозначением.

    Можно, например, так:

    Код:
    IF eCurrentDayOfWeek=DTU.RTCLK.WEEKDAY.SATURDAY OR eCurrentDayOfWeek=DTU.RTCLK.WEEKDAY.SUNDAY THEN
          // ничего не делаем - выходные же
    ELSE
          // работаем изо всех сил
    END_IF

  5. #825
    Пользователь Аватар для Эдуард_Н
    Регистрация
    22.09.2014
    Адрес
    Курган
    Сообщений
    1,611

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Это перечисление, которое содержит номера дней (1 - понедельник) с их англоязычным обозначением.

    Можно, например, так:

    Код:
    IF eCurrentDayOfWeek=DTU.RTCLK.WEEKDAY.SATURDAY OR eCurrentDayOfWeek=DTU.RTCLK.WEEKDAY.SUNDAY THEN
          // ничего не делаем - выходные же
    ELSE
          // работаем изо всех сил
    END_IF
    А в CFC это как будет выглядеть?

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

    По умолчанию

    Цитата Сообщение от Эдуард_Н Посмотреть сообщение
    А в CFC это как будет выглядеть?
    IF это SEL, = это EQ, OR это OR
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  7. #827

    По умолчанию

    Здравствуйте. Как красиво получить дату за вчера, естественно, если сегодня первое число, а вчера было 28, 29, 30 или 31.

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

    По умолчанию

    Цитата Сообщение от andyshark Посмотреть сообщение
    Здравствуйте. Как красиво получить дату за вчера, естественно, если сегодня первое число, а вчера было 28, 29, 30 или 31.
    Не уверен, что это красиво, но скорее всего сработает:

    dtPrevDay:=dtCurrentDay-60*60*24*1

  9. #829
    Пользователь Аватар для Эдуард_Н
    Регистрация
    22.09.2014
    Адрес
    Курган
    Сообщений
    1,611

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    IF это SEL, = это EQ, OR это OR
    Это вроде этого? Screenshot_1.jpg

  10. #830

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Не уверен, что это красиво, но скорее всего сработает:
    Сегодня у на 28 число, то есть dtCurrentDay = 28, и в результате выполнения программы на СПК
    dtPrevDay:=dtCurrentDay-60*60*24*1; (dtPrevDay = -86372).
    Не сработало, или где-то нужны скобки?

Страница 83 из 99 ПерваяПервая ... 3373818283848593 ... ПоследняяПоследняя

Похожие темы

  1. примеры программ и полезности
    от Николаев Андрей в разделе ПЛК (среда CoDeSys V2.3)
    Ответов: 78
    Последнее сообщение: 06.04.2018, 06:01
  2. Примеры программ и полезности (Модус 5684-0)
    от Кирилл Валюнин в разделе Модус 5684-0
    Ответов: 0
    Последнее сообщение: 20.05.2013, 12:55
  3. Примеры программ для ПЛК100/150/154/110/160
    от Александр Приходько в разделе ПЛК (среда CoDeSys V2.3)
    Ответов: 0
    Последнее сообщение: 16.10.2012, 15:07
  4. Примеры программ для ПЛК63/73 (CoDeSys v.2.3)
    от Александр Приходько в разделе ПЛК (среда CoDeSys V2.3)
    Ответов: 0
    Последнее сообщение: 16.10.2012, 04:28

Ваши права

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