Почему я не буржуин.. толстый, в цилиндре...
Наверно форум не тот.
Почему я не буржуин.. толстый, в цилиндре...
Наверно форум не тот.
Уважаемые господа специалисты - предлагаю топикстартеру тему с флудом перенести в курилку... самостоятельно...
Если кому интересно - мои 5 копеек:
Очень люблю и рекомендую читать старый русский фольклор и сказки.
Например: "каждый кулик свое болото хвалит".
На курсах преподается на CFC так как большинство обучающихся начинают программировать "с нуля", а не приходя из софтверных компаний, где писали на C#, Delfi и остальных "мегапафосных" системах. "Програмеры" обычно учаться сами, но именно от них в начале пути работы с ПЛК слышится: "херня эти ваши контроллеры - не правильно они циклы выполняют", по тому как не разобрались в принципах работы ПЛК, который КАРДИНАЛЬНО отличается от принципов работы программ на ПК.
CODESYS создан универсальным, чтобы удовлетворить всех возможных специалистов, которые будут с ним работать.
Программист Вы изначально - ну так удачи - пишите на st (pascal). И структуры и массивы, case Вам в помощь.
Если Вы от электрики - милости просим - LD (релейная схема).
Если получили базовое образование (как я) АСУ ТП - так понятнее и удобнее всего CFC (FBD) и SFC. Поверьте мне - я на SFC за 1,5 минуты опишу "машиносостояние, условия переходов и пр." без всяких IF, case и прочих "ужасных и непонятных слов". И не понадобится 2 месяца на отладку, как это требуется классическим программистам
И уже при определенном опыте и приобретенных навыках начинаешь в проекте комбинировать программы на разных языках. Математику на st. Система безопасности котла оптимально и сильно быстрее пишется и отлаживается на LD. Условия состояний установки лучше всего на SFC. Все это пишется в виде "программ" или "функциональных блоков", которые уже собираются в финальную программу на CFC (для наглядности). Это и называется мастерством, которым, к сожалению обладают единицы.
Ну а тем, кто пока умеет работать и оптимально использовать только один язык - CODESYS представляет выбор из 5 языков.
Можно считать вопрос закрытым, или еще пофлудим?
З.Ы.: Обычно следующим шагом в таких спорах становится обсуждение "а зачем мне CODESYS - я и так хорош - дайте мне Linux и оставьте меня в покое"
Последний раз редактировалось Николаев Андрей; 12.02.2014 в 08:22.
Вот обидели сейчас про пафос и два месяца на др.языке,отличном от sfc
Ох нифига себе... Был бы я троллем, гадко хихикал бы Название темы конечно попахивает холиваром, но тема заключалась всего в 2 конкретных вопросах (см 1й пост), на которые пока так никто и не ответил.
В курсе. Скажу больше, не только ПЛК, а вообще любая программа которая должна долго работать и на что-то реагировать - это непременно какой-то цикл. Не принимайте меня за школьника. Я из чистого энтузиазма писал программы по 8 тысяч строк (но для компа, игру), и всё работает без единого глючка. Так что с циклами как-нибудь слажу Давайте не будем флудить, остаются только 2 конкретных вопроса о графических языках: 1) как сделать цикл и 2) как быстро вставить условие на набор команд.А Вы в курсе, что ПЛК работает в цикле? Поэтому использовать FOR-NEXT или REPEAT-UNTIL надо очень аккуратно. Если в цикле программа задержится слишком долго произойдет перезагрузка ПЛК.
Последний раз редактировалось Boris_K; 12.02.2014 в 10:52.
Ну я старался подробно объяснить. Продолжаем с цитатами: "...имеющий слух - услышит...". Хорошо, что Вы не троль. За это на форуме принято наказывать.
По существу вопросов.
Ну если в курсе, то должны понимать, что:
1. "Выполнить несколько раз в цикле" в разрезе ПЛК: надо использовать не for, а if. По тому как цикл уже организован. И Ваша задача не организовывать его, а включать и выключать из него нужные Вам вычисления. if uslovie<> ustavka then a:=a+1; end_if;
2. Для удобства ветвлений (организации условий перехода) можно использовать разные варианты. Это как реализация на st. Кто против? Тем более если Вам так удобнее. Это SFC - быстро и наглядно. Это операторы выбора при программировании на CFC, такие как sel, mul и другие операторы выборки и сравнения.
Вся прелесть, что выбор за Вами.
Слух имеется.Продолжаем с цитатами: "...имеющий слух - услышит..."
Нет, это не катит, это плохо. Это "канает" только для совсем уж простых программ. А в общем, в одном большом цикле (без вложения других циклов) всё не обработаешь.Выполнить несколько раз в цикле" в разрезе ПЛК: надо использовать не for, а if. По тому как цикл уже организован. И Ваша задача не организовывать его, а включать и выключать из него нужные Вам вычисления.
С помощью sel, mul и подобными можно обработать только одну выходную переменную. А если надо "заусловить" блок из 30 выражений, это придётся для каждого sel хреначить. Вот только и остаётся ST родимый.Это как реализация на st. Кто против? Тем более если Вам так удобнее. Это SFC - быстро и наглядно. Это операторы выбора при программировании на CFC, такие как sel, mul и другие операторы выборки и сравнения
Спасибо за совет, попробую. Конвертацию ещё не приходилось делать. Интересно будет увидеть результат. Вангую, что будет что-то страшноеНапишите цикл на ST, конвертируйте в графический язык FBD и воссоздайте полученный результат в CFC , в чем проблема то?
Последний раз редактировалось Boris_K; 12.02.2014 в 11:35.