Современные технологии автоматизации» («СТА») —  журнал для квалифицированных специалистов по промышленной автоматизации Форум СТА — современные технологии автоматизации Домашняя страница
Домашняя страница форума CTA Домашняя страница форума CTA > II. АСУТП и SCADA > ПЛК и микроконтроллеры
  Активные темы Активные темы
  FAQ FAQ  Искать в форуме   Зарегистрироваться Зарегистрироваться  Вход в систему Вход в систему

Соцопрос: языки МЭК 61131-3.

 Ответить Ответить Страница  <1 789
Автор
Сообщение
Leonid Uretsky Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 09 Октябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 187
Свойства публикации Свойства публикации   Ответить, цитируя автора - Leonid Uretsky Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Соцопрос: языки МЭК 61131-3.
    Опубликовано: 28 Сентябрь 2007 08:26
Первоначально опубликовано _IP_

В CoDeSys есть указатели на переменные  (на функции нет).

Я думал речь идет о доработке стандарта МЭК1131-3, а не о CoDeSys.

Первоначально опубликовано _IP_

Кроме того, можно делать массив функциональных блоков! Через конфигурационные переменные можно подставить каждому экземпляру свои данные. Это мало кто использует, хотя получается очень красиво. (См. последний ответ тут). Еще в МЭК функция может возвращать структуру. В Си этого нет.

Можно поступить по другому:

В цикле вызывать один экземпляр функционального блока, подавая на его входы разные параметры. Единственное - такой блок не должен иметь внутренних переменных, которые надо сохранять на следующий цикл сканирования (их надо выносить во внешние переменные).

Первоначально опубликовано _IP_

Еще интересная новая идея делать функции с параметрами типа ANY (любой). Некоторые стандартные МЭК блоки (например, сложение) кушают любой тип данных, но сделать из них свою столь же всеядную функцию нельзя. Конечно, это здорово усложнит транслятор системы программирования. Пока такого ни у кого нет (скоро будет в CoDeSys V3).

В Concept есть такое, только такие блоки на Си писать надо. 

Наверх
gggg Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 24 Декабрь 2004
Online Status: Offline
Публикации: 321
Свойства публикации Свойства публикации   Ответить, цитируя автора - gggg Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 16 Октябрь 2007 10:53

я пишу на ST всегда,

на LD когда надо модернизировать оборудование с релейной схемой, тогда просто перерисовываешь схему (в общем для чего ЛД когда то и придумали, наверно)

Наверх
gggg Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 24 Декабрь 2004
Online Status: Offline
Публикации: 321
Свойства публикации Свойства публикации   Ответить, цитируя автора - gggg Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 16 Октябрь 2007 11:20
кстати, а хде можно почитать про МЭК61131-3, именно про стандарт, а то говорят что разные среды разработки отличаются
Наверх
Александр Горский Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 04 Сентябрь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 206
Свойства публикации Свойства публикации   Ответить, цитируя автора - Александр Горский Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 17 Октябрь 2007 09:59
Наверх
Privodchik Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 09 Март 2009
Online Status: Offline
Публикации: 9
Свойства публикации Свойства публикации   Ответить, цитируя автора - Privodchik Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 07 Октябрь 2009 18:15
Возможно зря поднимаю тему, но прошло 2 года, интересно, что изменилось, приблизили ли мы языки высокого уровня к ПЛК или нет? Опубликовал статью: Языки программирования ПЛК. Какой выбрать?, считаю вопрос значимым для подрастающей армии специалистов и тех кто их обучает.
Наверх
Leonid Uretsky Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 09 Октябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 187
Свойства публикации Свойства публикации   Ответить, цитируя автора - Leonid Uretsky Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 08 Октябрь 2009 11:07
Я пытался тему по программированию ПЛК развить здесь.
Но не поддержали. Может на форум СТА перенести?
Наверх
sanwork Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 08 Март 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 440
Свойства публикации Свойства публикации   Ответить, цитируя автора - sanwork Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 17 Октябрь 2009 14:08
Что еще сказать ?.. да всегда можно найти.

К примеру, ".. что можно выжать из железа с помощью языка программирования ? .."
Можно - конвейерная обработка, которая щас во всех чипах, ускоряет во много раз. Но это при условии отсутствия ветвлений т.е. условных операторов (УО). А УО нет как раз в древних LD и его текстовом выражении - "булевке". В то время, как ST - сплошные УО.
Вот и выходит, что не всё старое - плохо, а всё новое - хорошо ..

С уважением, SAN
Наверх
_IP_ Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 29 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 293
Свойства публикации Свойства публикации   Ответить, цитируя автора - _IP_ Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 20 Октябрь 2009 15:40
Тема интересная. Я активно обсуждал ее в этом году с разными компаниями и людьми. Пожалуй наиболее содержательно с Эльке ванн дер Валом из PLCopen. Мнения разные, хотя можно выделить некие общие точки, от практики до идей.

ИМХО 1: вариант функциональных блоков в стандарте МЭК 1499. Неплохое усовершенствование, но не стратегическое. Разработчики ПЛК не спешат его реализовывать, работают над своими оригинальными идеями, которые позволят им прыгнуть вперед конкурентов на несколько лет.

ИМХО 2: есть абсолютно явная тяга молодежи к языкам ООП во всем мире. Никуда мы от этого не денемся, хотим или нет. Но. . ., в лоб компьютерные языки Java, C# и др. в ПЛК лезут очень криво. Не смотря на всю их мощь, в них не хватает самых элементарных и необходимых для ПЛК систем штук – механизма отображения аппаратуры ввода/вывода, настройки порядка и временных характеристик этих механизмов, средств отладки и диагностики всего оборудования в целом, интегрированных средств моделирования и др. и пр. Что говорить, если программа в ПЛК написана на C++, то наладчик не может даже элементарно заморозить выходы ПЛК и подвигать вручную определенными механизмами без привлечения программиста. В любой, самой затрапезной МЭК 61131-3 среде этому можно научить даже бухгалтера. Второй момент: нельзя наплевать на огромное число существующего ПО для ПЛК. Нельзя наплевать на людей, которые владеют этим в совершенстве. Есть ‘старики’ которые разбуженные ночью по отрывочным словам и наименованиям неких приборов могут сказать что это, как его настроить, как запрограммировать, почему не работает, как быть, что для этого нужно и в каком шкафу лежит. Без таких людей все встанет на продолжительное время. Но ООП им нужен как в бане солярка. Итого: надо втягивать ООП в традиционные языки программирования ПЛК опционально. В PLCopen такой проект ведется и очень похоже на то, что рождается стандарт.

ИМХО3: языки МЭК позволяют запрограммировать решение, но не дают ничего для поиска этого решения и не дают технологию разработки. Отсюда вытекают разработки принципиально новых подходов к программированию ПЛК. Например, на базе UML. Идея состоит в построении модели, ее отладке и автоматической генерации кода. Такие научные разработки ведут все серьезные фирмы в Европе и США в сотрудничестве с университетами. В большей части это перспективные проекты, которые показывают дистрибуторам, партнерам, но публикуют информацию очень сдержанно. К 12 году наверняка что-либо родится в коммерческие продукты. Тогда будем обсуждать, ругать, пытаться стандартизировать.
Igor Petrov
Наверх
Максим Ананских Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 14 Май 2003
Online Status: Offline
Публикации: 770
Свойства публикации Свойства публикации   Ответить, цитируя автора - Максим Ананских Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 20 Октябрь 2009 17:04
Поддержу обсуждаемую тему, вставлю свои пять копеек.

Какие языки МЭК я использую? Стандарт МЭК не только поддерживает, но и поощряет многоязыковое программирование. Связано это с тем, что большая часть языков в нем является проблемно-ориентированными. То есть, разные задачи, и более того, разные части одного приложения удобнее решать на разных языках. Чем я активно и с удовольствием пользуюсь.

Для дискретной логики пока не придумали ничего более удобного и наглядного, чем LD. Поскольку эта задача встречается, пожалуй, чаще всего, то я использую LD, наверно, в половине случаев. Однако попытка реализовать на LD более-менее сложный алгоритм может поставить в тупик. Поэтому одного только LD мне недостаточно.

В FBD очень наглядно реализована инкапсуляция алгоритмов. Поэтому он идеально подходит для декомпозиции задачи на отдельные блоки. Если сделать это грамотно, то программа будет выглядеть очень наглядно. Поэтому я часто использую FBD (или его развитие CFC), например, для реализации основного POU проекта.

ST - обычный алгоритмический язык высокого уровня, на нем в принципе можно реализовать любую задачу. Он незаменим для вычислительных алгоритмов, различных протоколов обмена, да и вообще для любых нетипичных для ПЛК задач. А такие задачи сейчас встречаются часто. Однако злоупотребление применением ST, а в особенности, перенос на него практики программирования на C, ведут к появлению программ, которые невозможно поддерживать. Я часто применяю ST для написания "начинки" функциональных блоков.

Теоретически, SFC - очень мощный инструмент, позволяющий повысить наглядность и облегчить написание алгоритмов. На практике, попытки применения SFC приводят либо к тривиальным алгоритмам, где ясно видна его избыточность для данной задачи, либо к ужасающей путанице и большим трудностям в отладке. Поэтому я стараюсь не применять SFC.

IL - наименее наглядный из МЭК языков, введенный в стандарт, очевидно, в целях совместимости. На практике я не вижу никакой необходимости им пользоваться. Впрочем, у меня был один случай, где я применил его: я написал скрипт на VBA, который генерировал код на IL с большим количеством однотипных действий автоматически.

Некоторые системы позволяют комбинировать код на FBD и LD вместе, благодаря чему можно добиться большей наглядности и компактности. Если такая возможность есть, я ей обязательно пользуюсь.
Инженер-системотехник
+7 (916) 477 3925
Наверх
sanwork Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 08 Март 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 440
Свойства публикации Свойства публикации   Ответить, цитируя автора - sanwork Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 23 Октябрь 2009 19:52
Цитата 3-х летней давности !
Первоначально опубликовано sanwork

... в Си есть тоже самое, что есть например в Web-дизайне, или в скриптах SCADA-визуализаций - то-есть всё то, чего нет в МЭК языках - лучшим образом делать работу в своей области, а не конкурировать !  Сейчас настало время интеграции разных информационных технологий между собой.  Вопрос, какой язык лучше - на свалку прошлого !  Высокое быстродействие аппаратных средств надо гармонично соединять с мощью изобразительных средств визуализации, и баз данных высокого уровня.  Не противопоставлять, а строить изящьные интерфейсы межуровнего обмена - вот будущее. И прекратить наконец споры : зачем нужен СИ, Ассемблер.  А зачем нужны  Perl, Jawa ...


Не надо смешивать языки - их надо соединять !

С уважением, SAN
Наверх
 Ответить Ответить Страница  <1 789

Переход на форум Права доступа на форуме Смотреть выпадающим

Bulletin Board Software by Web Wiz Forums® version 9.64
Powered by Web Wiz Forums Free Express Edition
Copyright ©2001-2009 Web Wiz