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

Средство для программирования контроллера: Си или МЭК 61131?

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


Присоединился: 07 Август 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 108
Свойства публикации Свойства публикации   Ответить, цитируя автора - bessonov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Средство для программирования контроллера: Си или МЭК 61131?
    Опубликовано: 02 Октябрь 2003 12:17
Первоначально опубликовано Владимир Е. Зюбин

На самом деле без разницы, кто будет переносить ISaGRAF
на новое железо... владельцы ли ISaGRAF, или, как говорит,
Бессонов, НАУЦИЛУС или еще какой-нибудь... Важно то, что это дело
рядовому конечному пользователю НЕ ПО СИЛАМ.

Важно то, что пользователь может легко залить свой проект на Линукс, QNX и др. ОС.
С уважением,
Бессонов Ян.
Наверх
Доктор Q Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 29 Сентябрь 2003
Категория: Isle Of Man
Online Status: Offline
Публикации: 119
Свойства публикации Свойства публикации   Ответить, цитируя автора - Доктор Q Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 02 Октябрь 2003 14:09

A program which executes other programs. This is in contrast to a compiler which does not execute its input program (the "source code") but translates it into executable "machine code" (also called "object code") which is output to a file for later execution

Владимир Е. Зюбин Ну и как, интересно, Вы это перевели?! 8-)

Интерпретатор - программа, которая производит исполнение других программ. В отличие от компилятора, который не исполняет свою исходную программу ("исходный текст"), а транслирует ее в исполняемый "машинный код" (еще называемый "объектным кодом"), который выводится в файл для последующего исполнения.

Вполне приличное объяснение для "чайников". Оно, конечно, не учитывает таких нюансов как трансляция в промежуточный код, не указывает что результат трансляции не обязан выводиться в файл, а может использоваться иным способом, и т.п.

Но, по крайней мере это определение не выдвигает пресловутого глупого требования, чтобы интерпретатор сначала транслировал код, а уж потом его исполнял.

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


Присоединился: 29 Сентябрь 2003
Категория: Isle Of Man
Online Status: Offline
Публикации: 119
Свойства публикации Свойства публикации   Ответить, цитируя автора - Доктор Q Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 02 Октябрь 2003 14:20

Доктор Q Адаптацию ISaGRAF на новое железо (т.е. установку run-time) в большинстве случаев будет производить не CJ International (ныне ICS Triplex), а сам производитель железа, который купит ОЕМ лицензию у ICS Triplex. Возможно, ICS Triplex предоставляет и такой сервис как постановку  run-time на железо заказчика, но это за отдельные деньги

Владимир Е. Зюбин  [...] Увы, но Ваше предложение нереально

:-) В цитируемом Вами абзаце я, собственно, ничего не предлагал. Я просто проиллюстрировал, насколько высказываемые Вами мнения далеки от реальности.

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


Присоединился: 29 Сентябрь 2003
Категория: Isle Of Man
Online Status: Offline
Публикации: 119
Свойства публикации Свойства публикации   Ответить, цитируя автора - Доктор Q Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 02 Октябрь 2003 15:03

Владимир Е. Зюбин http://www.iae.nsk.su/~zyubin/iec1131.htm

Ну что ж, можно подвести итоги.

В своей статье автор продемонстрировал поверхностное понимание основ вычислительной техники (см. про препроцессор, интерпретацию и компиляцию). Анализ материала в статье проведен с пропусками и натяжками (см. "два оправдания использования IL"). В статье содержатся неточные формулировки и ряд фактических ошибок (про IL,  и др).  С историей развития PLC автор, судя по всему, совсем не знаком (см. про Siemens, и др). Некоторые высказывания автора являются абсурдными (см. о "необходимости" единого графического интерфейса). Список можно продолжить. 

Учитывая сказанное, совсем неудивительно, что за время, прошедшее с момента публикации, выводы и прогнозы, сделанные автором,  не оправдались.

На конструктивную критику автор, к сожалению, реагирует недостаточно адекватно. "Пойманный с поличным" на ошибках, он периодически пытается хамить. Однако в его оправдание можно привести тот довод, что многие, окажись на его месте, вели бы себя не лучше.

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


Присоединился: 29 Сентябрь 2003
Категория: Isle Of Man
Online Status: Offline
Публикации: 119
Свойства публикации Свойства публикации   Ответить, цитируя автора - Доктор Q Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 02 Октябрь 2003 16:06

Теперь можно вернуться к функциональным языкам

Дмитрий Теркель По традиции функциональными языками называют языки, в той или иной степени основанные на лямбда-исчислении Черча.

Простая вещь. Чтобы было немножко понятнее что это такое, цитата из http://www.jetcafe.org/~jim/lambda.html
The Church-Rosser Theorem states that the final result of a chain of substitutions does not depend on the order in which the substitutions are performed.

Теорема Черча-Россера утверждает, что конечный результат замены не зависит от порядка, в каком замена производится.

В материалах www.latrobe.edu.au/philosophy/phimvt/joy/forth-joy.html приводится пример, и говорятся примечательные слова:

[...]is known as a lambda abstraction. Almost all programming languages use such a construct at least implicitly.

Их отличает по крайней мере такие черты:
1) Передача в качестве аргументов функций других функций (где это в мэках?).

Там же, в http://www.latrobe.edu.au/philosophy/phimvt/joy/forth-joy.html сказано:

The language Joy is a purely functional programming language. Whereas all other functional programming languages are based on the application of functions to arguments, Joy is based on the composition of functions.

То есть, указанное Вами свойство не является обязательным, можно по разному делать.

Строго говоря, FBD сам по себе не обладает этим свойством. Однако, вкупе с редактором блоков (который обычно входит в комплект средств разработки) - обладает. При условии, что редактор позволяет создавать новый функциональный блок на уснове ранее созданных, в т.ч., созданных пользователем.

Если это условие выполняется, то полная система FBD полностью удовлетворяет перечисленным Вами критериям.

 

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


Присоединился: 26 Сентябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 22
Свойства публикации Свойства публикации   Ответить, цитируя автора - Дмитрий Теркель Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 02 Октябрь 2003 17:33
Первоначально опубликовано Доктор Q

<FONT face="Courier New, Courier, mono" color=blue size=1><SPAN class=bold>Теперь можно вернуться к функциональным языкам</span>


<FONT color=blue size=1><SPAN class=bold><SPAN class=bold>Дмитрий Теркель </span></span>По традиции функциональными языками называют языки, в той или иной степени основанные на лямбда-исчислении Черча.


Простая вещь. Чтобы было немножко понятнее что это такое, цитата из http://www.jetcafe.org/~jim/lambda.html
The Church-Rosser Theorem states that the final result of a chain of substitutions does not depend on the order in which the substitutions are performed.


Теорема Черча-Россера утверждает, что конечный результат замены не зависит от порядка, в каком замена производится.



Сама по себе теорема Черча-Россера не имеет отношения к нашему вопросу. Но раз уж ее упомянули ..
В приведенном отрывке нужно понимать, о каких заменах идет речь в теореме Черча-Россера. Лямбда исчисление - это исчисление, то есть некий формальный язык с правилами вывода, позволяющих получать из одних предложений языка эквивалентные им предложения. В лямбда-исчислении соответствующее правило вывода называется редукцией
и звучит как

(\x P) Q редуцируется к P[x->Q]

(здесь \ заменяет греческую "лямбда", а P[x->Q] означает подстановку Q вместо всех вхождений переменной x в выражение P)
К сложным выражениям можно применять это правило несколькими способами (грубо говоря, найдя там несколько "подходящих фрагментов"), и , таким образом, получить из исходного выражения A некие различные выражения A1 и A2.
Теорема утверждает, что, даже если так случилось, оба этих выражения можно дальше редуцировать к некоему четвертому (общему для обоих) выражению B.
Я опять же не понимаю связь этой теоремы с нашими проблемами (в FBD нет никакого исчисления, то есть правил преобразования одних диаграмм в другие). Дух Черча с Россером не стоит тревожить понапрасну. А то приснятся еще.. :))

Первоначально опубликовано Доктор Q


В материалах www.latrobe.edu.au/philosophy/phimvt/joy/forth-joy.html приводится пример, и говорятся примечательные слова:


[...]is known as a lambda abstraction. Almost all programming languages use such a construct at least implicitly.


Их отличает по крайней мере такие черты:
1) Передача в качестве аргументов функций других функций (где это в мэках?).


Там же, в http://www.latrobe.edu.au/philosophy/phimvt/joy/forth-joy.html сказано:


The language Joy is a purely functional programming language. Whereas all other functional programming languages are based on the application of functions to arguments, Joy is based on the composition of functions.


То есть, указанное Вами свойство не является обязательным, можно по разному делать.



На этом основаны по крайней мере ML, Miranda (которая использовалась в оригинале упоминаемой Вами статьи Хьюза), Haskell (который использовалься в ее русском переводе). Применение функций к функциям - это общее место и, в общем, изюминка функционального программирования, без которой существование этого термина (как ТЕРМИНА, а не словосочетания) вообще не было бы оправдано.

Первоначально опубликовано Доктор Q


<FONT color=#000000>Строго говоря, FBD сам по себе не обладает этим свойством. Однако, вкупе с редактором блоков (который обычно входит в комплект средств разработки) - обладает. При условии, что редактор позволяет создавать новый функциональный блок на уснове ранее созданных, в т.ч., созданных пользователем.


<FONT color=#000000>Если это условие выполняется, то полная система FBD полностью удовлетворяет перечисленным Вами критериям.


<FONT color=#000000>



[/QUOTE]

Доктор, мы поняли, что Вы имели ввиду, назвав ФБД функциональным ;). Но этот термин ЗАНЯТ. Еще раз повторю, лучше оставить его в покое, тем более, что эти терминологические изыскания не добавляют ничего к нашей дискусссии.

PS. Все же придется неформально пояснить сущность лямбда-абстракции. А то Черча -Россера, Хиндли-Милнера, Карри-Ховарда .. так мы далеко зайдем :))))

Пусть есть функция, скажем, о трех аргументах f(x,y,z)
Тогда запись \x f(x,y,z) (слэш заменяет букву "лямбда")
означает функцию ОДНОГО аргумента x , ПАРАМЕТРИЗОВАННУЮ
значениями y и z. Лямбда-абстракция как раз и употребляется при передаче функции в качестве параметра другим функциям. При этой передаче часть аргументов передаваемой функции может быть уже известна, и лямбда-абстракция позволяет частично "зарядить" аргументами еще не вызванную функцию, и передать ее "как вещь" дальше. А там, дальше, скормить ей оставшиеся аргументы и , наконец, вызвать. В си, например, такой возможности нет. Там есть указатели на функцию, которые можно передавать как аргументы (си в этом смысле "функционален"). Но в Си нельзя передать указатель на функцию вместе с НЕКОТОРЫМИ уже известными в момент вызова параметрами. И в ФБД нет. И вряд ли будет.
Понятно также, что если мы не собираемся передавать функции как аргументы (то есть как "вещи"), смысл лямбда-абстракции теряется. А если собираемся, то только она позволяет сделать это максимально гибко.

С уважением,
Дмитрий Теркель
Наверх
Владимир Е. Зюбин Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 09 Сентябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 247
Свойства публикации Свойства публикации   Ответить, цитируя автора - Владимир Е. Зюбин Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 02 Октябрь 2003 18:01
Я вполне допускаю, что IL-подобные языки используются и
еще кем-то... Но наиболее известное употребление IL
- это STEP5 Сименса, оттуда и растут ноги
IL в стандарте... Уверяю Вас, это не я придумал... :-)
Сходите на какую-нибудь профессиональную конференцию
и убедитесь в этом сами...

Тот факт, что Сименс использует IL - очевиден, об
этом и в статье пишется. Что Вы хотите сказать
повторяя эту банальность мне неясно. То, что Вы
говорите о внутренней кухне UL - это подтверждение
моих слов. Что Вы хотели сказать о ISaGRAF - неясно.

Вот кратко тезис статьи, относительно IL:
Программировать логику работы ПЛК на ассемблеро-
подобном языке, не являющемся Ассемблером
целевой платформы - ИДИОТИЗМ.

Какие тут могут быть возражения?! :-)
Разве что вызванные непониманием слова "ассемблер"...
Есть проблемы? - Вам уже давалась ссылка на
толковый словарь... нужно только английский
подтянуть... ;-)

Первоначально опубликовано Доктор Q

1. Я нигде не утверждал, что IL придумал Siemens.


Разве? Не стоит отнекиваться. Как тогда изволите понимать следующее Ваше утверждение:


IL (Instruction List) - текстовый язык низкого уровня. Выглядит как типичный язык Ассемблера, что объясняется его происхождением: для некоторых моделей ПЛК фирмы Siemens является языком Ассемблера


2. Вы и сами подтверждаете, что IL - это ассемблер одного из сименсовских контроллеров.


Даже не одного. Только не IL, а STEP5. Сименс - не более чем общеизвестный пример, однако можете быть уверены, что другие производители PLC тоже зашивали свои варианты IL в железо.


. Вы о чем говорите, когда утверждаете, что "Традиционно FBD и LD транслируются именно в IL, вернее,
в байт-код IL."? Кем транслируется? Где? В ISaGRAF?

Например, в STEP5 и в STEP7 транслируется.


Форматом исполняемого кода ISaGRAF я пока не интересовался. Это более новая система, потому не удивлюсь, если они использовали FVM в качестве виртуального процессора.


В UltraLogik?


Ультралоджик транслирует в нативный код. Этим он отличается от большинства систем для PLC.

Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК
http://reflex-language.narod.ru/
Наверх
bessonov Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 07 Август 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 108
Свойства публикации Свойства публикации   Ответить, цитируя автора - bessonov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 02 Октябрь 2003 18:09
Первоначально опубликовано Владимир Е. Зюбин


Вот кратко тезис статьи, относительно IL:
Программировать логику работы ПЛК на ассемблеро-
подобном языке, не являющемся Ассемблером
целевой платформы - ИДИОТИЗМ.

Какие тут могут быть возражения?! :-)


Почему ИДИОТИЗМ?
А как же межплатформенная переносимость?
С уважением,
Бессонов Ян.
Наверх
Владимир Е. Зюбин Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 09 Сентябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 247
Свойства публикации Свойства публикации   Ответить, цитируя автора - Владимир Е. Зюбин Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 02 Октябрь 2003 18:30
Первоначально опубликовано bessonov

Первоначально опубликовано Владимир Е. Зюбин

На самом деле без разницы, кто будет переносить ISaGRAF
на новое железо... владельцы ли ISaGRAF, или, как говорит,
Бессонов, НАУЦИЛУС или еще какой-нибудь... Важно то, что это дело
рядовому конечному пользователю НЕ ПО СИЛАМ.

Важно то, что пользователь может легко залить свой проект на Линукс, QNX и др. ОС.


Как пользователь может "залить" проект, если он портировать
ISaGRAF не в состоянии!? Это отдельная работа, отдельные
средства, дополнительный головняк с отладкой... Кто НАУЦИЛУСУ
платить будет? Товальдс что ли? Ой, не уверен.
с Си-то в этом смысле проблем гораздо меньше.

Да даже если случится чудо и пользователь найдет
для своей МЭК-системы свой НАУЦИЛУС, который задаром
все портирует, проблемы-то этим не заканчиваются...
например, читаю в ветке "Форум СТА : Программное
обеспечение"... глас вопиющего в пустыне (поиск драйвера
платы UNIO):
http://forum.cta.ru/forum_posts.asp?TID=123&PN=1
шесть просмотров, нуль ответов... кто будет драйверы для
всего-чего-на-свете-ни-есть в ISaGRAF портировать?
Опять НАУЦИЛУС? Или может быть А.С.Пушкин?
За какие бабки?

Не-а... слишком мягко стелите... :-)
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК
http://reflex-language.narod.ru/
Наверх
bessonov Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 07 Август 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 108
Свойства публикации Свойства публикации   Ответить, цитируя автора - bessonov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 02 Октябрь 2003 18:41
Первоначально опубликовано Владимир Е. Зюбин

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

Первоначально опубликовано Владимир Е. Зюбин

На самом деле без разницы, кто будет переносить ISaGRAF
на новое железо... владельцы ли ISaGRAF, или, как говорит,
Бессонов, НАУЦИЛУС или еще какой-нибудь... Важно то, что это дело
рядовому конечному пользователю НЕ ПО СИЛАМ.

Важно то, что пользователь может легко залить свой проект на Линукс, QNX и др. ОС.


Как пользователь может "залить" проект, если он портировать
ISaGRAF не в состоянии!? Это отдельная работа, отдельные
средства, дополнительный головняк с отладкой... Кто НАУЦИЛУСУ
платить будет? Товальдс что ли? Ой, не уверен.
с Си-то в этом смысле проблем гораздо меньше.

Да даже если случится чудо и пользователь найдет
для своей МЭК-системы свой НАУЦИЛУС, который задаром
все портирует, проблемы-то этим не заканчиваются...
например, читаю в ветке "Форум СТА : Программное
обеспечение"... глас вопиющего в пустыне (поиск драйвера
платы UNIO):
http://forum.cta.ru/forum_posts.asp?TID=123&PN=1
шесть просмотров, нуль ответов... кто будет драйверы для
всего-чего-на-свете-ни-есть в ISaGRAF портировать?
Опять НАУЦИЛУС? Или может быть А.С.Пушкин?
За какие бабки?

Не-а... слишком мягко стелите... :-)


Ни чего не стелю.

Как понять "для своей МЭК-системы" ?
С уважением,
Бессонов Ян.
Наверх
 Ответить Ответить Страница  <1 1617181920 53>

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

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