Пробую использовать предложенный код, но выдается ошибка выполнения: неверный индекс массива, откройте стек вызовов! подскажите что не так с кодом?
Вид для печати
Как видите, там нет массивов. Если выполнять под отладчиком, на какой строчке это происходит?
Не поленился запустить спустя три года. Всё нормально работает. Попутно переписал чуть-чуть:Код: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;
Третья группа команд в меню Онлайн:Цитата:
Не знаю как отследить
Вложение 16134
Toggle Breakpoint — пометить строки, где программа должна приостанавливаться;
Step Over — выполнить строку не открывая функции на этой строке;
Step In — выполнить строку открывая каждую функцию на этой строке;
Single Cycle — прокрутить один цикл ПЛК.
Помечаете строку, где надо остановиться. Запускаете исполнение — программа тормозит на этой строке. Дальше можете двигаться по одному шагу (Step in/over) или продолжить выполнение до следующей точки остановки. Точки можно ставить и убирать во время выполнения программы. Азы отладки.