Средство для программирования контроллера: Си или МЭК 61131? |
Ответить | Страница <1 2829303132 53> |
Автор | |||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
Опубликовано: 17 Октябрь 2003 16:09 |
||||||
Наверное надо в шестнадцатый раз сказать, что
искать "хорошие" и "плохие" языки - глупость. :-) Идет работа над тем, что я не понимаю... я такие вещи всегда приветствую, только пока особых успехов в нашей работе не видно... Разве что, я узнал, что ST a la МЭК - это все же структурный язык. Но пока не понял, зачем и кому это нужно... :-)
|
|||||||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
|||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
|||||||
Разумеется первый "прото"-компилятор Си писался не на Си, а на другом языке. От этого "прото"-компилятора на Си до настоящего компилятора на Си дистанция огромаднейшая. И это совершенно отличная ситуация от рассматриваемой, когда транслятор Паскаля пишется на Си при существующем трансляторе Паскаля... и не только про Паскаль тут можно говорить, кстати... Знаете мне надоело, если Вы не признаете выделенное положение языка Си среди других языков третьего поколения, то это Ваши проблемы... надо просто над этим поработать самостоятельно, и все образуется...
Правильно, не имеет... но в области автоматизации и микроконтроллеров Си обладает существенными преимуществами по сравнению с Паскалем... и поэтому в том же ISaGRAF Си является по сути ШЕСТЫМ (!) языком программирования... Глядя на эту бездарность, ничего кроме сравнения с Вавилонской башней на ум не приходит... :-)))
Знакомьтесь, кто Вам не дает? Для этого нужно просто читать журналы и материалы конференций по специальности. С предыдущими версиями, по крайней мере... Описание последней версии планирую в ближайшее время, обязательно сообщу. |
|||||||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
|||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
|||||||
К чему аргументировать очевидные вещи? Хотя, по-видимому, Ваша критика справедлива... анализ текущего состояния в области средств описания управляющих алгоритмов объектов автоматизации и циркулирующих в среде специалистов мифологем показывает, такие вещи, следует аргументировать...
В основном согласен... в частности, про то, что наиболее адекватным рассматриваемым задачам является пара SFC+ST... можно лишь дискутировать на темы: а) нужно ли для рассматриваемого класса задач ООП, б) конечный автомат - это программирование с гоу-ту, в) насколько плох гоу-ту, вообще. Последнее так, промежду прочим, к основной теме не относится, но тем не менее... Можно также согласиться, что одним конечным автоматом типичный алгоритм управления крайне сложно описать... мы описываем алгоритмы как гипер-автомат - совокупность взаимодействующих автоматов... и вот тут-то уже (как я убежден) мы можем давать фору любому средству... SFC+ST по равнению с гипер-автоматом - это ползающий ужик...
Ну что ж Ваше описание того, что должно быть, очень близко к тому, что творится в языке Reflex. Разве что, сделано это без привлечения средств ОС и на Си. |
|||||||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
|||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 29 Сентябрь 2003 Категория: Isle Of Man Online Status: Offline Публикации: 119 |
|||||||
C language The most common modern systems programming language to date, by Brian Kernighan and Dennis M. Ritchie (K&R). It's low-level, and the typing is rather weak. Olej А что? - если какая-нибудь глупость, сказанная "времён Очакова и покоренья Крыма", изложена латиницей - то это уже авторитет в завершающей инстанции? С чем конкретно не согласны, и почему? Эмоциональных реакций в ветке более чем достаточно, но с аргументацией у многих проблемы. "У вас есть технические соображения (озарения?) - излагайте" (с) ;-) |
|||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 29 Сентябрь 2003 Категория: Isle Of Man Online Status: Offline Публикации: 119 |
|||||||
evgen В переводе на простой русский язык - контроллер - это фиговина, которая занимается управлением других фиговин и может иметь размер от мелкой микросхемы до неслабого шкафа. По-вашему, наверное, если компьютер "управляет другими фиговинами" - он уже не компьютер, а контроллер? Функционально-то может и так, но по здравому смыслу компьютер и контроллер - не совсем одно и то же. Скажем, в Вашей системе лазерной резки, где все (?) управляется компьютером (персоналкой?), называть его контроллером - большая натяжка. Персоналка может этим управлять, но автоматически контроллером она от этого не станет, останется компьютером. evgen Ну кто вам доктор, если вы сужаете область АСУТП до уровня ПЛК, а потом кричите "не могу" ? Я разделяю компот и мух. Компьютер (в т.ч. используемый в АСУ ТП) программируйте на чем угодно, в т.ч. и на сях. Контроллер (т.е. ПЛК, или надежная "фиговина, которая занимается управлением других фиговин") предпочтительно программировать на МЭК-языках. Посмотрев профили участников, выступающих в этом треде "за С и против МЭК", нетрудно убедиться, что все они используют не контроллеры, а компьютеры. Причины разные, у меня лично впечатление сложилось такое: -- Система лазерной резки. Желание одного из авторов системы поделиться опытом и, возможно, услышать критику такого подхода, вполне понятно и более чем похвально. Впрочем, понятна и защитная реакция в ответ на потенциальный "подрыв основ" конкретно этой системы. -- Система выращивания кристаллов -- Установки гальванического покрытия
|
|||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
|||||||
Язык Си всегда является языком высокого уровня, т.е.
языком, не связанным с архитектурой вычислительной платформы. Неаргументированность в данном случае - цитировать wikipedia - сборник курсирующих в полупрофессиональной среде мифологем... Сколько раз Вам можно повторять, чтобы Вы пользовались толковыми словарями, составленными профессионалами?!
|
|||||||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
|||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
|||||||
Я вот за себя отвечу. Работа по созданию
автоматизированной установки выращивания монокремния была не НИРовская, а ОКРовская. В настоящее время эти установки в модернизированном варианте выпускаются партиями. Идут переговоры о поставке подобных установок за рубеж. Язык Reflex, использованный при выполнении договора - это отдельная разработка. А прежде, чем его огульно критиковать и "вшивать" окружающим о технологичности использования ассемблера, Паскаля и прочих языков МЭК, настоятельно рекомендую почитать про свойства языка в трудах "некому не нужных конференций". :-) Кстати, и о задаче выращивания высокосовершенных материалов почитайте в журналах... несете, пардон, полную ахинею... да еще и скрывшись за ником, который ничего кроме Ваших претензий не отражает... :-)
|
|||||||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
|||||||
Действительный член Присоединился: 14 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 267 |
|||||||
Я конкретно не согласен вот с тем упрощённым толкованием C как low-level tool. Если это в какой-то мере и соответствовало намерениям Кернигана и Ритчи времён разработки языка, то после такого активного принятия его программистскими community - было столько опубликовано и обсуждено стилей и приёмов его применения в высокоуровневых целевых системах. Я вообще последние сколько-то-там лет сознательно работаю с С++ - даже в тех случаях, когда пользую его только как диалект С. С позиций областей использования, их - С/С++ - не следует и разделять, рассматривая С++ как расширенный диалект С, и естественное направление его расширения... И вправду: что есть в С++, чего нет в С? Здесь сразу можно услышать "хор" ответов наперебой: - объектность и классы... со всем вытекающими конструкциями; - template и шаблоны описания... , а далее - STL etc.; - catch - try обработка исключительных ситуаций; - ... ещё чего? ;-) Я, понаписывав много и в С и в С++ - я смотрю на это так, что всё перечисленное - мало принципиально, это именно эволюционные расширения С, конечно открывающие безумные возможности... Объектность - она не в языке, она в голове (помните: "разруха начинается не в сортирах, а в головах"(с) - здесь та-же история ;-)). Я видел безумно "объектный" по своей архитектуре код, выписанный на классическом С, чтоб не быть голословным - этот пример: GUI подсистема Photon в OS QNX, или точнее - её библиотеки. Единственное принципиальное отличие С++, делающее его "просто другим языком" в отличии от С - это жёсткая система типизации, да ещё не структурная (как в Pascal или Algol-68) - а именная (как в Modula-2 или ADA). Кстати, если уже затронул - здесь делались достаточно жёсткие нападки на Pascal... А напрасно. Pascal делался Н.Виртом совсем для других целей - как язык обучения, и сам был сильно удивлён его распространением в промышленных разработках... Кроме того, со слов того же Вирта - язык делался определённо для описания специфических прикладных областей, а уж никак не системного программирования. Так что не нужно на него "примерять" и требовать от него то, чему он не предназначен. А потом учтите ещё просто то, что техника С-программирования гораздо больше и шире "обкатана", чем техника Pascal-программирования: литература, описания, фрагменты, примеры и т.д. Это вообще не имеет отношения к "качеству" выразительных средств языка... - так сложилось. Может не в последнюю очередь, потому как тот-же широко известный компилятор GCC изначально делался под разные платформы (процессоры), и на сегодня их поддерживает добрые полтора десятка... И ещё. Об Pascal-евской линии языков. Сразу же после разработки Pascal, Н.Вирт разрабатывает последовательно целую линию, гораздо более похожих на языки не учебные, а для практики разработки: Modula, Modula-2, Oberon... Вот Modula, например (не "2", а "1" ;-)) - как раз чуть ли не идеальное средство для написания ПО контроллеров, embedded оборудования... работающего практически без нужды поддержки OS... Но так уж получилось, что эти средства не были приняты широкой общественностью и не привлекли должного внимания. P.S. Там говорили: на чём писались те или иные компиляторы? Я не понял, какое это вообще имеет значение. Но одна из самых известных и красивых реализаций Pascal была через p-код, если кто помнит такой проект. Так вот он делался так: - первично был создан "инвалидный" Pascal компилятор, который реализовывал только самый базовый минимум возможностей Pascal; - потом на протяжении многих лет существования проекта - всяк новый компилятор Pascal версии N - прописывался на Pascal и компилировался версией N-1; - и это была широко используемая по миру реализация, на которой реально делались многие прикладные проекты... |
|||||||
Действительный член Присоединился: 14 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 267 |
|||||||
Вот здесь заключено то сакраменталное зерно, которое приводит к взаимному непониманию участников разговора на протяжении уже 29-ти страниц обсуждения :D. Абсолютно так, как вы говорите, дело обстояло ещё 3-5-7 лет назад...
А почему, собственно... Границы понятий смещаются. Давайте я вам расскажу "свою историю", вовсе не для того, чтоб похвастаться "конкретикой", как принято в многих форумных обсуждениях, а чтоб изложить некоторые свои выводы... А вы возразите. ;-) Я когда-то начинал свою "разработческую" деятельность (это была моя 1-я работа) - в проекте первой в СССР системы автоматического управления пуском-остановом турбин АЭС, делавшимся Министерством Общего Машиностроения (кто знает - было такое весёлое место ;-)). Уже тогда "от мОлодежи" был альтернативный эскизный проект - на микроконтролерных секциях К589... но основной проект потянули на жёстко реализованной логике алгоритмов на К134 (чтоб представляли уровень интеграции). И сделали - такой контроллер в 2-х полноразмерных стойках. И это был удачный проект - потом, неоднократно делая новые версии "изделия" - его лет 15 продавали в экспортные контракты по строительству станций и поставке турбин. В том проекте я работал чисто как схемотехник, т.е. область эта мне ... если не "известна", то "была известна". После этого я для себя вынес убеждение, что предпочтительнее программные реализации... Было много проектов для ВПК, тематика - не важна, но во всех них я работал "бок-о-бок" с классными аппаратными разработчиками микропроцессорной схемотехники, для которой я писал ПО. Последние несколько лет я делаю такое-же realtime ПО, но уже на другой основе: пром-PC под управлением OS QNX. Посмотрите номенклатуру оборудования хотя бы того же форм-фактора PC-104+ ... Например на том же сайте Prosoft (или "Ниеншанц Автоматик" - чтоб меня не обвинили в рекламе ;-)). Те же модели от Liperth (может я и неправильно написал, но смотреть лень и негде под рукой, а вы поймёте об чём речь). Чем это не "контроллер" в привычном восприятии?: размер, конструктив, климатика... Почему не предпочтительнее применять такое изделие и на низовом уровне сбора и обработки данных? В плюсах: - унифицированные средства разработки ПО, соответствующие стандарту POSIX; - OS реального времени QNX, которая даёт вашему приложению базис API, составляющий до 50-70% процентов объёма по сравнению с автономным исполнением; - отличная климатика применительно к к конечному изделию - если микросхема специализированного контроллера допускает 100g & -40...+85, то попробуйте ещё "вытянуть" эти характеристики на "обвязке", печатной плате и т.д. Что в минусах? Только стоимость! Да и то: - стоимость prom-PC оборудования стремительно падает, гораздо быстрее, чем универсального компьютерного оборудования, где уже произошло насыщение; - в ряду тех же PC-104 можно подобрать вполне адекватные задаче образцы в пределах $150; - в сравнении с $20-$50 это может и смущать попервах, но пересчитайте в конечное изделие: обвязка, работа схемотехника, конструктивы, печатные платы... сколько? - и то, что почти никогда не считают в стоимость: разработка ПО на стандартах POSIX. - но и это ещё не всё - а стоимость, сохранённая на рекламациях и авариях - когда ПО стоит на стандартизованном и предсказуемом в поведении фундаменте? И я это описал не умозрительно - последние несколько работ выполнялись именно так: "лучше поставить N PC в промисполнении, от низового уровня до верхних". И показали продуктивность подхода. [QUOTE=Доктор Q] Я разделяю компот и мух. Компьютер (в т.ч. используемый в АСУ ТП) программируйте на чем угодно, в т.ч. и на сях. Контроллер (т.е. ПЛК, или надежная "фиговина, которая занимается управлением других фиговин") предпочтительно программировать на МЭК-языках. [QUOTE] Так что, может, не стоит всегда спешить так категорично "разделять компот и мух"? А вот об предпочтительности ПО... Тут есть ещё один фактор: тиражность изделия. - если делается достаточно тиражное изделие, то, наверное, при прочих равных, лучше поручить разработку ПО профессионалам именно этого дела: на С, С++, ADA ... чём хотите из числа "универсальных языков программирования" (вот эта "универсальность" - не пустое слово). Такая реализация по своим ТТД будет гарантированно выше. - а вот если делается единичная или штучно-тиражная АСУТП... вот тут есть повод подумать об специализированных средствах типа МЭК - разработку осилят и менее "программисты", но специалисты, лучше понимающие технологическую сторону управляемых процессов. |
|||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
|||||||
Ваша позиция мне достаточно близка, особенно я
порадовался Вашему утверждению, что Си++ - это просто диалект Си, т.к. сам так считаю, да и Reflex рассматриваю, как тоже один из диалектов Си... Просто вставлю пару ремарок в двух местах: 1. Никто на Паскаль не нападал. Критиковался его выбор в качестве базы для одного из языков МЭК-стандарта. Выбор в качестве основы Си выглядит куда более предпочтительным... и именно в силу специфики Си. 2. Насчет трансляторов, что на чем пишется: факт использования Си в качестве базового языка для написания транслятора с Паскаля рассматривался в рамках дискуссии о правомерности выбора Паскаля в качестве основы для МЭК-ST. Этот факт означает то, что с Паскалем (как языком третьего поколения) не все так гладко как хотелось бы... Более того, не побоюсь высказать крайне дискуссионную мысль: факт использования Си как языка трансляции Паскаля говорит о том, что Паскаль это, скорее, уже умирающий язык. :-(
|
|||||||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
|||||||
Ответить | Страница <1 2829303132 53> |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |