Средство для программирования контроллера: Си или МЭК 61131? |
Ответить | Страница <1 2930313233 53> |
Автор | ||||
Действительный член Присоединился: 14 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 267 |
Опубликовано: 19 Октябрь 2003 17:06 |
|||
Я и не имел в виду "нападки", или не сумел сказать так как хотел: хотелось подчеркнуть различную целевую направленность этих языков.
А здесь нет ничего "дикуссионного", и тем более "крайне"... Конечно, Pascal, в том виде, как он сформулирован Н.Виртом - это не только умирающий, а уже умерший язык... А в том виде, в какой он трансформировался в Delphi или Kylix (как он, в чертях, пишется... ;-)) - так это просто "одоробло" (Чтоб потом не отвечать на возмущённые реплики адептов, сразу объясняю, почему "одоробло": потому, что язык - это органичная конструкция, в него нельзя произвольно наталкивать то, что понравилось "в другом месте" - именно так всегда развивался BASIC. В противном случае - язык эклектичный, и содержит в себе внутренние противоречия, которые вылезают в конкретных применениях. Так именно и случилось в Borland - это не моё утверждение, а Н.Вирта). Так вот далее. Pascal, конечно, мёртвый язык. Ктати, у нас (назовём это СНГ) - он задержался дольше, чем в других местах, более популярен. На то есть причины: - косность высшей школы, которая как заладила как "попка дурак" преподавание на Pascal в поздние 70-е, так и долдонит это дальше... (ведь проще долдонить заученный курс, чем учить новое, да ещё в бедственных условиях, в которых находится высшая школа). - традиционная приверженность наших программистов Borland. Это началось ещё со времён DOS Borland C 3.1 - я сам на это долго "подсел". За рубежом Borland во многих регионах был почти неизвестен, тем временем, как у нас - используем повсеместно. А потом ... Delphi - и, по традиции, - восхваление, что "Borland это cool"... А на то, что действительно блестящая школа компиляторщиков Borland к тому времени ушла и делала TopSpeed Modula-2 - внимание не обратили, а к тому времени в Borland работали уже подёнщики..., которые гораздо лучше понимали рынок, но гораздо хуже - компиляторы. Но утверждение "Pascal мёртв" ни в коей мере нельзя относить к Pascal языковой линии! Хотя бы одно то, что существует и активно развивается язык ADA, в том числе и free в GNU проекте GNAT... есть мощное русскоязычное сообщество GNAT. Плюс "виртовская" линия Modula - Oberon... |
||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
||||
То, что Паскаль и Си имеют некоторую специфику - несомненно. Тезис, который я отстаивал: в силу специфики языка и предметной области для МЭК технически более грамотным было бы выбрать в качестве основы для ST - Си.
Есть по этому поводу такая забавная ссылка... http://www.tiobe.com/tiobe_index/index.htm Примечательно, что по моим собственным оценкам, ситуация примерно схожая: "Паскаль-линия" более чем на два порядка менее распространена по сравнению с "Си- линией"... к коей я отношу и Си++, и Java, и С#... |
||||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 07 Август 2003 Категория: Russian Federation Online Status: Offline Публикации: 108 |
||||
Разработчики МЭК 61131 тоже знали о языке С и С++, но по каким-то причинам выбрали ST(аля Паскаль). Будем же относиться к ним с уважением и примем на веру, что для этого были веские причины. Возможно например: 1. Паскаль в изучении проще, чем С 2. от крутых программеров слышал, что Паскаль (Delphi) очень удобен для БОЛЬШИХ поектов, т.к. программа на Паскале, в силу специфики компиляторов компилируется гораздо быстрее, чем программа на С и С++. Какова же цель стандарта МЭК 61131? Рискну сказать: автоматизация БОЛЬШИНСТВА (т.е. не ВСЕХ) АСУ ТП, с минимальными издержками, в т.ч. обучение персонала за минимальное время, разработка и отладка алгоритмов за минимальное время. Именно по этой причине в МЭК 61131 есть НЕСКОЛЬКО ПРОСТЫХ в изучении языков. Разные производители реализуют МЭК 61131 по разному -- в соответствии со своей коммерческой стратегией. По выращиванию кристаллов. Не знаком с особенностими этого технологического процесса, но верю что всё очень сложно. Особенно в связи с тем, что в плане выращивания лопаток для мощных реактивных двигателей мы очень сильно отстали от запада. Аргументирую тем, что наши авиационные двигатели не проходят требования запада по шуму и экологичности. Этот факт общеизвестен. :( Если установки по выращиванию монокремния востребованы рынком, будем радоваться за тов. Зюбина. Будем надеятся, что вопрос о выращивании лопаток для реактивных двигателей тоже будет интересен и востребован соответствующими организациями. |
||||
С уважением,
Бессонов Ян. |
||||
Действительный член Присоединился: 14 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 267 |
||||
Интересная ссылка... И вот в других аспектах тоже, см. "Delta 1 Year" - т.е. прирост использования (первая цифра - "Ratings" - абсолютный рейтинг, чтоб не заставлять всех лазить по таблице): Perl - 17.8 - +15.9% Python - 3.2 - +66.7% ... выше, чем у: C# - 4.1 - +39.2% - у которого и так необоснованно высокую динамику я бы объяснил только тем, что эта динамика исчисляется от крайне низкой абсолютной цифры 4.1... Awk - 1.4 - +17.5% А чем меня заинтересовали именно эти позиции таблицы? А тем, что они имеют непосредственное, хотя может и не так прямо выраженное отношение к основному предмету разговора: - Perl - Python - Awk - это интерпретирующие языковые системы (хорошо известные и преимущественно используемые в мире UNIX); - в синтаксическом смысле - это языки, которые абсолютно отрицают такие понятия, как контроль типов, структурность и т.д. (хотя в последнем Perl введена даже объектность, но это больше по содержанию, а синтаксически это достаточно притянутая объектность)... - это языки - ориентированы именно на очень быстрое и продуктивное исполнение ПО в специализированных областях, для которых они предназначены (напр. Perl - основан как интерпретирующий! язык системного программирования UNIX, я сам его очень люблю в таком качестве, хотя в последние 5-7 лет он гораздо известнее широкой общественности как яык написания CGI скриптов для HTML). Это в точности соответствует обсуждавшемуся выше - для быстрого и разового исполнения целевого ПО в каждой области (АСУТП в том числе не исключение) разумно иметь и специализированные, в чём то и упрощённые языки решения задач целевой сферы. |
||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
||||
Это не вопрос веры... Пардон, но Ваши предположения о причинах выбора Паскаля, кажутся мне натянутыми... Скорее верится в то, что никакого анализа вообще не проводилось. :-)
Я совершенно с Вами согласен... и постоянно повторяю, что МЭК-языки ориентированы на низкоквалифицированных пользователей и крайне простые алгоритмы. Может таких простых задач и большинство, но сложные задачи это тоже реальность. МЭК 61131-3 создает искусственный барьер между простыми и сложными задачами, а также между узкоспециализированными задачами. Если МЭК об этой проблеме молчит, то он не прав и его нужно поправить... что и сделано в статье.
К сожалению, мы не занимаемся выращиванием лопаток для реактивных двигателей. Мы занимаемся выращиванием монокристаллов кремния методом Чохральского. |
||||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
||||
С тезисом о специализации - полностью согласен, а вот с упрощением нужно быть очень осторожным... Если, скажем, LD что-то и упрощает, то нужно понимать, что он упрощает, и за счет чего, и где у этого подхода ограничения наступают... да, LD достоточно просто изучить, но запрограммировать на нем что-то серьезное - практически невозможно... да и несерьезное невозможно тоже: скажем, тот же ПИД-регулятор... или расчет среднего... и т.п. |
||||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 07 Август 2003 Категория: Russian Federation Online Status: Offline Публикации: 108 |
||||
Анализа не проводилось? Ваш перл похож на чёрный юмор.
Если вы не делали сложных проектов на МЭК 61131, то это не значит, что их ни кто не делает. Опрометчивое и не профессиональное утверждение. |
||||
С уважением,
Бессонов Ян. |
||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
||||
Пока на черный юмор похож только МЭК 61131-3... :-) А если Вам известен такой анализ, то не переливайте из пустого в порожнее, а просто дайте на этот анализ ссылку. С интересом ознакомлюсь.
Разумеется, я не работал со всеми языками МЭК 61131-3. Но для того, чтобы прийти к выводу о нецелесообразности "вкручивания" шурупов молотком, совсем не обязательно проверять это практически... :-))) Хотя, возможно Вы и правы, тема действительно непростая... начиная с вопроса, что такое "сложность"... :-))) Давайте, начнем с простого и будем программировать на LD включение клапана... а потом рассмотрим практические проблемы LD c фиксацией отказов, с повторным использованием, с модифицируемостью... |
||||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 07 Август 2003 Категория: Russian Federation Online Status: Offline Публикации: 108 |
||||
Разумеется я не знаком анализом. Но если стандарт работает, то к чему голосовные утверждения? ищите анализ на http://www.ieee.org Если бы стандарт был не актуален, его ни кто бы не использовал :) и более того, ни кто бы не знал о существовании этого стандарта. Он был бы вытеснен другими реализациями.
LD предназначен для замены уже реально работающих релейных схем на PLC контроллер. Какие же тут проблемы? |
||||
С уважением,
Бессонов Ян. |
||||
Новичок Присоединился: 14 Октябрь 2003 Online Status: Offline Публикации: 25 |
||||
Что бы включить клапан? Управление клапаном идет вроде через дискретный канал В/В. Да в общем не важно через какой канал. Суть не меняется. Всего 4 действия или 7 для управления с таймера (4-действие можно пропустить). 1) Заводим переменную 2) Заводим драйвер для устройства 3) Связываем переменную с драйвером 4) Собираем проект Запускаем в отладке и смотрим меняются ли значения канала при изменении переменной. Естественно меняются. Даже LD не нужно. Значения можно вычислять, если правила простые (на уровне булевой логики)то и в LD, а если сложные то в ST и/или других МЭК языках. При наличии логики вычисления включения, то например по таймеру 5) заводим в FBD таймер 6) задаем значение времени и указываем какой сигнал пускает таймер. 7) привязываем переменную к выходу Q таймера. Все. Я это сделал меньше чем за 5 минут. При этом пришлось заглянуть в документацию по LD. Я LD не пользуюсь, так как ST мне ближе. |
||||
Каждой вещи свое место.
С уважением, VSerg. |
||||
Ответить | Страница <1 2930313233 53> |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |