Просмотр полной версии : язык St
Евгений Мотренко
05.12.2007, 12:28
Добрый день.
подскажите пожалуйста есть ли в языке St оператор перехода на метку?
если нет каким образом можно организовать переход?
заранее спасибо.
Посмотри в помощи на кодесис про это:
1) If … then … else…end_if
2) Case ….. of ….. else …. end_case
на мой взгляд этого вполне достаточно
P. S. удачи :-)
Евгений Мотренко
05.12.2007, 15:06
врят ли поможет.
мне нужно перейти в конец программы, попутно проверить несколько условий и, возможно, перейти ещй куда нибудь внутри программы.
Евгений Мотренко
05.12.2007, 15:12
Посмотри в помощи на кодесис про это:
1) If … then … else…end_if
2) Case ….. of ….. else …. end_case
на мой взгляд этого вполне достаточно
P. S. удачи :-)
Такая конструкция не подойдет. Уже думал. У меня слишком разветвленный алгоритм.
Все же есть инструкция перехода к метке (одна а не комбинация)?
Помогите пожалуйста.
Филоненко Владислав
05.12.2007, 16:06
Идеология не предусматривает использование GOTO-подобного стиля. Разбейте свой алгоритм на маленькие функции и вызывайте их в SFC или его аналоге на ST (case) по состояниям. Любой сложности алгоритм получается удобочитаемым и понятным (особенно через год-другой :) )
Малышев Олег
05.12.2007, 16:44
Ну примерно так
1) выход из любого места на начало - return
2) в начале ставим case переменная_состояния
3) Внути case другие case не ставьте - глючит. Код разбиваем на POU и не стараемся написать листинг на 50 страниц.
Я думаю это поможет
Евгений Мотренко
05.12.2007, 17:16
Ну примерно так
1) выход из любого места на начало - return
2) в начале ставим case переменная_состояния
3) Внути case другие case не ставьте - глючит. Код разбиваем на POU и не стараемся написать листинг на 50 страниц.
Я думаю это поможет
Корректно ли будет так: вызов другой подпрограммы из вызывнной ранее. Может ли подпрограмма не содержать оператор RETURN, а переходить на другой POU?
Малышев Олег
05.12.2007, 18:08
вполне может, но возвращаться будтет в след после вызова строку.
И снова - меня еще на первом курсе хорошие люди отучили от goto. Даже доказывал теорему, что используя if, и while можно организовать любой алгоритм.
Ценой глючной программы на контроолере может стать разморозка жилого здания или поломанный станок... или... Вам этого надо?
Четкое понимание того, что делается в программе залог отсутствия глюков.
если у вас такой сложный алгоритм работы то для начала «plc_prg» хорошо бы было сделать на «sfc» (что-то похожее на блок схему) там всю свою программу разобьёте на куски и правильно уложите в шаги Sfc-программы это заметно упростит алгоритм. внутренности шагов тоже можно сделать Sfc языком программирования. и в финале когда упрощать таким образом не получается начинаем всю программу разбивать на функции, функциональные блоки и просто программы. затем все повторяющиеся куски программы оформляем отдельными компонентами. и только после этого садится писать саму программу и последовательность выполнения тех или иных действий.
P. S. мне аналогичный подход очень помогает :-)
Евгений Мотренко
06.12.2007, 11:32
если у вас такой сложный алгоритм работы то для начала «plc_prg» хорошо бы было сделать на «sfc» (что-то похожее на блок схему) там всю свою программу разобьёте на куски и правильно уложите в шаги Sfc-программы это заметно упростит алгоритм. внутренности шагов тоже можно сделать Sfc языком программирования. и в финале когда упрощать таким образом не получается начинаем всю программу разбивать на функции, функциональные блоки и просто программы. затем все повторяющиеся куски программы оформляем отдельными компонентами. и только после этого садится писать саму программу и последовательность выполнения тех или иных действий.
P. S. мне аналогичный подход очень помогает :-)
Ошромнейшее спасибо всем! Теперь себя не чувствую полным лохом.
Пробую различные вариеанты сошласно Вашим советам.
незарегистрированный
07.12.2007, 20:49
>ошромнейшее спасибо всем! теперь себя не чувствую полным лохом.
>пробую различные вариеанты сошласно вашим советам.
да, по злому организована дисскусия!
шогласно шаветам не нада! нада итти учиццо чтоли на курсы!
и еще раз для лохов:
можно конкретно ответить - возможен переход в произвольное место и как на St??? сам возможности не имею учится - "сразу с третьего классу пошел прогррамиировать".
Филоненко Владислав
09.12.2007, 11:18
невозможен!
Евгений Мотренко
11.12.2007, 18:25
>ошромнейшее спасибо всем! теперь себя не чувствую полным лохом.
>пробую различные вариеанты сошласно вашим советам.
да, по злому организована дисскусия!
шогласно шаветам не нада! нада итти учиццо чтоли на курсы!
и еще раз для лохов:
можно конкретно ответить - возможен переход в произвольное место и как на St??? сам возможности не имею учится - "сразу с третьего классу пошел прогррамиировать".
Зло очень зло!! Ошибся при наборе текста, прошу извенить за получившейся калаибур!! Было весело
Как правильно реализовать выполнение процедцры
Как правильно реализовать выполнение процедцры
Codesys не предусматривает процедур. Есть функции, функциональные блоки и программы. Ближе всего, видимо программы. Вызывать их проще всего обращением из plc_PRG.
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot