Modbus TCP
Mech-MSR은 Modbus TCP 프로토콜을 사용하여 외부 장치와 통신할 수 있습니다. 다음 내용을 읽기 전에 Mech-MSR에서 통신 설정이 완료되었는지 확인하세요.
Modbus TCP에 대하여
Mech-MSR은 Modbus TCP 프로토콜을 사용하여 PLC와 통신할 수 있습니다. 이 통신 모드에서는 Mech-MSR이 서버(slave) 역할을, PLC가 클라이언트(master) 역할을 합니다. 모든 통신 요청은 PLC에서 시작되며, Mech-MSR은 이에 응답합니다.
Mech-MSR에서 Modbus TCP 통신이 활성화되면, 소프트웨어는 포트 502(기본 수신 포트)에서 하나 이상의 Modbus 클라이언트 요청을 수신하기 시작합니다.
입력 및 출력 신호
|
Mech-MSR은 홀딩 레지스터(Holding Register)에 접근하기 위해 아래에 명시된 표준 Modbus 기능 코드를 지원합니다.
|
|
홀딩 레지스터 주소는 실제 Modbus TCP 통신에서 기본 주소는 1이며, 이는 주소가 |
| 입력(PLC에서 Mech-MSR로) | 출력(Mech-MSR에서 PLC로) | ||||||
|---|---|---|---|---|---|---|---|
모듈 |
명칭 |
점유 바이트 |
홀딩 레지스터 주소(4x) |
모듈 |
명칭 |
점유 바이트 |
홀딩 레지스터 주소(4x) |
활성화 |
1 byte |
40001 |
하트비트 |
1 byte |
40065 |
||
명령 트리거 |
명령 트리거 ACK |
||||||
데이터 읽기 완료 |
데이터 준비 완료 |
||||||
출력 데이터 리셋 |
명령 실행 완료 |
||||||
예약 필드 |
예약 필드 |
||||||
예약 필드 |
예약 필드 |
||||||
예약 필드 |
예약 필드 |
||||||
예약 필드 |
오류 |
||||||
예약 필드 |
3 bytes |
앞 1 byte: 40001; 뒤 2 bytes: 40002 |
종합 판정 결과 |
1 byte |
40065 |
||
예약 필드 |
|||||||
예약 필드 |
|||||||
예약 필드 |
|||||||
예약 필드 |
|||||||
예약 필드 |
|||||||
예약 필드 |
|||||||
예약 필드 |
|||||||
예약 필드 |
2 bytes |
40066 |
|||||
명령 코드 |
2 bytes |
40003 |
상태 코드 |
2 bytes |
40067 |
||
명령 파라미터 1 |
2 bytes |
40004 |
RESERVED |
예약 필드 |
2 bytes |
40068 |
|
명령 파라미터 2 |
2 bytes |
40005 |
ID 1의 판정 결과 ID 2의 판정 결과 ID 3의 판정 결과 ... |
8 bytes |
40069~40072 |
||
명령 파라미터 3 |
2 bytes |
40006 |
|||||
명령 파라미터 4 |
2 bytes |
40007 |
|||||
명령 파라미터 5 |
2 bytes |
40008 |
|||||
명령 파라미터 6 |
2 bytes |
40009 |
ID 1의 측정 결과 ID 2의 측정 결과 ID 3의 측정 결과 ... |
256 bytes (4 bytes x 64) |
40073~40200 |
||
명령 파라미터 7 |
2 bytes |
40010 |
|||||
명령 파라미터 8 |
2 bytes |
40011 |
|||||
명령 파라미터 9 |
2 bytes |
40012 |
|||||
명령 파라미터 10 |
2 bytes |
40013 |
|||||
변수 1 |
4 bytes |
40014~40015 |
|||||
변수 2 |
4 bytes |
40016~40017 |
|||||
변수 3 |
4 bytes |
40018~40019 |
|||||
변수 4 |
4 bytes |
40020~40021 |
|||||
변수 5 |
4 bytes |
40022~40023 |
|||||
변수 6 |
4 bytes |
40024~40025 |
|||||
변수 7 |
4 bytes |
40026~40027 |
|||||
변수 8 |
4 bytes |
40028~40029 |
|||||
변수 9 |
4 bytes |
40030~40031 |
|||||
변수 10 |
4 bytes |
40032~40033 |
|||||
RESERVED |
예약 필드 |
62 bytes |
40034~40064 |
||||
입력(PLC에서 Mech-MSR로)
CONTROL_INPUT (입력 제어)
| 주소 | 데이터 | 설명 |
|---|---|---|
0.0 |
Command enable (bool) |
명령 활성화 신호가 1로 설정된 경우에만 다른 입력 신호가 유효하게 적용됩니다. |
0.1 |
Command trigger (bool) |
명령어 트리거 신호가 0에서 1로 변경(상승 에지 감지)되면, Mech-MSR이 명령 코드와 명령 파라미터를 읽습니다. Mech-MSR이 command trigger acknowledge 신호를 반환하면, 명령어 트리거 신호를 0으로 설정할 수 있습니다. |
0.2 |
Data read finished (bool) |
PLC가 데이터 읽기를 완료하면 이 신호는 1로 설정됩니다. PLC에 데이터 레디 신호가 0으로 변경되었음을 알리면, 이 신호를 0으로 설정할 수 있습니다. |
0.3 |
Reset (bool) |
이 신호를 1로 설정하면 PLC는 수신된 판정 결과와 측정 결과를 삭제합니다. 이 시점에서 PLC는 새로운 명령을 보낼 수 있으며 상태 코드 신호는 재설정됩니다. |
0.4 |
Reserved field (bool) |
보류된 필드입니다. |
0.5 |
Reserved field (bool) |
보류된 필드입니다. |
0.6 |
Reserved field (bool) |
보류된 필드입니다. |
0.7 |
Reserved field (bool) |
보류된 필드입니다. |
1.0~3.7 |
Reserved field (byte) |
보류된 필드입니다. |
COMMAND & COMMAND_PARAM (명령 코드 및 명령 파라미터)
다음 표에서는 Modbus TCP 통신에서 지원하는 명령, 명령 코드(COMMAND), 명령 파라미터(COMMAND_PARAM)에 대해 설명합니다.
| 명령어 | COMMAND | COMMAND_PARAM | 설명 |
|---|---|---|---|
execute |
1 |
프로젝트 번호입니다. 매번 하나의 프로젝트 번호만 설정할 수 있습니다. |
프로젝트를 트리거하여 프로젝트의 판정 결과와 측정 결과를 얻는 데 사용됩니다. |
trigger |
2 |
프로젝트 번호입니다. 한 번에 1~4개의 프로젝트 번호를 설정할 수 있습니다. |
프로젝트 실행을 트리거하는 데 사용됩니다. |
return |
3 |
프로젝트 번호입니다. 매번 하나의 프로젝트 번호만 설정할 수 있습니다. |
특정 프로젝트의 판정 결과 및 측정 결과를 얻기 위해 사용됩니다. |
judge |
4 |
지정한 프로젝트의 전체 품질 판정 결과 또는 개별 측정 항목의 품질 판정 결과를 가져오는 데 사용됩니다. |
|
value |
5 |
주로 지정한 프로젝트의 측정값을 가져오는 데 사용됩니다. |
|
recipe |
6 |
프로젝트 번호와 파라미터 레시피 번호입니다. |
프로젝트에서 사용하는 파라미터 레시피를 전환하는 데 사용됩니다. |
solution |
7 |
솔루션 ID입니다. |
솔루션을 전환하는 데 사용됩니다. |
setNumVar |
8 |
전역 변수 번호이며, 한 번에 1개만 설정할 수 있습니다. |
숫자형 전역 변수의 값을 설정하는 데 사용되며, 변수 값은 VAR_INPUT를 통해 전달됩니다. |
getNumVar |
9 |
전역 변수 번호이며, 한 번에 1개만 설정할 수 있습니다. |
숫자형 전역 변수의 값을 읽는 데 사용되며, 읽기 결과는 VALUE를 통해 반환됩니다. |
VAR_INPUT(변수 입력)
setNumVar 명령을 실행할 때 설정한 값은 VAR_INPUT에 기록됩니다.
| 홀딩 레지스터 주소(4x) | 데이터 | 설명 |
|---|---|---|
40014~40015 |
변수 1(부동 소수점) |
숫자형 입력 파라미터 1 |
40016~40017 |
변수 2(부동 소수점) |
숫자형 입력 파라미터 2 |
40018~40019 |
변수 3(부동 소수점) |
숫자형 입력 파라미터 3 |
40020~40021 |
변수 4(부동 소수점) |
숫자형 입력 파라미터 4 |
40022~40023 |
변수 5(부동 소수점) |
숫자형 입력 파라미터 5 |
40024~40025 |
변수 6(부동 소수점) |
숫자형 입력 파라미터 6 |
40026~40027 |
변수 7(부동 소수점) |
숫자형 입력 파라미터 7 |
40028~40029 |
변수 8(부동 소수점) |
숫자형 입력 파라미터 8 |
40030~40031 |
변수 9(부동 소수점) |
숫자형 입력 파라미터 9 |
40032~40033 |
변수 10(부동 소수점) |
숫자형 입력 파라미터 10 |
출력(Mech-MSR에서 PLC로)
CONTROL_OUTPUT (출력 제어)
| 주소 | 데이터 | 설명 |
|---|---|---|
0.0 |
하트비트 신호(부울 값) |
시스템 하트비트는 1초마다 반전됩니다. 이를 통해 PLC와 Mech-MSR 간 통신 연결이 정상인지 또는 끊어졌는지 판단할 수 있습니다. |
0.1 |
명령 트리거 ACK(부울 값) |
Mech-MSR이 명령 트리거 신호의 상승 에지를 수신하면 이 신호를 1로 설정합니다. 명령 트리거 신호가 하강 에지가 되면 이 신호를 0으로 설정합니다. |
0.2 |
데이터 준비 완료(부울 값) |
Mech-MSR이 출력 포트에 데이터를 기록한 후 PLC가 이를 읽기를 기다립니다. 데이터 읽기 완료 신호가 1이 되면 이 신호는 0으로 설정됩니다. |
0.3 |
명령 실행 완료(부울 값) |
명령 실행이 끝나면 이 신호를 1로 설정하여 명령 처리가 완료되었음을 나타냅니다. |
0.4 |
예약 필드(부울 값) |
예약 필드입니다. |
0.5 |
예약 필드(부울 값) |
예약 필드입니다. |
0.6 |
예약 필드(부울 값) |
예약 필드입니다. |
0.7 |
오류(부울 값) |
Mech-MSR이 반환한 상태 코드가 1이 아니면 오류가 있는 것이며, 이 신호는 1로 설정됩니다. |
1.0 |
종합 판정 결과(부울 값) |
프로젝트의 종합 판정 결과이며, 1은 합격(OK), 0은 불합격(NG)을 의미합니다. |
1.1~1.7 |
예약 필드(부울 값) |
예약 필드입니다. |
2.0~3.7 |
예약 필드(바이트) |
예약 필드입니다. |
STATUS_CODE (상태 코드)
Mech-MSR이 반환할 수 있는 상태 코드는 다음과 같습니다.
-
정상 상태 코드: 1, 명령이 성공적으로 실행되었음을 나타냅니다.
-
오류 상태 코드: -1, -2, -3, -4, -5. 자세한 내용은 오류 상태 코드 설명을 참조하십시오.
JUDGE (판정 결과)
출력 관리 창의 통신 출력 탭에 추가된 측정 항목의 품질 판정 결과입니다. 1은 합격(OK), 0은 불합격(NG)을 의미합니다.
| 단일 프로젝트에 대해 한 번에 최대 64개의 판정 결과를 출력할 수 있습니다. |
VALUE (측정 결과)
VALUE 모듈은 다음 데이터를 반환할 수 있습니다.
-
통신 출력 탭에 추가된 측정 항목의 측정 결과
-
getNumVar명령 실행 시 읽어온 숫자형 전역 변수의 값
| 단일 프로젝트에 대해 한 번에 최대 64개의 측정값을 출력할 수 있습니다. |