목록Protocol/모드버스 (5)
꾸준히
지금까지 다뤘던 내용은 모드버스 RTU였다. 이제 모드버스 TCP에 대해 알아보자! 모드버스 TCP란? TCP계층에서 사용되는 모드버스 프로토콜이다. 모드 버스 RTU는 좁은 범위에서 물리적으로 선을 연결하여 사용하였다면, 모드 버스 TCP는 인터넷을 이용하여 통신 할 수 있도록 확장한 것이다. 모드버스 RTU와 TCP의 패킷 차이 모드버스 TCP의 패킷을 보면 RTU와 다르게 CRC부분이 빠지고 추가정보 6Byte가 추가된 것을 볼 수 있다. CRC가 존재하는 이유는 데이터가 정상적으로 오고가는지 확인하기 위함인데 모드버스 TCP프로토콜 자체에 오류를 검증하기 때문에 CRC를 추가할 필요가 없는 것이다. 추가 정보(6Byte)는 어떻게 구성되어 있을까? 추가 정보에는 Transaction ID, Pro..
패킷 구성(Read) - 마스터 Address : slave ID Function : Function Code Start H : 주소 High 바이트 Start L : 주소 Low 바이트 Count H : 데이터 High 바이트 Count L : 데이터 Low 바이트 CRC L : CRC Low 바이트 CRC H : CRC High 바이트 Start H + Start L : 몇번지의 값부터 요청 할 것인지에 대한 정보 Count H + Count L 해서 몇개의 데이터를 요청 할 것인지에 대한 정보 CRC L + CRC H : 마스터가 보내는 패킷의 CRC값 해석 : 슬레이브 ID가 0x01인 슬레이브에게 Function Code 0x04를 0000번지부터 000A만큼 데이터 개수를 요청한다 - 슬레이브..
모드버스가 아니더라도 RS485를 이용하는 프로콜은 마스터와 슬레이브가 반드시 존재하게 됩니다. 이유는 이전 글에서 설명한 멀티드롭과 관련이 있습니다. 멀티드롭은 하나의 선을 이용하여 통신하기 때문에 여러개의 노드들이 동시에 데이터를 보내면 데이터가 손실됩니다. (여러명의 사람들이 동시에 말하면 무슨말인지 잘 못알아 듣는 경우와 같습니다) 이러한 문제를 해결하기 위해서 가장 간단한 방법이 반드시 마스터와 슬레이브를 둬서 동시에 데이터를 보내는 일이 없도록 해야합니다. (데이터를 보내는 순서를 정해줍니다) 마스터 슬레이브 관계란 마스터가 발언권을 가지고 모든 말은 마스터로부터 시작이 됩니다. 마스터가 물어봐야 슬레이브가 대답하고, 마스터가 물어보기전에 슬레이브가 먼저 말하는 경우가 없도록하여 데이터 충돌이..
대표적으로 사용되는 시리얼 통신은 RS-232, RS-422, RS-485가 사용됩니다. 세가지 통신의 차이점은 무엇일까요? RS232 - 꾸지다 RS422 - 아주좋다 RS485 - 좋다, 가장많이 쓴다 이정도로 생각하면 좋을 것 같습니다. RS232는 1:1 통신만 지원가능, 선의 개수는 3개, 외부영향을 많이 받음, 그래서 기계가 바로 옆에 있을 때 테스트용으로 많이 사용합니다. RS422은 전이중 방식으로 데이터를 보냄과 동시에 받는것이 가능하지만 선의 개수가 4개라는 단점이 있습니다. (선이 많다보니 보기 안좋고, 비용이 증가해서 많이 사용되지 않는다) RS485는 반이중 방식이며 선의 개수는 2가닥, 4가닥 모두 사용가능하나 보통은 2가닥을 사용합니다. RS485의 중요한 특징은 멀티드롭을 지..
모드 버스란 PLC(Programmable Logic Controller)용 시리얼 통신 프로토콜(RS-232, RS-485)입니다. 현재는 시리얼 통신 뿐만 아니라 TCP/IP 통신 프로토콜에서도 사용 가능하도록 확장 되었다고 합니다. RS485는 시리얼 통신중에 하나입니다. 시리얼 통신과 병렬 통신을 간단히 정리하자면 시리얼 통신은 한번에 한개의 비트만, 병렬 통신은 한번에 여러개의 비트를 동시에 보내는 것입니다. 서로 다른 장치가 통신하려면 유선이던 무선이던 반드시 물리적인 경로가 있어야 합니다. 예를들면 RS485는 선이 2가닥 이더넷 통신은 8가닥... 와이파이는 주파수영역을 맞춰야 통신이 가능합니다. 물리적인 경로도 약속이 필요하다. 무슨약속이냐? 전선을 쓴다고하면 몇가닥을 쓸것인지(가닥수) ..