uni 6 5 октября, 2022 Опубликовано 5 октября, 2022 · Жалоба Периферия там не причём. Можно собрать и без неё, это не важно. Куски кода, которые адаптируют soft plc тоже вписываются в среде разработки и это может быть что угодно. Я имел в виду, что сам matiec отлаживался на обычных программах под Linux, поэтому предполагается наличие полных заголовочных файлов, а не обрезанных, как в библиотеках поддержки компилятора AVR или ARM. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 5 октября, 2022 Опубликовано 5 октября, 2022 (изменено) · Жалоба 1 час назад, uni сказал: Кросс-транслятор matiec используется, чтобы на основе мэковского языка получить Си-шные исходники. А, ну тогда ясно, не тот вариант, который бы мне хотелось, а именно, на МК ставится фреймворк для работы со скриптом, сгенерированным этой графической средой, фреймворк компилируется один раз и навсегда для конкретного железа, то, что сгенерировала ИДЕ является просто списком указаний и не требует каких-то компиляций, а просто заливается в ПЛК и на нем работает под управлением рантайм фреймворка... Изменено 5 октября, 2022 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 42 5 октября, 2022 Опубликовано 5 октября, 2022 · Жалоба 6 minutes ago, mantech said: на МК ставится фреймворк На МК ставится среда исполнения. 6 minutes ago, mantech said: для работы со скриптом Так для того и делается Си-файл, чтоб получить прогу в кодах целевого процессора! Может, всё-таки для начала почитать доступные доки, а не сыпать мусор в тему? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 5 октября, 2022 Опубликовано 5 октября, 2022 · Жалоба 1 минуту назад, tonyk_av сказал: На МК ставится среда исполнения. И что в нее входит? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 42 5 октября, 2022 Опубликовано 5 октября, 2022 · Жалоба 11 minutes ago, uni said: сам matiec отлаживался на обычных программах под Linux При чём тут отладка matiec? Мы говорим про IEC 61131-3 так-то. И отладка программ на этих языках, вообще-то, идёт их среды программирования ПЛК. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 5 октября, 2022 Опубликовано 5 октября, 2022 · Жалоба 2 минуты назад, tonyk_av сказал: Может, всё-таки для начала почитать доступные доки, А может тогда объясните доступным языком? Отсылать в какие-то доки - не больно дельный совет... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 42 5 октября, 2022 Опубликовано 5 октября, 2022 · Жалоба Just now, mantech said: Отсылать в какие-то доки - не больно дельный совет... Зачем пересказывать то, что написано и нарисовано? Кому-то впадлу почитать? Приятней отвлекать людей? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 48 5 октября, 2022 Опубликовано 5 октября, 2022 · Жалоба 4 минуты назад, tonyk_av сказал: делается Си-файл, чтоб получить прогу в кодах целевого процессора! И дальше-то что? Его нужно где-то и чем-то компилировать, или он прямь в исходнике и заливается в ПЛК? Только что, tonyk_av сказал: Зачем пересказывать то, что написано и нарисовано? Да можно просто ссылку дать, или тоже очень отвлекаю? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 42 5 октября, 2022 Опубликовано 5 октября, 2022 · Жалоба 1 minute ago, mantech said: а можно просто ссылку дать, или тоже очень отвлекаю? Уже давал: Любим zaёбывать людей? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uni 6 5 октября, 2022 Опубликовано 5 октября, 2022 · Жалоба Я видео нарисую как происходит процесс на своём примере. Никакого рантайма в случае с matiec, конечно нет. То есть результат кросс-компиляции (прошивка) содержит в себе движок, который управляет задачами. Они собираются все вместе в единую прошивку. В коде FX2N это не так, там встроен интерпретатор, который можно условно назвать runtime'ом. Это разные подходы. В первом случае мэк программа переводится в исполняемый файл или прошивку, копируется на целевой мк и там исполняется либо процессором напрямую, либо с помощью ОС. В общем случае нужно самому заниматься администрированием и развёртыванием. Во втором роль ОС выполняет специализированный интерпретатор (он сам может быть программой), который заточен под конкретное железо, протокол и среду разработки. От вас скрыт весь внутренний механизм работы. При адаптации matiec кода нужно завести таймер, описать периферию, если используется, добавить отладочный код на стороне мк и создать сборочные Makefile файлы. Когда я этим занимался, то у меня возникли проблемы с включением заголовочных файлов для AVR. Было непонятно как их правильно включать, чтобы не возникало проблем с генерируемым Си-кодом. В первом случае без целевого компилятора не обойтись, но зато роль протокола выполняет сам Си-код, который является стандартом. Такой подход используется в Simulink и SimInTech при генерации кода в мк без ОС. Там схемы превращаются в проект, который собирается целевым компилятором и прошивается в мк. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 42 5 октября, 2022 Опубликовано 5 октября, 2022 · Жалоба 10 minutes ago, uni said: Никакого рантайма в случае с matiec, конечно нет В том то и дело, что есть. Посмотри код, который делает matiec: там и вызовы функций для доступа к периферии, и поддержка отладки. Неужели ты думал, что в среде для ПЛК нет отладки? Если ты запускал примеры, то должен был видеть работу отладчика МЭК-программы. Если ты не прилинковал к результату работы matiec библиотеку с этими функциями, то, ессно, кроме голого кода ничего не увидишь. Даже интересно стало: если у тебя работали DI и DO, то должны были быть определены хотя бы функции доступа к выводам целевого МК. А если ты не видел работу отладчика, то, пардон, без реализации функций работы с отладочным интерфейсом ты ничего и быть не могло. 15 minutes ago, uni said: мэк программа переводится в исполняемый файл или прошивку, копируется на целевой мк и там исполняется Я с загрузкой не разбирался, но она должна быть. Технических сложностей нет, нужно, скорей всего, реализовать функции загрузки программы в ПЗУ и, возможно, указать линковщику начальный адрес размещения программы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 42 5 октября, 2022 Опубликовано 5 октября, 2022 (изменено) · Жалоба 44 minutes ago, uni said: роль ОС выполняет специализированный интерпретатор (он сам может быть программой), который заточен под конкретное железо, протокол и среду разработки Вот как раз интерпретатор ничего не знает о "железе"! Совсем ничего! И не должен знать, кстати, если подумать. Ты, наверно, не в курсе, но да даже у Мицубиси две среды программирования их FX2N, плюс у китайцев есть своя. Более того, почти весь протокол доступа к ПЛК от Мицубиси описан в их официальной документации, которую можно свободно взять на их сайте и реализовать свою среду программирования. Кстати, видел несколько российских ОРС-серверов для доступа к памяти ПЛК Мицубиси через порт программирования. Улавливаешь намёк? 44 minutes ago, uni said: От вас скрыт весь внутренний механизм работы. От нас ничего не скроешь. :))) 44 minutes ago, uni said: При адаптации matiec кода нужно завести таймер, описать периферию, если используется, добавить отладочный код на стороне мк и создать сборочные Makefile файлы Ну, всё знаешь, но не понял чё-куда. Зачем таймер, что должен делать обработчик прерывания от таймера? Что за отладочный код? Не тот ли, который обеспечивает взаимодействие с отладчиком? По какому интерфейсу, UART или CAN? И далее по списку. Вот и ищу документацию, в которой описаны требования к тому, что нужно для полноценной работы сгенерированного matiec кода на целевом МК. Изменено 5 октября, 2022 пользователем tonyk_av Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uni 6 5 октября, 2022 Опубликовано 5 октября, 2022 · Жалоба Ещё раз поясняю. То, что я называю runtime'ом для softplc покупается вместе с самой железкой и идёт в её составе. Это его неотъемлемая часть. У ПЛК Codesys, runtime является частью железа. Можно подключаться к ПЛК и работать с ним даже без самой программы. В случае с matiec никакого ПЛК runtime'а нет и быть не может, ибо для работы ПЛК его надо сначала собрать. В этом случае железка является голым железом без ничего или с фирменным загрузчиком общего пользования в случае системы без ОС. Поэтому, покупая, к примеру ПЛК с Codesys, он будет содержать runtime. Покупая FX2N, он тоже будет содержать runtime. Но для matiec вы можете купить Arduino и это не ПЛК. Она станет таковым, когда туда зальется необходимое ПО, содержащее среду исполнения (runtime) и саму программу, которые представляют из себя единое и не делимое целое, разное для каждой правки мэк программы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 42 5 октября, 2022 Опубликовано 5 октября, 2022 (изменено) · Жалоба 19 minutes ago, uni said: Она станет таковым, когда туда зальется необходимое ПО Фрагмент из документации на ПЛК "Нуклерон": Сие означает, что в ПЛК уже находится рантайм, связывающийся со средой программирования, принимающий от неё программу и обеспечивающий эту программу всеми необходимыми ей сервисами. Изменено 5 октября, 2022 пользователем tonyk_av Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uni 6 5 октября, 2022 Опубликовано 5 октября, 2022 (изменено) · Жалоба Загрузчик - это не среда исполнения. Если бы это было так, то любой камень STM32 с загрузчиком можно было назвать ПЛК, но почему-то никому это в голову не приходит. Среда исполнения (runtime) как правило существует в единственном экземпляре для конкретного железа. Она не перекомпилируется пользователем, а является частью ПЛК. Сходите на сайт Codesys, там есть условно бесплатные такие среды для Raspberrypi, которые превращают последний в ПЛК. После загрузки среды в Raspberrypi она не меняется и остаётся постоянной на всё время жизни такого ПЛК. Вне зависимости от загружаемого мэк кода. Вы не можете повредить исполняемый файл среды исполнения, загружая проект в ПЛК. В случае с matiec нет такой отдельной среды исполнения, потому что мэк программа и среда исполнения являются одним целым - единицей компиляции. Эта прошивка всегда разная для любой правки мэк кода. Вы можете повредить среду исполнения, так как она собирается пользователем. Изменено 5 октября, 2022 пользователем uni Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться