Потому что неизвестно сколько PLC_PRG может занять времени. Чтоб не получилось так что пришло время вызова PLC_PRG а он еще выполняется.
Вид для печати
Потому что неизвестно сколько PLC_PRG может занять времени. Чтоб не получилось так что пришло время вызова PLC_PRG а он еще выполняется.
Этого никогда не произойдет. Читайте основы работы ПЛК.
Где это прочитать?
Вызов PLC_PRG с типом свободная в конфигураторе задач практически тоже самое, что и работа PLC_PRG если конфигуратор задач не используется.
От чего же не известно? Добавьте в код программы PLC_PRG
1.В первой строке t1:=TIME();
2.Затем исходный код PLC_PRG
3. В последней строке t2:=TIME()-t1:
Загрузите в ПЛК, запустите на исполнение и смотрите значение t2. Это и есть время выполнения PLC_PRG.
Например получилось t2=10 мс.
Это значит 100 раз подряд выполнится PLC_PRG, затем один раз программа с циклическим временем вызова 1 сек, затем все повторится.
Я был не точен. Частота вызова программы с типом свободная определяется заданным временем цикла в конфигурации ПЛК.
следует читать такЦитата:
Например получилось t2=10 мс.
Это значит 100 раз подряд выполнится PLC_PRG, затем один раз программа с циклическим временем вызова 1 сек, затем все повторится.
Например получилось t2 не более 10 мс. И цикл ПЛК установлен 10 мс.
Это значит 100 раз подряд выполнится PLC_PRG, затем один раз программа с циклическим временем вызова 1 сек, затем все повторится.
Вложение 12225
Спасибо. Тоесть PLC_PRG можно ставить "свободная". А секундный ФБ "циклическая" с периодом 1сек. Так?
Зачем? Отмониторьте в tasck manager при выполнении программы.
Да.
К предыдущему примеру добавил измерение времени вызова "свободной" программы.
Вложение 12227
Спасибо, то что мне нужно!
Как то сложно все... а нельзя было из PLC_PRG раз в секунду Вашу подпрограмму вызывать???