Страница 3 из 3 ПерваяПервая 123
Показано с 21 по 25 из 25

Тема: Расчет времени восхода и захода солнца

  1. #21

    По умолчанию

    Цитата Сообщение от Yegor Посмотреть сообщение
    Подключаем библиотеку OSCAT и делаем так:

    VAR
    GetSunTime: SUN_TIME;
    GetLocalTime: CurTimeEx;
    timedate: SystemTimeDate;
    systime: SysTime64;
    localdate: DWORD;
    sunrise, sunset: TOD;
    END_VAR

    SysMemSet(ADR(systime), 0, SIZEOF(systime));
    SysMemSet(ADR(timedate), 0, SIZEOF(timedate));
    GetLocalTime(SystemTime := systime, TimeDate := timedate);
    localdate := DATE_TO_DWORD(PackDate(timedate.Year, timedate.Month, timedate.Day));
    GetSunTime(LATITUDE := 56.5, LONGITUDE := 60.35, UTC := localdate, SUN_RISE => sunrise, SUN_SET => sunset);
    sunrise := sunrise + TIME#5h;
    sunset := sunset + TIME#5h;
    localtime := TIME_TO_TOD(PackTime(timedate.HOUR, timedate.MINUTE, timedate.SECOND, timedate.Milliseconds));
    Пробую использовать предложенный код, но выдается ошибка выполнения: неверный индекс массива, откройте стек вызовов! подскажите что не так с кодом?
    Последний раз редактировалось Igor.m; 13.01.2015 в 08:59.

  2. #22
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Как видите, там нет массивов. Если выполнять под отладчиком, на какой строчке это происходит?

    Не поленился запустить спустя три года. Всё нормально работает. Попутно переписал чуть-чуть:
    Код:
    PROGRAM PLC_PRG
     VAR
        sun: SUN_TIME := (LATITUDE := 56.5, LONGITUDE := 60.35);
        clock: CurTimeEx;
         now: SystemTimeDate;
        dummy: SysTime64;
        sunrise, sunset: TOD;
    END_VAR
    VAR CONSTANT
         nullTime: SystemTimeDate;
    END_VAR
    
    now := nullTime;
    clock(TimeDate := now, SystemTime := dummy);
    sun(UTC := PackDate(now.Year, now.Month, now.Day));
    sunrise := sun.SUN_RISE + TIME#5h;
    sunset := sun.SUN_SET + TIME#5h;
    Последний раз редактировалось Yegor; 13.01.2015 в 09:55.

  3. #23

    По умолчанию

    Цитата Сообщение от Yegor Посмотреть сообщение
    Как видите, там нет массивов. Если выполнять под отладчиком, на какой строчке это происходит?
    Не знаю как отследить строчку на которой это происходит, но попробую еще раз запустить..

  4. #24

    По умолчанию

    Цитата Сообщение от Yegor Посмотреть сообщение
    Не поленился запустить спустя три года. Всё нормально работает.
    Действительно все прекрасно работает, спасибо за помощь , просто совсем заработался начал в режиме эмуляции проверять. С реальным ПЛК все работает

  5. #25
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Не знаю как отследить
    Третья группа команд в меню Онлайн:

    sshot.png

    Toggle Breakpoint — пометить строки, где программа должна приостанавливаться;
    Step Over — выполнить строку не открывая функции на этой строке;
    Step In — выполнить строку открывая каждую функцию на этой строке;
    Single Cycle — прокрутить один цикл ПЛК.

    Помечаете строку, где надо остановиться. Запускаете исполнение — программа тормозит на этой строке. Дальше можете двигаться по одному шагу (Step in/over) или продолжить выполнение до следующей точки остановки. Точки можно ставить и убирать во время выполнения программы. Азы отладки.

Страница 3 из 3 ПерваяПервая 123

Похожие темы

  1. О времени
    от olegV в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 31.12.2010, 14:12
  2. как использовать энергию солнца?
    от Виктор.К в разделе Подбор Оборудования
    Ответов: 3
    Последнее сообщение: 18.06.2009, 10:37
  3. Ответов: 2
    Последнее сообщение: 14.05.2009, 11:42
  4. Расчет crc16 на PIC16F877
    от Дмитрий777 в разделе Эксплуатация
    Ответов: 0
    Последнее сообщение: 18.12.2008, 18:12
  5. Master SCADA расчет
    от kanava в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 27.08.2008, 12:12

Ваши права

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