문서의 이전 판입니다!
MP STUDIO 2 · 통신 · V1.3.0부터
MP STUDIO 2 · 사용자 프로토콜
사용자 프로토콜은 Modbus를 쓰지 않는 장치(CO2 센서, 바코드ㆍQR 리더, ASCII 명령으로 통신하는 인버터ㆍ온도 조절기, 숫자 표시기 등)와 장비(PLC)가 정해진 바이트 형식으로 데이터를 주고받게 하는 기능입니다. 주고받을 바이트의 형식과 보내는 때를 사용자 프로토콜 창에서 정하면, 장비가 프로그램과 함께 그 통신을 실행합니다. 래더에서 PUTㆍGET으로 바이트를 하나씩 다루지 않아도 되며, 받은 값은 체크섬까지 맞은 뒤에 지정한 메모리에 들어갑니다.
| 지원 기종 | 통신포트 | 지원 판 |
|---|---|---|
| MPS · MPA 시리즈 | 통신포트1~통신포트3 | V1.3.0부터 |
- 프레임과 트랜잭션
고정 바이트ㆍ값ㆍ문자열ㆍ건너뜀ㆍ길이ㆍ체크섬 필드로 프레임을 만들고, 보낼 프레임과 기다릴 프레임을 트랜잭션으로 묶을 수 있습니다. - 통신 방식 네 가지
요청·응답, 수신만, 수신 후 응답, 송신만을 한 포트에서 함께 쓸 수 있습니다. - 래더에서 시작
UPTRIG펑션으로 원하는 순간에 트랜잭션을 한 번 실행하고, 결과를 상태 워드와 완료 비트로 확인할 수 있습니다. - 확인 도구
미리 보기와 받은 바이트 해석, 맞는 체크섬 찾기, 시뮬레이션의 가상 상대, 모니터링 중 통신 기록, PC의 COM 포트로 장치와 직접 주고받는 PC 직접 시험을 제공합니다.
이 페이지에서
지원 제품과 통신포트
사용자 프로토콜은 장비의 시리얼 채널(통신포트1~통신포트3)에 정합니다. 사용할 수 있는 통신포트 수는 기종을 따릅니다.
| 통신포트 | 기종 |
|---|---|
| 통신포트1 | MPS-8A4R(T)-S · MPS-8A8R(T)-S · MPS-16A8R(T)-R2 · MPS-16A16R(T) |
| 통신포트1~통신포트3 | MPS-8A8R · MPS-16A8R(T) · MPS-16A8R8T · MPA 시리즈 |
통신포트에 연결되는 단자(RS-232ㆍRS-485ㆍUART)와 커넥터 그림은 제품 페이지에서 확인해주시기 바랍니다: MPS-8A4R-S · MPS-8A4T-S · MPS-8A8R-S · MPS-8A8T-S · MPS-16A16R · MPS-8A8R · MPS-16A8R · MPS-16A8R8T · MPA Series. MPA 시리즈는 통신포트1이 RS-232, 통신포트2가 RS-485, 통신포트3이 UART입니다.
- 상대 장치와 보레이트ㆍ데이터 비트ㆍ패리티ㆍ정지 비트가 같아야 합니다. ASCII 장치에 흔한 7 데이터 비트(예:
7-E-1)도 사용할 수 있습니다. - RS-485 단자의 송신ㆍ수신 전환은 장비가 처리하므로 래더에서 따로 다루지 않습니다.
7세그먼트를 쓰면 MPA의 통신포트3이 꺼짐
MPA 시리즈에서 7세그먼트의FINI를 실행하면 통신포트3(시리얼 3)이 꺼집니다(7세그먼트 표시 참고). 7세그먼트와 함께 쓸 때는 사용자 프로토콜을 통신포트1ㆍ통신포트2에 정해주시기 바랍니다.
동작 방식
사용자 프로토콜은 통신포트마다 프레임과 트랜잭션으로 정합니다.
- 프레임: 주고받는 바이트 한 묶음의 형식입니다. 필드를 차례로 놓아 만듭니다(프레임).
- 트랜잭션: 어떤 프레임을 언제 보내고 어떤 프레임을 기다리는지 정한 것입니다. 트랜잭션마다 통신 방식, 시작 조건, 응답 대기, 다시 시도, 결과를 받을 상태 워드와 완료 비트를 정할 수 있습니다(트랜잭션).
통신 방식은 네 가지입니다.
- 요청·응답
보낼 프레임을 보내고 받을 프레임을 기다립니다.
시작: 주기ㆍ트리거(래더UPTRIG)ㆍ값이 바뀔 때
쓰임 예: CO2 센서, 인버터 상태 읽기, 온도 조절기 - 수신만
맞는 프레임이 오면 값을 넣습니다. 보내지 않습니다.
시작: 상시 수신
쓰임 예: 바코드ㆍQR 리더, 연속 출력 저울 - 수신 후 응답
맞는 프레임이 오면 정한 응답 프레임을 바로 보냅니다.
시작: 상시 수신
쓰임 예: PC 프로그램, Modbus가 없는 HMI - 송신만
보낼 프레임을 보내고 응답을 기다리지 않습니다.
시작: 주기ㆍ트리거(래더UPTRIG)ㆍ값이 바뀔 때
쓰임 예: 숫자 표시기, 프린터, 설정 명령
장비에서는 다음과 같이 실행됩니다.
- 한 통신포트는 한 번에 트랜잭션 하나만 실행합니다. 때가 된 트랜잭션이 여럿이면 트랜잭션 목록 순서로 돌아가며 실행하고, 수신 후 응답의 응답은 먼저 보냅니다.
- 받은 바이트는 프레임 전체가 맞은 뒤에 한꺼번에 메모리에 들어갑니다. 체크섬이나 값 형식이 맞지 않으면 그 프레임의 값은 하나도 넣지 않습니다. 래더는 받은 값을 다음 스캔부터 읽습니다.
- 받은 바이트가 어느 프레임에도 맞지 않으면 앞에서 한 바이트를 버리고 다시 맞춥니다. 응답 앞에 잡음 바이트가 섞여도 뒤에 맞는 프레임이 있으면 받습니다.
- 사용자 프로토콜은 프로그램과 함께 장비에 내려갑니다. 창에서 고친 내용은 확인을 누르고 다시 다운로드해야 장비에 반영됩니다.
통신 포트 준비
사용자 프로토콜을 쓰는 시리얼 채널은 모드가 User Protocol이고 이 채널을 다운로드에 사용이 꺼져 있어야 합니다.
- 설정 → 통신 포트를 선택하고, 사용할 시리얼 채널의 탭(예: 시리얼 1)에서 보레이트ㆍ데이터 비트ㆍ패리티ㆍ정지 비트를 상대 장치에 맞춰주시기 바랍니다. 115200이 아닌 보레이트를 쓰려면 먼저 이 채널을 다운로드에 사용을 꺼주시기 바랍니다.
- 모드는 이 창에서
User Protocol로 골라도 되고, 그대로 두어도 됩니다. 사용자 프로토콜 창에서 확인을 누르면Normal모드였던 포트는User Protocol로 바뀌고, 그 포트의 다운로드 사용이 꺼집니다.
Normal이 아닌 다른 모드(예:Modbus RTU Slave)로 정한 포트는 자동으로 바꾸지 않습니다. 사용자 프로토콜 창 위에 표시되는 사용자 프로토콜로 바꾸기를 눌러야 바뀝니다.- 사용자 프로토콜을 지운 포트는 확인을 누를 때
Normal모드로 돌아갑니다. - 통신 포트 창의 각 항목은 Phase 6 · 통신 포트에서 설명합니다.
Modbus 장비 표와 같은 포트에 두면 둘 다 동작하지 않음
Modbus 장비 표를 쓰는 통신포트에는 사용자 프로토콜을 함께 정할 수 없습니다. 한 포트의 수신 버퍼를 둘이 함께 읽으면 둘 다 동작하지 않으므로, 한쪽을 다른 통신포트로 옮겨야 합니다.
사용자 프로토콜 창
창 열기
- 설정 → 사용자 프로토콜…을 선택하면 열립니다.
- 래더의
UPTRIG번호 칸에서 사용자 프로토콜 열기를 눌러도 열립니다(아래). - 인스펙터나 사용한 데이터 창에서 사용자 프로토콜이 쓰는 주소를 누르면, 그 주소를 쓰는 트랜잭션ㆍ프레임ㆍ필드를 고른 채로 창이 열립니다.
창은 열어 둔 채 래더를 편집할 수 있습니다. 통신포트에 정의가 없으면 + 이 포트에 만들기와 예제 목록이 표시됩니다.
| 예제 | 들어가는 내용 |
|---|---|
| CO2·가스 센서 — 1초마다 요청 | 요청·응답(1초 주기) 트랜잭션과 영점 명령을 UPTRIG 3으로 보내는 송신만 트랜잭션. 2진 값 D100, 2의 보수 합 체크섬 |
| CO2·가스 센서 — 수신만 (센서 통신 예제 · 센서가 스스로 보낼 때) | 같은 CO2 응답 프레임을 요청 없이 상시 수신하는 수신만 트랜잭션 |
| 바코드·QR 리더 | 수신만 트랜잭션. 끝 문자 CR LF까지의 문자열을 D200부터 넣고 글자 수를 D190에 넣음 |
| 인버터·온도 조절기 (ASCII 국번 명령) | 요청·응답(0.5초 주기). ASCII 10진ㆍ16진 값, 합 체크섬(ASCII 16진 2자리), NAK 오류 응답 |
예제의 이름과 주소(D100ㆍM100 등)는 넣은 뒤 자유롭게 고칠 수 있습니다. 정의가 있는 포트에도 + 예제에서 불러오기…로 더할 수 있으며, 이름이 겹치면 뒤에 번호가 붙습니다.
화면 구성
- ① 통신포트 탭: 정의할 통신포트를 고르는 탭입니다. 정의가 있는 포트에는 사용자 프로토콜과 통신 설정(예:
9600 · 8-N-1)이 함께 표시됩니다. - ② 보기: 정의ㆍPC 직접 시험ㆍ통신 기록 중에서 고를 수 있습니다. 시뮬레이션 중에는 가상 상대가 더해집니다. 통신 설정…을 누르면 통신 포트 창이 열립니다.
- ③ 트랜잭션: 트랜잭션 카드에 이름, 통신 방식, 시작 조건, 보낼 프레임 → 받을 프레임, 상태 워드ㆍ완료 비트가 표시됩니다. 모니터링 중에는 마지막 결과가 함께 표시됩니다. + 트랜잭션 추가를 누르고 통신 방식을 고르면 트랜잭션이 더해집니다.
- ④ 프레임: 이 포트의 프레임 목록입니다. 프레임마다 보냄ㆍ받음ㆍ안 씀과 바이트 수가 표시됩니다. + 프레임으로 더하고, 프레임을 고르면 복제ㆍ프레임 삭제를 쓸 수 있습니다.
- ⑥ 트랜잭션 설정: 고른 트랜잭션의 이름ㆍ통신 방식ㆍ시작ㆍ응답 대기ㆍ다시 시도ㆍ상태 워드ㆍ완료 비트를 정합니다(트랜잭션).
- ⑦ 필드 띠: 트랜잭션이 보내는 프레임(보냄)과 기다리는 프레임(받음ㆍ오류 응답)이 필드로 표시됩니다(프레임).
- ⑧ 미리 보기: 보낼 바이트를 16진으로 보이고, 받은 바이트를 붙여 넣으면 해석합니다(아래).
- ⑨ 속성: 고른 필드의 속성을 고칩니다. 필드를 고르지 않으면 트랜잭션이나 프레임의 설명이 표시됩니다.
- ⑩ RAMㆍ플래시ㆍ한 번: 사용자 프로토콜이 쓰는 장비의 RAM과 플래시(사용자 영역 대비 %), 고른 트랜잭션 한 번의 전송 시간 계산값입니다. 전송 시간에는 스캔 시간과 상대 장치의 처리 시간이 들어 있지 않습니다. 오류가 있으면 RAMㆍ플래시는 표시되지 않습니다.
- ⑪ 아래 줄: 포트ㆍ트랜잭션ㆍ프레임 수와 오류 수가 표시됩니다. 확인을 누르면 정의가 프로젝트에 들어가고, 취소를 누르면 고친 내용을 버립니다. 프로젝트를 저장해야 파일에 남습니다.
단축키와 되돌리기
| 키 | 동작 |
|---|---|
Ctrl+Enter | 확인 |
Esc | 창 닫기. 고친 내용이 있으면 고친 내용을 버릴까요?를 묻습니다. |
Ctrl+Z / Ctrl+Y | 창 안에서 고친 내용을 한 단계씩 되돌리거나 다시 합니다. 되돌릴 것이 없으면 프로그램 전체의 실행취소ㆍ다시 실행으로 넘어갑니다. |
Ctrl+S | 프로젝트 저장. 확인 전에 창에서 고친 내용은 저장되지 않습니다. |
Ctrl+T / Ctrl+M | 다운로드 / 모니터링 |
← → · Alt+← Alt+→ · Delete · Insert | 필드 띠에서 필드 사이 이동 · 필드 순서 바꾸기 · 필드 삭제 · 필드 추가 |
- 글자 입력칸 안의
Ctrl+Z는 그 칸의 입력을 되돌립니다. 같은 칸에 이어서 입력한 글자는 한 단계로 되돌아갑니다. - 확인은 프로그램 전체의 실행취소 한 단계입니다. 확인한 뒤에는 편집 → 실행취소(
Ctrl+Z)로 확인 전 정의로 되돌릴 수 있습니다.
프레임
프레임은 앞에서부터 차례로 놓인 필드로 만듭니다. 필드 아래에는 바이트 자리(1번째부터)가 표시되고, 체크섬 필드를 고르면 체크섬이 계산하는 범위가 띠에 칠해집니다. 필드 띠 끝의 +를 눌러 필드 종류를 고르면 필드가 더해집니다.
| 필드 | 보낼 때 | 받을 때 |
|---|---|---|
| 고정 | 적은 바이트를 그대로 보냅니다. | 같은 바이트여야 이 프레임으로 봅니다(필드에 같아야 함으로 표시). |
| 값 | PLC 주소의 값을 정한 형식의 바이트로 바꿔 보냅니다. | 바이트를 값으로 바꿔 PLC 주소에 넣습니다. |
| 문자열 | PLC 주소의 글자를 보냅니다. | 받은 글자를 PLC 주소에 넣고, 글자 수를 따로 넣을 수 있습니다. |
| 건너뜀 | 채움 바이트를 정한 수만큼 보냅니다. | 그 자리의 바이트는 보지 않습니다. |
| 길이 | 정한 필드들의 바이트 수를 넣어 보냅니다. | 실제 바이트 수와 맞는지 확인하고, 길이가 바뀌는 프레임의 끝을 정합니다. |
| 체크섬 | 계산해 넣습니다. | 계산해 검사합니다(필드에 체크섬 · 검사로 표시). 틀리면 값을 넣지 않습니다. |
고정 바이트
바이트 칸에는 16진, 큰따옴표 글자, 제어 문자 이름을 빈칸으로 띄어 적어주시기 바랍니다. 아래에 실제 바이트와 바이트 수가 표시됩니다.
| 적는 법 | 예 | 바이트 |
|---|---|---|
| 16진 두 자리 | FF 01 86 | FF 01 86 |
| 큰따옴표 글자(ASCII) | “01R” | 30 31 52 |
제어 문자 이름(NUL~USㆍSPㆍDEL) | STX ETX CR LF ACK NAK | 02 03 0D 0A 06 15 |
반복(*N, 1~255) | 00*5 | 00 00 00 00 00 |
한 필드에는 255바이트까지 적을 수 있습니다. ASCII 밖의 글자는 16진으로 적어야 합니다. FF는 16진 바이트 0xFF로 읽습니다(폼 피드 제어 문자 이름으로 쓰지 않습니다).
값
PLC 주소에 값을 주고받을 주소(예: D100)나 심볼 이름을 적고 형식을 골라주시기 바랍니다.
| 형식 | 설정 | 예 |
|---|---|---|
| 2진 | 바이트 수 1ㆍ2ㆍ4, 바이트 순서(상위 먼저ㆍ하위 먼저), 부호(없음ㆍ있음) | 2바이트 상위 먼저: 01 9A ↔ 410 |
| ASCII 10진 | 자릿수(1~10, 비우면 가변), 채움(0 채움ㆍ공백), 부호(없음ㆍ음수만 -ㆍ항상 +/-), 소수 자리(0~9), 소수점(안 찍음ㆍ찍음) | 4자리 0 채움: 100 ↔ “0100” · 소수 자리 2ㆍ찍음: 1234 ↔ “12.34” |
| ASCII 16진 | 자릿수, 보낼 때 대·소문자(대문자ㆍ소문자) | 4자리: 6699 ↔ “1A2B” |
| BCD | 바이트 수 1ㆍ2ㆍ4, 바이트 순서 | 2바이트: 1234 ↔ 12 34 |
| REAL | 바이트 순서(4바이트 실수) | 실수 주소(R 등)와 주고받습니다. |
- ASCII 10진을 받을 때 앞뒤 공백,
+ㆍ-, 정한 소수 자리보다 짧은 소수(“12.3”→ 1230)는 읽습니다. 숫자가 아닌 글자나 정한 소수 자리보다 긴 0이 아닌 소수(“12.345”)가 오면 값을 넣지 않고 상태 워드가 값 변환 실패(F4)가 됩니다. 가변 자릿수는 받을 때 1~12글자입니다. - 받은 값이 PLC 주소에 들어가지 않을 만큼 크면 값을 넣지 않고 F4가 됩니다. 이런 조합이면 필드에 경고가 표시됩니다.
- 데이터 비트가 7이면
0x7F보다 큰 바이트는 맨 위 비트가 사라집니다. 7 데이터 비트 포트에서 2진 값ㆍ0x7F보다 큰 고정 바이트를 쓰면 필드가 붉게 표시됩니다.
문자열
- PLC 주소 (시작 워드)부터 워드 하나에 두 글자씩 들어갑니다. 하위 바이트가 먼저입니다(
D200의 하위 바이트 = 첫 글자). - 길이: 끝 문자 전까지 · 최대 N은 바로 뒤의 고정 필드(예:
CR LF)가 나올 때까지 최대 N글자를 받습니다. 고정 N 글자는 언제나 N글자입니다. N은 1~255입니다. - 받은 글자 수 저장 주소에 워드 주소를 적으면 받은 글자 수가 들어갑니다. 남는 자리 채움 (16진)은 N글자보다 짧을 때 남는 자리를 채우는 바이트입니다.
길이
형식(2진 1바이트ㆍ2진 2바이트ㆍASCII 10진ㆍASCII 16진)과 길이 계산 범위(필드 몇 번부터 몇 번까지)를 정해주시기 바랍니다. 보낼 때는 그 범위의 바이트 수를 넣고, 받을 때는 실제 바이트 수와 맞는지 확인합니다. 장치가 바이트 수에 다른 수를 더해 보낸다면 보정값 (더할 값)에 그 수를 적어주시기 바랍니다.
체크섬
| 종류 | 계산 |
|---|---|
| 합 (8비트) · 합 (16비트) | 범위의 바이트를 더한 값의 하위 8비트ㆍ16비트 |
| 2의 보수 합 | 바이트 합의 2의 보수(합을 0x100에서 뺀 값) |
| 1의 보수 합 | 바이트 합의 비트를 뒤집은 값 |
| XOR (BCC) | 범위의 바이트를 XOR한 값 |
| CRC-16 | 아래 방식 중 하나 또는 사용자 정의 값 |
| LRC | 범위의 ASCII 16진 글자를 두 글자씩 바이트로 바꿔 더한 합의 2의 보수(Modbus ASCII 방식) |
- 범위 시작: 1번째부터ㆍ2번째부터 또는 몇 번째 바이트부터인지 적을 수 있습니다. 헤더 바이트(STX 등)를 빼고 계산하는 장치에는 2번째부터를 골라주시기 바랍니다.
- 범위 끝: 기본은 체크섬 바로 앞까지입니다. 체크섬 뒤에 끝 문자가 오는 프레임도 이 기본값을 그대로 쓸 수 있습니다.
- 형식: 1바이트ㆍ2바이트(상위 먼저ㆍ하위 먼저) 또는 ASCII 16진 2ㆍ4자리입니다. ASCII 16진은 보낼 때 대문자ㆍ소문자를 고를 수 있으며, 받을 때는 대소문자를 가리지 않습니다.
CRC-16은 장치마다 계산 방식이 다릅니다. CRC-16 방식을 고르면 다항식ㆍ초기값ㆍ입력 반사ㆍ출력 반사ㆍ최종 XOR 다섯 값이 채워지고, 문자열 “123456789”로 계산한 확인값이 표시됩니다. 확인값이 장치 설명서의 check 값과 같은 방식을 골라주시기 바랍니다. 다섯 값 중 하나를 고치면 사용자 정의가 됩니다.
| 방식 | 다항식 | 초기값 | 반사(입력ㆍ출력) | 최종 XOR | 확인값 |
|---|---|---|---|---|---|
| MODBUS | 8005 | FFFF | 예 | 0000 | 4B37 |
| CCITT-FALSE | 1021 | FFFF | 아니요 | 0000 | 29B1 |
| XMODEM | 1021 | 0000 | 아니요 | 0000 | 31C3 |
| KERMIT | 1021 | 0000 | 예 | 0000 | 2189 |
| X-25 | 1021 | FFFF | 예 | FFFF | 906E |
| ARC | 8005 | 0000 | 예 | 0000 | BB3D |
| USB | 8005 | FFFF | 예 | FFFF | B4C8 |
| DNP | 3D65 | 0000 | 예 | FFFF | EA82 |
형식의 기본값은 MODBUS만 하위 먼저이고, 나머지 방식은 모두 상위 먼저입니다.
받는 프레임의 끝
받는 프레임이 어디서 끝나는지는 프레임 형식에서 정해지며, 필드 띠 위에 끝 판정: …으로 표시됩니다.
| 표시 | 끝을 정하는 것 |
|---|---|
| 끝 판정: 고정 길이 N | 모든 필드의 길이가 정해진 프레임 |
| 끝 판정: 길이 필드(필드 N) | 앞에 있는 길이 필드의 값 |
| 끝 판정: 끝 문자 … | 길이가 바뀌는 필드 바로 뒤의 고정 바이트(예: CR LF, ETX) |
| 끝 판정: N ms 무신호 | 프레임 끝 무신호 시간 (ms) 동안 바이트가 오지 않음 |
| 끝 판정: 알 수 없음 | 끝을 정할 수 없어 오류로 표시됩니다. |
프레임 끝 무신호 시간 (ms)은 프레임을 고르면 오른쪽 속성에 표시되며, 20~10000 ms로 정할 수 있습니다(비우면 쓰지 않음). 길이를 알 수 없는 마지막 필드는 이 시간 동안 수신이 없으면 끝난 것으로 봅니다. 받다 만 바이트가 남은 채 100 ms 이상 수신이 없을 때도 그 바이트를 앞에서부터 버립니다.
미리 보기와 받은 바이트 해석
미리 보기에는 보낼 프레임의 바이트가 16진으로 표시됩니다(값 필드는 0, 길이와 체크섬은 계산한 값). 그 아래 입력칸에 장치가 보낸 바이트를 한 줄에 하나씩 붙여 넣으면 받을 프레임으로 해석해 필드마다 값과 결과를 표시합니다. 16진(FF 86 01)과 STX “01” ETX 같은 고정 바이트 표기를 모두 쓸 수 있습니다.
| 결과 | 뜻 |
|---|---|
| ✓ … | 고정 바이트ㆍ길이ㆍ체크섬이 모두 맞습니다. ✓ 뒤에 필드마다 들어갈 값이 표시됩니다(그림 12). 값 필드가 없는 프레임은 이 프레임이 맞습니다로 표시됩니다. |
| … 덜 왔습니다 | 프레임이 끝나려면 바이트가 더 와야 합니다. |
| ✕ … — N번째 바이트가 정한 고정 바이트와 다릅니다 | 이 프레임이 아닙니다. |
| ✕ 체크섬 — 기대 … | 체크섬이 틀립니다. 계산한 값이 함께 표시됩니다. |
| ✕ … — 값으로 변환할 수 없습니다 | 숫자가 아니거나 주소에 담기지 않습니다. |
맞는 체크섬 찾기
장치 설명서에 체크섬 방식이 없거나 확인값이 맞지 않을 때 사용합니다. 장치가 실제로 보낸 프레임을 둘 이상 붙여 넣어주시기 바랍니다. 체크섬이 틀리면 체크섬 종류ㆍCRC-16 방식ㆍ형식ㆍ범위 시작을 바꿔 가며 모든 표본에 맞는 조합을 자동으로 찾아, 맞는 체크섬 찾기 줄에 후보마다 «…»(으)로 바꾸기 단추를 표시합니다. 표본이 하나면 우연히 맞는 조합이 있을 수 있으므로 «…»(으)로 바꾸기는 표본이 둘 이상일 때만 켜집니다. 바꾼 내용은 확인을 눌러야 정의에 들어갑니다.
트랜잭션
트랜잭션 목록에서 트랜잭션을 고르면 가운데 위에 트랜잭션 설정이, 그 아래에 보낼 프레임과 받을 프레임의 필드 띠가 표시됩니다.
| 항목 | 기본값 | 설명 |
|---|---|---|
| 이름 | 통신 방식 이름 | 트랜잭션의 이름입니다. 포트 안에서 겹치지 않아야 합니다. |
| 통신 방식 | — | 요청·응답, 수신만, 수신 후 응답, 송신만 |
| 시작 | 주기 | 요청·응답과 송신만: 주기ㆍ래더 UPTRIG 번호ㆍ값이 바뀔 때 · 수신만과 수신 후 응답: 상시 수신 |
| 주기 (ms) | 1000 | 10 ms~1시간. 지난번 시작부터 셉니다. |
| 번호 | 1 | 래더 UPTRIG의 번호(1~255) |
| 감시 주소 · 감시 워드 수 | — | 값이 바뀔 때: 감시 주소부터 감시 워드 수(1~32)만큼의 값이 바뀌면 보냅니다. 장비가 시작할 때도 한 번 보냅니다. |
| 응답 대기 (ms) | 200 | 요청·응답에서 응답을 기다리는 시간(20~60000 ms) |
| 다시 시도 | 2 | 응답이 없거나 틀린 응답만 왔을 때 다시 보내는 횟수(0~10) |
| 상태 워드 | 비움(안 씀) | 트랜잭션 결과를 받을 워드 주소(아래) |
| 완료 비트 | 비움(안 씀) | 트랜잭션이 끝나면 한 스캔 동안 켜지는 비트 주소 |
| 받은 횟수 주소 | 비움(안 씀) | 수신만과 수신 후 응답: 맞는 프레임을 받을 때마다 1씩 늘어나는 워드 주소(65535 다음은 0) |
- 보낼 프레임과 받을 프레임은 필드 띠 앞의 목록에서 고를 수 있습니다. + 새 프레임을 고르면 빈 프레임이 만들어집니다. 받을 프레임은 + 받을 프레임으로 둘 이상 정할 수 있습니다.
- 요청·응답에서는 + 오류 응답 (NAK 등)으로 장치의 오류 응답 프레임을 정할 수 있습니다. 오류 응답을 받으면 트랜잭션이 오류 응답(F6)으로 끝납니다.
- 수신 후 응답의 보냄 프레임이 응답입니다. 응답에 넣을 값은 PLC 주소에서 읽습니다.
방식별 동작
- 요청·응답: 보낸 뒤 응답 대기 시간 안에 받을 프레임이 오면 성공입니다. 응답이 없거나 틀린 응답만 오면 응답 대기 시간을 다 기다린 뒤 다시 보내며, 다시 시도를 모두 쓰면 실패로 끝납니다. 장치가 틀린 응답만 보내면 트랜잭션 한 번에 «응답 대기 × (다시 시도 + 1)»만큼 걸립니다. 오류 응답을 받으면 다시 보내지 않고 바로 끝납니다.
- 송신만: 프레임을 다 보내면 성공으로 끝납니다.
- 수신만: 맞는 프레임을 받은 스캔에 값을 넣고, 상태 워드에 성공을 쓰고, 완료 비트를 한 스캔 켜고, 받은 횟수 주소의 값을 1 늘립니다.
- 수신 후 응답: 수신만과 같이 값을 넣은 뒤 응답 프레임을 바로 보냅니다. 받을 프레임이 맞지 않으면(헤더 바이트가 다르거나 체크섬이 틀리면) 응답하지 않습니다.
상태 워드
상태 워드는 워드 하나로, 그 트랜잭션의 마지막 결과를 나타냅니다.
| 값(16진) | 화면 표시 | 뜻 |
|---|---|---|
0000 | 아직 한 번도 성공 못 함 | 장비가 켜진 뒤 이 트랜잭션이 아직 한 번도 끝나지 않았습니다. 이 정의가 장비 프로그램에 없을 때도 0입니다. |
0001 | 마지막 트랜잭션 성공 | 마지막 트랜잭션이 오류 없이 끝났습니다. |
F000 | 응답 없음(F0) | 응답이 오지 않았습니다. |
F100 | 체크섬 틀림(F1) | 체크섬이 맞지 않는 응답이 왔습니다. |
F200 | 형식이 맞지 않는 바이트만 왔습니다(F2) | 받을 프레임과 형식이 맞지 않는 바이트만 왔습니다. |
F300 | 회선 사용 중(F3) | 송신이 진행되지 않아 보내지 못했습니다. |
F400 | 값 변환 실패(F4) | 받은 값이 숫자가 아니거나 주소에 담기지 않습니다. 보낼 값을 프레임으로 만들 수 없을 때도 F4입니다. |
F500 | 수신 버퍼 넘침(F5) | 응답을 기다리는 동안 수신 버퍼가 넘쳤습니다. |
F600 | 오류 응답(F6) | 오류 응답으로 정한 프레임(NAK 등)을 받았습니다. |
- 실패한 트랜잭션에서는 받은 값 주소를 바꾸지 않습니다. 앞에서 받은 값이 그대로 남습니다.
- 응답 대기가 끝났을 때 그동안 버린 바이트가 있으면 그 까닭 하나를 F1 → F4 → F2의 우선순위로 골라 상태로 씁니다. 버린 바이트가 없으면 F0입니다.
- 상태 워드는 트랜잭션마다 다른 주소를 써야 합니다. 값을 받는 주소와 겹치면 경고가 표시됩니다.
문자 간 간격 허용
포트마다 정하는 설정으로, 새 포트는 켜져 있습니다.
- 켜짐: 한 스캔에 1바이트씩 보냅니다. 스캔 시간이 늘지 않지만, 요청이 바이트 수만큼의 스캔에 걸쳐 나갑니다(스캔 5 ms에서 10바이트면 약 50 ms). 대부분의 ASCII 장치는 문자 간 간격을 문제 삼지 않습니다.
- 꺼짐: 프레임을 한 번에 이어서 보냅니다. 그 스캔이 프레임을 보내는 시간만큼 길어집니다. 문자 사이에 간격이 있으면 요청을 버리는 장치에는 꺼야 합니다.
래더에서 시작하기(UPTRIG)
트랜잭션의 시작을 래더 UPTRIG 번호로 정하면, 래더의 UPTRIG 펑션이 그 트랜잭션을 실행합니다. 버튼을 눌렀을 때만 설정 명령을 보내거나, 필요할 때만 값을 읽을 때 사용합니다.
- 트랜잭션의 시작을 래더 UPTRIG 번호로 고르고 번호(1~255)를 적어주시기 바랍니다. 필요하면 완료 비트와 상태 워드도 적어주시기 바랍니다.
- 확인을 눌러주시기 바랍니다.
- 래더에
UPTRIG펑션을 넣고 같은 번호를 적어주시기 바랍니다. 펑션 판 Serialport 분류의 UPTRIG: Start User Protocol Trigger를 고르거나, 펑션 삽입 창(Ctrl+E)에UPTRIG 3처럼 입력해 넣을 수 있습니다.
UPTRIG의 번호 칸을 고치면 사용자 프로토콜에 정한 트리거 번호가 통신포트ㆍ트랜잭션 이름과 함께 표시되며, 눌러서 고를 수 있습니다. 같은 자리의 사용자 프로토콜 열기를 누르면 사용자 프로토콜 창이 열립니다.
UPTRIG의 입력이 꺼짐에서 켜짐으로 바뀔 때마다 그 번호의 트랜잭션을 한 번 실행합니다. 입력을 켜 둔 채로는 다시 실행하지 않습니다.- 실행 전에 여러 번 불리면 한 번만 실행하고, 실행 중에 불리면 끝난 뒤 한 번 더 실행합니다.
- 완료 비트는 성공ㆍ실패와 관계없이 트랜잭션이 끝난 뒤 한 스캔 동안 켜집니다. 실패 이유는 상태 워드에서 확인할 수 있습니다.
- 같은 통신포트에서 번호가 같은 트랜잭션은 함께 실행됩니다. 다른 통신포트의 트랜잭션에 같은 번호를 쓸 수는 없습니다.
- 트리거로 시작하는 트랜잭션은 장비가 켜지거나 다운로드된 뒤 자동으로 실행되지 않습니다.
UPTRIG의 번호는 1~255의 상수이고 사용자 프로토콜에 그 번호로 시작하는 트랜잭션이 있어야 합니다. 아니면UPTRIG가 붉게 표시되고 컴파일되지 않습니다. 반대로 트리거 번호를 정한 트랜잭션에 맞는UPTRIG가 래더에 없으면 «트리거 번호 3을(를) 부르는 UPTRIG 명령이 없어 이 트랜잭션은 시작되지 않습니다» 경고가 표시됩니다.
검사와 경고
사용자 프로토콜 창은 오류와 경고를 필드ㆍ입력칸에 붉은색ㆍ주황색으로 표시하고, 창 아래 줄에 첫 문장을 표시합니다. 문장을 누르면 그 자리로 이동하며, N건 더를 누르면 모든 문장이 펼쳐집니다. 붉은 오류가 있으면 오류 N건 — 고치기 전에는 프로그램을 만들지 않습니다가 표시되고 다운로드할 수 없습니다. 오류가 있어도 확인을 누를 수 있으므로 쓰던 정의를 잃지 않습니다.
래더와 다른 기능에서는 다음 경우를 검사합니다.
| 경우 | 표시 |
|---|---|
같은 통신포트에 PUTㆍGETㆍPUT_LENㆍGET_LEN을 씀 | 채널이 상수면 오류(붉게 표시), 변수면 경고. 같은 수신 버퍼를 둘이 읽으면 주고받는 바이트가 섞입니다. |
| 래더가 사용자 프로토콜이 받는 주소에 씀 | 경고. 래더가 쓴 값은 다음에 받을 때 덮어씁니다. |
| 받는 주소끼리 겹침 · 상태 워드ㆍ완료 비트ㆍ받은 횟수 주소가 받는 주소와 겹침 | 경고 |
| Modbus 장비 표나 장비 시계(RTC) 블록이 쓰는 주소와 겹침 | 경고 |
포트 모드가 User Protocol이 아님 · 모드는 User Protocol인데 정의가 없음 · 다운로드 사용이 켜짐 | 오류. 사용자 프로토콜 창에서 확인을 누르면 대부분 함께 고쳐집니다. |
| 장비의 RAM이 모자람 · 프로그램이 플래시를 넘침 | 오류. 포트ㆍ트랜잭션ㆍ프레임이나 메모리 영역 크기를 줄여야 합니다. |
| 프레임이 255바이트를 넘거나 필드가 32개를 넘음 | 오류 |
| 송수신 버퍼가 프레임보다 작음 | 오류. 설정 → 데이터 메모리의 SERIAL 칸에서 버퍼를 늘리거나 프레임을 줄여야 합니다. |
사용자 프로토콜이 쓰는 주소는 찾기ㆍ모두 바꾸기ㆍ인스펙터의 쓰인 자리ㆍ사용한 데이터에도 표시됩니다. 모두 바꾸기로 주소를 바꾸면 사용자 프로토콜의 주소도 함께 바뀝니다.
시뮬레이션
시뮬레이션 중에는 각 통신포트의 사용자 프로토콜에 가상 상대가 붙고, 창에 가상 상대 보기가 더해집니다. 장치 없이 래더의 동작과 상태 워드ㆍ완료 비트를 확인할 수 있습니다.
- 트랜잭션 — 상태 워드 · 응답 예: 트랜잭션을 고르고 가상 상대가 할 일(응답ㆍ응답 없음ㆍ체크섬 틀림ㆍ오류 응답)을 고를 수 있습니다. 응답이면 PLC가 받을 값을 적어주시기 바랍니다. 응답 예를 정하기 전에는 응답이 없습니다(상태 워드 F0).
- 가상 상대가 먼저 보내기 — 수신만, 수신 후 응답: 받을 프레임의 값을 적고 넣기를 누르면 가상 상대가 그 프레임을 보냅니다.
- 바이트 그대로 넣기(쓰레기·재동기 시험): 적은 바이트를 그대로 넣어 잡음 바이트를 버리고 다시 맞추는 동작을 확인합니다.
- 통신 기록(가상 시각): PLC가 보낸 바이트와 가상 상대가 보낸 바이트가 줄마다 표시됩니다.
시뮬레이션에는 확인을 누른 정의만 들어갑니다. 오류가 있는 정의는 시뮬레이션되지 않습니다. 회선 사용 중(F3)ㆍ수신 버퍼 넘침(F5)은 시뮬레이션되지 않으며, 스캔 시간과 상대 장치의 처리 시간도 들어 있지 않습니다. 가상 상대의 설정은 저장되지 않습니다.
모니터링
트랜잭션 카드의 상태
모니터링 중에 사용자 프로토콜 창을 열면, 상태 워드를 정한 트랜잭션의 카드에 마지막 결과가 표시됩니다. 수신만과 수신 후 응답 트랜잭션은 받은 횟수 주소의 값과 마지막으로 늘어난 뒤 지난 시간도 표시됩니다. 상태는 고른 통신포트의 트랜잭션만 읽습니다.
카드의 표시는 상태 워드 표의 화면 표시와 같습니다. 표시된 상태를 믿을 수 없을 때는 회색으로 그 까닭이 표시됩니다.
| 회색 표시 | 뜻 |
|---|---|
| 장비 프로그램이 다름 | 장비의 프로그램이 지금 프로젝트와 다를 수 있습니다. 다운로드하면 읽습니다. |
| 다운로드 전 설정 | 모니터링을 시작할 때의 정의에 없는 트랜잭션입니다. 확인하고 다운로드한 뒤 모니터링을 다시 시작하면 읽습니다. |
| PLC 응답 없음 · 값 모름 · 새 값이 안 옴 · 값 모름 | 모니터 통신에서 새 값이 오지 않습니다. |
| 제한 모니터 · 못 읽음 | 프로그램 검사 오류가 있는 동안에는 사용자 메모리의 상태 워드를 읽지 않습니다. |
| 런타임이 쓰지 않는 값 | 사용자 프로토콜이 쓰지 않는 값입니다. 장비 프로그램이 다르거나 래더가 이 주소에 씁니다. |
시뮬레이션 중에는 카드에 가상이 함께 표시되며, 확인하지 않은 트랜잭션은 확인 전 설정, 멈춘 시뮬레이션은 시뮬레이션 멈춤 · …으로 표시됩니다.
통신 기록
포트의 모니터 중 통신 기록을 켜고 확인을 누른 뒤 다운로드하면, 모니터링 중 통신 기록 보기에 장비가 그 통신포트로 보내고 받은 바이트가 줄마다 표시됩니다. 통신 기록을 켜면 장비의 RAM과 플래시를 조금 더 씁니다.
- ① 방향과 시각:
→는 장비가 보낸 바이트,←는 받은 바이트입니다. 줄은 장비가 주고받은 차례로 놓이며, 시각은 PC가 기록을 읽은 때입니다. - ② 바이트: 주고받은 바이트입니다. 아래 줄에 트랜잭션ㆍ프레임 이름과 해석한 값(예:
✓ D100 = 410 · ✓ 체크섬 DF)이 표시됩니다. - ③ 결과: 보낸 줄은 성공ㆍ응답 기다림ㆍ다시 보냄 Nㆍ보내지 못함 또는 실패 까닭, 받은 줄은 응답ㆍ받음ㆍ오류 응답(F6)ㆍ버림 등 그 바이트의 결과입니다. 버림은 어느 프레임에도 맞지 않은 바이트입니다.
- ④ 바이트 보기: 16진ㆍ글자ㆍ둘 다 중에서 고를 수 있습니다. 글자 보기에서 제어 문자는
‹STX›처럼 표시됩니다. - ⑤ 복사ㆍ기록 지우기: 표시된 줄을 글자로 복사하거나 화면의 기록을 지웁니다. 아래로 스크롤해 두면 새 줄을 따라갑니다.
- 통신 기록이 꺼진 채 다운로드한 프로그램이나 지금 프로젝트와 다른 프로그램이 장비에 있으면 기록을 읽지 않고 그 까닭이 표시됩니다.
- 모니터가 읽기 전에 장비가 새 기록을 쓰면 «… 그사이 N건 놓침»이 표시됩니다.
- 시뮬레이션 중에는 같은 보기에 가상 상대와의 통신이 가상 시각으로 표시됩니다.
PC 직접 시험
PC 직접 시험은 PLC 대신 PC의 COM 포트(USB-RS485ㆍUSB-RS232 변환기 등)로 장치와 직접 주고받는 기능입니다. 장치를 PLC에 연결하기 전에 프레임과 체크섬이 맞는지 확인할 때 사용합니다. 창에서 고친 정의(확인 전 내용)로 시험하며, 데스크톱 앱에서만 사용할 수 있습니다.
- ① PC의 COM 포트: PC의 COM 포트 목록입니다. USB 장치는 «
COM10 — USB Serial Port»처럼 장치 이름이 함께 표시되고, 블루투스 포트는 «COM23 (Bluetooth)»로 표시됩니다. 처음에는 (포트를 고르세요)가 표시되며, 지난번에 이 통신포트에서 연 COM이 있으면 미리 골라집니다. 새로 고침으로 목록을 다시 읽습니다. - ② 열기ㆍ닫기: 고른 COM 포트를 엽니다. 보레이트ㆍ데이터 비트ㆍ패리티ㆍ정지 비트는 그 통신포트의 통신 포트 설정을 그대로 씁니다. 다른 보기로 옮기거나 창을 닫으면 포트가 닫힙니다.
- ③ 트랜잭션 한 번 — 요청·응답, 송신만: 왼쪽에서 트랜잭션을 고르고 보낼 값(예시 값)을 적은 뒤 한 번 보내기를 누르면, 응답 대기ㆍ다시 시도까지 장비와 같은 방식으로 한 번 주고받고 결과를 표시합니다.
- ④ 수신 — 수신만, 수신 후 응답: 수신 시작을 누르면 장치가 보내는 바이트를 받아 해석합니다. 바코드 리더가 실제로 무엇을 보내는지 확인할 때 사용합니다. 수신 후 응답 트랜잭션은 ③에 적은 예시 값으로 PC가 응답합니다.
- ⑤ 통신 기록: 주고받은 바이트가 통신 기록 보기와 같은 꼴로 표시됩니다. 체크섬이 틀린 응답이 오면 맞는 체크섬 찾기 줄에 맞는 체크섬 후보가 표시되고, 응답이 둘 이상 모이면 «…»(으)로 바꾸기를 누를 수 있습니다.
- 모니터링ㆍ다운로드가 쓰는 COM은 «— 모니터·다운로드가 쓰는 중»으로 표시되며 열 수 없습니다. 모니터링ㆍ다운로드를 끝낸 뒤 열어주시기 바랍니다.
- 통신 포트 설정의 다운로드 COM은 «— 다운로드 포트»로 표시되고, 고르면 PLC와 연결된 포트일 수 있다는 안내가 표시됩니다.
- PC 직접 시험은 PC 쪽 회선과 장치를 확인하는 기능입니다. 스캔 시간에 따른 동작은 장비에서 다시 확인해주시기 바랍니다.
예제
이 절의 세 예제는 MPS-8A8R의 통신포트1~통신포트3에 창의 예제를 하나씩 정한 구성입니다. 다른 기종은 통신포트 번호만 바꿔 같은 방법으로 사용할 수 있습니다.
예제 1. CO2 센서 값을 1초마다 읽기
통신포트1(9600 · 8-N-1)에 CO2 센서를 연결해 1초마다 농도를 읽고, 버튼 입력으로 영점 명령을 보내는 예제입니다.
- 설정 → 통신 포트의 시리얼 1을 보레이트 9600, 데이터 비트 8, 패리티 없음, 정지 비트 1로 정해주시기 바랍니다.
- 설정 → 사용자 프로토콜…에서 통신포트1 탭을 고르고 예제 CO2·가스 센서 — 1초마다 요청을 눌러주시기 바랍니다.
- 확인을 눌러주시기 바랍니다. 통신포트1이
User Protocol모드로 바뀝니다. - 래더에 영점 명령을 보낼 렁을 넣어주시기 바랍니다.
| 렁 | 입력 | 펑션 | 하는 일 |
|---|---|---|---|
| 0 | M3(a 접점) | UPTRIG 3 | M3이 켜질 때 영점 명령을 한 번 보냅니다. |
| 프레임 | 바이트 |
|---|---|
| CO2 요청 | FF 01 86 00 00 00 00 00 79 (고정 FFㆍ01ㆍ86ㆍ00*5 + 2의 보수 합, 2번째부터) |
| CO2 응답 | FF 86 + 농도 2바이트(상위 먼저 → D100) + 건너뜀 4 + 2의 보수 합 |
| 영점 명령 | FF 01 87 00 00 00 00 00 78 |
센서가 FF 86 01 9A 00 00 00 00 DF를 보내면 D100은 410(ppm)이 되고, 상태 워드 D101은 0001(10진 1), 완료 비트 M100은 한 스캔 켜집니다.
예제 2. 바코드 리더의 글자 받기
통신포트2(9600 · 8-N-1)에 바코드 리더를 연결해, 읽은 글자를 D200부터 받는 예제입니다.
- 시리얼 2를 9600 · 8-N-1로 정해주시기 바랍니다.
- 사용자 프로토콜의 통신포트2 탭에서 예제 바코드·QR 리더를 고르고 확인을 눌러주시기 바랍니다.
| 항목 | 값 |
|---|---|
| 프레임 «바코드» | 문자열(D200 · 끝 문자 전까지 · 최대 32 · 받은 글자 수 D190) + 고정 CR LF |
| 트랜잭션 «바코드 받기» | 수신만 · 상시 수신 · 완료 비트 M101 · 받은 횟수 주소 D191 |
리더가 ILOGICS-1234와 CR LF를 보내면 D190은 12가 되고, D200부터 두 글자씩(D200 = IㆍL) 들어갑니다. M101이 한 스캔 켜지고 D191이 1 늘어납니다. 빈 줄(CR LF만)이 오면 글자 수 0인 프레임으로 받습니다.
예제 3. ASCII 국번 명령으로 인버터 값 읽기
통신포트3(9600 · 7-E-1)에 국번 01인 ASCII 명령 장치를 연결해, 번지 100의 값을 0.5초마다 D11로 읽는 예제입니다.
- 시리얼 3을 보레이트 9600, 데이터 비트 7, 패리티 짝수, 정지 비트 1로 정해주시기 바랍니다.
- 사용자 프로토콜의 통신포트3 탭에서 예제 인버터·온도 조절기 (ASCII 국번 명령)을 고르고 확인을 눌러주시기 바랍니다.
- 래더에 읽을 번지를 넣는 렁을 넣어주시기 바랍니다.
| 렁 | 입력 | 펑션 | 하는 일 |
|---|---|---|---|
| 0 | @ON | MOVE 100 D10 | 읽을 번지 100을 D10에 넣습니다. |
| 프레임 | 형식 | 예 |
|---|---|---|
| 국번 요청 | STX “01” “R” + 번지(ASCII 10진 4자리 · D10) + ETX + 합(8비트) ASCII 16진 2자리(2번째부터) | 02 “01R0100” 03 “77” |
| 국번 응답 | ACK “01” “R” + 값(ASCII 16진 4자리 · D11) + ETX + 합(8비트) ASCII 16진 2자리(2번째부터) | 06 “01R03E8” 03 “96” → D11 = 1000 |
| 국번 오류 (NAK) | NAK “01” ETX | 받으면 상태 워드 D12 = F600 |
트랜잭션 «국번 읽기»는 요청·응답, 주기 500 ms, 응답 대기 300 ms, 다시 시도 3, 상태 워드 D12입니다. 이 예제는 문자 간 간격 허용이 꺼져 있어 요청을 한 번에 이어서 보냅니다.
문제 해결
| 증상 | 확인할 항목 |
|---|---|
상태 워드가 계속 0000 | 다운로드한 프로그램에 사용자 프로토콜이 들어 있는지, 트랜잭션 시작이 트리거면 래더의 UPTRIG 입력이 꺼짐 → 켜짐으로 바뀌었는지 확인해주시기 바랍니다. |
F000(응답 없음) | PC 직접 시험으로 같은 프레임에 장치가 응답하는지 확인해주시기 바랍니다. 응답하면 통신포트 번호와 단자(RS-232ㆍRS-485ㆍUART), RS-485의 +ㆍ- 배선, 통신 포트 설정을 확인해주시기 바랍니다. 장치의 응답이 늦으면 응답 대기 (ms)를 늘려주시기 바랍니다. |
F100(체크섬 틀림) | 장치가 보낸 바이트를 둘 이상 붙여 넣어 맞는 체크섬 찾기로 확인해주시기 바랍니다. |
F200(형식이 맞지 않는 바이트만 옴) | 장치가 보낸 바이트를 미리 보기에 붙여 넣어 몇 번째 바이트가 다른지 확인해주시기 바랍니다. 국번ㆍ헤더 바이트, 데이터 비트(7ㆍ8)와 패리티를 확인해주시기 바랍니다. |
F400(값 변환 실패) | 미리 보기에서 값 필드의 형식(자릿수ㆍ소수 자리ㆍ16진)과 PLC 주소의 크기를 확인해주시기 바랍니다. |
F500(수신 버퍼 넘침) | 보레이트에 비해 스캔 시간이 길면 한 스캔 사이에 수신 버퍼보다 많은 바이트가 쌓입니다. 스캔 시간을 줄이거나 설정 → 데이터 메모리의 SERIAL 칸에서 수신 버퍼를 늘려주시기 바랍니다. 128바이트 버퍼와 115200 bps에서는 스캔 시간이 약 11 ms를 넘지 않아야 합니다. |
| 요청은 나가는데 장치가 응답하지 않음(문자 간 간격) | 장치가 문자 사이의 간격을 허용하지 않을 수 있습니다. 포트의 문자 간 간격 허용을 끄고 다운로드해 다시 확인해주시기 바랍니다. |
| 긴 바코드가 뒷부분만 들어옴 | 문자열의 최대 글자 수보다 긴 코드가 오면 뒤쪽 최대 글자 수만큼만 들어갑니다. N을 가장 긴 코드보다 크게 정해주시기 바랍니다. |
| 잡음이 있는데 값이 들어옴 | 장비는 패리티 오류를 검사하지 않습니다. 체크섬이 있는 프레임으로 정의해주시기 바랍니다. |
| PC 직접 시험에서 포트가 열리지 않음 | 모니터링ㆍ다운로드나 다른 프로그램이 그 COM을 쓰고 있지 않은지 확인해주시기 바랍니다. |
확인할 점
V1.2.0 이하에서 열 수 없음
사용자 프로토콜이나UPTRIG를 쓴.mpx프로젝트는 V1.2.0 이하에서 열 수 없습니다.
값을 받는 주소는 래더가 읽기만 하도록 구성해주시기 바랍니다.


















