Modbus RTU Master 통신 테스트 (FC6)
본 예제는 FC6 (Write Single Register) 기능을 이용하여 Slave 장치의 Holding Register 값을 변경하는 테스트입니다.
PC에서 Modbus RTU Slave 프로그램을 실행한 뒤, CUBLOC2에서 Register 데이터를 정상적으로 쓰는지 확인하였습니다.
테스트 내용
- Slave ID : 1
- 대상 주소 : 0
- Register 값 : 123
- 전송 데이터는 Buf() 배열 사용
전송 후 Slave 프로그램의 Register 값이 변경되는 것을 확인하였습니다.
테스트 코드
'------------------------------------------------------------
' FC6 (Write Single Register) 테스트
'------------------------------------------------------------
Dim Buf(0) As Integer
Dim Err As Integer
Dim KeyNow As Byte
Dim KeyOld As Byte
Opencom 0, 115200, PROTO_8N1
' 채널0, 응답 대기시간 100ms
Modbusmaster 0, 100
KeyOld = 0
Do
KeyNow = In(4)
' 스위치 OFF -> ON 순간에 1회 실행
If KeyNow = 1 And KeyOld = 0 Then
' FC6 실행
' Slave ID=1
' 주소=0
Buf(0) = 123
Modbuswrite 0, 1, 6, 0, 1, Buf()
Err = Modbuserror()
If Err = 0 Then
Debug "FC6 Write OK", Cr
Else
Debug "FC6 Error=", Dec Err, Cr
End If
End If
KeyOld = KeyNow
Loop
결과
- Register 데이터가 정상적으로 기록됨
- Slave 프로그램의 Register 값 변경 확인
- 반복 테스트 중 통신 오류 없이 안정적으로 동작 확인
- Register 값이 즉시 반영됨
FC6은 다음과 같은 용도로 사용할 수 있습니다.
- 목표값 설정
- 인버터 주파수 설정
- 온도 설정값 변경
- 장비 파라미터 변경
