====== Modbus RTU Master 통신 테스트 (FC1) ====== 본 예제는 FC1 (Read Coils) 기능을 이용하여 Slave 장치의 Coil 상태를 읽어오는 테스트입니다. PC에서 Modbus RTU Slave 프로그램을 실행한 뒤, CUBLOC2에서 Coil 데이터를 정상적으로 읽어오는지 확인하였습니다. {{ :cubloc2:modbusrtumaster:testresult.png?nolink |}} ===== 테스트 내용 ===== * Slave ID : 1 * 시작 주소 : 0 * 읽기 개수 : 10개 Coil * 읽은 데이터는 Buf() 배열에 저장 읽어온 Coil 상태는 Debug 창에 출력하여 확인하였습니다. {{ :cubloc2:modbusrtumaster:fctestresult.png?nolink |}} ===== 테스트 코드 ===== '------------------------------------------------------------ ' FC1 (Read Coils) 테스트 '------------------------------------------------------------ Dim Buf(9) 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 ' FC1 실행 ' Slave ID=1 ' 시작주소=0 ' 10개 Coil 읽기 Modbusread 0, 1, 1, 0, 10, Buf() Err = Modbuserror() If Err = 0 Then Debug "FC1 Read OK", Cr Debug "C0=", Dec Buf(0), " " Debug "C1=", Dec Buf(1), " " Debug "C2=", Dec Buf(2), " " Debug "C3=", Dec Buf(3), " " Debug "C4=", Dec Buf(4), " " Debug "C5=", Dec Buf(5), " " Debug "C6=", Dec Buf(6), " " Debug "C7=", Dec Buf(7), " " Debug "C8=", Dec Buf(8), " " Debug "C9=", Dec Buf(9), Cr Else Debug "FC1 Error=", Dec Err, Cr End If End If Wait 500 KeyOld = KeyNow Loop ===== 결과 ===== * Coil 데이터가 정상적으로 읽힘 * Slave 프로그램의 Coil 상태와 동일하게 표시됨 * 반복 테스트 중 통신 오류 없이 안정적으로 동작 확인 * Coil 상태 변경 시 읽기 결과도 즉시 반영됨 FC1은 다음과 같은 용도로 사용할 수 있습니다. * 입력 접점 상태 확인 * 센서 ON/OFF 읽기 * PLC 비트 상태 모니터링 * 원격 장비 상태 확인 [[index|← Modbus RTU 마스터로 돌아가기]]