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

Многозадачность и языки МЭК

 Ответить Ответить Страница  <12345>
Автор
Сообщение
D. Ushkin Смотреть выпадающим
Участник
Участник
Аватар

Присоединился: 14 Январь 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 69
Свойства публикации Свойства публикации   Ответить, цитируя автора - D. Ushkin Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Многозадачность и языки МЭК
    Опубликовано: 22 Январь 2007 12:58

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

... Господа, задача в системе, в которой принципиально нет синхронизаций и взаимодействий (а в рамках парадигмы МЭК - их нет!) может быть только одна и единственная...
Конечно, вы можете запустить на 1-м процессоре 2 (или N ;)) автономных и не взаимодействующих задач - но это будут 2 или N разных АСУТП: например, АСУ управления напольным оборудованием ж/д станции + АСУ управления электрокофеваркой диспетчера этой станции ;)...

Да кто же мешает параллельно исполняемым задачам быть взаимодействующими? Почему нельзя заблокировать включение электрокофеварки при возникновении аварийной ситуации в основном процессе?

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

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

Присоединился: 01 Июнь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 464
Свойства публикации Свойства публикации   Ответить, цитируя автора - Dismay Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 22 Январь 2007 13:28

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

ИМХО ставить на кон при проектировании:

На одну чашу весов разработанный группой разработчиков коммерческий продукт обеспечивающий на мой взгляд хорошую среду исполнения прикладных задач (CoDeSys+PLC МЭК) и дать “ограниченные возможностями” средства разработки этого самого прикладного уровня. Скажем полет мысли ограничивает но и круг областей для фатальных ошибок то же извините сужается.

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

ИМХО предлагаемая модель стандартизации не может не вызывать недовольства у кодоваятелей, но она в конечном итоге необходима для крупных объектов, на которых работают множество систем выполняющих разные задачи но нуждающиеся в тесной интеграции, установка единой системы чаще всего натыкается на чисто экономические проблемы, да и на специализацию разработчиков.

Спорить здесь возможно до хрипоты, потому как рассматривается два достаточно разных подхода.

Есть один проект на МЭК нижний уровень обеспечивают два контроллера WAGO-750-841, верхний уровень TraceMode 5.xx. С верхним уровнем пришлось помучиться, к контроллерам никаких нет претензий, четвертый год все крутиться без проблем, наращивать без проблем, контролировать без проблем. За это время Target для WAGO 750-841 прошел от совершенно убогова варианта, с недоделанным конфигуратором, до вполне пристойного. В течении суток, по первому требованию, мне была предложена новая прошивка непосредственно из Германии (03 на 09) решены проблемы с web сервером и DDE обменом, и замечу без моего горячего участия. Ощущается забота не о моем конкретно проекте, а о продукте в целом. То есть некая положительная динамика направленная на совершенствование.

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


Присоединился: 14 Октябрь 2003
Категория: Ukraine
Online Status: Offline
Публикации: 267
Свойства публикации Свойства публикации   Ответить, цитируя автора - Olej Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 22 Январь 2007 13:34
Первоначально опубликовано Максим Ананских


Олег, эта "убогая" парадигма навязывается МЭК-языками неспроста, а ради благой и оправданной цели - упростить поддержку приложений на объекте специалистами, не имеющими зачастую достаточной квалификации. Хотя я понимаю чувства профессиональных программистов, для которых программирование на МЭК выглядит сродни изощренной пытке.



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

Жуть ... : "приснится - не проснёшься"(с) М.Жванецкия, кажется.

Первоначально опубликовано Максим Ананских


Использование многозадачности может привести к тому, что для обслуживания системы понадобится вызывать специалиста фирмы-разработчика, что сопряжено с большими затратами и длительными простоями. Специалисты же на местах просто не смогут разобраться во всех этих тонкостях, как сельскому электромонтеру трудно разобраться во внутренностях компьютера.


Конечно, разработчики наших контроллеров постарались облегчить жизнь тем, кто захочет использовать вытесняющую многозадачность. Так, например, каждая задача использует свой собственный образ процесса, что снимает необходимость синхронизации доступа ко входам и выходам контроллера. Однако, все равно сохраняется опасность "напортачить" при доступе разных процессов к глобальным ресурсам - например, к глобальным переменным или нереентерабельным функциям (а такие в CoDeSys имеются - читайте документацию!). Подобные ошибки бывает очень легко сделать, но трудно найти и исправить. Поэтому, я призываю обращаться осторожно с многозадачностью - это дело отнюдь не для новичков!



Максим, а здесь я с вами абсолютно солидарен, а не спорю... Только нужно чем-то одним заниматься: или на МЭК программировать - или параллельностями интересоваться. Как вспомнилось из кого-то умных ;) :
"... хоршее намерение - детей выращивать; хорошее - стать божьей невестой и нести обет целомудрия. Только нельзя заниматься тем и другим одновременно"(с) ;)
Или, что то же самое - давний анекдот: из разговора на банной полке:
- Иван Моисеевич, вы бы что-то одно: или крест с груди сняли, или трусы надели... (с)

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


Присоединился: 14 Октябрь 2003
Категория: Ukraine
Online Status: Offline
Публикации: 267
Свойства публикации Свойства публикации   Ответить, цитируя автора - Olej Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 22 Январь 2007 17:23
Первоначально опубликовано Dismay

<P class=Msonormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>Собственно, я было уже решил не вмешиваться в дальнейшую дискуссию, ибо, на мой взгляд она приобрела несколько религиозный подтекст. Но собственно мне есть, что добавить к словам Максима, не один (ну пара, не буду показывать пальцем) проект просто умер у меня на руках, тащил как мог три года (эксплуатацию), просто пытка.


<P class=Msonormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>ИМХО ставить на кон при проектировании:


<P class=Msonormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>На одну чашу весов разработанный группой разработчиков коммерческий продукт обеспечивающий на мой взгляд хорошую среду исполнения прикладных задач (<SPAN lang=EN-US style="mso-ansi-language: EN-US">CoDeSys</span>+<SPAN lang=EN-US style="mso-ansi-language: EN-US">PLC</span><SPAN lang=EN-US> </span>МЭК) и дать “ограниченные возможностями” средства разработки этого самого прикладного уровня. Скажем полет мысли ограничивает но и круг областей для фатальных ошибок то же извините сужается.


<P class=Msonormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3>На другую чашу <SPAN lang=EN-US style="mso-ansi-language: EN-US">QNX</span><SPAN lang=EN-US> </span>и группу интузиазистов разработчиков из какой нить победившей остальных организации, <SPAN lang=EN-US style="mso-ansi-language: EN-US">microPC</span><SPAN lang=EN-US> </span>от одного производителя карты от другого, расширения ядра от Петровича. Неизменно процесс отладки превращается в бесконечную переписку с группой разработчиков, автоматизируемый объект в полигон для испытаний, сопряжение систем в ад, модернизация обычно выглядит как полная замена.



Собственно ... я не говорил и ни о 1-м и ни о 2-м варианте в вашей классификации . Вы, работая в стабильной фирме, ведь не строите СУ для всё новых отраслей каждую неделю: сегодня управление транспортом, завтра - трубопроводами, послезавтра - гидросооружениями ... а между делом ещё и разнообразные конвейерные производства ... "не верю"(с) Станиславский. Вы годами работаете в одной области.
1. когда вы берёте "хорошую среду исполнения прикладных задач (CoDeSys+PLC МЭК)" (среда хорошая, без сомнения), а ещё более - SCADA "верхний уровень TraceMode 5.xx." ... которые рождались и обкатывались в другой области применения, а потом "натягивались" на как можно более широкий спектр приложений - то вы с этими tools берёте (тянете) ~90% того, что избыточно для вашей сферы приложения...
2. я если и говорил выше о проектировании (QNX, C/C++, ...) то совсем не в том смысле, который вы вкладываете: просто на этих инструментах вы умеренными трудозатратами можете в короткий сок наработать набор своих tools, которые будут на 100% соответствовать специфике вашего класса задач (при этом заимствуя туда всё лучшее архитектурно,что можно заимствовать из коммерческих систем, например RealFlex или AutomationX, или лучших и выверенных технологий, таких как SWITCH - автоматное программирование с явно выделенными состояниями)... В результате вы получаете нечто - хотите называйте это mini-SCADA, заточенное под вашу область, ваши объекты и т.д.
3. я знаю не менее 10 успешных команд по ×USSR, которые прошли именно этим путём - часть из них "озвучивались" и здесь на форуме в разные времена.

Плюс, к "достоинству" универсально-технологических средств нужно отнести и то, что ... а если этот tools уже после сдачи в эксплуатацию - выкажет дефекты внутреннего свойства? что тогда будете делать?
Особенно, если это система из области критических требований: 24 х 365 в необслуживаемом режиме...
P.S. чтоб не быть голословным, пример прошлого года:
- на 2-х новых станциях киевского метрополитена (я хоть знаю каких - и туда не влезу, при случае ;)) СУ напольным оборудованием (а это стрелки, светофоры, ...) - оказалась мёртвой, и была такой почти сутки - выключить/перезагрузить до прекращения движения нельзя (т.е. PLC - работают, а уровень управления SCADA MonitorPro - отшибло - ни рук ни ног...);
- причина? - полное исчерпание RAM в результате системной утечки памяти - спасибо Microsoft Windows + Telematique резработчику MonitorPro (как вы понимаете, при визуальном складывании кубиков проектант не манипулирует памятью)...
- и что теперь? учитывая, что и исполнитель и заказчик понимают - такая ситуация будет воспроизводиться через 20-30 суток непрерывной работы в непредсказуемый момент каждый раз... - теперь они только прикрыли голову руками, и "скооперированно" молчат, чтоб никто не прослышал: что одни сделали - а другие приняли.
Занятная история?
Наверх
Pike Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 24 Апрель 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 135
Свойства публикации Свойства публикации   Ответить, цитируя автора - Pike Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 22 Январь 2007 18:45

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

Плюс, к "достоинству" универсально-технологических средств нужно отнести и то, что ... а если этот tools уже после сдачи в эксплуатацию - выкажет дефекты внутреннего свойства? что тогда будете делать?
Особенно, если это система из области критических требований: 24 х 365 в необслуживаемом режиме...
P.S. чтоб не быть голословным, пример прошлого года:
- на 2-х новых станциях киевского метрополитена (я хоть знаю каких - и туда не влезу, при случае ;)) СУ напольным оборудованием (а это стрелки, светофоры, ...) - оказалась мёртвой, и была такой почти сутки - выключить/перезагрузить до прекращения движения нельзя (т.е. PLC - работают, а уровень управления SCADA MonitorPro - отшибло - ни рук ни ног...);
- причина? - полное исчерпание RAM в результате системной утечки памяти - спасибо Microsoft Windows + Telematique резработчику MonitorPro (как вы понимаете, при визуальном складывании кубиков проектант не манипулирует памятью)...
- и что теперь? учитывая, что и исполнитель и заказчик понимают - такая ситуация будет воспроизводиться через 20-30 суток непрерывной работы в непредсказуемый момент каждый раз... - теперь они только прикрыли голову руками, и "скооперированно" молчат, чтоб никто не прослышал: что одни сделали - а другие приняли.
Занятная история?

Ну, как Вы сами только что расписали PLC работали как часы и ни каких внутренних деффектов не продемонстрировали, а PC-base система дала дуба.  Так называемые вами hard-PLC крупных производителей круглосуточно пашут в металургии, у стекольщиков по 10-15 (а иногда и по 20) лет без нареканий. Фраза про избыточность тоже какая-то странная - в чем заключается избыточность мне лично не понятно. В мощности контроллера, в возможностях среды программирования?

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


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

Из того, что существуют МЭК системы, в которых многозадачность сделана отвратно, не означает что нельзя сделать хорошо. Никаких препятствий к этому нет. В некоторых широко известных МЭК системах даже при простой необходимости расширения, нужно использовать внешний С компилятор. Не удивительно, что люди шарахаются от таких МЭК инструментов. Нормальный МЭК комплекс должен быть самодостаточным. Т.е. должна быть возможность расширять его сам собой, включая написание драйверов оборудования. Идея делать МЭК инструмент намеренно ограниченным, нравится только его разработчикам (так проще).

C++ превосходен, поскольку не ограничен. Если прикладной проект пишется программистом, который его и будет сопровождать, то никакой МЭК даром не нужен. До 2001 года мы так и делали. У нас нет одной раскрученной области на которой мы сидим, это не основной бизнес. Последние проекты: литьевая машина, пресс макулатуры, несколько типографских машин, геофизическая установка, 2х шпиндельный токарный станок. Все они не очень сложны с позиции программирования. Давно нет желания жениться на каждой работе, нужно просто сделать ее и сдать, научив имеющихся у заказчика людей справляться самостоятельно с текущим сопровождением. С CoDeSys это вполне получается, поэтому суем его даже во встраиваемые системы. Дело даже не столько в самих языках, сколько в специализированных инструментах отладки, протоколирования и др., позволяющих чинить оборудование без написания программ.

Связка АСУТП и языки МЭК это опять же частность. ИМХО Изаграф изначально ориентирован на АСУТП. CoDeSys заточен под машиностроение. Здесь выше требования к программе в контроллере, но не столь важна простата адаптации и обучения. Основные применения –  это разнообразные станки и приборы, где потребитель (не конечный) должен иметь возможность менять алгоритм. Например, Бош ставит CoDeSys в блоки управления впрыском. Они применяются в машинах БМВ, Мерседес и др. Очевидно Бош  считает себя специалистами по блокам управления, а не по настройке двигателей иначе делал бы все прикладное ПО сам для каждого мотора. Аналогичные примеры есть с судовой автоматикой и на жд.

К сожалению, многозадачность в МЭК системах сильно зависит от того, как сделана система исполнения. Так в CoDeSys есть вариант, когда система исполнения (CSP32F) ставится поверх QNX или RT Linux. При этом средства синхронизации задач используются от самой ОС, в МЭК программах для них просто сделан интерфейс в форме библиотеки. Совершенно нет смысла обсуждать правильно ли это. Есть спрос.

Реально больше всего надо для след. целей: есть ряд дополнительных модных штук в комплексе CoDeSys, например встроенная визуализация, web-визуализация, SoftMotion и др. которые написаны прямо в CoDeSys на языке ST и активно нуждаются в нормальной многозадачности. Иначе прикладные программы работают нестабильно. С РТ ОС внизу, все получается легко и работает отлично. Все эти доп. компоненты сделаны разработчиками 3S и контроллеров. Прикладные программисты могут и не знать, что в ПЛК есть ОС.

Однако инструментарий открыт. Грамотно используют его единицы. Но многие имеют нерусскую привычку читать мануал, особенно очень начинающие. Потом применяют все и сразу. Запретить уже нельзя, надо учить использовать. Хотя бы пояснить опасные моменты. Спасибо за ответы и ссылки. Много чего по делу уже подсказали.

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

Присоединился: 01 Июнь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 464
Свойства публикации Свойства публикации   Ответить, цитируя автора - Dismay Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 23 Январь 2007 06:25

...Sorry... 

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


Присоединился: 14 Октябрь 2003
Категория: Ukraine
Online Status: Offline
Публикации: 267
Свойства публикации Свойства публикации   Ответить, цитируя автора - Olej Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 24 Январь 2007 16:27
Первоначально опубликовано Dismay

<P class=Msonormal style="MARGIN: 0cm 0cm 0pt"><FONT face="Times New Roman" size=3> я пришел к выводу, что никакая группа велосипедистов, в лице группы специалистов широкого профиля с узким захватом, не в состоянии за отведенный проектом срок переплюнуть по конечному качеству исполнения надежность узлов многоцелевых платформ разработки.


Что же вы так уничижительно гнобите все ... "группы велосипедистов, в лице группы специалистов широкого профиля с узким захватом" ... а чем отличаются они от специалистов узкого профиля с широким захватом? ;) я знаком с некоторыми из "велосипедистов" из разработчиков RealFlex (кстати - большинство команды RealFlex на сегодня - это российские разработчики)... вот это "велосипедисты" (делая под свои целевые области приложения!) сваяли RealFlex ... с которым уж ни в какое просто сравнение не может идти даже любый вашему сердцу    TraceMode (IMHO !;) ) - из этих, как их бишь ... "многоцелевых платформ разработки" ;).
Наверх
sanwork Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 08 Март 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 440
Свойства публикации Свойства публикации   Ответить, цитируя автора - sanwork Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 08 Февраль 2007 21:34

Люди ! Суть многозадачности пожалуй трудно постичь, если пытаться понять её сходу - как есть. Гораздо ясней будет если раскручивать мысль постепенно, и в движении станет наглядно проявляться взаимосвязь вещей. Могу, например, предложить такой ход рассуждений :


У нас есть задача - ОДНА (пока). Она чото там делает. Крутится, скажем, с периодом 10 мс. и УСПЕВАЕТ. Но вот нам понадобилось нагрузить чото ещё, и в ту же задачу. И вот она (задача) уже перестает реагировать на какое-то самое быстрое событие - вот он критический момент ! Мы, разумеется, возвращаемся назад - укорачиваем задачу на место. Но ведь новые действия нам всё-таки нужны. И вот ОНО - мы добавляем новую задачу, не трогая скорость выполнения старой ! Но почему новая задача не мешает первой ? Да потому что у неё ниже приоритет ! Да - весь секрет не в скорости цикла задач, а в их ПРИОРИТЕТЕ ! МЕДЛЕННОСТЬ или БЫСТРОСТЬ не играют никакой роли. Задачи с более низким приоритетом могут иметь даже более быстрый цикл, но диспетчер задач не даст ей выполниться пока не закончится задача с более высоким приоритетом ! Получается, что основное назначение многозадачности - гарантированное выполнение группы действий за определенное время. Видите, видите как с правильной постановки точки зрения раскрывается объективность...


Такая картина четко просматривается в CoDeSys (когда включен режим действительной многозадачности - то-есть не эмуляция многих задач в одной). Но судя по Форуму, CoDeSys-ом мало кто увлекается. Однако принцип приоритетности можно попытаться воплотить и в других средах.


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




Господа, постарайтесь не создавать дублирующие темы!!!
Для того, чтобы проверить, есть ли подобная тема на форуме, пользуйтесь поиском.
Ветка перенесена.

С уважением администратор
Наверх
Nekit Смотреть выпадающим
Участник
Участник
Аватар

Присоединился: 04 Апрель 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 80
Свойства публикации Свойства публикации   Ответить, цитируя автора - Nekit Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 08 Февраль 2007 22:52
Гмм. Если это вопрос то непонятно в чем он? Если это мысли вслух то наверное стоилдо помещать их в разделе посвященном этой теме, поднятым _IP_. Хотя впринципе я с автором согласен. В Codesys как нигде просто постичь принципы многозадачности. И сдается мне не так страшен черт как его малюют.
p.s. лично от меня: так хочется увидеть форум только по Codesys...
Наверх
 Ответить Ответить Страница  <12345>

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

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