Регистрация | Последние сообщения | Персональный список | Поиск | Настройка конференции | Личные данные | Правила конференции | Список участников | Top 64 | Статистика раздела | faq | Что нового v.2.3 | Чат
Skunk Forum - Техника, Наука, Общество » АСУТП »
Переносимость iec1131

Версия для печати (настроить)

Новая тема | Написать ответ

Подписаться

Автор Тема:   Переносимость iec1131
bessonov2
Member

Сообщений: 35
Регистрация: Май 2006

написано 28 Ноября 2006 21:37ИнфоПравкаОтветитьIP

Это наверно оффтоп. Делюсь инфой

Где то месяц назад мне захотелось попробовать перенести простенький софт на языке scl (т.е. st) из Step 7 в другие среды.
Попытался в ISagRAF 4.20. Не получилось - проблема техническая. Демо версия не захотела брать левый текст из буфера обмена.

Попытался перенести софт на scl из Step 7 в демо версию TwinCAT (CoDeSyS от Beckhoff). Получилось... даже както подозрительно легко... После лёгкой работы напильником компилируется без ошибок. Предполагаю, что перенос сложных проектов со спецовыми сименсовскими функциями может быть очень не лёгким. В данном случае без проблем перенеслись объявления структур, сложных типов данных, объявления функций. data block из Step 7 переделал глобальную переменную в в раздел global variablesс среды TwinCAT.

Так что перенос несложных приложений из Step 7 в CoDeSyS может быть не очень трудным. Предпологаю, что в среде ISaGRAF будет всё не так легко.
Во первых, в ISaGRAF первый элемент массива всегда должнен начинаться с 0> В Step 7 пройдёт такая тема: [0..45], а в изаграфе думаю нет.
Во вторых, декларирование структур и переменнных в изаграфе сильно автоматизировано, т.е. производится с помощью мощного словаря переменных. А в Step 7 и CoDeSyS их можно задать в том числе и в текстовом виде struct ... struct_end, благодаря чему достигается переносимость. TwinCAT не воспринмает коментарии типа //, только (**).


В общем, для когото классика, а для меня открытие

[Это сообщение изменил bessonov2 (изменение 28 Ноября 2006 23:06).]

Dmitry M. Gaidash
Member

Сообщений: 86
Регистрация: Сентябрь 2005

написано 30 Ноября 2006 21:17ИнфоПравкаОтветитьIP

Хе-хе А кому сейчас легко? Особенно "весело" переносить CFC-шки Весь этот МЭК 61131 по большому счету превращен в профанацию усилиями нескольких крупных игроков на рынке.

bessonov2
Member

Сообщений: 38
Регистрация: Май 2006

написано 01 Декабря 2006 00:51ИнфоПравкаОтветитьIP

Да уж не только МЭК превратили в профанацию. Сами производители средств разработки iec1131 превращают свою продукцию в профанацию.

GSM
Junior Member

Сообщений: 9
Откуда: Россия, Челяб. обл, г Миасс
Регистрация: Ноябрь 2006

написано 05 Декабря 2006 13:39ИнфоПравкаОтветитьIP

В свое время переносили проект из Direct Logic (язык LD) на изогаф для ICP DAS. Это почти что написать заново.

IP
Junior Member

Сообщений: 28
Откуда: Russia
Регистрация: Июнь 2006

написано 19 Декабря 2006 12:26ИнфоПравкаОтветитьIP

цитата:
bessonov2:
...Сами производители средств разработки iec1131 превращают свою продукцию в профанацию.

Поверьте не специально. Когда начинаешь делать подобную штуку то естественно хочется развернутся и проявить свои творческие способности, а не ограничивать себя (умного) тем что написали в стандарте некие дяди (тупые). Мало того стандарт требует только того чтобы, реализованные в среде программирования стандартные компоненты, были сделаны точно так как в нем описано. Но нет требования реализовывать их все и нет запрета дополнять их своими. Т.е. остается свобода для творчества. Если знать особенности разных сред программирования и сразу писать прикладное ПО, ограничиваясь стандартными конструкциями, то переносимость реально возможна.

Есть текстовый формат PLCopen всех МЭК языков. Он позволяет переносить программы из одной среды в другую. Увы с потерей координат размещения графических блоков и конфигурации контроллера. Тем не менее он работает. В CoDeSys есть экспорт и импорт из него. В настоящее время PLCopen предложен универсальный формат хранения проектов на базе XML (cм. TC6 ссылка ) Пока он увы не реализован ни в одной системе МЭК программирования. Но в перспективе будет. Это очень высокий уровень совместимости, выше чем в языке С. В нем тоже можно переносить только тексты. Единый формат для проектов интегрированных компиляторов разных фирм даже не обсуждается.

S7 можно от нести к МЭК совместимым с рядом оговорок. Для них важна совместимость со старым (до МЭК) ПО, поэтому много нестандартного. Для нас желательно чтобы пользователи Сименса легко могли перейти на передовые контроллеры с CoDeSys. Поэтому есть импорт проектов S5/S7. Экспорта нет и не будет. CoDeSys же круче

@sutp
Junior Member

Сообщений: 10
Откуда: Россия
Регистрация: Ноябрь 2006

написано 19 Декабря 2006 14:51ИнфоПравкаОтветитьIP

Я, как программист, понимаю совместимость языка на уровне исполнения программы.
Язык программирования совместим на двух компьютерах, если при переносе исполняемого файла программы с одного компьютера на другой, ему совместимый, не требуется повторной компиляции программы.

Например,
Языки программирования Си под Windows и Linux - не совместимы на одном и том же компьютере;
Си под Linux для компьютеров INTEL и RISC - не совместим из-за несовместимости компьютеров.

Cтандарт не может требовать совместимость сред программирования. Например:
Windows. Проект, созданный в среде программирования Microsoft C++, нельзя перенести в среду Borland C++ без значительной переделки.

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

Что скажете, уважаемые форумчане?

Добавление от 19 Декабря 2006 15:57:

Итог моих теоретических умозаключений - нужно использовать среду программирования независимого от производителей PLC разработчика.
А как дело обстоит на практике?

Pike
Junior Member

Сообщений: 7
Откуда: Москва, РФ
Регистрация: Декабрь 2006

написано 19 Декабря 2006 16:59ИнфоПравкаОтветитьIP

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

Dmitry M. Gaidash
Member

Сообщений: 108
Регистрация: Сентябрь 2005

написано 19 Декабря 2006 17:15ИнфоПравкаОтветитьIP

@sutp
нужно использовать среду программирования независимого от производителей PLC разработчика
CoDeSys на это замахнулся, но я бы сказал, что для PLC на примере Siemens'а это у них фиговенько получилось. Причина - закрытость PLC как платформы. Для PC-based контроллеров это работает, однако PC-based - это меньше 5% рынка контроллеров.

IP
Junior Member

Сообщений: 29
Откуда: Russia
Регистрация: Июнь 2006

написано 25 Декабря 2006 14:55ИнфоПравкаОтветитьIP

цитата:
@sutp:
Итак, если выполняемый модуль программы, созданный для одного контроллера, будет работать на другом контроллере (другого производителя) без перекомпиляции, то это подтверждает соответствие одному стандарту.

Зачем?Перекомпиляция занимает 2 секунды. Зато контроллеры можно делать на разных процессорах. Это очень практично и создает условия для здоровой конкуренции.
Если я заложил в проект слишком мощный контроллер с запасом, то никто не мешает мне заменить его по ходу на простенький и дешевенький, без переработки прикладного ПО. Аналогично если я уперся в недостаточную мощность контроллера, то могу переставить его на другую задачу, заменив более мощным. Совместимость на уровне кода налагает массу жестких ограничений на аппаратные решения.


IP
Junior Member

Сообщений: 30
Откуда: Russia
Регистрация: Июнь 2006

написано 25 Декабря 2006 15:55ИнфоПравкаОтветитьIP

цитата:
Dmitry M. Gaidash:
CoDeSys на это замахнулся, но я бы сказал, что для PLC на примере Siemens'а это у них фиговенько получилось. Причина - закрытость PLC как платформы.

Что значит на примере Siemens'а? Какое отношение имеет CoDeSys к Сименсу? На мой взгляд, абсолютно никакого.

Сименс – это действительно закрытые решения, совместимые только сами с собой. Очевидно, для Сименса важнее тянуть совместимость со своими старыми разработками, чем добиваться совместимости с продуктами других компаний. Но нам то какое до этого дело? Мы просто не используем их контроллеры, никаких сожалений по этому поводу нет.

На сегодняшний день CoDeSys приобрели 203 OEM компании. Из них 115 активно работают (каждая из них продала в 2006 году от 1000 до 50000 контроллеров c CoDeSys). Среду программирования с сайта ежедневно загружают 100-120 новых пользователей, из них 8-15 из России. Вполне нормальные показатели. Использовать PLC разных фирм совместно реально можно и очень удобно.
Экспорт из Сименса в CoDeSys сделан исключительно из любви к своим заказчикам, многие из которых вынуждены отказываться от продукции этой фирмы в пользу открытых конкурентоспособных решений. Импорт из CoDeSys в Сименс не реализован, поскольку не востребован Какой чудак после CoDeSys захочет возвращаться в S7?

@sutp
Junior Member

Сообщений: 11
Откуда: Россия
Регистрация: Ноябрь 2006

написано 25 Декабря 2006 19:27ИнфоПравкаОтветитьIP

IP
Зачем?
Перекомпиляция занимает 2 секунды.
Если говорить абстрактно: заказчиком для каких-нибудь целей...
Часто заказчики не имеют исходных программных файлов. Или в случае с контроллерами такого не происходит?

Dmitry M. Gaidash
Member

Сообщений: 110
Регистрация: Сентябрь 2005

написано 26 Декабря 2006 01:01ИнфоПравкаОтветитьIP

IP
Что значит на примере Siemens'а?
То и значит. Попытка превратить PC-based контроллер в PLC, накатив на него IEC-среду программирования, - вот что есть по моему мнению CoDeSys.

Сименс – это действительно закрытые решения, совместимые только сами с собой
Много и от души смеялся, спасибо. У вас 203 компании купили CoDeSys, а PROFIBUS/PROFINET поддерживает более 1300 организаций по всему миру. Называть в этих условиях Сименс закрытым решением, совместимым только с самим собой, - это, как минимум, очень недальновидно. К слову сказать, Siemens очень легко стыкуется с чем угодно - многократно проверено на практике с целым зоопарком отечественных и зарубежных систем. Вплоть до того, что драйвер может написать на месте на коленке достаточно квалифицированный пусконаладчик (!!!).

P.S. Рекламную муру про то, кто сколько чего загружает с сайта, я не комментирую Сам недавно OpenPCS 2006 загрузил и поковырялся

[Это сообщение изменил Dmitry M. Gaidash (изменение 26 Декабря 2006 09:00).]

IP
Member

Сообщений: 32
Откуда: Russia
Регистрация: Июнь 2006

написано 26 Декабря 2006 16:55ИнфоПравкаОтветитьIP

цитата:
Dmitry M. Gaidash:
Попытка превратить PC-based контроллер в PLC, накатив на него IEC-среду программирования, - вот что есть по моему мнению CoDeSys.

Это один из очень частных случаев применения этого комплекса, причем дорогой и мало популярный. Абсолютное большинство контроллеров с CoDeSys не PC совместимые. Чаще всего ARM, Power PC, Infineon.

цитата:
Много и от души смеялся, спасибо... а PROFIBUS/PROFINET поддерживает более 1300 организаций по всему миру

Вам спасибо, общаемся взаимно весело, хотя и на разные темы. Причем тут сети? В контролерах поддерживающих CoDeSys есть и PROFIBUS, Modbus, EtherCAT, CANopen, Sercos и др. Мы вообще говорили о совместимости прикладного ПО а не о стыковке контроллеров.

Наша цель взять готовую прикладную программу для контроллера и перенести ее в другой контроллер. В случае с CoDeSys я могу перенести программу в контроллеры 115 фирм. В контроллеры каких компаний я могу загрузить программу из контроллеров Сименс, без переделки?

Контроллер Сименс в лоб можно заменить только на контроллер Сименс (за исключением нескольких содранных клонов). Это я и называю закрытым решением.

Builder
Junior Member

Сообщений: 9
Откуда: Минск
Регистрация: Июль 2006

написано 26 Декабря 2006 17:25ИнфоПравкаОтветитьIP

PROFIBUS, 1300 организаций это конечно здорово.
Но кажись ведь кроме сименса чипы для вопряжения с этим самым PROFIBUS никто и не делает.
Все покупают у сименса и ставят в свои устройства? Разве не так?

Dmitry M. Gaidash
Member

Сообщений: 111
Регистрация: Сентябрь 2005

написано 26 Декабря 2006 18:46ИнфоПравкаОтветитьIP

IP
Вы очень узко трактуете понятие "решение" - это ведь не только софт, но и железо, и протоколы, и интерфейсы, и совместимое оборудование, и в ряде случаев даже датчики и исполнительные механизмы. Хотя, если оставаться в рамках данной темы, то Вы, безусловно, правы

Builder
Но кажись ведь кроме сименса чипы для вопряжения с этим самым PROFIBUS никто и не делает
Отнюдь - полным полно этих чипов от самых разных производителей. Стандарт-то открытый - можете хоть сами такие чипы клепать, если это будет выгодно.

Ваш ответ:

Коды форума
Смайлики


Ник:    Пароль       
Отключить смайлики

Все время MSK

Склеить | Разбить | Закрыть | Переместить | Удалить

Новая тема | Написать ответ
Последние сообщения         
Перейти к:

Свяжитесь с нами | skunksworks.net

Copyright © skunksworks.net, 2000-2018

Разработка и техническая поддержка: skunksworks.net


Рейтинг@Mail.ru Яндекс.Метрика