사용자 도구

사이트 도구

English

comfilehmi:hmi_connection_tcp:index

이더넷 MODBUS-TCP 연결 방법

ComfileHMI는 (이더넷 포트가 있는 모델의 경우)이더넷 통신을 지원하며 Modbus-TCP 프로토콜을 사용할 수 있습니다. HMI가 마스터(클라이언트)가 되는 방식이 있고 슬레이브(서버)가 되는 방식이 있습니다. 경우에 따라서는 두 가지 방식을 동시에 운용할 수도 있습니다.

1) 마스터(클라이언트)로 운용하는 방법

HMI가 원격지에 있는 서버에 접속하여 읽기나 쓰기의 요청을 합니다. 만약 접속이 끊어질 경우 자동으로 재접속 시도합니다. HMI 에디터의 [프로젝트 속성>통신 구성>회선 추가]에서 다음과 같이 'MODBUS TCP' 프로토콜을 선택합니다.

회선을 추가하고 프로젝트를 전송한 후 HMI의 런타임 설정에 가면 다음과 같이 접속할 서버에 대한 정보를 입력할 수 있게 됩니다. 서버 주소는 도메인 이름을 사용할 수 있으며 192.168.X.X 와 같이 내부 네트워크 주소도 사용 가능합니다.

접속할 원격 서버에 대한 정보를 HMI에서 위와 같이 직접 입력할 수도 있고 프로젝트 속성에서 미리 결정한 후 HMI에 자동으로 반영되게 할 수도 있습니다. 다음과 같이 회선 속성에서 통신 설정을 HMI에게 전달하도록 하면 HMI에서 어떻게 설정이 되어있든지 그것을 덮어쓰기 하여 설정이 수정되어집니다. HMI의 통신 설정을 언제나 무시하고 싶을 때 이 기능을 사용하세요.

위와 같이 통신을 위한 설정 작업을 마치고 LAN선을 연결하고, 다음과 같이 주소입력창에서 외부장치를 선택하고 상세 주소를 입력하면 원격지 서버에 대해서 bit/word 데이터의 읽기/쓰기 작업을 할 수 있습니다.

만약 접속하고자하는 외부의 서버의 갯수가(또는 포트가) 여러개일 경우 회선(프로젝트 속성의 가상의 회선을 뜻함)을 여러개를 만들어도 무방합니다.

본사의 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 주소를 입력하는 것을 권장합니다. 그밖의 네트워크 설정들은 현재 사용자의 네트워크 환경에 맞도록 설정해줍니다.

네트워크 설정을 마치고 실제적으로 서버를 운용하려면 LAN선을 연결하고 다음과 같이 HMI의 런타임 설정에서 서버를 구동하겠다고 체크 설정을 하고 포트번호와 슬레이브 주소를 입력해야 합니다. 슬레이브 주소는 내부 변수나 수식을 써서 가변적인 성격을 띄게 할 수도 있습니다.

만약 서버를 구동할지 여부와 포트번호, 슬레이브 주소 등의 서버 운용에 관련한 설정을 HMI에서 하지 않고, Comfile Studio에서 프로젝트 설계시에 확정하고 강제로 HMI에게 전달하고 싶을 경우 다음과 같이 에디터의 프로젝트 설정에서 처리할 수 있습니다.

HMI에게 여러개의 클라이언트가 접속하는 것을 허용하나 대략 3개가 넘을 경우는 시스템에 부하가 많이 걸릴 우려가 있어서 주의해야 하며 이미 부하가 많이 걸린 상태에서는 새로운 클라이언트의 접속 요청이 자동으로 거부됩니다.

TCPPORT-30M 과 연결

TCPPORT-30M은 이더넷 TCP포트와 연결가능한 데이터수집장치입니다.

TCPPORT-30M은 Modbus-TCP 서버 역할(슬레이브)을 할 수 있으므로 HMI가 클라이언트가 되어 TCPPORT에 접속을 시도하여 I/O 접점 상태, 아날로그 측정등을 할 수 있습니다. TCPPORT는 포트가 502로 고정되어 변경 불가하며 IP는 192.168.0.2XX 를 사용할 수 있습니다.

다음은 예제 파일입니다. 프로젝트 설정에서 원격 IP주소(TCPPORT의 IP주소)를 실제 네트워크 환경에 맞게 조정해야 합니다. ComfileHMI Editor 버전 2.62 이상에서만 동작합니다.

[프로젝트 파일 다운로드]

다음은 TCPPORT-30M과 ComfileHMI를 연결한 모습입니다. 각각 랜선을 꼽아 연결되게 해주면 됩니다. HMI 쪽에서 서버(TCPPORT)에 대한 접속 시도가 실패할 경우 자동으로 반복하여 재시도하므로 HMI의 전원이 먼저 인가되어도 무방합니다.

프로젝트를 다운로드한 후 HMI의 런타임 설정에 들어가서 HMI가 접속할 TCPPORT-30M의 서버 정보를 다음과 같이 입력해주어야 합니다.

또는 에디터의 [프로젝트 속성>통신 구성>회선 속성]에서 다음과 같이 지정하면 위의 런타임 설정 과정을 대체할 수 있습니다.

다음은 실제 연결하여 구동하는 영상입니다.

상위 페이지로 가기

comfilehmi/hmi_connection_tcp/index.txt · 마지막으로 수정됨: 2024/09/11 22:09 저자 Comfile Technology