Modbus RTU Master 통신 테스트 (FC15)

본 예제는 FC15 (Write Multiple Coils) 기능을 이용하여 여러 개의 Coil 값을 한 번에 변경하는 테스트입니다.

PC에서 Modbus RTU Slave 프로그램을 실행한 뒤, CUBLOC2에서 여러 개의 Coil 데이터를 정상적으로 쓰는지 확인하였습니다.

테스트 내용

  • Slave ID : 1
  • 시작 주소 : 0
  • Coil 개수 : 8개
  • 전송 데이터는 Buf() 배열 사용

전송 후 Slave 프로그램의 Coil 상태가 변경되는 것을 확인하였습니다.

테스트 코드

'------------------------------------------------------------
' FC15 (Write Multiple Coils) 테스트
'------------------------------------------------------------
Dim Buf(7) 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
        ' FC15 실행
        ' Slave ID=1
        ' 시작주소=0
        ' 8개 Coil 쓰기
        Buf(0) = 1
        Buf(1) = 0
        Buf(2) = 1
        Buf(3) = 1
        Buf(4) = 0
        Buf(5) = 0
        Buf(6) = 1
        Buf(7) = 1
        Modbuswrite 0, 1, 15, 0, 8, Buf()
        Err = Modbuserror()
        If Err = 0 Then
            Debug "FC15 Write OK", Cr
        Else
            Debug "FC15 Error=", Dec Err, Cr
        End If
    End If
    KeyOld = KeyNow
Loop

결과

  • 여러 개의 Coil 데이터가 한 번에 정상 기록됨
  • Slave 프로그램의 Coil 상태 변경 확인
  • 반복 테스트 중 통신 오류 없이 안정적으로 동작 확인
  • 여러 출력 상태가 즉시 반영됨

FC15는 다음과 같은 용도로 사용할 수 있습니다.

  • 다수의 릴레이 동시 제어
  • 출력 뱅크 제어
  • 장비 초기 출력 설정
  • 여러 디지털 출력 동시 갱신

← Modbus RTU 마스터로 돌아가기