Не использовать While, переход на метку и тому подобное. Очень аккуратно обращаться с указателями и все в таком духе.
Не использовать While, переход на метку и тому подобное. Очень аккуратно обращаться с указателями и все в таком духе.
Я бы уточнил:
не использовать циклы с неизвестным заведомо количеством итераций;
не использовать переходы на метку назад по коду.
По поводу оптимизации:
Не выполняйте весь код каждый цикл ПЛК. Каждый, логически отдельный, кусок кода выполняйте только тогда, когда есть потребность данных, получаемых в результате выполнения этого куска.
Например:
1. У вас в программе два (или больше) ПИД регулятора. Выполняйте их в периодической задаче каждые Х мс. Думаю для вашего случая Х = 100-200 мс. При этом, каждый ПИД выполняйте в отдельном цикле контроллера (отдельном от других ПИД).
2. Вы рассчитываете технологические параметры по каким-нибудь формулам. Посмотрите кто потребляет эти параметры. Если ПИД, то тех. параметры ему нужны только каждые Х мс, если панель оператора, то ей параметры не нужны чаще, чем раз в 500 мс.
3. Как часто обновляются измеренные аналоговые величины? Рассчитывать тех. параметры чаще, чем обновляются их аналоговые сигналы, не имеет смысла.
4. И т.д. в таком же духе.