Mitsubishi MELSEC
Mech-MSR은 외부 장치와 Mitsubishi MELSEC 통신이 가능합니다. 다음 내용을 읽기 전에 Mech-MSR에서 통신 설정이 완료되었는지 확인하세요.
Mitsubishi MELSEC 관련
미쓰비시 MC 시리즈 PLC는 MC 통신 프로토콜을 통해 Mech-MSR 소프트웨어와 데이터 상호 작용을 수행합니다. 이 통신 모드에서는 Mech-MSR이 서버 역할을 하고 PLC는 클라이언트 역할을 합니다.
통신 프로세스
통신에 사용되는 구조 유형은 총 152개의 D 레지스터를 차지합니다. 이 구조체 변수의 시작 주소는 Mech-MSR에서 설정한 레지스터(D) 시작 주소와 동일해야 합니다.
Mitsubishi MELSEC 통신 프로세스는 아래 그림과 같습니다.
@startuml
' === 폰트 및 컬러 설정 ===
skinparam defaultFontName "Alibaba PuHuiTi 2.0"
skinparam defaultFontName "Roboto"
skinparam rectangle {
BackgroundColor<<CONTROL>> #F0F8FF
BackgroundColor<<COMMAND>> #FFFACD
BackgroundColor<<STATUS>> #FFE4E1
BackgroundColor<<DATA>> #E6E6FA
}
actor "외부 장치(예: PLC)" as PLC #15A08A
participant "Mech-MSR" as MSR #3F97D2
== 초기화 단계 ==
PLC -[#15A08A]> MSR: <b>CMD_ENABLE [D 레지스터 오프셋 0.0]<b> \n활성화 = 1 (해당 신호가 1일 때에만 다른 입력이 유효함)
MSR -[#3F97D2]> PLC:
<b>HEARTBEAT [D 레지스터 오프셋 16.0]<b> \n하트비트 신호 (지속적으로 모니터링되며, 1초마다 한 번씩 반전됩니다(예:0→1→0...). 이는 연결이 정상임을 의미합니다.)
== PLC 명령어 전송(예: execute) ==
PLC -[#15A08A]> MSR: <b>COMMAND [D 레지스터 오프셋 2] \n명령어 코드 = 1 (execute) \n <b>CMD_PARAM_1 [D 레지스터 오프셋 3] \n프로젝트 번호 = 1
activate PLC
== 명령어 Mech-MSR 트리거 (상승 에지 감지) ==
PLC -[#15A08A]> MSR: <b>CMD_TRIGGER [D 레지스터 오프셋 0.1]<b> \n 명령어 트리거 = 1 (상승 에지 ↑ 트리거)
note right of PLC
명령어 트리거 신호가 0 → 1(상승 에지)로 전환될 때에만 Mech-MSR가
명령 코드와 프로젝트 번호를 읽습니다.
end note
activate MSR
MSR -[#3F97D2]> PLC: <b>TRIGGER_ACKNOWLEDGE [D 레지스터 오프셋 16.1] \n명령어 트리거 ACK = 1 (상승 에지를 수신한 후 1로 설정됨)
PLC -[#15A08A]> MSR:
<b>CMD_TRIGGER [D 레지스터 오프셋 0.1]<b> \n 명령어 트리거 = 0 (리셋, 하강 에지 ↓) +
deactivate PLC
== Mech-MSR 데이터 처리 완료 & 결과 반환 ==
MSR -[#3F97D2]> MSR: 프로젝트 실행 (프로젝트 번호 = 1)
MSR -[#3F97D2]> PLC: <b>JUDGE [D 레지스터 오프셋 20]\n프로젝트의 품질 판정 결과를 기록합니다. 0은 OK, 1은 NG를 의미합니다.
MSR -[#3F97D2]> PLC: <b>VALUE [D 레지스터 오프셋 24]\n지정된 측정 항목의 측정값을 기록하며, 단일 프로젝트에서는 한 번에\n최대 64개의 측정값을 출력할 수 있습니다.
MSR -[#3F97D2]> PLC: <b>DATA_READY [D 레지스터 오프셋 16.2] \n데이터 준비 = 1 (데이터 기록 후 1로 설정, PLC 읽기 대기)
MSR -[#3F97D2]> PLC: <b>ERROR [D 레지스터 오프셋 16.7] \n오류 = 0 (오류가 없음을 의미하며, 오류 발생 시 1로 설정)
MSR -[#3F97D2]> PLC: <b>STATUS_CODE [D 레지스터 오프셋 18] \n상태 코드 \n(0은 정상 상태이며, -1부터 -4는 오류 상태를 의미함)
MSR -[#3F97D2]> PLC: <b>EXEC_COMPLETED [D 레지스터 오프셋 16.3] \n명령 실행 완료 = 1 (명령 처리가 완료되었음을 의미함)
deactivate MSR
activate PLC
== PLC 데이터 읽기 완료 ==
PLC -[#15A08A]> MSR: <b>DATA_READ_FINISHED [D 레지스터 오프셋 0.2] \n데이터 읽기 완료 = 1
note right of PLC
PLC가 모든 결과를 읽은 후 데이터 읽기 완료 신호를 1로 설정합니다.
end note
activate MSR
== 신호 리셋 ==
MSR -[#3F97D2]> PLC: <b>DATA_READY [D 레지스터 오프셋 16.2]\n데이터 준비 = 0 (PLC의 데이터 읽기 완료 = 1 신호를 수신한 후 리셋됨)
deactivate MSR
note right of PLC
데이터 준비 신호=0을 수신한 후, PLC는 데이터 읽기 완료 신호를 0으로 리셋하여
다음 명령어를 준비할 수 있습니다.
end note
PLC -[#15A08A]> MSR: <b>DATA_READ_FINISHED [D 레지스터 오프셋 0.2]\n데이터 읽기 완료 = 0
PLC -[#15A08A]> MSR:
<b>RESET [D 레지스터 오프셋 0.3]\n출력 데이터 리셋 = 1
MSR --[#3F97D2]> PLC: 상태 코드 리셋, 결과 초기화
@enduml
입력 신호(PLC에서 Mech-MSR)
| 명칭 | 설명 | 데이터 유형 | D 레지스터 오프셋 |
|---|---|---|---|
명령을 활성화하는 신호입니다. |
부울 값 |
0.0 |
|
명령을 트리거하는 신호입니다. |
부울 값 |
0.1 |
|
데이터를 읽습니다. |
부울 값 |
0.2 |
|
출력 데이터가 재설정됩니다. |
부울 값 |
0.3 |
|
BIT_SPARE_1 |
보류된 필드입니다. |
부울 값 |
0.4 |
BIT_SPARE_2 |
보류된 필드입니다. |
부울 값 |
0.5 |
BIT_SPARE_3 |
보류된 필드입니다. |
부울 값 |
0.6 |
BIT_SPARE_4 |
보류된 필드입니다. |
부울 값 |
0.7 |
BIT_SPARE_5 |
보류된 필드입니다. |
부울 값 |
0.8~0.15 |
WORD_SPARE_1 |
보류된 필드입니다. |
Word[부호 있음] |
1 |
명령 코드 |
Word[부호 있음] |
2 |
|
CMD_PARAM_1 |
명령어 파라미터 1 |
Word[부호 있음] |
3 |
CMD_PARAM_2 |
명령어 파라미터 2 |
Word[부호 있음] |
4 |
CMD_PARAM_3 |
명령어 파라미터 3 |
Word[부호 있음] |
5 |
CMD_PARAM_4 |
명령어 파라미터 4 |
Word[부호 있음] |
6 |
WORD_SPARE_2 |
보류된 필드입니다. |
Word[부호 있음] |
7~15 |
CMD_TRIGGER (명령 트리거)
명령어 트리거 신호가 0에서 1로 변경(상승 에지 감지)되면, Mech-MSR이 명령어 코드와 명령어 파라미터를 읽습니다. Mech-MSR이 command trigger acknowledge 신호를 반환하면, 명령어 트리거 신호를 0으로 설정할 수 있습니다.
DATA_READ_FINISHED (데이터 읽기 완료)
PLC가 데이터 읽기를 완료하면 이 신호는 1로 설정됩니다. data ready 신호가 0으로 변경되면 이 신호를 0으로 설정할 수 있습니다.
RESET (출력 데이터 리셋)
이 신호를 1로 설정하면 PLC는 수신된 판정 결과와 측정 결과를 삭제합니다. 이 시점에서 PLC는 새로운 명령을 보낼 수 있으며 상태 코드 신호는 재설정됩니다.
COMMAND (명령 코드)
다음 표는 Siemens S7 Client 통신에서 지원하는 명령어, 명령어 코드, 명령어 파라미터에 대한 설명입니다.
| 명령어 | 명령 코드 | 명령어 파라미터 | 설명 |
|---|---|---|---|
execute |
1 |
프로젝트 번호입니다. 매번 1개의 프로젝트 번호만 설정할 수 있습니다. |
프로젝트를 트리거하여 프로젝트의 판정 결과와 측정 결과를 얻는 데 사용됩니다. |
trigger |
2 |
프로젝트 번호입니다. 한 번에 1~4개의 프로젝트 번호를 설정할 수 있습니다. |
프로젝트 실행을 트리거하는 데 사용됩니다. |
return |
3 |
프로젝트 번호입니다. 매번 1개의 프로젝트 번호만 설정할 수 있습니다. |
특정 프로젝트의 판정 결과 및 측정 결과를 얻기 위해 사용됩니다. |
judge |
4 |
특정 프로젝트의 전반적인 품질 판단 결과 또는 개별 측정 항목의 판정 결과를 획득하는 데 사용됩니다. |
|
value |
5 |
특정 프로젝트의 측정값을 얻는 데 사용됩니다. |
| 프로젝트 번호를 확인하는 방법은 프로젝트 리스트 내용을 참조하십시오. |
출력 신호(Mech-MSR에서 PLC로)
| 명칭 | 설명 | 데이터 유형 | D 레지스터 오프셋 |
|---|---|---|---|
하트비트 신호 |
부울 값 |
16.0 |
|
명령 트리거 신호를 확인하는 트리거 확인 신호 |
부울 값 |
16.1 |
|
데이터 준비 신호 |
부울 값 |
16.2 |
|
명령 실행이 완료되었음을 나타내는 신호 |
부울 값 |
16.3 |
|
BIT_SPARE_1 |
보류된 필드입니다. |
부울 값 |
16.4 |
BIT_SPARE_2 |
보류된 필드입니다. |
부울 값 |
16.5 |
BIT_SPARE_3 |
보류된 필드입니다. |
부울 값 |
16.6 |
오류 신호입니다. |
부울 값 |
16.7 |
|
종합 판정 결과 |
부울 값 |
16.8 |
|
BIT_SPARE_4 |
보류된 필드입니다. |
부울 값 |
16.9~16.15 |
WORD_SPARE_1 |
보류된 필드입니다. |
Word[부호 있음] |
17 |
상태 코드 신호입니다. |
Word[부호 있음] |
18 |
|
WORD_SPARE_2 |
보류된 필드입니다. |
Word[부호 있음] |
19 |
판정 결과 |
부울 값(0~63비트) |
20 |
|
측정 결과 |
부동 소수점(0~63비트) |
24 |
TRIGGER_ACKNOWLEDGE (명령이 ACK를 트리거)
Mech-MSR이 command trigger 신호에 대한 상승 에지를 수신하면 이 신호가 1로 설정됩니다. command trigger 신호에 대해 실패 에지가 감지되면 이 신호가 0으로 설정됩니다.
DATA_READY (데이터 준비)
Mech-MSR은 출력 포트에 데이터를 쓰고 PLC가 출력 데이터를 읽을 때까지 기다립니다. Data read finished 신호가 1로 설정되면, 이 신호는 0으로 설정됩니다.
OVERALL_JUDGE (종합 판정 결과)
프로젝트의 종합 판정 결과로, 0은 합격(OK)을 의미하고 1은 불합격(NG)을 의미합니다.
| Mech-MSR의 출력 관리 창에서 프로젝트의 품질 판정 규칙을 설정하고, 품질 판정 시 고려해야 할 측정 항목을 결정해야 합니다. 구성을 완료하여야 유효한 판정 결과를 얻을 수 있습니다. |
STATUS_CODE (상태 코드)
상태 코드를 의미하며, Mech-MSR은 다음 5개의 상태 코드를 반환할 수 있습니다.
-
일반 상태 코드: 0은 명령이 성공적으로 실행되었음을 나타냅니다.
-
오류 코드 : -1, -2, -3, -4. 자세한 내용은 오류 코드를 참조하십시오.
JUDGE (판정 결과)
출력 관리 창의 통신 출력 탭에 추가된 측정 항목에 대한 판정 결과입니다. 0은 OK, 1은 NG를 나타냅니다.
| 단일 프로젝트에 대해 한 번에 최대 64개의 판정 결과를 출력할 수 있습니다. |