사용자 도구

사이트 도구

English

comfilehmi:hmi_connection_tcp:index

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
comfilehmi:hmi_connection_tcp:index [2019/01/11 11:50]
Comfile Technology
comfilehmi:hmi_connection_tcp:index [2023/04/15 06:43] (현재)
Comfile Technology [2) 슬레이브(서버)로 운용하는 방법]
줄 1: 줄 1:
 +====== 이더넷 MODBUS-TCP 연결 방법 ======
  
 +ComfileHMI는 (이더넷 포트가 있는 모델의 경우)이더넷 통신을 지원하며 Modbus-TCP 프로토콜을 사용할 수 있습니다.
 +HMI가 마스터(클라이언트)가 되는 방식이 있고 슬레이브(서버)가 되는 방식이 있습니다.
 +경우에 따라서는 두 가지 방식을 동시에 운용할 수도 있습니다.
 +
 +
 +===== 1) 마스터(클라이언트)로 운용하는 방법 =====
 +
 +HMI가 원격지에 있는 서버에 접속하여 읽기나 쓰기의 요청을 합니다. 만약 접속이 끊어질 경우 자동으로 재접속 시도합니다.
 +HMI 에디터의 [프로젝트 속성>​통신 구성>​회선 추가]에서 다음과 같이 '​MODBUS TCP' 프로토콜을 선택합니다.
 +
 +{{ :​comfilehmi:​hmi_connection_tcp:​comfilehminetworksetup2.png?​nolink |}}
 +
 +회선을 추가하고 프로젝트를 전송한 후 HMI의 런타임 설정에 가면 다음과 같이 접속할 서버에 대한 정보를 입력할 수 있게 됩니다.
 +서버 주소는 도메인 이름을 사용할 수 있으며 192.168.X.X 와 같이 내부 네트워크 주소도 사용 가능합니다.
 +
 +{{ :​comfilehmi:​hmi_connection_tcp:​h2.png?​nolink |}}
 +
 +접속할 원격 서버에 대한 정보를 HMI에서 위와 같이 직접 입력할 수도 있고 프로젝트 속성에서 미리 결정한 후 HMI에 자동으로 반영되게 할 수도 있습니다.
 +다음과 같이 회선 속성에서 통신 설정을 HMI에게 전달하도록 하면 HMI에서 어떻게 설정이 되어있든지 그것을 덮어쓰기 하여 설정이 수정되어집니다. HMI의 통신 설정을 언제나 무시하고 싶을 때 이 기능을 사용하세요.
 +
 +{{ :​comfilehmi:​hmi_connection_tcp:​comfilehminetworksetup3.png?​nolink |}}
 +
 +위와 같이 통신을 위한 설정 작업을 마치고 LAN선을 연결하고,​ 다음과 같이 주소입력창에서 외부장치를 선택하고 상세 주소를 입력하면 원격지 서버에 대해서 bit/word 데이터의 읽기/​쓰기 작업을 할 수 있습니다.
 +
 +{{ :​comfilehmi:​hmi_connection_tcp:​h4.png?​nolink |}}
 +
 +만약 접속하고자하는 외부의 서버의 갯수가(또는 포트가) 여러개일 경우 회선(프로젝트 속성의 가상의 회선을 뜻함)을 여러개를 만들어도 무방합니다.
 +
 +본사의 TCPPORT-30M 제품을 서버로 운용할 경우 HMI가 클라이언트가 되어 접속할 수 있습니다. 이 때 포트 번호는 502로 고정이고 TCPPORT에서 딥스위치로 설정한 192.168.0.2XX 의 주소로 접속하면 됩니다.
 +
 +===== 2) 슬레이브(서버)로 운용하는 방법 =====
 +
 +HMI에서 Modbus-TCP 서버를 운용하면 LAN선을 통해 외부에서 들어오는 읽기/​쓰기 요청에 대해 반응하게 할 수 있습니다.
 +읽기/​쓰기의 대상은 //내부 메모리//​이며 word 데이터만 지원하며 bit 데이터는 지원하지 않습니다.
 +//내부 메모리//​의 주소가 Modbus의 워드 주소로 간주되어 동작합니다. ​
 +
 +  * 보내는 측에서 40001 번지를 접근하면,​ ComfileHMI에는 펑션코드 3, 번지0으로 도착합니다. ​
 +  * 그러면 //내부 메모리// 0 을 읽어서 반환합니다. ​
 +  * 40001 --> 0번지, 40002 --> 1번지...
 +
 +
 +우선 준비 작업으로 다음과 같이 네트워크 설정을 해야 합니다. 서버를 운용하려면 서버 주소가 확정적으로 존재해야 하므로 '​자동으로 IP 주소 받아오기'​를 체크 해제하고 명시적으로 IP 주소를 입력하는 것을 권장합니다. 그밖의 네트워크 설정들은 현재 사용자의 네트워크 환경에 맞도록 설정해줍니다.
 +
 +{{ :​comfilehmi:​hmi_connection_tcp:​h6.png?​nolink |}}
 +
 +네트워크 설정을 마치고 실제적으로 서버를 운용하려면 LAN선을 연결하고 다음과 같이 HMI의 런타임 설정에서 서버를 구동하겠다고 체크 설정을 하고 포트번호와 슬레이브 주소를 입력해야 합니다. 슬레이브 주소는 //내부 변수//나 수식을 써서 가변적인 성격을 띄게 할 수도 있습니다.
 +
 +{{ :​comfilehmi:​hmi_connection_tcp:​h5.png?​nolink |}}
 +
 +만약 서버를 구동할지 여부와 포트번호,​ 슬레이브 주소 등의 서버 운용에 관련한 설정을 HMI에서 하지 않고, ComfileHMI Editor에서 프로젝트 설계시에 확정하고 강제로 HMI에게 전달하고 싶을 경우 다음과 같이 에디터의 프로젝트 설정에서 처리할 수 있습니다.
 +
 +{{ :​comfilehmi:​hmi_connection_tcp:​comfilehminetworksetup4.png?​nolink |}}
 +  ​
 +HMI에게 여러개의 클라이언트가 접속하는 것을 허용하나 대략 3개가 넘을 경우는 시스템에 부하가 많이 걸릴 우려가 있어서 주의해야 하며 이미 부하가 많이 걸린 상태에서는 새로운 클라이언트의 접속 요청이 자동으로 거부됩니다.
 +
 +===== TCPPORT-30M 과 연결 =====
 +
 +TCPPORT-30M은 이더넷 TCP포트와 연결가능한 데이터수집장치입니다.
 +
 +{{ :​comfilehmi:​hmi_connection_tcp:​tcpport-30m.png?​nolink |}}
 +
 +
 +TCPPORT-30M은 Modbus-TCP 서버 역할(슬레이브)을 할 수 있으므로 HMI가 클라이언트가 되어 TCPPORT에 접속을 시도하여 I/O 접점 상태, 아날로그 측정등을 할 수 있습니다. TCPPORT는 포트가 502로 고정되어 변경 불가하며 IP는 192.168.0.2XX 를 사용할 수 있습니다.
 +
 +다음은 예제 파일입니다. 프로젝트 설정에서 원격 IP주소(TCPPORT의 IP주소)를 실제 네트워크 환경에 맞게 조정해야 합니다. ComfileHMI Editor 버전 2.62 이상에서만 동작합니다.
 +
 +[[http://​www.comfile.co.kr/​download/​hmi/​TCPPortTest.zip|[프로젝트 파일 다운로드]]]
 +
 +{{ :​comfilehmi:​hmi_connection_tcp:​r1.png?​nolink |}}
 +
 +다음은 TCPPORT-30M과 ComfileHMI를 연결한 모습입니다. 각각 랜선을 꼽아 연결되게 해주면 됩니다.
 +HMI 쪽에서 서버(TCPPORT)에 대한 접속 시도가 실패할 경우 자동으로 반복하여 재시도하므로 HMI의 전원이 먼저 인가되어도 무방합니다.
 +
 +{{:​comfilehmi:​hmi_connection_tcp:​전면_이미지.jpg?​nolink|}}
 +
 +
 +프로젝트를 다운로드한 후 HMI의 런타임 설정에 들어가서 HMI가 접속할 TCPPORT-30M의 서버 정보를 다음과 같이 입력해주어야 합니다.
 +
 +{{ :​comfilehmi:​hmi_connection_tcp:​t1.png?​nolink |}}
 +
 +또는 에디터의 [프로젝트 속성>​통신 구성>​회선 속성]에서 다음과 같이 지정하면 위의 런타임 설정 과정을 대체할 수 있습니다.
 +
 +{{ :​comfilehmi:​hmi_connection_tcp:​t2.png?​nolink |}}
 +
 +다음은 실제 연결하여 구동하는 영상입니다.
 +
 +{{ :​comfilehmi:​hmi_connection_tcp:​tcpport-30m_and_hmi_small.mp4?​700x394 |}}
 +
 +[[comfilehmi:​index#​ComfileHMI_하드웨어|상위 페이지로 가기]]