[아두이노#617] 모드버스(modbus) TCP에 대해서 마무리하고 마스터쪽에 Nmodbus4 라이브러리 활용해보기 계속!(녹칸다의 아두이노 시즌2)
프로그래밍/W5500과 modbus tcp 2024. 8. 27. 23:14
https://youtube.com/live/re-qYaWyAcs
[아두이노#617] 모드버스(modbus) TCP에 대해서 마무리하고 마스터쪽에 Nmodbus4 라이브러리 활용해보기 계속!(녹칸다의 아두이노 시즌2)
녹칸다의 아두이노 시즌2 시리즈이다!
616편에 이어서 미리 만들어놓은 슬레이브코드를 nmodbus4라이브러리로 검증하고 몇가지 기능을 하는 슬레이브를 만들어보도록하자!
(검증해봐야하는 목차)
614-2(fc5로led제어해보기) : 검증완료됨!
614-3(fc01과fc05를동시에적용하기) : 검증완료됨!
615-1(fc15연속코일쓰기) : 검증완료!
615-2(fc06레지스터쓰기) : 검증완료!
615-3(fc04레지스터읽기) : 슬레이브에 오류가있어서 수정됨!
616-2(fc16) : 검증완료!
(오늘의 접근순서)
1.펑션코드 15번 만들었던거 잘 작동되는지 확인해보기!
2.순서대로 fc06, fc04, fc16작동테스트 해보기!
3.fc01과 05를 응용해서 8채널릴레이 컨트롤해보기!
4.fc04를 응용해서 아두이노에 연결된 온습도센서값을 modbus tcp로 읽어오기!
5.fc06을 응용해서 2개의 tm1637에 값을 전송해서 정수값 출력하기!
6.fc16을 응용해서 2개의 tm1637에 소수점이 있는 실수형데이터 전송하기!
(참고자료)
1.녹칸다가 만든 마스터는 레지스터데이터를 리틀엔디안으로 처리했는데 nmodbus4라이브러리는 빅엔디안으로 처리를 하더라~
2.원래 C#에 변수에담긴값인 리틀엔디안으로 저장되어있는데, 모드버스라이브러리를 통해서 전송할때 빅엔디안으로 처리되어서 전송된다!
3.nmodbus4에 초기 설정시 read/write timeout설정을 하는데 이 설정은 마스터에서 request를 전송한뒤 slave가 응답할때까지 기다리는 시간을 의미한다!
4.기다렸는데 timeout에 설정된 시간을 초과하면 슬레이브가 응답하지 않는것으로 간주한다!
5.8채널릴레이를 연결할때 외부전원이 반드시 필요하고 외부전원 GND는 아두이노의 GND와도 연결해주어야한다!
6.녹칸다가 사용하는 8채널릴레이를 포함한 다채널릴레이는 대부분 로우레벨트리거 방식으로 동작하기 때문에 아두이노에서 LOW신호가 출력되면 릴레이가 ON되고 HIGH신호가 출력되면 OFF된다!
7.처음 아두이노가 부팅될때 모든 릴레이에 다 HIGH신호를 주어야 OFF가된다!
(예제목차)
1.펑션코드15번으로 만들었던 슬레이브가 nmodbus4라이브러리로 잘작동하는지를 검증하시오!
2.펑션코드 6번으로 만들었던 슬레이브를 검증하시오!
3.펑션코드 4번으로 만들었던 예제를 검증하시오!
4.펑션코드 16번으로 만들었던 예제를 검증하시오!
5.fc01과 fc05를 응용해서 8채널릴레이를 제어하시오!
6.아두이노에 온습도센서(DHT-11)를 연결해서 온도와습도값을 출력하시오!
7.아두이노에 FND모듈인 TM1637을 2개 연결하고 마스터에서 정수값 2개를 전송해서 화면에 출력하시오!