Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 16

Тема: Ошибка функции DTU.DTSplit()

  1. #1

    По умолчанию Ошибка функции DTU.DTSplit()

    Добрый вечер.

    Речь пойдет о ПЛК 323, бибки CAA DTUtility 3.4.4.0 (или просто DTU).

    Прямо перед НГ меня ждал подарок.
    На сервер пришла дата: 2153-02-06 06:28:16.
    Не буду вдаваться в подробности как я выяснил, что это не у меня руки кривые, (т.е. полгода все исправно приходило), а проблемы DTU бибки, а именно ф-ции DTU.DTSplit(). Скажу лишь? что в сообщение серверу передается DT самого ПЛК (нормальное, не 2153+ год), а вырезается в каких-либо сообщения год из даты функцией DTU.DTSplit().

    Если ей скормить 2016-12-31 00:00:00 (именно эту дату, без разницы какое время) мы получим 2153-02-06 06:28:16.
    Если вычесть эти 2 даты (в секундах), мы получим 4294967296 = 2^32. Где-то у немцев сдвиг на 4 байта получается.

    Но, таких дат в промежуток с 2017 по 2099 будет 20 штук.

    След. дата: 2020-12-31 00:00:00 мы получим 2157 г. и т.п.


    Подскажите как обойтись без костылей? мб версия библиотеки старая и эта ошибка уже исправлена? мб есть аналоги данной функции?


    dt1:=DT#2017-01-01-00:00:00;
    WHILE dt1<=DT#2099-01-01-00:00:00 DO
    dt_error:=DTU.DTSplit(
    dt1,
    ADR(year1),
    ADR(month1),
    ADR(day1),
    ADR(hour1),
    ADR(minute1),
    ADR(second1)
    );

    IF
    year1<2000 OR year1>2099 OR dt_error<>0
    THEN
    step:=23;
    RETURN;
    END_IF

    dt1:=dt1+T#1D;
    END_WHILE


    PS DTU.DateSplit() не проверял, возможна таже ошибка.
    Последний раз редактировалось ntro123; 05.01.2017 в 23:07.

  2. #2

    По умолчанию

    Цитата Сообщение от ntro123 Посмотреть сообщение
    Добрый вечер.

    Речь пойдет о ПЛК 323, бибки CAA DTUtility 3.4.4.0 (или просто DTU).

    Прямо перед НГ меня ждал подарок.
    На сервер пришла дата: 2153-02-06 06:28:16.
    Не буду вдаваться в подробности как я выяснил, что это не у меня руки кривые, (т.е. полгода все исправно приходило), а проблемы DTU бибки, а именно ф-ции DTU.DTSplit(). Скажу лишь? что в сообщение серверу передается DT самого ПЛК (нормальное, не 2153+ год), а вырезается в каких-либо сообщения год из даты функцией DTU.DTSplit().

    Если ей скормить 2016-12-31 00:00:00 (именно эту дату, без разницы какое время) мы получим 2153-02-06 06:28:16.
    Если вычесть эти 2 даты (в секундах), мы получим 4294967296 = 2^32. Где-то у немцев сдвиг на 4 байта получается.

    Но, таких дат в промежуток с 2017 по 2099 будет 20 штук.

    След. дата: 2020-12-31 00:00:00 мы получим 2157 г. и т.п.


    Подскажите как обойтись без костылей? мб версия библиотеки старая и эта ошибка уже исправлена? мб есть аналоги данной функции?






    PS DTU.DateSplit() не проверял, возможна таже ошибка.
    Добрый вечер!
    Завтра на работе проверю.

  3. #3
    Пользователь
    Регистрация
    24.07.2012
    Адрес
    Россия
    Сообщений
    1,492

    По умолчанию

    Может свой split написать? Я думаю не так это и сложно.

  4. #4

    По умолчанию

    Или, как вариант, взять из OSCAT'a (DT_TO_SDT).
    Правда, у меня на виртуальном контроллере проблема с DTU.DTSplit не воспроизвелась - но это на виртуальнике с 3.5.x.x рантаймом.

  5. #5

    По умолчанию

    Добрый день, ntro123!
    Повторить проблему на СПК и виртуальном контроллере не получилось.

    Пришлите, пожалуйста полное наименование ПЛК323, на котором наблюдается проблема и версию прошивки.

  6. #6

    По умолчанию

    Цитата Сообщение от Осинский Алексей Посмотреть сообщение
    Добрый день, ntro123!
    Повторить проблему на СПК и виртуальном контроллере не получилось.

    Пришлите, пожалуйста полное наименование ПЛК323, на котором наблюдается проблема и версию прошивки.
    КМ ЭНТЕК E1R2
    ЭНТЕК323-220.03.01-EN

    usr_fw_setup_plc323web_v3.212
    CODESYS V3.5 SP4 Patch 4
    Repository_OWEN_SPK_3.5.4.20.package
    owen_plc323.03-cs.web-v3.5.0.40.devdesc.xml


    PS на днях попробую поставить последнюю прошивку и протестить
    Последний раз редактировалось ntro123; 06.01.2017 в 18:32.

  7. #7

    По умолчанию

    Цитата Сообщение от ntro123 Посмотреть сообщение
    КМ ЭНТЕК E1R2
    ЭНТЕК323-220.03.01-EN

    usr_fw_setup_plc323web_v3.212
    CODESYS V3.5 SP4 Patch 4
    Repository_OWEN_SPK_3.5.4.20.package
    owen_plc323.03-cs.web-v3.5.0.40.devdesc.xml


    PS на днях попробую поставить последнюю прошивку и протестить
    Добрый день!
    На последней прошивке проблема наблюдается?

  8. #8

    По умолчанию

    Добрый, прошивку не удалось поставить

    Подробнее: http://www.owen.ru/forum/showthread.php?t=25896

  9. #9

    По умолчанию

    Протестировал мой знакомый на ПЛК 323 прошивка 3.947 (польз. прог. 1.032) у него тоже самое.

    12692b95b7.jpg

    Почему у меня тот же код в режиме эмуляции всегда во все переменные записывает 0? Вместо разбивки даты?

    5c7b246e27.jpg

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

    По умолчанию

    Цитата Сообщение от ntro123 Посмотреть сообщение
    Протестировал мой знакомый на ПЛК 323 прошивка 3.947 (польз. прог. 1.032) у него тоже самое.

    12692b95b7.jpg

    Почему у меня тот же код в режиме эмуляции всегда во все переменные записывает 0? Вместо разбивки даты?

    5c7b246e27.jpg
    а что это за извращение по использованию кейса, с такими подходами к программированию не удивительно что всякие глюки вылазят
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Ответов: 16
    Последнее сообщение: 15.02.2017, 11:39
  2. Ошибка при попытке загрузки любой функции
    от erfinder в разделе Панели оператора (HMI)
    Ответов: 6
    Последнее сообщение: 31.12.2016, 10:11
  3. Функции.
    от Jonikk в разделе Программируемые реле
    Ответов: 11
    Последнее сообщение: 13.09.2011, 18:57
  4. трм-138 мат.функции
    от мастер в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 14.07.2008, 07:47
  5. Функции
    от mettled в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 13.02.2008, 10:16

Ваши права

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