Перейти к содержанию
    

Подскажите аналоги базы для модуля вычислителя

Периферия там не причём. Можно собрать и без неё, это не важно. Куски кода, которые адаптируют soft plc тоже вписываются в среде разработки и это может быть что угодно. Я имел в виду, что сам matiec отлаживался на обычных программах под Linux, поэтому предполагается наличие полных заголовочных файлов, а не обрезанных, как в библиотеках поддержки компилятора AVR или ARM.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, uni сказал:

Кросс-транслятор matiec используется, чтобы на основе мэковского языка получить Си-шные исходники.

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

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 minutes ago, mantech said:

на МК ставится фреймворк

На МК ставится среда исполнения.

6 minutes ago, mantech said:

для работы со скриптом

Так для того и делается Си-файл, чтоб получить прогу в кодах целевого процессора!

 

Может, всё-таки для начала почитать доступные доки, а не сыпать мусор в тему?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 минуту назад, tonyk_av сказал:

На МК ставится среда исполнения.

И что в нее входит?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 minutes ago, uni said:

сам matiec отлаживался на обычных программах под Linux

При чём тут отладка matiec? Мы говорим про IEC 61131-3 так-то. И отладка программ на этих языках, вообще-то, идёт их среды программирования ПЛК.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 минуты назад, tonyk_av сказал:

Может, всё-таки для начала почитать доступные доки,

А может тогда объясните доступным языком? Отсылать в какие-то доки - не больно дельный совет...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Just now, mantech said:

Отсылать в какие-то доки - не больно дельный совет...

Зачем пересказывать то, что написано и нарисовано? Кому-то впадлу почитать? Приятней отвлекать людей?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 минуты назад, tonyk_av сказал:

делается Си-файл, чтоб получить прогу в кодах целевого процессора!

И дальше-то что? Его нужно где-то и чем-то компилировать, или он прямь в исходнике и заливается в ПЛК?

Только что, tonyk_av сказал:

Зачем пересказывать то, что написано и нарисовано?

Да можно просто ссылку дать, или тоже очень отвлекаю?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, mantech said:

а можно просто ссылку дать, или тоже очень отвлекаю?

Уже давал:

image.thumb.png.008aaf7eadbdc168386bb936d60fd766.png

Любим zaёбывать людей?

image.thumb.png.511a49683db17e780dc831b1f2bf47f5.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я видео нарисую как происходит процесс на своём примере. Никакого рантайма в случае с  matiec, конечно нет. То есть результат кросс-компиляции (прошивка) содержит в себе движок, который управляет задачами. Они собираются все вместе в единую прошивку. 

В коде FX2N это не так, там встроен интерпретатор, который можно условно назвать runtime'ом. 

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

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

При адаптации matiec кода нужно завести таймер, описать периферию, если используется, добавить отладочный код на стороне мк и создать сборочные Makefile файлы. Когда я этим занимался, то у меня возникли проблемы с включением заголовочных файлов для AVR. Было непонятно как их правильно включать, чтобы не возникало проблем с генерируемым Си-кодом. 

В первом случае без целевого компилятора не обойтись, но зато роль протокола выполняет сам Си-код, который является стандартом. Такой подход используется в Simulink и SimInTech при генерации кода в мк без ОС. Там схемы превращаются в проект, который собирается целевым компилятором и прошивается в мк. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 minutes ago, uni said:

Никакого рантайма в случае с  matiec, конечно нет

В том то и дело, что есть.

Посмотри код, который делает matiec: там и вызовы функций для доступа к периферии, и поддержка отладки. Неужели ты думал, что в среде для ПЛК нет отладки? Если ты запускал примеры, то должен был видеть работу отладчика МЭК-программы. Если ты не прилинковал к результату работы matiec библиотеку с этими функциями, то, ессно, кроме голого кода ничего не увидишь.
Даже интересно стало: если у тебя работали DI и DO, то должны были быть определены хотя бы функции доступа к выводам целевого МК. А если ты не видел работу отладчика, то, пардон, без реализации функций работы с отладочным интерфейсом ты ничего и быть не могло.

15 minutes ago, uni said:

мэк программа переводится в исполняемый файл или прошивку, копируется на целевой мк и там исполняется

Я с загрузкой не разбирался, но она должна быть. Технических сложностей нет, нужно, скорей всего, реализовать функции загрузки программы в ПЗУ и, возможно, указать линковщику начальный адрес размещения программы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

44 minutes ago, uni said:

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

Вот как раз интерпретатор ничего не знает о "железе"! Совсем ничего! И не должен знать, кстати, если подумать.

Ты, наверно, не в курсе, но да даже у Мицубиси две среды программирования их FX2N, плюс у китайцев есть своя. Более того, почти весь протокол доступа к ПЛК от Мицубиси описан в их официальной документации, которую можно свободно взять на их сайте и реализовать свою среду программирования. Кстати, видел несколько российских ОРС-серверов для доступа к памяти ПЛК Мицубиси через порт программирования. Улавливаешь намёк?

44 minutes ago, uni said:

От вас скрыт весь внутренний механизм работы.

От нас ничего не скроешь. :)))

44 minutes ago, uni said:

При адаптации matiec кода нужно завести таймер, описать периферию, если используется, добавить отладочный код на стороне мк и создать сборочные Makefile файлы

Ну, всё знаешь, но не понял чё-куда. Зачем таймер, что должен делать обработчик прерывания от таймера? Что за отладочный код? Не тот ли, который обеспечивает взаимодействие с отладчиком? По какому интерфейсу, UART или CAN? И далее по списку.

Вот и ищу документацию, в которой описаны требования к тому, что нужно для полноценной работы сгенерированного matiec кода на целевом МК.

Изменено пользователем tonyk_av

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ещё раз поясняю. То, что я называю runtime'ом для softplc покупается вместе с самой железкой и идёт в её составе. Это его неотъемлемая часть. У ПЛК Codesys, runtime является частью железа. Можно подключаться к ПЛК и работать с ним даже без самой программы. 

В случае с matiec никакого ПЛК runtime'а нет и быть не может, ибо для работы ПЛК его надо сначала собрать. В этом случае железка является голым железом без ничего или с фирменным загрузчиком общего пользования в случае системы без ОС. 

Поэтому, покупая, к примеру ПЛК с Codesys, он будет содержать  runtime. Покупая FX2N, он тоже будет содержать runtime. Но для matiec вы можете купить Arduino и это не ПЛК. Она станет таковым, когда туда зальется необходимое ПО, содержащее среду исполнения (runtime) и саму программу, которые представляют из себя единое и не делимое целое, разное для каждой правки мэк программы. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

19 minutes ago, uni said:

Она станет таковым, когда туда зальется необходимое ПО

Фрагмент из документации на ПЛК "Нуклерон":

image.thumb.png.958b28a076aca3cc762604f31f2591dd.png

Сие означает, что в ПЛК уже находится рантайм, связывающийся со средой программирования, принимающий от неё программу и обеспечивающий эту программу всеми необходимыми ей сервисами.

Изменено пользователем tonyk_av

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Загрузчик - это не среда исполнения. Если бы это было так, то любой камень STM32 с загрузчиком можно было назвать ПЛК, но почему-то никому это в голову не приходит. 

Среда исполнения (runtime) как правило существует в единственном экземпляре для конкретного железа. Она не перекомпилируется пользователем, а является частью ПЛК. Сходите на сайт Codesys, там есть условно бесплатные такие среды для Raspberrypi, которые превращают последний в ПЛК. После загрузки среды в Raspberrypi она не меняется и остаётся постоянной на всё время жизни такого ПЛК. Вне зависимости от загружаемого мэк кода. Вы не можете повредить исполняемый файл среды исполнения, загружая проект в ПЛК. 

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

Изменено пользователем uni

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...