A Node-RED node to simulate Modbus RTU protocol messages
npm install kds-modbus-simulatorjavascript
{
payload: "01 03 0002 000A C5 CD", // Modbus RTU 메시지 (Hex 형식)
timestamp: 1704861234567 // 메시지 생성 시간 (Unix timestamp)
}
`
##### 3.2 Modbus RTU 메시지 구조
1. Slave Address (1 byte)
2. Function Code (1 byte)
3. Data (N bytes)
4. CRC (2 bytes)
#### 4. 작동 모드
##### 4.1 단일 실행 모드
- 노드 좌측의 실행 버튼 클릭 시 한 번 실행
- 입력 메시지 수신 시 한 번 실행
##### 4.2 반복 실행 모드
- Repeat 옵션 활성화 시 사용 가능
- 설정된 간격으로 주기적 실행
- 노드 비활성화 또는 플로우 중지 시 자동 중단
#### 5. 오류 처리
- 잘못된 파라미터 입력 시 기본값 사용
- CRC 계산 실패 시 오류 메시지 출력
- 통신 오류 발생 시 노드 상태 표시 변경
#### 6. 사용 제한 및 주의사항
- 최대 동시 실행 개수: 제한 없음
- 최소 실행 간격: 1초
- 메모리 사용량: 일반적인 Node-RED 노드 수준
- 권장 Node-RED 버전: 2.0.0 이상
#### 7. 구현 세부사항
##### 7.1 CRC 계산 알고리즘
`javascript
function calculateCRC(buffer) {
let crc = 0xffff;
for (let i = 0; i < buffer.length; i++) {
crc ^= buffer[i];
for (let j = 0; j < 8; j++) {
if (crc & 0x0001) {
crc >>= 1;
crc ^= 0xa001;
} else {
crc >>= 1;
}
}
}
return crc & 0xffff;
}
`
##### 7.2 메시지 생성 로직
1. 기본 메시지 버퍼 생성 (6 bytes)
2. 설정값 기반 데이터 입력
3. CRC 계산 및 추가
4. Hex 문자열로 변환
#### 8. 확장 가능성
1. 추가 Modbus 기능 코드 지원
2. 다양한 데이터 타입 지원
3. 응답 메시지 시뮬레이션 기능
4. 에러 상황 시뮬레이션 기능
5. 데이터 로깅 기능
#### 9. 설치 및 배포
1. 노드 설치: npm install kds-modbus-simulator
2. 노드 업데이트: npm update kds-modbus-simulator`