У меня есть простая идея, но я думаю, что ее трудно реализовать на simulink. Я создал сервер TCP/IP между BeagleBone и блоком Simulink, используя код C. У меня есть переключатель, подключенный к кости бигля в качестве входа, и моя идея состоит в том, чтобы отображать на блоке simulink отображение, закрыт или открыт переключатель. Я не мог этого сделать, потому что мой клиент (блок Simulink) представляет собой код c, и он выполнит задание только один раз, поскольку код C завершает выполнение функции после возврата, чтобы получить значение переключателя. Ребята, вы знаете какой-нибудь режим передачи Simulink или причудливую подсказку C для передачи данных между клиентским блоком Simulink и дисплеем?
как создать блок передачи Simulink в реальном времени
Ответы (1)
В симуляторе, над которым я работал, мы использовали блок Sink с удаленным IP-адресом и IP-портом для экспорта данных, рассчитанных в режиме реального времени, на внешний прослушиватель (это может быть на той же машине или подключено через сеть), что в нашем случае был компьютер, выполняющий рендеринг графики, который затем подбирался кодом C++, написанным с использованием Ogre 3D, и другой моделью simulink с использованием исходного блока.
У нас также был интерактивный дисплей картплоттера (указание местоположения GPS, если хотите). Мы могли бы получить доступ к значениям, сгенерированным из simulink, вызвав следующую команду в любое время, когда это было необходимо:
variable = get_param('Simulator/Chartplotter/YDot','RuntimeObject');
Вы также можете вызвать «set_param», чтобы изменить постоянное значение, расположенное внутри модели simulink.
У меня нет опыта работы с биглем, но я полагаю, что ваш код C может выполнить сценарий Matlab, который изменит логическую константу, присутствующую в вашей модели simulink, чтобы указать, открыт ли переключатель или нет.
В качестве альтернативы вы можете изучить первый вариант, но мы использовали его только для передачи данных из simulink в программу C, а не наоборот, как вам хотелось бы. К сожалению, у меня нет прямого доступа к принимающему коду C, но если вы действительно застряли, я могу попросить своих коллег прислать мне важные биты.
Надеюсь это поможет.