본문 바로가기
PLC 자동제어 학습/CiMon Scada 수업

CiMon을 이용해서 통신을 연결하기 시도와 실패

by 인터넷떠돌이 2017. 11. 15.
반응형

안녕하세요?


어제 언급한 대로, 이번주 화요일 PLC 자동제어 수업의 남은 부분을 포스팅 하고자 합니다. 수업의 내용은 간단하게도 CiMon을 이용해서 한쪽은 서버로 만들도록 하고, 나머지 한쪽은 클라이언트가 되어서 원격으로 CiMon의 패널을 조작하는 것을 시도하고자 합니다.



우선 새로운 작업을 해야 하기 때문에, 새 프로젝트를 만들도록 합니다.



다음으로는 I/O 디바이스라는 메뉴에 들어가도록 합니다.



당연 여기서 새 디바이스를 추가하는 작업에 먼저 들어가 보고자 합니다.



여기서는 MODICON Modbus TCP Slave라는 것을 '서버'로 지정될 컴퓨터의 CiMon에서 지정을 하도록 합니다. 참고로 서버라는 것은 다른 말로 slave로서, 그냥 정보를 제공해 주는 기능만 합니다. 그래서 여기서는 Modbus slave를 선택한 것입니다.




우선 Modbus-모드버스라는 것에 대해서 간략하게 설명을 해야 겠다는 생각이 듭니다. 이 모드버스는 가장 보편적인 표준인 통신 프로토콜이라고 합니다. 그래서 거의 모든 PLC는 이 모드버스를 지원하고 있다고 하며, 이를 통해서 PLC와 통신을 한다고 합니다.



이제 서버라고 해서 뭐가 하나 생긴것을 볼 수 있습니다.



종료하고 나와보면, 위 스크린샷과 같이, 전에는 없던 것이 나와있는 것을 볼 수 있습니다.



다음으로는 윈도의 cmd 도스창을 통해서 내가 CiMon으로 서버로 설정한 컴퓨터의 IP주소가 어떻게 되는지를 알아 보고자 합니다. 그걸 위해서는 명령어로 ipconfig라고 입력하면 위와 같은 내용이 나오는 것을 확인할 수 있습니다.



I/O 디바이스 메뉴를 열면 나오는 slave항목을 더블클릭해서 통신포트 설정이 있습니다. 여기서 제가 현재 사용중인 IP주소를 입력하도록 합니다.



다음으로는 서버가 된 CiMonD에서 램프라고 하는 디지털 태그-가상태그를 하나 만들고 나서, 그 다음에는 전등 역할을 하는 원의 색변화에 사용을 하도록 합니다.



이제 여기서 조금은 복잡한 내용이 나왔습니다. I/O 디바이스에서 slave로 설정되어 있는 디바이스에 접혀있는 표시를 열면, 이렇게 Coil register나 holding register라는 것이 나오게 되는데, 이게 무슨 이야기냐 하면, 모드 버스는 워드와 비트라는 단위로 통신이 나누어져 있습니다.




일단 제가 이해하기로는 일반적인 통신은 글자 하나하나를 보내는데, 이런 역할을 하는 것이 아스키 코드라고 합니다. 이 아스키코드는 8비트=1바이트인데, 일반적으로 아날로그 데이터는 비트로 보내기 힘들어서 2바이트=1워드로 보낸다고 합니다. 결국 Modbus는 워드 단위로 데이터를 보낸다고 합니다.


아무튼 Coil register = 비트 단위 데이터처리 = 디지털 태그 라는 공식이 나오고, Holding register는 아날로그 태그와 관계가 되었다고 생각이 듭니다. 여기서는 디지털 태그를 서버가 되는 제 CiMon상에서 설치했기 때문에, Coil에다가 램프라는 태그를 등록하도록 합니다.



그리고 주소는 1번이라고 등록이 된 것을 볼 수 있습니다.



다음은 서버 스테이션 설정인데, 이름은 어찌되었건 좋지만 Unit ID라는 것에서는 1번이고 고치도록 합니다.



이제 여기서 위 스크린샷에 나와 있는 것처럼 modbus에서 slave가 없는 것을 고르면, 여기서는 클라이언트로 가는 것을 설정할 수 있습니다.



여기서는 스테이션 설정에서 IP설정이라고 있는데, 중요한 것은 여기 IP설정에서 접속하고자 하는 서버의 IP주소를 입력해야 한다는 것입니다.



그 다음에는 통신블록 추가라는 메뉴를 클릭하도록 합니다.



여기서 다른 것은 중요하지 않은데, 가장 중요한 것이 바로 어드레스입니다. 일단 비트의 경우에는 읽고, 쓰기가 가능한 주소라면 0으로 시작을 하고, 읽기만 하는 것이라면 1로 주소가 시작되게 됩니다. 그리고 아날로그 태그와 관계된 워드의 경우에는 주소가 읽고, 쓰기가 되는 주소는 4로 시작하고, 읽기만 되는 주소는 3으로 시작을 하게 됩니다.




다음으로는 이 HMI Modbus라는 이 안드로이드 앱을 이용해서 컴퓨터간의 통신이 아니라 모바일 기기에서 CiMon Scada를 조종하는 실습을 시도는 했는데, 일단 와이파이를 공유기를 사용하다 보니, 너무 많은 사용자 때문에 잘 되지가 않았습니다. 일단 안드로이드 기기상에서 다음과 같은 설정을 하기는 했습니다.



먼저 앱에서 새로운 프로젝트를 생성하도록 합니다.



먼저 해야 할 일은 Edit Server list라는 것을 들어가서 서버로 설정된 CiMon이 있는 PC에 대한 정보를 입력해야 합니다.



많은 정보를 요구하지는 않고, 여기서는 서버가 된 PC의 IP주소만 입력하면 됩니다.



다음은 안드로이드 앱에서 체크박스와 같은 모양의 아이콘을 하나 추가해 놓고서, 다음은 Element settings에 들어가 보도록 해야 합니다.



일단 여기서는 디지털 태그의 읽고 쓰기에 정했으니 Communication address는 0, PLC number는 위에서 서버로 설정할 때, 1이라는 Unit id를 썼으니까, 1울 지정합니다. 그리고 서버에 값을 쓴다. 즉, 조작을 해야하는 일을 하기에 Allow write request라는 것을 적도록 합니다. 그리고 request type과 function code는 위 그림에서 나와 있는 것처럼 rea bit state와 read coil statue 0X01이라는 것을 선택하도록 합니다.


일단 이번 수업 시간에서는 수박 겉핥기 식이라서, 제가 이를 직접 시도해서 보강을 해야 하는데, 이에 대해서는 이번 주 안에서는 힘들고, 주말에 시간이 나면, 한번 실험을 해봐야 겠는데, 그때 가서 다른 내용으로 만나봐야 겠습니다. 이것으로 화요일의 수업 내용은 마치도록 하겠습니다.

반응형