Действительно, что-то затупил я, спасибо.
Вид для печати
Действительно, что-то затупил я, спасибо.
Подскажите почему не вызывается функция (код корректный, т.к. если все тоже самое сделать в ФБ то будет работать и вызываться).
Вызов: Вложение 20773
Функция: Вложение 20774
Результат 1: Вложение 20775
Результат 2: Вложение 20776
Мне нужно только 1 булевое значение вернуть.
PS делаю все по мануалу SPK_First_start_v.0.8.pdf (только код, я понимаю что у меня ПЛК).
UPD: разобрался. очень ограниченные функции, кроме вычислений они не нужны.
Здравствуйте, не могу разобраться, почему не включается один из таймеров TON (см. скриншот). testtimer включается и отсчитывает время, а milling_timer нет.Вложение 20777
У вас код под условием выполняется только один раз при k=0. Дальше этот таймер просто не вызывается. Народная примета: таймер под условием — к длительным командировкам.
Это просто тестовая программка. Задача кода под условием - запустить таймер один раз чтобы увидеть в отладчике, что отсчет времени идет (ET увеличивается). Столкнулся с этой ситуацией в рабочей программе.
В ПЛК не бывает «запустить один раз». Ну то есть так почти не пишут. Не надо рассматривать таймер как самостоятельную сущность. Когда вы вызываете таймер с IN=TRUE после IN=FALSE, то таймер запоминает этот момент как начало отсчёта. Дальше он сам по себе считать не будет. Вы должны его вызывать, чтобы он посчитал своё время работы. Так вот под вашим условием он своё время считать не может, хоть и зафиксировал момент запуска. Если таймер нужно запускать по какому-то условию, то подавайте это условие прямо на вход типа milling_timer(IN := k > 5) прямо в теле программы (вне блока IF), и с момента, когда k>5, ваш таймер будет как бы идти.Цитата:
запустить таймер один раз
Спасибо, попробую.
Создал другую тестовую программку... Да, действительно , получается нужно каждый цикл ПЛК вызывать таймер с параметром IN:=TRUE , чтобы он считал.