-
Супер Модератор
А вот для этого надо понять принцип работу ПЛК.
Программу в контроллере остановить НЕЛЬЗЯ.
Программа в контроллере выполняется постоянно по жесткому алгоритму, циклически: опрос входов (области памяти входов), выполнение программы с верху в низ с лева на право, запись выходов (в область памяти выходов). Возвращаемся к пункту 1. И так постоянно.
Это надо почитать, усвоить и попробовать. Сложнее всего это дается классическим программистам:
введите в программе a:=a+1;
Что бы это дало в СИ, и что это дает в CoDeSys...
Принцип с подпрограммой тот же. Из основной программы попадаем в подпрограмму, выполняем её одним проходом с верху вниз (без зацикливаний и ожиданий - мы не остаемся в подпрограмме дольше, чем требуется для выполнения) и выходим из неё, передавая управление основной.
По этому в одной подпрограмме и организуйте работу. Если состояние такое - выхода так то так то, а если другое, то выхода так то и так то, а если состояние остановится (а мы помним что не останавливаемся никогда), то все выхода перевести в 0. Ну и соответственно проверка аварий и останова выполняется в самом низу подпрограммы. Почему? Да по тому что в выхода запишутся значения переменных в конце подпрограммы. То есть если даже в начале программы считается, что надо выход 1 включить, но далее по программе выход 1 выключается, то в итоге в область памяти выходов передастся только последнее значение.
Основы работы ПЛК. Очень рекомендую почитать базовые вещи, например книгу Петрова Игоря.
Ну или хотя бы глоссарий нашего руководства.
А уж в идеале РЭ или РП к ПЛК
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума