사용자 도구

사이트 도구


products:mpino_studio2:monitoring

문서의 이전 판입니다!


MPINO STUDIO 2 Phase 6 · 시리얼ㆍ래더 모니터링

시리얼 모니터에서 Arduino Code의 송수신 데이터를 확인하고, 래더 모니터링에서 접점ㆍ코일ㆍ메모리 현재값과 도통 상태를 확인하는 방법을 설명합니다.

Arduino Code의 시리얼 데이터와 래더로직의 상태를 확인하는 두 가지 모니터링 흐름

1. 시리얼ㆍ래더 모니터링

두 기능은 확인하는 대상과 화면에 표시되는 값이 다릅니다.

확인하려는 내용 사용할 기능 화면에서 보는 값
Arduino Code의 Serial.print() 출력과 PC에서 보낸 데이터 시리얼 모니터 문자 또는 HEX 바이트
래더로직의 접점ㆍ코일ㆍ메모리ㆍ도통 상태 래더 모니터링 ON/OFF, 현재값, 도통 색

시리얼 모니터는 Arduino Code가 보드의 시리얼 포트로 주고받는 데이터를 확인할 때 사용합니다. 래더 모니터링은 보드에서 실행 중인 래더로직의 내부 상태를 래더 화면에서 확인할 때 사용합니다.

2. 시리얼 모니터 연결

  1. 상태바 오른쪽의 포트 선택에서 PC에 연결된 시리얼 포트를 선택합니다.
  2. 활동 표시줄의 시리얼 모니터를 선택하거나 하단 패널에서 시리얼 모니터 탭을 엽니다.
  3. Arduino Code의 Serial.begin()과 같은 통신속도를 선택합니다.
  4. 수신할 문자의 인코딩을 선택한 뒤 연결을 누릅니다.
  5. 상태가 연결됨으로 바뀌었는지 확인합니다.

포트, 통신속도, 인코딩, 연결 버튼을 표시한 시리얼 모니터 화면

  • 1 대상 포트: 상태바에서 선택한 PC 시리얼 포트입니다.
  • 2 통신속도: Arduino Code의 Serial.begin()과 같은 baud를 선택합니다.
  • 3 인코딩: 수신 바이트를 문자로 해석할 방식을 선택합니다.
  • 4 연결: 연결ㆍ끊기ㆍ재연결 상태를 전환하고 확인합니다.

수신 인코딩은 UTF-8, EUC-KR (한국어), Shift-JIS (일본어), Latin-1 (ISO-8859-1), Windows-1252를 지원하며 기본값은 UTF-8입니다. 인코딩은 ASCII 보기의 수신 데이터에만 적용되고 HEX 보기와 송신 데이터에는 적용되지 않습니다.

연결 중에 통신속도를 바꾸면 기존 연결에는 바로 적용되지 않습니다. 끊기를 누른 뒤 다시 연결하십시오. Serial.begin()과 통신속도가 다르면 수신 문자가 깨지거나 데이터가 표시되지 않을 수 있습니다.

3. 데이터 수신ㆍ송신

다음 코드는 1초마다 카운터 값을 보내고, PC에서 R 또는 r을 받으면 값을 0으로 초기화합니다.

unsigned long previousMillis = 0;
int count = 0;
 
void setup() {
  Serial.begin(9600);  // 시리얼 모니터의 통신속도도 9600으로 맞춥니다.
  Serial.println("Counter ready. Send R to reset.");
}
 
void loop() {
  if (millis() - previousMillis >= 1000) {  // 1초마다 값을 전송합니다.
    previousMillis = millis();
    count++;
    Serial.print("count = ");
    Serial.println(count);
  }
 
  if (Serial.available() > 0) {  // PC에서 받은 데이터가 있을 때 읽습니다.
    char received = Serial.read();
    if (received == 'R' || received == 'r') {
      count = 0;
      Serial.println("-- reset --");
    }
  }
}

코드를 빌드ㆍ업로드한 뒤 시리얼 모니터를 9600 baud로 연결하면 count = 1, count = 2가 1초 간격으로 표시됩니다. 입력창에 R을 입력하고 Enter 또는 송신을 누르면 > R과 보드의 응답 – reset –을 확인할 수 있습니다.

카운터 값 수신, R 송신, 초기화 응답이 이어지는 시리얼 모니터 화면

ASCIIㆍHEX 보기

ASCII 보기에서는 선택한 인코딩으로 수신 바이트를 문자로 표시합니다. HEX 보기에서는 같은 데이터를 41 42 0D 0A처럼 2자리 대문자 바이트와 공백으로 표시합니다.

같은 시리얼 데이터를 ASCII 문자와 HEX 바이트로 표시한 비교

보기 모드를 전환하면 이전 수신 내용이 지워지고 새 모드의 데이터가 표시됩니다. 버튼에는 현재 모드가 아니라 전환할 모드가 표시됩니다.

줄 끝 문자

입력창 옆에서 송신 데이터 뒤에 붙일 줄 끝 문자를 선택합니다.

선택 추가되는 바이트 사용 기준
None (LE 없음) 없음 입력한 데이터만 전송
줄바꿈 (LF) 0A \n을 기다리는 코드
캐리지 리턴 (CR) 0D \r을 기다리는 코드
줄바꿈 + 캐리지 리턴 (CRLF) 0D 0A \r\n을 기다리는 코드

None, LF, CR, CRLF가 송신 데이터 뒤에 추가하는 바이트

ASCII 보기에서 입력한 문자는 항상 UTF-8로 송신됩니다. HEX 보기에서는 52 또는 52 0D 0A처럼 원시 바이트를 직접 입력할 수 있습니다. 공백 없이 520D0A로 입력해도 됩니다. 16진수가 아닌 문자가 있거나 자릿수가 홀수이면 송신되지 않습니다.

복사는 현재 수신 버퍼 전체를 클립보드에 복사하고 지우기는 화면의 누적 내용을 비웁니다. 화면을 지워도 연결 상태는 유지됩니다.

4. 래더 모니터링 설정

래더 모니터링 데이터는 프로젝트에서 선택한 보드 통신 채널로 전송됩니다. 먼저 채널을 설정한 뒤 변경 내용을 보드에 다시 업로드해야 합니다.

모니터링 포트 설정, 빌드, 업로드, 모니터링으로 이어지는 설정 순서

  1. 설정 → 래더 설정 → 모니터링 사용 포트를 엽니다.
  2. PC와 연결할 보드의 통신 채널을 선택합니다.
  3. 프로젝트를 다시 빌드하고 업로드합니다.
  4. 상태바에서 해당 연결의 PC 시리얼 포트를 선택합니다.

래더 설정에서 모니터링 사용 포트를 선택하는 화면

보드에서 사용할 수 있는 채널만 목록에 표시됩니다. 사용 안 함을 선택하면 래더 모니터링 데이터가 생성되지 않습니다. Serial, Serial1, Serial2 가운데 실제로 표시되는 항목은 선택한 보드의 통신 채널 정의를 따릅니다. MPINO-8A4R(T)-S에서는 사용 안 함, Serial, Serial1이 표시됩니다.

포트를 변경한 뒤 업로드하지 않은 상태에서 모니터링을 켜면 업로드 안내가 표시됩니다. 업로드를 선택하여 변경한 채널을 보드에 반영하십시오.

모니터링 채널 변경 뒤 업로드가 필요하다는 안내

포트 충돌 주의: 선택한 채널을 프로젝트의 통신 설정이나 Arduino Code에서 함께 사용하면 모니터링 데이터와 사용자 통신이 충돌합니다. 충돌 안내가 표시되면 모니터링 전용 채널을 선택하거나 같은 채널을 사용하는 통신 설정과 코드를 변경하십시오.

5. 래더 모니터링 시작ㆍ종료

포트 설정과 업로드를 마친 뒤 다음 방법 중 하나로 래더 모니터링을 시작하거나 종료합니다.

  • 시리얼 모니터 헤더의 모니터링 버튼
  • 래더 화면 우클릭 메뉴의 모니터링 ON모니터링 OFF
  • Ctrl + M

시리얼 모니터 버튼, 래더 우클릭 메뉴, Ctrl M으로 모니터링을 전환하는 세 가지 방법

단축키는 파일 → 환경설정 → 단축키에서 변경할 수 있습니다.

모니터링 사용 포트가 사용 안 함이면 모니터링 포트 설정 필요 안내가 표시됩니다. 환경설정 열기를 선택하고 4번의 설정을 완료하십시오.

모니터링 사용 포트가 설정되지 않았을 때 표시되는 안내

PC 시리얼 포트를 선택하지 않았다면 상태바에서 포트를 선택한 뒤 다시 시작하십시오. 모니터링이 켜지면 버튼과 우클릭 메뉴가 ON 상태로 바뀌고, 끄면 연결을 종료하며 래더의 실시간 표시를 제거합니다.

6. 래더 상태 읽기

모니터링을 켜면 래더 화면에서 도통 상태와 셀의 현재값을 함께 확인할 수 있습니다.

박스함수 값, 워드 값, 타이머 현재값, 비교값을 표시한 래더 모니터링 화면

셀 종류 화면에서 확인할 내용
비트 접점ㆍ코일 노란색 도통 표시와 ON/OFF 상태
박스함수 박스 안에 표시되는 대상 주소의 현재값
워드 메모리 셀 아래에 표시되는 숫자 현재값
타이머ㆍ카운터 접점 완료 조건의 도통 상태
비교 접점 비교 양쪽의 실제 값과 비교 결과
빈 셀에 입력한 주소 비트 주소의 ON/OFF 또는 숫자 주소의 현재값
  • 1 박스함수 현재값: 타이머ㆍ카운터ㆍ연산 대상의 값을 박스 안에서 확인합니다.
  • 2 워드 현재값: DㆍCㆍT 등의 값을 셀 아래에서 확인합니다.
  • 3 타이머 현재값: 타이머 주소의 현재값을 시간 단위 또는 숫자로 확인합니다.
  • 4 비교값: 비교 접점 아래에 양쪽의 실제 값이 표시되고, 비교 결과는 도통으로 확인합니다.

보드가 멈추거나 연결이 끊기면 마지막으로 받은 값과 도통 표시가 화면에 남을 수 있습니다. 이때 시간에 따라 변하던 @F 특수 비트의 점멸은 멈춥니다. 값이 바뀌지 않을 때는 모니터링 연결 상태를 먼저 확인하십시오.

7. 표시 형식

래더 셀을 우클릭하여 실시간 숫자의 표시 형식을 선택합니다. 현재 선택한 형식에는 체크가 표시됩니다.

하나의 16비트 값을 다섯 가지 숫자 형식으로 표시한 비교

표시 형식 읽는 방법
Signed Decimal 현재 자료형의 값을 부호 있는 10진수로 표시
Unsigned Decimal 정수 비트 패턴을 부호 없는 10진수로 표시
Hexdecimal 비트 패턴을 0x로 시작하는 16진수로 표시
Binary 비트 패턴을 0b로 시작하는 2진수로 표시
Floating Point 16비트 정수는 half-precision, 32비트 정수는 single-precision 실수로 해석하여 표시

위 이미지는 하나의 16비트 값을 비교한 예입니다. 32비트 값은 Hexdecimal에서 8자리, Binary에서 32자리로 표시되며, R 메모리는 저장된 32비트 실숫값을 기준으로 표시됩니다.

표시 형식은 특정 셀이나 프로젝트에만 적용되는 설정이 아닙니다. 이 PC의 모든 프로젝트에 공통으로 적용되고 프로그램을 다시 실행해도 유지됩니다. 기본 형식은 Signed Decimal입니다.

타이머 현재값

타이머 프리셋을 TON T0 1m10s처럼 시간 문법으로 입력하면 Signed Decimal에서 현재값도 1m10s, 43s210ms, 500ms와 같은 시간 단위로 표시됩니다. 프리셋을 숫자로 입력하면 현재값도 숫자로 표시됩니다.

숫자 프리셋과 시간 문법 프리셋의 타이머 현재값 표시 비교

Signed Decimal 이외의 형식을 선택하면 시간 문법 대신 선택한 숫자 형식으로 표시됩니다. 카운터 프리셋에는 시간 단위를 사용하지 않습니다.

비교 접점 값

D0 > D1과 같은 비교 접점은 모니터링 중에 5 > 3처럼 양쪽의 현재값을 접점 아래에 표시합니다. Binary에서는 긴 값을 읽을 수 있도록 여러 줄로 표시되고, 나머지 형식에서는 한 줄로 표시됩니다.

비교 접점 현재값의 한 줄 표시와 Binary 여러 줄 표시 비교

8. 포트 사용 관계

시리얼 모니터와 래더 모니터링은 상태바에서 선택한 하나의 PC 시리얼 포트를 함께 사용하므로 동시에 연결할 수 없습니다.

시리얼 모니터와 래더 모니터링 사이의 포트 사용 상태 전환

현재 상태 실행한 작업 결과
시리얼 모니터 연결됨 래더 모니터링 시작 시리얼 모니터 연결을 끊고 115200 baud로 래더 모니터링을 시작합니다.
래더 모니터링 중 시리얼 모니터 연결 래더 모니터링을 종료하고 사용자가 선택한 baud로 시리얼 모니터를 연결합니다.
래더 모니터링 중 데이터 송신 송신 입력창을 사용할 수 없습니다.
시리얼 모니터 연결됨 업로드 시작 연결을 잠시 끊고 업로드가 끝난 뒤 같은 포트와 baud로 다시 연결합니다.
래더 모니터링 중 업로드 시작 모니터링을 잠시 끄고 업로드가 끝난 뒤 다시 연결합니다.

래더 모니터링이 115200 baud로 연결되어도 시리얼 모니터에서 사용자가 선택한 baud는 그대로 유지되며, 일반 시리얼 모니터를 다시 연결할 때 사용됩니다.

보드가 분리되면 일반 시리얼 모니터 연결은 최대 5회 자동 재연결을 시도합니다. 재연결에 성공하면 수신 화면에 자동 재연결 안내가 추가됩니다. 자동 재연결이 끝나도 연결되지 않으면 포트 목록과 케이블 연결을 확인한 뒤 수동으로 연결하십시오. 래더 모니터링 값이 멈추면 자동 복구를 기다리지 말고 모니터링을 껐다가 다시 켜십시오.

업로드는 시작 전에 현재 연결을 끊고 성공ㆍ실패와 관계없이 이전에 사용하던 시리얼 모니터 또는 래더 모니터링 연결을 복원합니다. 원래 연결이 꺼져 있었다면 업로드 뒤에도 꺼진 상태를 유지합니다. 빌드만 실행할 때는 연결을 끊지 않습니다.

래더 모니터링 중에도 같은 채널을 115200 baud로 사용하는 Serial.print() 출력은 시리얼 모니터 수신 화면에 표시될 수 있습니다. 다만 사용자 데이터와 모니터링 프레임이 섞일 수 있으므로 Arduino Code의 통신과 래더 모니터링은 서로 다른 채널을 사용하는 것을 권장합니다.

9. 문제해결방법

증상 확인할 항목 조치
연결을 눌러도 연결되지 않습니다. 상태바의 포트 선택과 현재 연결 상태 사용할 PC 시리얼 포트를 다시 선택하고 연결합니다.
포트 목록에 보드가 없습니다. 케이블 연결, USB 인식, 포트 목록 케이블을 다시 연결하고 포트 목록을 다시 엽니다.
수신 문자가 깨집니다. Serial.begin()의 baud와 수신 인코딩 같은 통신속도를 선택하고 펌웨어 문자 인코딩에 맞춥니다.
아무 값도 수신되지 않습니다. 연결 상태, baud, Arduino Code의 Serial.print() 실행 여부 시리얼 모니터 연결과 Serial.begin()의 baud를 확인합니다.
HEX 송신이 실패합니다. 16진수 문자와 짝수 자릿수 AB CD 01 또는 ABCD01 형식으로 입력합니다.
래더 모니터링을 켤 수 없습니다. 모니터링 사용 포트와 상태바의 PC 포트 포트를 설정하고 다시 빌드ㆍ업로드한 뒤 PC 포트를 선택합니다.
모니터링은 켜졌지만 도통과 값이 표시되지 않습니다. 포트 변경 뒤 업로드 여부와 실제 연결 채널 변경한 설정으로 다시 빌드ㆍ업로드하고 연결 채널을 확인합니다.
값이 바뀌지 않고 마지막 값이 남아 있습니다. 보드 동작과 모니터링 연결 상태 보드 전원과 통신을 확인하고 모니터링을 다시 연결합니다.
Arduino Code의 Serial.print()가 보이지 않습니다. 사용 채널, baud, 래더 모니터링 상태 일반 시리얼 모니터를 연결하거나, 래더 모니터링 중이라면 같은 채널의 115200 baud 출력인지 확인합니다. 채널 공유는 충돌할 수 있으므로 권장하지 않습니다.
모니터링 포트 충돌 안내가 표시됩니다. 같은 채널을 사용하는 통신 설정과 Arduino Code 모니터링 전용 채널을 선택하거나 같은 채널을 사용하는 설정과 코드를 변경합니다.

관련 문서

products/mpino_studio2/monitoring.1789092540.txt.gz · 마지막으로 수정됨: 저자 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki