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

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

 Ответить Ответить Страница  <1 23456 9>
Автор
Сообщение
sanwork Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 08 Март 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 440
Свойства публикации Свойства публикации   Ответить, цитируя автора - sanwork Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Соцопрос: языки МЭК 61131-3.
    Опубликовано: 28 Август 2007 16:56

Я полагаю, что расклад надо делать не в одной плоскости. Значение того или иного языка сильно зависит от области применения.

В классической автоматике царствует  LD.  Это очень древний язык, существовал даже не до транзисторов и ламп, а в эпоху реле. Терминология дошла и до наших дней.

ST  появился вместе с нелинейным программированием, да и вообще когда надвигалась эпоха повсеместного процедурного программирования. На ряду с  LDST  является одним из базовых языков.

CFCFBDSFCPT  и другие визуальные средства - это новое поколение технолгий автоматизации, и не только - они пришли из общей концепции UML.

Примерно такой расклад, каждый на своем месте.

С уважением, SAN

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

Присоединился: 27 Сентябрь 2006
Online Status: Offline
Публикации: 125
Свойства публикации Свойства публикации   Ответить, цитируя автора - Kanzi Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 29 Август 2007 12:03

Я часто применяю языки в зависимости от задания.

1). Если надо реализовать релейную логику - то LD и FBD

2). Если задана циклограмма - то граф.

3). Если задана блок-схема - то граф или ST. Мнемокод (ассемблер) стараюсь не использовать.

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


Присоединился: 14 Январь 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 322
Свойства публикации Свойства публикации   Ответить, цитируя автора - s_smirnov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 11 Сентябрь 2007 16:19

Авторегулирование - FBD

Другими не пользуюсь

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


Присоединился: 29 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 293
Свойства публикации Свойства публикации   Ответить, цитируя автора - _IP_ Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 11 Сентябрь 2007 17:34
Кстати PLCopen второй год разрабатывается новый стандарт по тестам быстродействия ПЛК. Сейчас используют 1000 команд на IL или время выполнения 1 команды (в интерпретирующих системах). По этим параметрам вообще ничего практически полезного оценить нельзя. Новые тесты дают гораздо более внятные критерии. Один тонкий момент: реализуются эти тесты только на языках ST и SFC. Т.е. целевая группа экспертов сочла их обязательными для реализации.
Igor Petrov
Наверх
Pike Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 24 Апрель 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 135
Свойства публикации Свойства публикации   Ответить, цитируя автора - Pike Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 11 Сентябрь 2007 18:31
М-да, хороши эксперты. Во многих системах программа написанная на LD или FB исполняется быстрее, чем написаная на ST. Так что внятность критериев оценки опять под вопросом.
Наверх
_IP_ Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 29 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 293
Свойства публикации Свойства публикации   Ответить, цитируя автора - _IP_ Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 11 Сентябрь 2007 18:48

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

...Во многих системах программа написанная на LD или FB исполняется быстрее, чем написаная на ST...

Хороши системы! В нормальных системах никакой разницы нет, код после компилятора совпадает до бита

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

Присоединился: 15 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 805
Свойства публикации Свойства публикации   Ответить, цитируя автора - Petrov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 11 Сентябрь 2007 19:24
Первоначально опубликовано _IP_

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

...Во многих системах программа написанная на LD или FB исполняется быстрее, чем написаная на ST...


Хороши системы! В нормальных системах никакой разницы нет, код после компилятора совпадает до бита


Действительно так? По-моему, например, для FBD, где на все входы должно быть что-то подано обязательно, код из-за этого будет побольше, чем например ST. Нет? Впрочем, все зависит от программиста. Ну и от оптимизатора/компилятора. Теоретически, да, так оно и должно бы быть в идеале - совпадать до бита. А проверялось?
Наверх
Astilya Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 18 Декабрь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 275
Свойства публикации Свойства публикации   Ответить, цитируя автора - Astilya Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 12 Сентябрь 2007 09:48

Не берусь выводить общее правило, но на тех контроллерах, которые я программировал, программа на LD исполняется стабильно медленнее ST, поскольку ST позволяет не обсчитывать заведомо "неработающие" на данном цикле Rung'и

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


Присоединился: 24 Апрель 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 135
Свойства публикации Свойства публикации   Ответить, цитируя автора - Pike Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 12 Сентябрь 2007 09:53
Смотря что понимать под нормальными системами: классические "закрытые" ПЛК или софт ПЛК. Я говорю про классические. Разница в большенстве случаев не принципиальная, но...
Наверх
_IP_ Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 29 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 293
Свойства публикации Свойства публикации   Ответить, цитируя автора - _IP_ Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 12 Сентябрь 2007 11:26

Я много с этим экспериментировал. Проверял в CoDeSys V2 на классических ПЛК. Использовал встроенные в CoDeSys конверторы с одного языка на другой. При преобразовании в лоб 1 к 1 разницы нет. Ее и не должно быть исходя из внутреннего устройства генератора машинного кода для целевого микропроцессора. Но… Petrov правильно указал суть. (Хотя требования обязательно подавать нечто на входы экземпляров функциональных блоков нет. Вход вполне может болтаться свободным (просто удалите значки ???), если его значение задано ранее, например при инициализации.) Если программу ST преобразовать в лоб в FBD, то получается некрасивая программа с кучей цепей и переходов на метки. На FBD наши люди так не пишут. На ST вполне можно писать программы точно также как на FBD. Тогда код совпадает абсолютно. Этот язык легко перекрывает возможности IL, LD и FBD. В нем есть мощные команды организации циклов, ветвлений (IF-IFELSE, CASE), можно большие выражения записывать в одну строчку (например, вычисление полинома)… В итоге программа со сложными вычислениями и преобразованиями данных на ST будет компактнее, если она грамотно написана. Однако программы для классических применений (комбинационные и последовательностные алгоритмы) ПЛК на FBD выглядят явно проще и нагляднее.
 
На IL можно слегка оптимизировать для компилирующих систем. Нужно хорошо знать целевой процессор и посмотреть в какие команды ассемблера преобразуются конкретные команды IL. Тогда с некоторым опытом начинаешь 'видеть' с IL машинный код, понимать, когда хватает регистров процессора, когда включается стек, когда генерируются длинные переходы с переключением сегментов и др. В целом же эффект копеечный и при обычной работе можно такой ерундой не заниматься. Если кто не имеет привычки к IL, то и изучать его не нужно.

В итоге: разумно считать ST самым быстрым из МЭК языков. Достичь более компактного или быстрого кода путем прямого переписывания программы на другой язык МЭК нельзя. Выбор языка определяется программистом из его личных предпочтений и опыта. Ему должно быть удобно. Программа пишется человеком и человеком читается. Предпочтения у людей разные, поэтому нужно поддерживать все языки, дабы не терять заказчиков из-за такой ерунды. Контроллеру же до фонаря, на каком он языке запрограммирован.

Наверх
 Ответить Ответить Страница  <1 23456 9>

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

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