====== Modbus RTU Master 통신 테스트 (FC16) ====== 본 예제는 FC16 (Write Multiple Registers) 기능을 이용하여 여러 개의 Holding Register 값을 한 번에 전송하는 테스트입니다. PC에서 Modbus RTU Slave 프로그램을 실행한 뒤, CUBLOC2에서 전송한 데이터가 정상적으로 기록되는지 확인하였습니다. {{ :cubloc2:modbusrtumaster:fc16test.png?nolink |}} ===== 테스트 내용 ===== * Slave ID : 1 * 시작 주소 : 0 * 전송 개수 : 5개 Register * 전송 데이터 : * 100 * 200 * 300 * 400 * 500 전송 후 Slave 프로그램의 Holding Register 값이 동일하게 변경되는 것을 확인하였습니다. ===== 테스트 코드 ===== '------------------------------------------------------------ ' FC16 (Write Multiple Registers) 테스트 '------------------------------------------------------------ Dim Buf(4) 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 ' 전송할 데이터 설정 Buf(0) = 100 Buf(1) = 200 Buf(2) = 300 Buf(3) = 400 Buf(4) = 500 ' FC16 실행 Modbuswrite 0, 1, 16, 0, 5, Buf() Err = Modbuserror() If Err = 0 Then Debug "FC16 Write OK", Cr Else Debug "FC16 Error=", Dec Err, Cr End If End If KeyOld = KeyNow Loop ===== 결과 ===== * 5개의 Register 값이 한 번에 정상 기록됨 * Slave 프로그램에서 데이터 변경 확인 완료 * 긴 FC16 프레임도 정상 송수신됨 * 응답(ACK) 정상 수신 확인 FC16은 여러 개의 파라미터를 한 번에 전송할 때 유용합니다. 예를 들어: * 인버터 파라미터 설정 * 서보 드라이브 초기값 설정 * 장비 초기화 데이터 다운로드 등에 사용할 수 있습니다. [[index|← Modbus RTU 마스터로 돌아가기]]