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

Соцопрос: языки МЭК 61131-3.

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

Присоединился: 19 Апрель 2006
Online Status: Offline
Публикации: 136
Свойства публикации Свойства публикации   Ответить, цитируя автора - Chupakabra2 Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Соцопрос: языки МЭК 61131-3.
    Опубликовано: 24 Сентябрь 2007 15:32
Первоначально опубликовано _IP_

 

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

Такссс.

1. В CoDeSys v2xx в CFC неудобно таскать блоки, т.к. область выделения бывает очень маленькой. Хорошо бы чтобы можно было хватать и перетаскивать за все пространство блока (а редактировать текстовые названий блока можно двойным нажатем мышки или долгим нажатием).

2. Было бы не плохо просто перетаскивать блоки и функции из левого меню (POUs) мышкой на рабочее поле (CFC и др.).

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

4. Например в LabVIEW проводки подсвечиваются в соответствии с типом данных (bool - зеленым, int/byte... - синим, real - оранжемым и др.) в CFC тоже можно было бы такое сделать :)

Наверх
globus Смотреть выпадающим
Участник
Участник


Присоединился: 29 Июнь 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 62
Свойства публикации Свойства публикации   Ответить, цитируя автора - globus Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 25 Сентябрь 2007 08:07
Первоначально опубликовано s_smirnov

Вот и договорились, самый самодостаточный язык это Ассемблер

Тогда уж лучше в машинных кодах.

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

Однако 1 ассемблерная или Си вставка убивает совместимость наповал. МЭК программы переносятся (с косметическими правками) даже на ПЛК с другим типом процессора. Поэтому есть цель сделать МЭК языки достаточно мощными, настолько чтобы все типовые задачи (кроме экзотических) решались без применения внешних средств.

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

ЗЫ: хотя, отмечу, было очень приятно когда, года три назад, проект под QNX написанный на Isagraf Enhanced был без проблем и переделок  перенесен на NT платформу.

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

4. Например в LabVIEW проводки подсвечиваются в соответствии с типом данных (bool - зеленым, int/byte... - синим, real - оранжемым и др.) в CFC тоже можно было бы такое сделать :)

NI на все проводки и квадратики наложило свою лапу в лице патентов. Но идеи GUI в Labview реализованы и проработаны очень достойно, и от туда не грех кое что позаимствовать.
ЗЫ:
Рад тебя видеть Chu.

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


Присоединился: 29 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 293
Свойства публикации Свойства публикации   Ответить, цитируя автора - _IP_ Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 25 Сентябрь 2007 10:11

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

1. В CoDeSys v2xx в CFC неудобно...

OK. Спасибо! Однако... Эти пожелания относятся исключительно к CoDeSys. Цветовыделение,  интерактивные подсказки типов в текстовых языках, указание парных скобок, свертывание тела циклов и др. и пр. добавлены в V3.

 Что касается обсуждения именно деталей CoDeSys, то по многочисленным просьбам сегодня открыт официальный форум по CoDeSys на русском. Точнее там сблокированы 3 форума на немецком, английском и русском. Можно работать во всех одновременно с одним паролем и общей оболочкой на родном языке.

Здесь интересно бы обсудить более общие вещи относящиеся к МЭК системам вообще, то что можно предложить для включения в стандарт. Например, одним из предложений является возможность в одном ПЛК запускать несколько приложений. Т.е. получается, что в контроллере может быть несколько МЭК приложений, каждое использует свои входы/выходы и практически независимо – можно останавливать, перезагружать, отлаживать одно приложение, в то время как прочие продолжают спокойно работать. Любое приложение можно перетащить на отдельный ПЛК, если вдруг процессор перестал справляться или наоборот заменить несколько стареньких ПЛК на один мощный.

Нужно ли такое?

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

...использовать внешний код приходилось исключительно в случаях работы с железом...

Терзает меня смутное сомнение, что Си или ассемблерную вставку приходится пихать в том случае, когда железо выбрано не совсем оптимально. В результате приходится выжимать из него то, на что оно не было заточено разработчиком. Конечно, наши инженеры именно в этом и мастера (не от хорошей жизни).   Наш человек может на AVR слепить штуку, куда немец поставит Пень5, но…  Если бы ПЛК были более стандартизованы, совместимы и взаимозаменяемыми, то во многих случаях можно было бы не мыкаться, а заменить ПЛК на тот, в котором сразу есть нужная функциональность. 

 

Наверх
Mixer Смотреть выпадающим
Участник
Участник


Присоединился: 02 Сентябрь 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 54
Свойства публикации Свойства публикации   Ответить, цитируя автора - Mixer Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 25 Сентябрь 2007 10:36
Первоначально опубликовано _IP_

...по многочисленным просьбам сегодня открыт официальный форум по CoDeSys на русском.


Созрели!!!

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

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


Нужно ли такое?



Думаю вряд ли кто откажется от такого
Мы безумно рады от того, что в BECKHOFF и WAGO есть ONLINE CHANGE, а вы говорите... Для непрерывных процессов это большой плюс.
Как бы только ПРАВИЛЬНО научиться это добро использовать.
Наверх
sanwork Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 08 Март 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 440
Свойства публикации Свойства публикации   Ответить, цитируя автора - sanwork Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 25 Сентябрь 2007 20:15

_IP_ :

.. что в Си есть такого чего нет в МЭК языках ...

Один конкретный пример,  API-функция сброса сетевых сокетов - WSACleanUp(). Эта функция не "экзотика", а постоянно используется системными программистами в профессиональных приложениях. Она позволяет самостоятельно восстановить и переинициализировать сокетное соединение, что особенно важно для необслуживаемых систем.
Подобных системных функций требуется немного (у каждой платформы свои). Но дело не в количестве, а в ключевой роли этих функций. Именно они делают из демо-примера программу промышленного уровня.

Скажите,"чистый" МЭК-язык обеспечит мне этот уровень ? Кубиками  .. if .. else, .. for ..  можно играться на любом языке. А нужны не игральные кубики, а среда разработки промышленных систем.

Еще раз хочу сказать - в МЭК-языки ничего постороннего внедрять не надо, их можно бесконечно улучшать в своем качестве. Они выполняют свою роль, и работают на своем уровне абстракции оборудования. А иметь возможность стыковаться с модулями из других областей : будь-то базы данных, XML-скрипты, средства визуализации и многое т.д. - обязательно !

С (большим) уважением, SAN

Наверх
Nekit Смотреть выпадающим
Участник
Участник
Аватар

Присоединился: 04 Апрель 2005
Категория: Russian Federation
Online Status: Offline
Публикации: 80
Свойства публикации Свойства публикации   Ответить, цитируя автора - Nekit Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 25 Сентябрь 2007 20:17
Наконец форум! А мультипроект в одном ПЛК, тоже неплохо, но опять же ГЛАВНОЕ НАУЧИТЬСЯ ЭТО ПРАВИЛЬНО ИСПОЛЬЗОВАТЬ. Хотя по мне так многозадачность все это и так реализует.
Наверх
globus Смотреть выпадающим
Участник
Участник


Присоединился: 29 Июнь 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 62
Свойства публикации Свойства публикации   Ответить, цитируя автора - globus Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 26 Сентябрь 2007 08:01
Первоначально опубликовано _IP_

 Т.е. получается, что в контроллере может быть несколько МЭК приложений, каждое использует свои входы/выходы и практически независимо – можно останавливать, перезагружать, отлаживать одно приложение, в то время как прочие продолжают спокойно работать.

Идея в общем неплохая. Только сможете ли вы  тогда гарантировать неизменность времени выполнения программ?

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

Нужно ли такое?

Время покажет!

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

Терзает меня смутное сомнение, что Си или ассемблерную вставку приходится пихать в том случае, когда железо выбрано не совсем оптимально. В результате приходится выжимать из него то, на что оно не было заточено разработчиком. Конечно, наши инженеры именно в этом и мастера (не от хорошей жизни).   Наш человек может на AVR слепить штуку, куда немец поставит Пень5, но… 

Бывало и такое. Дело же ведь не только в железе но и в софте.

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

Если бы ПЛК были более стандартизованы, совместимы и взаимозаменяемыми, то во многих случаях можно было бы не мыкаться, а заменить ПЛК на тот, в котором сразу есть нужная функциональность. 

Батенька, это вы против буржуазии попрете! Любая контора заинтересована подсадить вас целиком и полностью на их железо. И абсолютно не заинтересована в том чтоб наряду с их супермега контроллерами использовалось дешевое китайское железо.

С уважением!
Наверх
Leonid Uretsky Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 09 Октябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 187
Свойства публикации Свойства публикации   Ответить, цитируя автора - Leonid Uretsky Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 27 Сентябрь 2007 17:28
Первоначально опубликовано _IP_

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

Потребовалась следующая функция:

По входу типа WORD она должна возвращать значение одного из параметров программы. Причем этот вход может кодировать очень много параметров (например, состояние аналоговых или дискретных параметров, логических сигналов, и т.п.).

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

Написал функцию на Си, на вход которой подается структура с адресами массивов. А функция по этим адресам уже находит необходимое значение параметра.

Написал наверное путанно. Итог такой: не хватает в МЭК 61131-3 работы с указателями на переменные.

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


Присоединился: 29 Январь 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 293
Свойства публикации Свойства публикации   Ответить, цитируя автора - _IP_ Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 27 Сентябрь 2007 19:04

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

...Написал функцию на Си, на вход которой подается структура с адресами массивов. А функция по этим адресам уже находит необходимое значение параметра....не хватает в МЭК 61131-3 работы с указателями на переменные.

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

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

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

...Только сможете ли вы  тогда гарантировать неизменность времени выполнения программ?

А в чем проблема? Во многих ПЛК сейчас сидит ОС РВ и циклические МЭК задачи вызываются с точностью до микросекунд. Задача с высшим приоритетом прерывает низкоприоритетные.

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

...Батенька, это вы против буржуазии попрете! Любая контора заинтересована подсадить вас целиком и полностью на их железо.

А как же PC? Море изготовителей делают совместимое оборудование и все счастливы 

Наверх
globus Смотреть выпадающим
Участник
Участник


Присоединился: 29 Июнь 2007
Категория: Russian Federation
Online Status: Offline
Публикации: 62
Свойства публикации Свойства публикации   Ответить, цитируя автора - globus Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 28 Сентябрь 2007 08:09
Первоначально опубликовано _IP_

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

В МЭКах действительно такой фичи я не видел. Хотя в других языках она частенько встречается.

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

А в чем проблема? Во многих ПЛК сейчас сидит ОС РВ и циклические МЭК задачи вызываются с точностью до микросекунд. Задача с высшим приоритетом прерывает низкоприоритетные.

Мне вот интересно. А как у CoDeSys обстоят дела с использованием процессорной многоядерности?

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

А как же PC? Море изготовителей делают совместимое оборудование и все счастливы 

Ну тогда почему для Сименса или Шнайдера все то же море производителей не выпускают железо?

С уважением!
Наверх
 Ответить Ответить Страница  <1 6789>

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

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