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

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

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


Присоединился: 09 Сентябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 247
Свойства публикации Свойства публикации   Ответить, цитируя автора - Владимир Е. Зюбин Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Средство для программирования контроллера: Си или МЭК 61131?
    Опубликовано: 22 Октябрь 2003 15:51
Спасибо за напоминание. Согласен абсолютно.

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

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

Поскольку мы с Вами согласны, что описываемые Вами клоны Си, в частности понятие моделей памяти, не являются стандартными в Си, то мое исходное утверждение остается в силе... Лично я far и near не использую, впрочем, не вижу ничего зазорного использовать эти возможности в заведомо аппаратно-зависимых приложениях...

Да не зацикливайтесь вы на этих платформенно зависимых дополнениях языковых средств, в частности far & near - ну нет их, нет! в стандарте языков - это только чисто реализационные добавки (всё тот же DOS Borland C 3.1), навязанные ограничениями конкретной платформы x86 real mode!


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


Присоединился: 14 Октябрь 2003
Online Status: Offline
Публикации: 25
Свойства публикации Свойства публикации   Ответить, цитируя автора - VSerg Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 22 Октябрь 2003 16:18
Первоначально опубликовано Владимир Е. Зюбин


Что Вы мне толкуете про функциональные блоки, написанные на том же Си? Давайте говорить про LD.


А то ахинея какая-то получается, понаписали блоков на
Си, вставили в LD возможность их использовать и теперь
утверждаете, что LD это "крутой" язык... Вызвать функцию на Си я и на Си могу... гораздо проще и никакой ISaGRAF
покупать не надо... 8-)

Давате уж отделять, как тут постоянно повторяется, мух
от котлет.

Моя-то позиция простая: LD - это отдельный и
самостоятельный язык стандарта МЭК 61131.3, концепция
заложенная в LD - крайне примитивна, на LD невозможно
написать практической программы без использования
инородных элементов, а эти инородные элементы на LD
создать практически невозможно. С чем Вы тут не
согласны? 8-)


Вы меня паражаете.
Еще раз приведу название темы "Тема: Средство для программирования контроллера: Си или МЭК 61131?", так как ваши слова:"мы обсуждаем не МЭК, а LD" меня удивили.
Вы вроде сначала il обсуждали, затем кинули и перешли на ST, теперь LD.
Хочу Вам подсказать, что изучение предмета путем его разделения на части не всегда приводит к правильным ответам.
Качество системы или продукта не всегда равно суперпозиции его частей. Вы совершенно правы в утверждении " LD - это отдельный и
самостоятельный язык стандарта МЭК 61131.3", но сильно ошибаетесь считая, что раз он отдельный и самостоятельный в МЭК, значит его нужно использовать для всех задач автоматизации. LD для конкретных задач, как и все остальные языки МЭК 61131.3 и только их совокупность является почти минимальным базисом. Почти, так как избыточность все же есть. Интересно. Вот храняться у вас на контроллере исторические данные + интерфейс оператора + тревоги + работает механизм горящего резервирования, то что произойдет если контроллер выйдет из строя?? Как просмотреть что с ним произошло, причины и т.д. где дублирование информации??? А вы всему форуму втираете, что это нормально. Я думаю, что уже на 5-6 контроллерах, при синхронизации их работы и обмене данными между ними на СИ вы просто умрете.

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


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

http://burks.brighton.ac.uk/burks/pcinfo/progdocs/cppcrit/index.htm

Выдержки из 5. Conclusion

C++ is complex including too many constructs to overcome problems with itself and C, while lacking sophisticated mechanisms such as garbage collection, global analysis and automatic optimisations. C is thought of as being a simple language; but this is doubtful, as it has many operators, and a difficult precedence system. C's pointer style of programming is low level and difficult. Overall, C has many traps that lead to difficult to detect errors in software. Now C++ as a language is looking like the equivalent of computers of the 1950s, with large knobs, dials and patch panels; the C++ equivalents being pointers, structures, unions, #defines , etc., all of which have no place in a modern OO language, and are not in Java and Eiffel.

Compared to other OO languages, C++ looks more and more like an anachronism. C++ is now impeding the progress of the programming technology.

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


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

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

Опять повторюсь, при этом все решения должны приниматься
и отрабатываться локализовано, а не быть разбросаны по
системе.

Плюс программа должна сохранять гибкость,
модифицируемость, иметь адекватную наглядную структуру,
позволять общаться с заказчиком в терминах тех.процесса,
а не реле и микросхем 2И-НЕ и т.д. и т.п.

Это и есть по моему мнению современный уровень
автоматизации, принципиально недостижимый средствами МЭК.

Первоначально опубликовано Дмитрий Милосер

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

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


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


Т.е. еще раз - FBD, LD и пр. и диагностика, алармы и пр. "навороты" - не одно и то же.


 

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

Присоединился: 14 Май 2003
Online Status: Offline
Публикации: 770
Свойства публикации Свойства публикации   Ответить, цитируя автора - Максим Ананских Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 22 Октябрь 2003 18:26

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


- это - особенности машинного представления, не имеющие никакого отношения к языкам: нечто аналогичное можно написать на любом языке, поддерживающем указатели, том же Pascal..., более того - на языке, вообще не имеющего понятия "указатель", а только ссылки - Java, напр.

Это уже становится интересным... Как справедливо заметил тут один товарищ, я совсем не разбираюсь в языках, и с трудом себе представляю, как такую штуку реализовать на паскале, не пользуясь расширениями типа hi и lo. Но на Java... Вы не могли бы привести примерчик?

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


P.S. Более того: если вы станете опираться на стандарт языков, а не особенности конкретных реализаций (DOS Borland C 3.1, как пример) - то не найдёте вы машиннозависимых особенностей в C...

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

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


Хотя, мне так и не понятно... - это же не имеет ровно никакого значения в контексте разговора, который вы ведёте!

Именно. Это тактика моего оппонента - увести разговор в сторону от обсуждаемой темы, перевернув все с ног на голову. Как раз я говорил о том, что Си обеспечивает достаточный уровень переносимости. Но мне просто стало интересно, каков будет ответ. 

Инженер-системотехник
+7 (916) 477 3925
Наверх
Владимир Е. Зюбин Смотреть выпадающим
Действительный член
Действительный член


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

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


Что Вы мне толкуете про функциональные блоки, написанные на том же Си? Давайте говорить про LD.


А то ахинея какая-то получается, понаписали блоков на
Си, вставили в LD возможность их использовать и теперь
утверждаете, что LD это "крутой" язык... Вызвать функцию на Си я и на Си могу... гораздо проще и никакой ISaGRAF
покупать не надо... 8-)

Давате уж отделять, как тут постоянно повторяется, мух
от котлет.

Моя-то позиция простая: LD - это отдельный и
самостоятельный язык стандарта МЭК 61131.3, концепция
заложенная в LD - крайне примитивна, на LD невозможно
написать практической программы без использования
инородных элементов, а эти инородные элементы на LD
создать практически невозможно. С чем Вы тут не
согласны? 8-)


Вы меня паражаете.
Еще раз приведу название темы "Тема: Средство для программирования контроллера: Си или МЭК 61131?", так как ваши слова:"мы обсуждаем не МЭК, а LD" меня удивили.
Вы вроде сначала il обсуждали, затем кинули и перешли на ST, теперь LD.
Хочу Вам подсказать, что изучение предмета путем его разделения на части не всегда приводит к правильным ответам.
Качество системы или продукта не всегда равно суперпозиции его частей. Вы совершенно правы в утверждении " LD - это отдельный и
самостоятельный язык стандарта МЭК 61131.3", но сильно ошибаетесь считая, что раз он отдельный и самостоятельный в МЭК, значит его нужно использовать для всех задач автоматизации.


Ну, Вы меня все-таки неверно поняли. Я же Вам постоянно
об ограничениях LD толкую. Из этого прямо следует, что
LD для всех задач не подходит. Более того, я считаю, что
на LD вообще ничего нельзя программировать.

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


LD для конкретных задач, как и все остальные языки МЭК 61131.3 и только их совокупность является почти минимальным базисом.


Выбросьте LD из МЭК и ничего не изменится.
Также из МЭК спокойно можно выбросить FBD и IL.

SFC+ST - вот единственное, заслуживающее внимание
средство... со своими ограничениями и заморочками, правда...

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

Почти, так как избыточность все же есть. Интересно. Вот храняться у вас на контроллере исторические данные + интерфейс оператора + тревоги + работает механизм горящего резервирования, то что произойдет если контроллер выйдет из строя??


Если Вы внимательно почитаете, то, что я писал, то Вы
нигде не найдете слов в подтверждение Ваших
предположений... БД и ИО у нас вынесены на ПК общего
назначения. А если контроллер выйдет из строя, то почти
всей системе будет каюк... что соответствует требованию
ТЗ.

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

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


Ну давайте про дублирование поговорим, чем не тема...

Я вот Вам такой умный вещь скажу насчет дублирования:
дублировать нужно самые ненадежные элементы системы... а
Вот теперь подумайте, какие самые ненадежные элементы в
системах? ;-) ... А я Вам скажу: это клапаны, реле,
кнопки, светодиоды, двигатели, источники питания и
т.д. ;-) И, вообще, с дублированием есть много
вопросов... на отказ, до отказа, гамма-процентная
наработка, риск производителя, риск потребителя...
давненько я ГОСТы по надежности в руки не брал... можно
и освежить память... :-)))
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК
http://reflex-language.narod.ru/
Наверх
Guests Смотреть выпадающим
Гость
Гость
Свойства публикации Свойства публикации   Ответить, цитируя автора - Guests Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 22 Октябрь 2003 18:38

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

Ну и я про это же говорю. МЭК не позволяет обеспечить достаточный уровень безопасности...

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

Опять повторюсь, при этом все решения должны приниматься
и отрабатываться локализовано, а не быть разбросаны по
системе.

Плюс программа должна сохранять гибкость,
модифицируемость, иметь адекватную наглядную структуру,
позволять общаться с заказчиком в терминах тех.процесса,
а не реле и микросхем 2И-НЕ и т.д. и т.п.

Это и есть по моему мнению современный уровень
автоматизации, принципиально недостижимый средствами МЭК.

Я сам лично реализовывал подобные алгоритмы как в LD (несколько дольше и не так наглядно, но он-лайн можно контроллировать входа-выхода) и в FBD (просто и наглядно и в он-лайн все параметры видны).

И не только в РСУ, но и ПАЗ. И я могу привести десятки примеров, где на МЭКовских языках разрабатывались ОЧЕНЬ опасные объекты, такие как завод по уничтожению хим. оружия, такие суперкритические установки как синтезирование трициклогексанона, гидрогенизация, гидроформилирование, алкилационные установки, этерификация для химических производств, не говоря уже про попроще: изомеризацию, каталитический риформинг и пр...

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

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

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

 

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


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


Я думаю, что уже на 5-6 контроллерах, при синхронизации их работы и обмене данными между ними на СИ вы просто умрете.


Это голословное утверждение: правда очень много здесь зависит от OS и её tools поддержки обменов (так как "синхронизацию и обмен" между узлами, как вы понимаете - никакое языковое средство не поддержит).

Я в QNX сам организовывал кластерную обработку данных на x86 N хостах (N - не только 5-6, но - динамически изменяющееся!) - при поддержке QNET - это "за-всё-про-всё" прописано в ~300 строк С++.

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

Присоединился: 14 Май 2003
Online Status: Offline
Публикации: 770
Свойства публикации Свойства публикации   Ответить, цитируя автора - Максим Ананских Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 22 Октябрь 2003 18:49

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

Что Вы мне толкуете про функциональные блоки, написанные на том же Си? Давайте говорить про LD.

Что это вам Си повсюду мерещится, как в страшном сне? Я говорил про самые обыкновенные операторы (арифметика, команды пересылки, преобразования типов и т.д.) и функциональные блоки, подразделяемые на стандартные (счетчики, таймеры, триггеры и прочее) и пользовательские, реализуемые на любом языке МЭК, в т.ч. и на самом LD. Прочтите, наконец, описание - я уже понял, что текста стандарта у Вас нет. А то получается "я Пастернака не читал, но глубоко осуждаю..."

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

Моя-то позиция простая: LD - это отдельный и самостоятельный язык стандарта МЭК 61131.3, концепция заложенная в LD - крайне примитивна, на LD невозможно написать практической программы без использования инородных элементов, а эти инородные элементы на LD
создать практически невозможно. С чем Вы тут не согласны? 8-)

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

Инженер-системотехник
+7 (916) 477 3925
Наверх
Максим Ананских Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 14 Май 2003
Online Status: Offline
Публикации: 770
Свойства публикации Свойства публикации   Ответить, цитируя автора - Максим Ананских Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 22 Октябрь 2003 19:07

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

МЭК не позволяет обеспечить достаточный уровень безопасности...
Конкретизируйте, пожалуйста...

[...] -Я думаю, большая часть форума в курсе проблем, связанных с закрытием клапана.

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


Плюс программа должна сохранять гибкость, модифицируемость, иметь адекватную наглядную структуру, позволять общаться с заказчиком в терминах тех.процесса [...] Это и есть по моему мнению современный уровень автоматизации, принципиально недостижимый средствами МЭК.

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

Инженер-системотехник
+7 (916) 477 3925
Наверх
 Ответить Ответить Страница  <1 3738394041 53>

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

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