ВладОвен
04.11.2024, 09:56
Привет.
Недавно обнаружил странное поведение программы на языке SFC.
Как мы знаем в каждом шаге сначала однократно выполняется действие Entry.
Потом длительно выполняется код самого шага, до выполнения условия перехода.
Ну а затем однократно выполняется действие Exit.
Но вот пример программы, где НЕ выполняется действие Entry в шаге.
79817
Это касается шага check и его действия Entry.
В этом действии увеличивается указатель на массив, и если выходит за пределы, то он устанавливается в начальную позицию.
79818
Все работает ровно. Контрольный счетчик в шаге counter постоянно увеличивается.
Но если вы сбросите один из элементов массива, например, 5, то программа остановится.
79819
Действие Entry не выполняется. Индекс не увеличивается, контрольный счетчик не увеличивается.
Программа написана под Raspberry, но она ведет себя также и на других ПЛК.
Недавно обнаружил странное поведение программы на языке SFC.
Как мы знаем в каждом шаге сначала однократно выполняется действие Entry.
Потом длительно выполняется код самого шага, до выполнения условия перехода.
Ну а затем однократно выполняется действие Exit.
Но вот пример программы, где НЕ выполняется действие Entry в шаге.
79817
Это касается шага check и его действия Entry.
В этом действии увеличивается указатель на массив, и если выходит за пределы, то он устанавливается в начальную позицию.
79818
Все работает ровно. Контрольный счетчик в шаге counter постоянно увеличивается.
Но если вы сбросите один из элементов массива, например, 5, то программа остановится.
79819
Действие Entry не выполняется. Индекс не увеличивается, контрольный счетчик не увеличивается.
Программа написана под Raspberry, но она ведет себя также и на других ПЛК.