Мне нужно запускать код каждый раз, когда начинается ПЛК. Этот код следует запускать только один раз, а затем снова никогда, пока ПЛК не будет перезапущен. Я инициализирую некоторые глобальные переменные и проверяю постоянные данные, прежде чем разрешить запуск основного ПЛК. Это связано с тем, что действия машины могут быть повреждены, если некоторые из этих переменных не настроены правильно.TwinCAT 3 Task Start/Stop от PLC
Есть ли способ запустить/остановить другие задачи ПЛК? Я заметил, что TwinCAT не поддерживает прерывания инициализации и остановки для задач ПЛК.
Интересно! Вы знаете, является ли FirstCycle истинным при перезагрузке Cold/Origin? –
Я на 99% уверен, что бит FirstCycle является истинным как при включении питания, так и при использовании команд сброса. – pboedker
@ феликс-Keil Следующая программа показывает, что FirstCycle ИСТИНА при использовании как Rest холодной/Origin (попробуйте с bCheckForFirstCycle инициализируется ИСТИНА или ЛОЖЬ): 'VAR fbGetCurTaskIdx: GETCURTASKINDEX; i: INT: = 23; bCheckForFirstScan: BOOL: = TRUE; END_VAR; fbGetCurTaskIdx(); IF _TaskInfo [fbGetCurTaskIdx.index] .FirstCycle AND bCheckForFirstScan THEN (* здесь код инициализации *) \t i: = 17; ELSE (* Нормальный код здесь *) \t i: = i; END_IF; ' – pboedker