В PLC_PRG разбить вообще всё на 1 общий автомат
Вложить его в бесконечный цикл
Для кусков кода со 100% увереностью в норме - exit (именно exit) в конце шага
Для подозрительных кусков кода/вызовов делать:
-доп.предварительный шаг с сохранением значения шага в ретайн-ловушке и строго return
-выполнять этот кусок с exit (или return - по желанию)
-доп.последующий шаг со сбросом ловушки с строго return
//возможно что 2 и 3 можно объеденить - но нужно проверять
При запуске, если ловушка есть - как-то показывать её значение и ничего не делать до принуд сброса ловушки
Из самого последнего шага - return, само собой
//Аля МЭК поверх МЭК с фиксацией ошибки до принуд сброса
Нудно противно, но чем чаще ошибка появляется, тем быстрее и чётче локализуете ошибку.
Мин цикл 1мс ессно, а не эти левые 20мс
С таймаутом в 150мс - не занимайтесь хренью. ПР, 9600, 1 регистр - 35..40мс за глаза. Если б 115200 - 15..20
Было б странно. Это всё - протирка фар и стучание по колесу.





Ответить с цитированием