Действительно, что-то затупил я, спасибо.
Действительно, что-то затупил я, спасибо.
Подскажите почему не вызывается функция (код корректный, т.к. если все тоже самое сделать в ФБ то будет работать и вызываться).
Вызов: 37898318bf.jpg
Функция: 67adcf31cc.jpg
Результат 1: 441368e5c4.jpg
Результат 2: 894ba4e2a4.jpg
Мне нужно только 1 булевое значение вернуть.
PS делаю все по мануалу SPK_First_start_v.0.8.pdf (только код, я понимаю что у меня ПЛК).
UPD: разобрался. очень ограниченные функции, кроме вычислений они не нужны.
Последний раз редактировалось ntro123; 11.11.2015 в 17:15.
Здравствуйте, не могу разобраться, почему не включается один из таймеров TON (см. скриншот). testtimer включается и отсчитывает время, а milling_timer нет.Untitled.jpg
У вас код под условием выполняется только один раз при k=0. Дальше этот таймер просто не вызывается. Народная примета: таймер под условием — к длительным командировкам.
Это просто тестовая программка. Задача кода под условием - запустить таймер один раз чтобы увидеть в отладчике, что отсчет времени идет (ET увеличивается). Столкнулся с этой ситуацией в рабочей программе.
Последний раз редактировалось sobol; 11.11.2015 в 19:28.
В ПЛК не бывает «запустить один раз». Ну то есть так почти не пишут. Не надо рассматривать таймер как самостоятельную сущность. Когда вы вызываете таймер с IN=TRUE после IN=FALSE, то таймер запоминает этот момент как начало отсчёта. Дальше он сам по себе считать не будет. Вы должны его вызывать, чтобы он посчитал своё время работы. Так вот под вашим условием он своё время считать не может, хоть и зафиксировал момент запуска. Если таймер нужно запускать по какому-то условию, то подавайте это условие прямо на вход типа milling_timer(IN := k > 5) прямо в теле программы (вне блока IF), и с момента, когда k>5, ваш таймер будет как бы идти.запустить таймер один раз
Спасибо, попробую.
Создал другую тестовую программку... Да, действительно , получается нужно каждый цикл ПЛК вызывать таймер с параметром IN:=TRUE , чтобы он считал.