Как стать автором
Обновить

Комментарии 8

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

Но, опять же, чаще всего — это IBM совместимый компьютер с аппаратными и програм[м]ными компонентами, позволяющими ему работать [в] жестком реальном времени.

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


Я с удовольствием прочел диалог по предложенной ссылке.

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

Если для решения поставленных задач хватает «мягкого» реального времени — можно смело использовать персоналку.
Есть куча решений для этого с использованием различных технологий. От мультимедийных таймеров до микроядер ОС.
Выбег за временной интервал — снижение качества сервиса.

Если же необходимо обеспечить «жесткое» реальное время — необходимо обезопасить себя от SMM, и других прерываний и временных задержек не контролируемых ОС и целевым приложением. И использовать соответствующую ОС жесткого реального времени.
Звучит просто, но на практике выливается в переписывание BIOS, перепайку материнской платы и прочие милые инженеру вещи.
А потом приходит момент, когда необходимо синхронизировать две машины, или сделать внешнее тактирование, или прерывания, или вынести часть логики на FPGA. Тогда реальное время на коленке перерастает в полноценную разработку аппаратной и программной части.

Это безумно интересно!
Но в итоге мы занимаемся разработкой инструментов, а не решением задач возложенных на инструменты.
Эти две активности нужно очень четко разделять.
Фразы типа " Переписывание прошивки заново чревато внесением новых ошибок и сводит на смарку предыдущие этапы." приводят к впечатлению того, что индустриальная разработка заключается в «кое-как разобрались с тем, что сделано в соседней сфере, тяп-ляп и в продакшн», сплошное желание отделаться побыстрее и не накосячить же. Вот и берутся подходы, выброшенные на свалку много лет назад… узкая специализация виновата, имхо.
Не совсем понял Ваш комментарий.
Что Вы имеете ввиду под подходами выброшенными на свалку?

Конечно, идеальный вариант иметь универсального алгоритмиста-программиста, у которого докторская по биологии и опыт разработки под микропроцессоры.

На практике такие самородки редко встречаются. Чаще всего бывает нужно подружить алгоритмиста со знанием дела и программиста со знанием железа и ПО. Иногда между этими людьми находится очень большая пропасть из взаимного непонимания.
Спасибо за статью!

Поясните пожалуйста такой вопрос по видео “PLC Siemens + Speedgoat real-time machine”: После того как была загружена программа в реальный ПЛК, откуда приходит сигнал On для включения установки?
Поясните пожалуйста такой вопрос по видео “PLC Siemens + Speedgoat real-time machine”: После того как была загружена программа в реальный ПЛК, откуда приходит сигнал On для включения установки?


Начиная с времени 13:44 я выбираю режим запуска модели Simulink — «External». Это означает, что оригинальный исполняемый файл будет выполнятся на машине реального времени, но управлять им я смогу из модели Simulink. Модель в данном случае выполняет роль GUI для получившегося экзешника.

Начиная с моента 14:32, когда исполняемый файл уже запущен на машинке, я подаю сигнал «включения» установки вручную, нажав на переключатель в модели симулинк. Можно увидеть, как после нажания блок константы изменяет свое значение с 0 на 1. Данное значение подается на вход POWER нашей модели нагревателя и он переходит в рабочее состояние.

На самом деле не обязаятельно делать это вручную. Можно целый сценарий эксперимента заранее продумать.
Так просто нагляднее.
Спасибо, про GUI я понял.

То есть, нажимаете кнопку на экране, значение попадает в машину реального времени, после чего с “железного” выхода этой машины идёт на вход ПЛК (I1.0)?
Абсолютно верно.

Модель Simulink на моем ноутбуке — зеркало исполняемого файла на машине реального времени.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.