В CODESYS V3.5 функции с "дополнительными выходами" поддержаны.Цитата:
Это выходит, Кодесис не соответствует стандарту.
Не очень понятно, причем здесь "побочные эффекты".Цитата:
Функции с побочными эффектами. Бее-е..
Вид для печати
В CODESYS V3.5 функции с "дополнительными выходами" поддержаны.Цитата:
Это выходит, Кодесис не соответствует стандарту.
Не очень понятно, причем здесь "побочные эффекты".Цитата:
Функции с побочными эффектами. Бее-е..
Согласен. В данном конкретном случае это не так ярко выражено. Но все равно, термин функция к данному программному элементу подходит как корове седло. Эта "функция" принимает на вход дату-время, а возвращает логическое значение. Зачем оно нам? Нам надо совсем другое. А чтобы получить нужные данные, необходимо влезть в потроха этой функции.
Сломана логика, сломан синтаксис. Остается только надеяться, что где-то внутри ее не сохраняется какое-нибудь "состояние".
Здесь с вами согласен, в смысле, что прочитать "всю документацию" от корки до корки может быть недостаточно!
Всё от человека зависит, кому-то можно и не читать!
Не работает функция SPLIT_DT. Делаю так:
Переменная dtime показывает текущую дату-время, а все переменные lsec, lmin, ... всегда равны нулю. Почему?Код:var
lyear: udint;
lmonth: udint;
lday: udint;
lhour: udint;
lmin: udint;
(* lsec: udint;
*) q: bool;
end_var
dtime := GET_TIME();
q := SPLIT_DT(in := dtime,
YEAR => lyear,
MONTH => lmonth,
DAY => lday,
HOUR => lhour,
MIN => lmin,
SEC => lsec
);
Справка:
Это библиотечные функции.Код:GET_TIME - выдает дату и время в том формате, который является
стандартным для места исполнения функции:
Выходы Q DATE_AND_TIME Дата и время. Результат. Q:=GET_TIME()
SPLIT_DT служит для разделение значения DT на отдельные составляющие.
Пример в ST
Q:=SPLIT_DT(IN:=Время, HOUR =>Параметр_1, MONTH=>Параметр_2);
Написал про Лоджик, а тут оказывается МС4D,
Я же отвечал вам уже, это вы 1,5 месяца разобраться не могли ?
Попробовал, на ST не хочет работать, почему не понятно, зато на FBD работает без проблем Вложение 88855