1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

ПО для перевода в подходящий формат файла для ПЛК

Ответить

Автор темы
Arseniy
здесь недавно
здесь недавно
Сообщения: 3
Зарегистрирован: 17 мар 2023, 15:58
Имя: Арсений
Благодарил (а): 6 раз

ПО для перевода в подходящий формат файла для ПЛК

Сообщение Arseniy »

Всем добрый день! Я - Арсений, студент БФУ им. Иммануила Канта. Пишу дипломную работу о создании программы, которая будет переводить код, написанный в открытой среде разработки, в формат, подходящий для ПЛК, причем изначально в среде разработки не будет возможность писать код сразу в подходящем формате для ПЛК. Вопрос следующий: есть ли примерные аналоги такого приложения? Может кто работал с такой темой и сталкивался с ПО, которое переводит один формат кода в другой, нужный для ПЛК? Если да, поделитесь, пожалуйста, ссылками или другое информацией, так как сам пока ничего подобного не нашел. Спасибо!
Аватара пользователя

kirillio
И жнец, и чтец...
И жнец, и чтец...
Сообщения: 1177
Зарегистрирован: 26 май 2022, 09:48
Имя: Кирилл
Страна: РФ
город/регион: Москва
Благодарил (а): 322 раза
Поблагодарили: 294 раза

ПО для перевода в подходящий формат файла для ПЛК

Сообщение kirillio »

Здравствуйте Арсений.
уточните пожалуйста
Arseniy писал(а): 17 мар 2023, 16:19 код, написанный в открытой среде разработки
какие именно среды и форматы Вы имеете ввиду?
Подходящий формат для ПЛК - это компилированный машинный код, именно поэтому
Arseniy писал(а): 17 мар 2023, 16:19 в среде разработки не будет возможность писать код сразу в подходящем формате для ПЛК.
- так и поступают в большинстве случаев: пишут в среде разработки функциональную программу, компилируют, загружают в ПЛК. Задача не очень понятна.
Зри в корень!

leon78
эксперт
эксперт
Сообщения: 1031
Зарегистрирован: 25 июл 2008, 10:06
Имя: Леонид
Страна: РФ
Благодарил (а): 34 раза
Поблагодарили: 110 раз

ПО для перевода в подходящий формат файла для ПЛК

Сообщение leon78 »

Почитайте про Open PLC
Хард - это то, что можно швырнуть об стенку, а софт - это то, что можно лишь обматерить.
Аватара пользователя

Serex
эксперт
эксперт
Сообщения: 2091
Зарегистрирован: 15 авг 2011, 21:36
Имя: Пупков Сергей Викторович
Страна: Россия
город/регион: Москва
Благодарил (а): 135 раз
Поблагодарили: 174 раза

ПО для перевода в подходящий формат файла для ПЛК

Сообщение Serex »

Я задачу понял так: Берешь самый дешевый PLC, кодишь на 1С с лексемами из русского языка или в экселе. Потом с помощью чудо софта это соединяешь и получаешь PLC со временем цикла 100 мкс.

:ges_up:

Михайло
почётный участник форума
почётный участник форума
Сообщения: 3576
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 6 раз
Поблагодарили: 271 раз

ПО для перевода в подходящий формат файла для ПЛК

Сообщение Михайло »

Arseniy писал(а): 17 мар 2023, 16:19 так как сам пока ничего подобного не нашел
Для коммерческих целей такой подход не годится, поэтому ничего подобного и не попадалось.
Нужно программировать ПЛК в нормальной (специально предназначенной для этого) среде разработки: нужно не сколько код генерировать, сколько настраивать, конфигурировать, загружать, выгружать, наблюдать состояние в реальном времени...
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17576
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 824 раза
Поблагодарили: 1651 раз

ПО для перевода в подходящий формат файла для ПЛК

Сообщение Jackson »

Михайло писал(а): 18 мар 2023, 06:40 Для коммерческих целей такой подход не годится, поэтому ничего подобного и не попадалось.
Всё верно. Много лет уже этой идее, разговоры не прекращаются по сей день. Но доселе таких механизмов не существует. Потому и не существует, что бестолково и гиперсложно.

Крупнейшие корпорации мира бьются над задачей перевода произвольного языка в формально определённый, и от решения задачи они далеки как от соседней галактики. Пример - всевозможные голосовые помощники и боты.
А тут - студенту БФУ ставят такую же задачу. :) "Галантерейщик и Кардинал - это Сила! Мы спасём Францию!" (с)

Но ничто не запрещает продолжать пытаться это сделать. :) И задачу решать надо. Я даже не знаю в какую сторону автора направить. Для начала, видимо, нужно конкретизировать задачу. Формализовать "неподходящий язык". Затем поднять МЭК611131 часть 3 и изучить описанные там языки. После этого задача сводится просто к созданию транслятора с одного языка на другой. Сколько языков - столько трансляторов. И на всё это - два с небольшим месяца.
По вопросам работы Форума можно обратиться по этим контактам.
Аватара пользователя

kirillio
И жнец, и чтец...
И жнец, и чтец...
Сообщения: 1177
Зарегистрирован: 26 май 2022, 09:48
Имя: Кирилл
Страна: РФ
город/регион: Москва
Благодарил (а): 322 раза
Поблагодарили: 294 раза

ПО для перевода в подходящий формат файла для ПЛК

Сообщение kirillio »

Jackson писал(а): 18 мар 2023, 14:24 А тут - студенту БФУ ставят такую же задачу.
Нормальное дело - прорывы совершает тот, кто шагнул за рамки предрассудков. В своии года я "велосипеды изобретал", велосипедов не получилось, но расширение навыков это дало, так что как минимум в качестве образовательной задачи проба может дать толк.
Зри в корень!
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17576
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 824 раза
Поблагодарили: 1651 раз

ПО для перевода в подходящий формат файла для ПЛК

Сообщение Jackson »

Уточняющий вопрос автору. У Вас опыт программирования есть? На каких языках? Это, возможно, облегчит постановку задачи.
По вопросам работы Форума можно обратиться по этим контактам.
Аватара пользователя

Никита
почётный участник форума
почётный участник форума
Сообщения: 3927
Зарегистрирован: 20 янв 2010, 22:23
Имя: Никита
Страна: РФ
город/регион: Мурманск
Благодарил (а): 20 раз
Поблагодарили: 220 раз

ПО для перевода в подходящий формат файла для ПЛК

Сообщение Никита »

Serex писал(а): 17 мар 2023, 22:25 кодишь на 1С с лексемами из русского языка или в экселе
Лучше сразу матом - компактнее получится ).

Вопрос более глобальный - в каком виде представляется изначальная программа?
Основная задача программиста не написание инструкций на том или ином языке, а перевод с того же матерного или устных хотелок того, как оно должно работать, в четкий набор алгоритмов для исполнения. Т.е. из "сюда иди" в "налево, два шага впереж щагом марш". А на русском, английском, китайском, C++, питоне или МЭК 1131 - уже вопрос техники, тут особого ума не надо.
Поэтому и вопрос - как видится программа в открытой среде. Если можно сформулировать задачу как "поддерживать температуру 78..80 на канале 2 по пид-закону управляя выходом 15", а нужные блоки программа сама выберет - это одно, а если нужно формулу вбивать сразу с коэффициентами - то практический смысл затеи какой?
Опыт - это когда на смену вопросам: "Что? Где? Когда? Как? Почему?" приходит единственный вопрос: "Нахрена? "
Аватара пользователя

VADR
администратор
администратор
Сообщения: 4734
Зарегистрирован: 25 июл 2008, 07:12
Имя: Диев Александр Васильевич
Страна: Россия
город/регион: г. Сегежа, Карелия
Благодарил (а): 225 раз
Поблагодарили: 393 раза

ПО для перевода в подходящий формат файла для ПЛК

Сообщение VADR »

Я почему-то по-другому увидел задачу. Предполагается некоторая открытая среда разработки, в которой инженер на понятном ему языке составляет прграмму. Причём язык - не обязательно русский/английский/китайский, а вполне себе может быть один из МЭК61131-3 (они там все довольно понятно описаны). И надо это дело перевести в язык, понятный контроллеру, причём непосредственно в языке контроллера тот инженер программировать не может. Для аналогии - как в Симатиках перевод из SCL в STL, если бы к последнему не было доступа. Ну, то есть, от ТС хотят компилятор. Arseniy, так?
Повторное использование кода не отменяет повторного использования мозга при его повторном использовании.
Аватара пользователя

dtv
завсегдатай
завсегдатай
Сообщения: 575
Зарегистрирован: 04 фев 2014, 08:41
Имя: Тарас Валерьевич
Страна: Россия
город/регион: Екатеринбург
Благодарил (а): 78 раз
Поблагодарили: 95 раз

ПО для перевода в подходящий формат файла для ПЛК

Сообщение dtv »

Буквально на прошлой неделе был тред на сайте Пикабу на эту тему. Человек писал, что разрабатывает подобную программу и у него уже есть некий прототип, умеющий переводить программу в код для нескольких типов процессоров. Он пытается написать свой компилятор универсального ассемблера. Поищите там. Он предлагал всем желающим общаться на данную тему.
Взгляд знатока намного уже кругозора неуча. Ю.Базылев
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17576
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 824 раза
Поблагодарили: 1651 раз

ПО для перевода в подходящий формат файла для ПЛК

Сообщение Jackson »

У человека диплом, значит времени мало.

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

И второе, очень важное уточнение. Что нужно превратить в код? На входе код уже написанной программы, просто на другом языке? Либо на входе алгоритм в том или ином представлении, который надо ещё формализовать и только потом в код превратить? Это существенная разница.

Например, гн.Шалыто в своё время докторскую написал на тему "Алгоритмизация конечных автоматов", где на входе различное представление конечных автоматов как описания логических алгоритмов, а на выходе - код на С. В книге даже примеры были с подробным объяснением.
И ещё была книга его, возможно даже у меня где-то есть в бумаге.
Ещё вот, в конце список литературы, и в статье примеры есть, но это опять же конечные автоматы (которые лично мне по душе, но это всё-таки частность): https://is.ifmo.ru/books/_book.pdf

Товарищи, не забывайте что время автора поджимает, не до сарказма.
По вопросам работы Форума можно обратиться по этим контактам.

Автор темы
Arseniy
здесь недавно
здесь недавно
Сообщения: 3
Зарегистрирован: 17 мар 2023, 15:58
Имя: Арсений
Благодарил (а): 6 раз

ПО для перевода в подходящий формат файла для ПЛК

Сообщение Arseniy »

Всем добрый день! Прошу прощения, что не отвечал на выходных - работал над проектом. Во-первых - спасибо всем большое за отзывчивость, не думал, что встречу такую помощь. Во-вторых - распишу задачу по диплому конкретнее, чтобы было понятно, с чем имею дело.
В моей работе я буду использовать программное обеспечение компании IDEC, а именно инструмент программирования WindLDR. На ней будет писаться начальный код для ПЛК. ПЛК, на который нужно будет загружать код предоставляется компанией АСУ ПРО и называется «КАПП-82-168». В промежутке между средой разработки (WindLDR) и ПЛК (КАПП-82-168) будет находиться программа, которую я должен разработать. Её основная задача будет заключаться в переводе написанного кода в WindLDR в подходящий формат файла для ПЛК «КАПП-82-168»
Опыт в разработке АСУ ТП у меня есть, но небольшой. Писал программы в CODESYS на FBD и ST языках, но несложные. С Python, Javascript и С++ знаком лучше, на них часто программировал.

На данный момент у меня две проблемы:
1. Я не знаю как подступиться к разработке моего прототипа. В первую очередь, полагаю, нужно поработать с ПЛК КАПП-82-168, посмотреть, какие сигналы он принимает. Затем проверить файл кода, написанного в WindLDR, и придумать, как его преобразовать в подходящий формат для КАПП-82-168. Вот думаю, правильно ли наметил шаги развития.
2. Хочу посмотреть на аналоги, которые создавали. Спасибо большое, уже немного подсказали в треде, буду искать, смотреть.

Отправлено спустя 9 минут 25 секунд:
VADR писал(а): 20 мар 2023, 00:08 Я почему-то по-другому увидел задачу. Предполагается некоторая открытая среда разработки, в которой инженер на понятном ему языке составляет прграмму. Причём язык - не обязательно русский/английский/китайский, а вполне себе может быть один из МЭК61131-3 (они там все довольно понятно описаны). И надо это дело перевести в язык, понятный контроллеру, причём непосредственно в языке контроллера тот инженер программировать не может. Для аналогии - как в Симатиках перевод из SCL в STL, если бы к последнему не было доступа. Ну, то есть, от ТС хотят компилятор. Arseniy, так?
Да, верно.

Отправлено спустя 1 минуту 7 секунд:
Jackson писал(а): 18 мар 2023, 18:10 Уточняющий вопрос автору. У Вас опыт программирования есть? На каких языках? Это, возможно, облегчит постановку задачи.
Программировал на ST, FBD, но немного. Больше опыта есть в Python, Javascript, и C++

Отправлено спустя 1 минуту 19 секунд:
kirillio писал(а): 17 мар 2023, 17:17 Здравствуйте Арсений.
уточните пожалуйста
Arseniy писал(а): 17 мар 2023, 16:19 код, написанный в открытой среде разработки
какие именно среды и форматы Вы имеете ввиду?
Подходящий формат для ПЛК - это компилированный машинный код, именно поэтому
Arseniy писал(а): 17 мар 2023, 16:19 в среде разработки не будет возможность писать код сразу в подходящем формате для ПЛК.
- так и поступают в большинстве случаев: пишут в среде разработки функциональную программу, компилируют, загружают в ПЛК. Задача не очень понятна.
Здравствуйте, ответил чуть выше в общем сообщении
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17576
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 824 раза
Поблагодарили: 1651 раз

ПО для перевода в подходящий формат файла для ПЛК

Сообщение Jackson »

Насколько сузилась задача. То есть нужно экспортировать во что-то проект из WindLDR и скомпилировать под КАПП-82-168. Нужен просто сторонний компилятор.
[+]
я кажется даже догадываюсь зачем это надо. :) Где-то было сделано много проектов в WindLDR, с началом СВО с поставками тех контроллеров проблемы, переходят на отечественное и чтобы не переписывать код вручную есть желание сделать просто компилятор. Если это так, то я бы всё-таки вручную перебил код конечно. Но заодно студенту будет диплом. Хороший диплом может получиться.
Отправлено спустя 3 минуты 53 секунды:
Только ещё по-хорошему надо бы сделать средство проверки правильности получившеося алгоритма. Ибо если код скомпилировался и загрузился в контроллер без ошибок то это ещё не значит что получился правильный алгоритм. одни и те же операции на разных ПЛК могут иметь нюансы.

И результат компиляции должен быть в формате, готовом к загрузке в КАПП-82-168, то есть как происходит загрузка в него - тоже ещё надо изучить. А эта информация как правило нигде не доступна, это ноу-хау каждого производителя контроллеров. Как максимум, есть софт под ПЛК, который открывает файлы проектов и что-то может импортировать. Соответственно результат должен быть в том формате, который может быть импортирован или подцеплен загрузчиком.
По вопросам работы Форума можно обратиться по этим контактам.

Автор темы
Arseniy
здесь недавно
здесь недавно
Сообщения: 3
Зарегистрирован: 17 мар 2023, 15:58
Имя: Арсений
Благодарил (а): 6 раз

ПО для перевода в подходящий формат файла для ПЛК

Сообщение Arseniy »

Jackson писал(а): 20 мар 2023, 21:30 Насколько сузилась задача. То есть нужно экспортировать во что-то проект из WindLDR и скомпилировать под КАПП-82-168. Нужен просто сторонний компилятор.
[+]
я кажется даже догадываюсь зачем это надо. :) Где-то было сделано много проектов в WindLDR, с началом СВО с поставками тех контроллеров проблемы, переходят на отечественное и чтобы не переписывать код вручную есть желание сделать просто компилятор. Если это так, то я бы всё-таки вручную перебил код конечно. Но заодно студенту будет диплом. Хороший диплом может получиться.
Отправлено спустя 3 минуты 53 секунды:
Только ещё по-хорошему надо бы сделать средство проверки правильности получившегося алгоритма. Ибо если код скомпилировался и загрузился в контроллер без ошибок то это ещё не значит что получился правильный алгоритм. одни и те же операции на разных ПЛК могут иметь нюансы.

И результат компиляции должен быть в формате, готовом к загрузке в КАПП-82-168, то есть как происходит загрузка в него - тоже ещё надо изучить. А эта информация как правило нигде не доступна, это ноу-хау каждого производителя контроллеров. Как максимум, есть софт под ПЛК, который открывает файлы проектов и что-то может импортировать. Соответственно результат должен быть в том формате, который может быть импортирован или подцеплен загрузчиком.
Спасибо большое за комментарии, учту все это. Касательно информации о работе ПЛК, ее мне предоставят, поэтому "начинку" я буду знать.
Можете подсказать, пожалуйста, если знаете, с чего именно стоит начать разработку стороннего компилятора? Может у кого был опыт разработки, знают нюансы, на каком языке лучше кодить и тд. Ну или может работы какие либо уже выгружены в интернет, с удовольствием бы почитал. Просто пока ищу - не сталкивался с подобным. Еще раз, спасибо
Аватара пользователя

Serex
эксперт
эксперт
Сообщения: 2091
Зарегистрирован: 15 авг 2011, 21:36
Имя: Пупков Сергей Викторович
Страна: Россия
город/регион: Москва
Благодарил (а): 135 раз
Поблагодарили: 174 раза

ПО для перевода в подходящий формат файла для ПЛК

Сообщение Serex »

Надо с памятью разбираться. Если в WindLDR косвенная адресация на "кожена", а КАПП-82-168 поддерживается только абсолютная, то задачка для компилятора получается не тривиальная. Ибо архитектуру процессоров не просто так создают и их совместимость - это очень сложная задача, по крайней мере с точки зрения оптимальности полученного кода.

Parliament74
авторитет
авторитет
Сообщения: 813
Зарегистрирован: 16 ноя 2016, 11:33
Имя: Максим Владимирович
Страна: Россия
город/регион: Магнитогорск
Благодарил (а): 16 раз
Поблагодарили: 211 раз

ПО для перевода в подходящий формат файла для ПЛК

Сообщение Parliament74 »

Serex писал(а): 20 мар 2023, 21:48 И результат компиляции должен быть в формате, готовом к загрузке в КАПП-82-168, то есть как происходит загрузка в него - тоже ещё надо изучить. А эта информация как правило нигде не доступна, это ноу-хау каждого производителя контроллеров. Как максимум, есть софт под ПЛК, который открывает файлы проектов и что-то может импортировать
Самое интересное, что КАПП-82-168 (по крайней мере актуальная версия на сайте производителя) дружит с Codesys v3 с соответствующей поддержкой МЭКовских языков)

Михайло
почётный участник форума
почётный участник форума
Сообщения: 3576
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 6 раз
Поблагодарили: 271 раз

ПО для перевода в подходящий формат файла для ПЛК

Сообщение Михайло »

То есть более перспективная работа - конвертация из WindLDR в Codesys.
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17576
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 824 раза
Поблагодарили: 1651 раз

ПО для перевода в подходящий формат файла для ПЛК

Сообщение Jackson »

Arseniy писал(а): 20 мар 2023, 21:45 с чего именно стоит начать разработку стороннего компилятора?
С точной постановки задачи
По вопросам работы Форума можно обратиться по этим контактам.
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17576
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 824 раза
Поблагодарили: 1651 раз

ПО для перевода в подходящий формат файла для ПЛК

Сообщение Jackson »

Parliament74 писал(а): 21 мар 2023, 00:40 Самое интересное, что КАПП-82-168 (по крайней мере актуальная версия на сайте производителя) дружит с Codesys v3 с соответствующей поддержкой МЭКовских языков)
Михайло писал(а): 21 мар 2023, 01:46 То есть более перспективная работа - конвертация из WindLDR в Codesys.
Тоже сразу об этом и подумал.
И вот я всё пытаюсь понять: зачем это всё. :) А без понимания назначения нет и понимания, как делать.
По вопросам работы Форума можно обратиться по этим контактам.
Ответить

Вернуться в «Вопросы от студентов»