Remote Command

Remote Command

Remote Command

한눈에 보기

Remote Command는 Host가 장비에게 “무엇을 해 달라"고 요청하는 표준 채널입니다. 하지만 메시지를 보냈다고 해서 항상 실행되는 것은 아니며, 장비 상태, 제어권, 안전 조건, 파라미터 유효성이 모두 함께 맞아야 합니다.

S2F42는 최종 업무 완료보다 먼저 오는 접수 결과로 읽는 편이 안전합니다.

기본 메시지

메시지 의미
S2F41 Host Command Send
S2F42 Host Command Acknowledge

명령 계약을 한 장으로 보기

direction: right

vars: {
  fill: "#eef6ff"
  stroke: "#4b77be"
}

rcmd: "RCMD\n무슨 명령인가"
params: "CPNAME / CPVAL\n무슨 값이 필요한가"
state: "허용 상태\n지금 실행 가능한가"
ack: "HCACK\n접수 결과"
event: "후속 Event\n실행 결과"

rcmd.style.fill: fill
rcmd.style.stroke: stroke
rcmd.style.border-radius: 12
params.style.fill: fill
params.style.stroke: stroke
params.style.border-radius: 12
state.style.fill: "#fff4e8"
state.style.stroke: "#c77400"
state.style.border-radius: 12
ack.style.fill: "#f7f3ff"
ack.style.stroke: "#7a5ea6"
ack.style.border-radius: 12
event.style.fill: "#f7fff2"
event.style.stroke: "#5c8d2b"
event.style.border-radius: 12

rcmd -> params: "파라미터 포함"
params -> state: "상태와 충돌 여부 확인"
state -> ack: "즉시 응답"
ack -> event: "필요 시 후속 확인"

명령을 읽는 기본 단위

RCMD

  • 의미: 무슨 명령인가
  • 예: Start, Stop, Abort, GoRemote, Reset

CPNAME / CPVAL

  • 의미: 그 명령을 실행하는 데 필요한 이름과 값입니다.
  • 예: JobID, PPID, PortNo

ACK

  • 의미: 명령을 접수했는지, 거절했는지, 파라미터가 유효한지를 알려 줍니다.

ACK를 먼저 이해하는 방식

결과 해석
명령 수락 형식과 상태가 유효
명령 거절 현재 상태상 실행 불가
파라미터 오류 이름/타입/범위 문제
부분 오류 일부 파라미터만 문제

명령 시퀀스

shape: sequence_diagram

Host -> Equipment: "S2F41 RCMD + PARAMS"
Equipment -> Host: "S2F42 Ack"
Equipment -> Host: "후속 Event 또는 상태 변화"

상태와 같이 읽는 방식

같은 명령이라도 상태에 따라 해석이 달라집니다.

명령 Offline OnlineLocal OnlineRemote
Start 거절 거절 또는 제한 허용
Stop 거절 제한 허용
GoRemote 거절 허용 조건 확인 불필요
Reset 장비 정책에 따름 장비 정책에 따름 장비 정책에 따름

이 표는 실제 장비 규칙을 모두 담지는 않지만, 사용자에게 명령이 상태와 분리되지 않는다는 점을 바로 보여 줍니다.

좋은 문서가 되기 위한 최소 항목

  • 명령명
  • 허용 상태
  • 필수/선택 파라미터
  • 각 파라미터 타입과 범위
  • 성공/거절 응답 코드
  • 실행 결과를 알려 주는 Event/Variable

파라미터 규칙을 따로 두는 이유

명령이 많아질수록 RCMD보다 CPNAME/CPVAL 쪽에서 혼선이 더 커집니다. 따라서 문서에는 파라미터 이름 사전과 값 규칙이 같이 있어야 합니다.

  • 파라미터 이름
  • 데이터 타입
  • 허용 값 범위
  • 필수 여부
  • 명령별 사용 여부
  • 서로 같이 와야 하는 조합

자주 보는 질문

ACK가 성공이면 바로 실행 완료인가

아닙니다. 접수는 성공했지만 실제 완료는 후속 Event나 상태 변화로 확인해야 하는 경우가 많습니다.

명령 설명과 상태 설명을 따로 두면 충분한가

부족합니다. 명령-상태 관계를 한 번 더 보여줘야 실제 운용 문서가 됩니다.

관련 문서