2016-06-09 4 views
3

가상 박스가 Windows 10 (호스트)에서 실행되는 동안 특정 응용 프로그램을 가상 박스의 우분투 (16.04)에서 실행하고 있습니다.
Simulink (내 호스트에서 실행 중)에서 시뮬레이션을 사용하여 마지막 단계에서 일부 값을 수집합니다. 이 값을 특정 통신 속도로 직렬 연결을 통해 virtualbox (예 : QGroundControl station)에서 실행중인 응용 프로그램으로 출력하려고합니다. 내 질문의가상 호스트의 호스트와 게스트 사이의 COM 포트를 통한 연결

그래서 첫 번째 부분 - 버추얼 : 당신이 볼 수있는 그림에서 enter image description here

같이

버추얼 박스에서, 나는, 직렬 포트를 활성화하고 포트 모드에서 호스트 파이프를 선택했다 COM6이 사용되었지만 대신 COM1과 COM2를 사용했습니다. 나는 둘 다 똑같은 결과를 얻었다.

가상 호스트로 작업하는 데 익숙하지 않아서 호스트와 게스트 사이에 연결이 생성되었거나 어떤 방식 으로든 활성화 또는 연결해야하는지 여부를 모르겠습니까?

내 질문의 두 번째 부분 - 시뮬링크 : 시뮬에서

, 나는 출력하고자 직렬 전송 (I 그 가장 쉬운 방법이라고 생각하기 때문에 더 좋은 방법이 있으면 알려주세요를 사용하여 내 값? 나는 포트를 선택하려면 당신은 내가 보여 내 COM 포트를 얻기 위해 버추얼/시뮬에서/변경을 할 필요가 무엇

enter image description here

에서 볼 수 있듯이 나)하지만, 어떤 포트가 표시되지 않습니다 쪽으로?

마지막 부분 - 매트랩 : 시뮬에서, 더 COM-포트가 표시되지 않았기 때문에

, 내가 matlab에에서 사용할 수있는 포트를 확인하고 싶어하지만 분명히 내 모든 포트가 닫혀 :
`>> 정보 = 속성 instrhwinfo ('시리얼')

정보 =

HardwareInfo :

AvailableSerialPorts: {0x1 cell} 
     JarFileVersion: 'Version 3.8' 
ObjectConstructorName: {0x1 cell} 
      SerialPorts: {0x1 cell} 

하드웨어에 대한 액세스는 지원 패키지를 통해 제공 될 수 있습니다. 학습 지원 패키지 설치로 이동 more.`

내가하면 fopen()를 사용하여 내 포트 중 하나를 열려고하면 - 명령을, 나는이 메시지가 :
오류가 시리얼/fopen을
열기 실패 사용 : 포트 : COM1을 사용할 수 없습니다. 사용할 수있는 포트가 없습니다. INSTRFIND를 사용하여 다른 악기 개체가 요청 된 장치에 연결되어 있는지 확인하십시오.
"INSTRFIND"를 사용하면 모든 포트가 닫혀 있음을 알 수 있습니다.

+0

그 [Serial Configuration] (http://www.mathworks.com/help/instrument/serialconfiguration.html) 블록을 사용하여 COM 포트를 선택하지 않은 것 같습니다. 따라서 'Serial Send'블록에서 아무 것도 선택할 수 없습니다 . 당신이 그 일을했는지 ​​여부를 확인할 수 있습니까? –

+0

보기는 직렬 구성 블록에서 동일합니다. 포트가 전혀 표시되지 않습니다. 그러나 나는 그 그림을 명확하게하기 위해 그림을 바꿀 것이다. – Lis

답변

2

우선 가상 박스는 호스트의 직렬 포트를 만들지 않을 것입니다. 따라서 다른 소프트웨어를 사용하여 호스트에 2 개의 가상 COM 포트를 만들고이 두 포트를 가상으로 브리지해야합니다. 그런 다음 하나의 포트를 사용하여 simulink에 연결하고 다른 포트는 VM COM 포트가이 포트를 사용하는 방식으로 설정해야합니다.

Windows에서 가상 COM 포트를 만들려면 을 Faking an RS232 Serial Port에서 사용합니다. 원하는 소프트웨어를 사용할 수 있습니다.

com0com을 설치 한 후 setuppg.exeC:\Program Files (x86)\com0com에서 엽니 다. enter image description here

클릭하면 적용됩니다. 지금 당신은 우리가 개방 Oracle VM VirtualBox Manager에 대한 COM1 port in Guest OSCOM9 port in Host를 연결하고 필요한 가상 머신의 설정을 열 필요가

다음 (COM9COM10가 내부적으로 연결되어 그와 같은) COM9COM10이 브리지해야합니다. 이제 아래 그림과 같이 Serial Ports을 선택하고 확인을 클릭하십시오. enter image description here

참고 : 창문은 당신이 창에서 명명 규칙을 전체 장치를 사용해야합니다 다른 모든 COM 포트의 COM 포트 9에 이르기까지 1 기존의 이름을 제공합니다. 따라서 COM9 대신 COM10을 사용하기로 결정한 경우 COM10Path/Address에 적용하면 효과가 없습니다. 대신 사용해야합니다 \\.\COM10

이제 가상 컴퓨터를 시작하고 포트가 준비되었습니다. 이제 포트가 시뮬 링크에 표시되고이 시나리오에서 COM10에 연결하고 가상 컴퓨터에서 QGroundControl stationCOM1에 연결합니다.

시뮬 < -> COM10 (호스트)

COM10 (호스트) < -> COM9 com0com

COM9 (호스트)로 연결 < (호스트) >> ->를 COM1 (오라클 VM 버추얼

COM1 (고객) <에 의해 연결된 고객) >> - 사진에서> QGroundControl 역

+0

고맙다. 나는 이것을 즉시 시도 할 것이다. – Lis

+0

그것은 나를 위해 일했다! 귀하의 설명의 마지막 부분에서만 COM9와 COM10을 전환했다고 생각합니까? 도움 주셔서 감사합니다! – Lis

+0

나는 어떤 실수도 찾아 내지 못한다. 어디 있니? –