Выяснил, таймер просто не успевает заблокировать ФБ "И". В цепь сброса добавил формирователь импульса и всё заработало как надо.
Вид для печати
IEC 61131-3:Кодесису пофиг.Цитата:
Multiple leading or multiple embedded underlines are not allowed; for example, the character sequences __LIM_SW5 and LIM__SW5 are not valid identifiers. Trailing underlines are not allowed; for example, the character sequence LIM_SW5_is not a valid identifier.
i: INT;
i.FALSE := i.TRUE;
Ржака.
arr: ARRAY[1..-1] OF INT;
Error 3801: The variable 'arr' is too large (-2 bytes).
Ржака.
arr2: ARRAY [0..-1] OF INT;
0 Error(s), 0 Warning(s)
Уохахаха
Цитата:
Сообщение от IEC 61131-3
0 Error(s), 0 Warning(s)Код:arr: ARRAY [0..2] OF INT := 1, 2, 3;
Error 3760L PLC_PRG (4): Erroneous initial valueКод:arr: ARRAY [0..2] OF INT := [1, 2, 3];
codesys, please
0 Error(s), 0 Warning(s)Код:VAR CONSTANT RETAIN
http://i.imgur.com/JqaeAQa.png
А функциональные блоки являются типом данных или нет? Не вижу нигде ссылки на это в стандарте, но почему-то кодесис проглатывает это:Код:TYPE subtype : TON := (PT := T#3s); END_TYPE
Мы же можем объявить переменную типа TON. А это и есть функциональный блок.
У меня вопрос больше теоретический. С одной стороны, в стандарте в определении типа никак не упоминаются функциональные блоки. С другой, инстанциируются они как переменные структурного типа (опять же по стандарту). Если кто-то ещё стандарт точит — особенно третью его версию, которую я не могу себе позволить — то поделитесь своим мнением.
Конечно, я тут сам прибегаю к эмпирическому методу — смотрю, как ведёт себя кодесис. Но с учётом вот этих глупых расхождений, которые я показал в предыдущих сообщениях, доверия к нему у меня нет.
Кто с другими средами работает? Напишите, можно ли там тип от функционального блока объявлять как в сообщении 337. Спасибо.
А вот это уже не смешно (d1: DATE):
Вложение 16141