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

Конвертирование проектов из ASMа

 Ответить Ответить
Автор
Сообщение
dmitmil Смотреть выпадающим
Участник
Участник


Присоединился: 26 Февраль 2004
Категория: United Kingdom
Online Status: Offline
Публикации: 48
Свойства публикации Свойства публикации   Ответить, цитируя автора - dmitmil Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Конвертирование проектов из ASMа
    Опубликовано: 24 Май 2004 09:54

Добрый день, коллеги,

Существуют ли программы конвертации программ из ассемблера в более
высокий уровень или же построение алгоритмов?
Вообще кто-нибудь решал перевод листингов программ контроллеров, писаных на асме на
современнный уровень? Вручную- очень-очень много времени займет :(

--
С уважением,
 Дмитрий Н. Милосердов                         
Управление АСУ ТП дирекции по ИТ ОАО ВМЗ

http www.vsw.ru
http://asutp.interface.ru

С уважением,
Дмитрий Н. Милосердов                          mailto:dnmiloserdov@vsw.ru
Управление АСУ ТП Дирекции по ИТ ОАО ВМЗ
http www.vsw.ru
Наверх
_IP_ Смотреть выпадающим
Действительный член
Действительный член


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

Очень маловероятно, что некая программа может полностью автоматизировать эту работу. Можно написать конвертер и перевести ассемблер в С, например. Но это будет код типа *EKLMN = ^R5 / ++R6. ИМХО: вразумительный код может быть создан только человеком.

Можно попробовать перевести ассемблер в язык IL. Транслятор будет достаточно примитивным.

Лучшие современные системы МЭК программирования контроллеров (ПЛК) обладают способностью сравнительно осознанно переводить программы с одного языка на другой. В том числе из IL в ST или в графические FBD диаграммы. Далее можно постепенно анализировать код в режиме эмуляции и править его, осознанно выделяя верхний уровень в SFC, например.

Уточните, какой у Вас «асм»?

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


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

Лучшие современные системы МЭК программирования контроллеров (ПЛК) обладают способностью сравнительно осознанно переводить программы с одного языка на другой. В том числе из IL в ST или в графические FBD диаграммы. Далее можно постепенно анализировать код в режиме эмуляции и править его, осознанно выделяя верхний уровень в SFC, например.

Я ниразу не пробовал делать конвертацию между языками МЭК. А каким образом можно перевести циклы из текстовых языков в графические?

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


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

Leonid Uretsky: ... каким образом можно перевести циклы из текстовых языков в графические?

 

В CoDeSys (Анг. версия) конвертирование делается так:

  1. откомпилируйте проект без ошибок под любую целевую платформу (можно использовать демо-версию CoDeSys)
  2. в менеджере проекта выберете необходимый POU (программа, функция или функциональный блок)
  3. щелкните по нему правой клавишей мыши, выберете Convert Object… в всплывающем меню
  4. выберете язык, на который нужно перевести данный POU и его имя в диалоговом окне
  5. нажмите Ok

Рекомендую не использовать старое имя компонента (по умолчанию), измените его и Вы получите 2 реализации с возможностью сравнения и откатки.

Циклы ST типа FOR и WHILE в графических языках преобразуются в метку и переход по условию.

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

Igor Petrov
Наверх
 Ответить Ответить

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

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