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

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

  1. #821

    По умолчанию

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

  2. #822

    По умолчанию ФБ 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,633

    По умолчанию

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

  4. #824

    По умолчанию

    Цитата Сообщение от Эдуард_Н Посмотреть сообщение
    Большое спасибо.
    Вопрос.
    Эту переменную: 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,633

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Это перечисление, которое содержит номера дней (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,632

    По умолчанию

    Цитата Сообщение от Эдуард_Н Посмотреть сообщение
    А в 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

    По умолчанию

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

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

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

    По умолчанию

    Цитата Сообщение от 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

Ваши права

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