Средство для программирования контроллера: Си или МЭК 61131? |
Ответить | Страница <1 2728293031 53> |
Автор | ||||||||||||
Новичок Присоединился: 14 Октябрь 2003 Online Status: Offline Публикации: 25 |
Опубликовано: 16 Октябрь 2003 11:07 |
|||||||||||
Как всегда, никаких фактов и примеров. Неадекватен и все. :))) Какие структурные элементы адекватны?
Лучше и хуже это суждения на основе объективных и/или субективных данных. Просто понятия "Лучше и хуже" более широкие и поэтому требуют уточнения. Метакачество. Объективно или субъективно оно вопрос к человеку его применяющему. Например самая первая цитата в данном сообщении. :))
Первый компилятор на Си написан на АСМе. Это не ущемляет возможностей языка СИ? А вообще все компиляторы это машинные команды в исполняемом файле, кроме интерпритируемых языков.
ISaGRAF на СИ. Драйвера и нижний уровень на СИ. Согласен. Средства разработки. Си - компиляторы и нижний уровень. Интерфейсы легче, быстрее и качественнее в С Bilder или Delphi. Алгоритмы управления тех процессом в большинстве случаев - на МЭК. Согласен.
МЭК не предназначен для трансляторов, он для управления тех процессом.
Повторяю компилятор Object Pascal написан на СИ, но компилятор не есть среда разработки. Я слышал, что вы работаете в основном под дос на Си. Я думаю, что для доса это самый правильный выбор. |
||||||||||||
Каждой вещи свое место.
С уважением, VSerg. |
||||||||||||
Действительный член Присоединился: 14 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 267 |
||||||||||||
Гы! (дальнейшие комментарии вообще могли бы быть не нужны). Откуда это вы достали, юноша, этот ... "перл", "откровение"...? Структурность ЯП - это, вообще-то говоря - формальный признак, формализация его (необходимые и достаточные условия) сделана в работах Хоара, Вирта ... прекрасно изложена, например, у Янга "Языки программирования реального времени"... Но уж никак не познаётся из трёпа на форумах - там всё что угодно напишут, вплоть до цитируемого выше... "определения". Но чем только и заинтересовал меня разговор в этой теме - это ж нужно столько страниц форума извести на спор: "структурный - не структурный"... И что ж это структурность вам такого даёт неоценимого? "Структурность" - только способ (один из!) достижения некоторой цели, и всё... |
||||||||||||
Новичок Присоединился: 14 Октябрь 2003 Online Status: Offline Публикации: 25 |
||||||||||||
Да согласен. :) Взглянув со стороны, действительно перл. :) Что дает структурность, как определение, то ничего особенного не дает. Меня он тоже заинтересовал своим объемом. Я работал с ISaGRAF и СТ и высказывания автора мягко говоря не корректны. Как и выяснилось, что в исходники CТ, автор скорее всего не заглядывал. :) |
||||||||||||
Каждой вещи свое место.
С уважением, VSerg. |
||||||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
||||||||||||
Какие еще примеры? 8-) Попробуйте взять реальный алгоритм управления и запрограммировать его на Паскале, Вам все сразу станет понятно. Неадекватен, значит - не позволяет напрямую преобразовать типичный алгоритм логического управления в код программы.
Поскольку Вас забросило в философские рассуждения, нам нужно поработать над дефинициями слов "хуже" и "неадекватно". Насчет адекватности см. выше.
Строго говоря, не обязательно. Может и на Фортране, может и на ПЛ/1, а может и в машинных кодах. В любом случае возможностей языка Си это нисколько не ущемляет. Важно то, что после этого никому в голову не приходит переписывать такой транслятор на Паскале. К вопросу об адекватности языкового средства. :-)))
На каком МЭК? на IL что ли? На этом недоношенном ассемблере? или на LD? ST (ака Паскаль)? FBD? Несомненно, что Си в этом случае гораздо предпочтительнее... Расширьте его проблемной спецификой, подкрепите тонкие места и вперед...
Что?! IL имеет какое-то отношение к тех.процессу? ST имеет какое-то отношение к тех.процессу? Графические языки МЭК? с их убогой метафоричностью? Языки МЭК могут использоваться только для узкого круга алгоритмически крайне примитивных задач. В реальной сложной задаче автоматизации языки МЭК не подходят. В этой ситуации более эффективным решением является программирование на Си, не смотря на все присущие этому подходу минусы.
1. Я понял, что Вы сказали. Теперь Ваша очередь подумать над тем, почему это происходит. Понимание ограничений на применение МЭК-языков придет автоматически. 2. Я не программирую задачи автоматизации на Си, а использую Си-подобный ориентированный на описание задач атоматизации язык. К какой-то операционной системе этот подход вообще не привязан. Сегодня это ДОС, а завтра это Линукс, или Виндовоз, или Кьюникс... или вообще без ОС. В силу проблемно-ориентированности языка (его адекватности классу решаемых задач) у меня нет проблем ни с разработкой, ни с кодированием, ни с сопровождением сложных алгоритмов управления. Одним из результатов использования этого подхода мы имеем оптимальный быстродействию код, который в силу своей сверх-компактности еще и помещается в кэше первого уровня... ;-) Плюс мне не надо засорять голову ни Паскалем, ни Ассемблером... ни остальными языками МЭК-вавилонской башни. |
||||||||||||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
||||||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 29 Сентябрь 2003 Категория: Isle Of Man Online Status: Offline Публикации: 119 |
||||||||||||
http://cliki.tunes.org/C%20language 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. It was designed in the late '70s as a portable assembler for the PDP series (nominally compatible machines but with various word lengths), and it is still the state of the art in that area, although, as a systems programming language, it is more adapted to the PDP-11 than to modern architectures. In the '80s, C (in our opinion wrongly) became the language of choice for general purpose programming. C offers absolutely no particular interest when cut from all its standard compilers and libraries, since you can no longer port existing software http://en2.wikipedia.org/wiki/C_language Although C is usually termed a high level language, it is only a "higher-level" language when compared to assembly language, and is significantly lower-level than most other programming languages.
|
||||||||||||
Новичок Присоединился: 14 Октябрь 2003 Online Status: Offline Публикации: 25 |
||||||||||||
Я думаю, что выбор был обусловлен удобством и быстротой на тот момент, а может и на данный момент тоже. Нельзя же первый компилятор Языка, написать на этом же языке, так как компилятор нужно скомпилировать. Или я не прав. А зачем, что-либо переписывать если оно и так неплохо работает.
:)
И Си не имет отношения к тех. процессу. Это просто достаточно хороший язык программирования.
Не исключаю такой возможности.
Действительно, звучит интересно, а где можно взять, чтобы посмотреть сей Си подобный язык ориентированный на описание задач атоматизации язык. На полном серьезе, хотелось бы взглянуть на него для ознакомления и расширения кругозора. |
||||||||||||
Каждой вещи свое место.
С уважением, VSerg. |
||||||||||||
Действительный член Присоединился: 14 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 267 |
||||||||||||
А что? - если какая-нибудь глупость, сказанная "времён Очакова и покоренья Крыма", изложена латиницей - то это уже авторитет в завершающей инстанции? "Тупые вы, тупые...". [/QUOTE] |
||||||||||||
Действительный член Присоединился: 14 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 267 |
||||||||||||
[QUOTE=Владимир Е. Зюбин]
В этой ситуации более эффективным решением является программирование на Си, не смотря на все присущие этому подходу минусы. [QUOTE] Господа, ваш спор по 15-му кругу уже становится даже не смешным... Вы решили выяснить "хорошие" и "плохие" языки? Так об этом целые книжки написаны и всё давно решено... Да C "матлингвистически" ;-) - хороший язык (достаточно). Только тогда почему С? Есть ряд гораздо более приличных альтернатив, в том числе и для задач управления: начнём с С++, Modula-2 (кстати, "почти" Pascal), Oberon, и, наконец ADA. А любой язык, создаваемый для упрощенчества (для того, чтоб прикладник мог описывать хоть как-то свою область) - он всегда "убогий". См. на этот предмет Э.Дэйкстра (вы хоть кого-то за авторитеты считаете? ;-)) "Открытое письмо в IEEE" - где мэтр всерьёз предлагает "... квалифицировать обучение программированию на BASIC как уголовное преступление..." И всё равно будут находиться люди, работающие и на том, т на другом, и на третьем... |
||||||||||||
Новичок Присоединился: 26 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 22 |
||||||||||||
Я отчасти с Вами согласен, несмотря на то, что Вы, как обычно, не снисходите до аргументации и уточнений ;) Попробую уточнить (как я это понимаю). Собственно, в управлении тех. процессом присутствуют два уровня. 1) Вычислительный процесс, непосредственно управляющий объектом (фильтры, регуляторы и т.п.) 2) Программы управления этим вычислительным процессом, определяющие, какие конкретно алгоритмы первого уровня должны выполняться в данном режиме работы управляемого объекта. Что касается уровня 1, то мэк в лице ST обеспечивает удовлетворительный уровень структуризации (правда, тот же уровень можно обеспечить и любым другим современным процедурным языком :). Хотя для больших проектов отсутствие ООП может быть недостатком, но, в целом, дела не так уж плохи. В качестве уровня 2) предлагается SFC. Вот здесь структурность действительно не на высоте. Сети Петри, может быть, хороши как модели поведения программы (они для этого и создавались), но совершенно непригодны для их НАПИСАНИЯ, поскольку охватить одним взглядом сеть и понять, что она корректно работает и делает то, что нужно, весьма проблематично. Я также не в восторге от идеи использования конечных автоматов, по той же самой причине. Конечный автомат - это программирование с goto. В "обычном" программировании от этого давно ушли (хотя программа, конечно, отображается на автомат, но не всякий автомат соответствует ХОРОШЕЙ СТРУКТУРНОЙ программе). Поэтому на мой взгляд, естественнее было бы писАть управляющие выч. процессом алгоритмы .. на обычном языке, где структуризация сама по себе имеется. Единственно, эти алгоритмы должны выполняться совершенно в другом "реальном времени", чем алгоритмы 1-го уровня. Управляющая программа должна доходить до точки ветвления и приостанавливаться до тех пор, пока одно из условий ветвления не станет истинным. Входя в блок ({} в сишном смысле), она может активировать некоторое количество функциональных блоков 1-го уровня. Они будут работать в другом вемени - приодически, в другой нити (или нитях) ОС. Они будут автоматически деактивироваться при выходе управляющей программы из блока (то есть по "}" в сишном смысле), в котором они были активированы. Разумеется, перед выходом из блока управляющая программа также должна споткнуться на условии, и провисеть на нем некоторое время. В общем, я достаточно хорошо представляю, как это можно было бы реализовать на C++ (если это кому-нибудь надо), разумеется, на многонитевой ОС. Кстати, на нижнем (1-м) уровне ФБД (в метафоричеком или даже прямом смысле) вполне может подойти. Управляющий алгоритм в этом случае занимается определением "активного" подграфа диаграммы. И метафора доктора насчет ленивых вычислений, возможно, также уместна, если ее понимать в смысле автоматического определения "активного" подграфа ФБД, который должен активироваться для обеспечения требуемого набора выходов (или обеспечения входов тех блоков, которое были активированы управляющим алгоритмом явно). Тем самым управляющая программа будет освобождена от подробного перечисления активных функциональных блоков. |
||||||||||||
С уважением,
Дмитрий Теркель |
||||||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
||||||||||||
Опять Вы wikipedia цитируете... :-)
читайте и цитируйте толковые словари, написанные профессионалами, не тиражируйте информационный мусор.
|
||||||||||||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
||||||||||||
Ответить | Страница <1 2728293031 53> |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |