GX Works2에서 Ethernet Open Setting 표를 처음 보면 Protocol, Open Method, Fixed Buffer, Send, Receive, Procedure Exist 같은 항목이 한꺼번에 보여 혼동하기 쉽습니다. 하지만 핵심은 복잡하지 않습니다. TCP인지 UDP인지, PLC가 먼저 접속하는지 상대 장비가 접속하는지, 그리고 데이터가 어느 방향으로 흐르는지만 구분하면 Open Setting 표를 훨씬 쉽게 해석할 수 있습니다.
Open Setting을 이해해야 하는 이유
이더넷 통신은 포트 번호만 맞춘다고 끝나지 않습니다. 같은 포트 번호를 사용해도 TCP와 UDP가 다르면 통신 방식이 다르고, PLC가 접속하는지 상대 장비가 접속하는지에 따라 Active와 Unpassive 설정이 달라집니다.
또한 MC 프로토콜처럼 하나의 연결에서 읽기와 쓰기를 모두 처리할 수 있는 구조가 있는 반면, 사용자 정의 Socket 통신처럼 송신과 수신 방향을 직접 나누어 구성해야 하는 경우도 있습니다.
Open Setting을 제대로 이해하지 못하면 다음과 같은 문제가 발생할 수 있습니다.
| 문제 상황 | 주요 원인 |
|---|---|
| 상대가 접속하지 못함 | Active/Unpassive 설정 오류 |
| 포트는 열었는데 데이터가 안 들어옴 | Send/Receive 방향 설정 오류 |
| 통신은 붙지만 값이 안 바뀜 | 프로토콜 또는 데이터 주소 불일치 |
| 연결 자원이 부족함 | 불필요하게 Send/Receive를 여러 줄로 분리 |
| 간헐적으로 데이터 누락 | UDP 사용 조건과 데이터 보증 구조 미확인 |
Open Setting은 단순히 표를 채우는 작업이 아니라 상대 장비와 통신 약속을 맞추는 과정입니다.
TCP와 UDP의 차이
Protocol 항목에서 가장 먼저 구분해야 하는 것은 TCP와 UDP입니다.
TCP는 연결을 맺고 데이터를 주고받는 방식입니다. 상대방과 연결 상태를 확인하고, 데이터 송수신 과정에서 안정성을 확보하기 쉽습니다. PC, HMI, 서버, 검사 장비와의 통신에서는 TCP를 사용하는 경우가 많습니다.
UDP는 연결 절차 없이 데이터를 보내는 방식입니다. 구조가 단순하고 빠르게 주고받을 수 있지만, 상대가 데이터를 받았는지 확인하는 절차가 약합니다. 따라서 데이터 누락이 문제가 되는 구조에서는 별도 확인 로직을 구성해야 합니다.
| 구분 | TCP | UDP |
|---|---|---|
| 통신 방식 | 연결 후 송수신 | 연결 절차 없이 송수신 |
| 데이터 확인 | 연결 상태와 응답 확인 가능 | 별도 확인 구조 필요 |
| 안정성 | 상대적으로 높음 | 상대적으로 낮음 |
| 실무 사용 | PC, HMI, 서버, MC 프로토콜 통신 | 단순 주기 전송, 일부 장비 간 데이터 교환 |
| 주의점 | 연결 관리 필요 | 데이터 누락과 순서 관리 주의 |
특별한 이유 없이 속도만 보고 UDP를 선택하면 나중에 데이터 누락이나 순서 문제로 디버깅이 길어질 수 있습니다. 안정적인 데이터 교환이 중요하다면 TCP부터 검토하는 것이 일반적입니다.
Open Method는 접속 주체를 정하는 항목이다
Open Method는 누가 먼저 접속을 시작하는지와 관련된 항목입니다.
PLC가 상대방 IP와 포트로 먼저 접속하면 Active 구조입니다. 반대로 PLC가 포트를 열어두고 상대 장비의 접속을 기다리면 Unpassive 구조로 볼 수 있습니다. Fullpassive는 접속 허용 대상을 더 제한적으로 관리할 때 사용되는 구조로 이해할 수 있습니다.
| 항목 | 의미 | 실무 사용 예 |
|---|---|---|
| Active | PLC가 상대 IP로 먼저 접속 | PLC가 PC 서버나 측정 장비로 접속해야 할 때 |
| Unpassive | PLC가 대기하고 상대가 접속 | HMI, PC, 바코드 장비가 PLC로 접속할 때 |
| Fullpassive | 지정 조건의 상대 접속만 허용 | 접속 대상을 제한해야 하는 설비 |
중요한 것은 어떤 방식이 항상 정답이라는 것이 아닙니다. 상대 장비가 먼저 데이터를 보내는 구조인지, PLC가 요청해서 데이터를 가져오는 구조인지에 따라 선택이 달라집니다.
상대 담당자가 “PLC 쪽 포트 열어주세요”라고 말했다면 대부분 PLC가 대기하는 구조를 의미합니다. 이 경우 Unpassive 설정을 검토하게 됩니다. 반대로 PLC가 상대 PC 프로그램으로 먼저 접속해야 한다면 Active 구조를 봐야 합니다.
Fixed Buffer의 Send와 Receive 의미
Fixed Buffer 설정에서는 데이터가 어느 방향으로 흐르는지 확인해야 합니다.
Send는 PLC에서 외부 장비로 데이터를 보내는 방향입니다. Receive는 외부 장비에서 PLC로 들어오는 데이터를 받는 방향입니다.
| 항목 | 의미 | 실무 사용 예 |
|---|---|---|
| Send | PLC에서 외부 장비로 데이터 전송 | PLC가 판정 결과, 상태값, 요청 프레임 송신 |
| Receive | 외부 장비에서 PLC로 데이터 수신 | 바코드, 검사 결과, 계측값 수신 |
| Procedure Exist | 정해진 절차에 따라 읽기·쓰기 처리 | MC 프로토콜 통신에서 자주 사용 |
Socket 통신처럼 사용자가 직접 데이터를 보내고 받는 구조에서는 Send와 Receive를 분리해서 생각해야 합니다. 반면 MC 프로토콜처럼 상대 장비가 PLC 디바이스를 읽고 쓰는 구조에서는 Procedure Exist를 사용하는 경우가 많습니다.
Procedure Exist는 언제 사용하는가
Procedure Exist는 정해진 통신 절차에 따라 데이터 읽기와 쓰기를 처리하는 구조에서 사용됩니다. MC 프로토콜을 사용할 때 자주 접하는 설정입니다.
MC 프로토콜은 상대 장비가 PLC의 D, M, W 같은 디바이스를 읽거나 쓰는 구조로 많이 사용됩니다. 이 경우 하나의 연결 안에서 읽기와 쓰기가 모두 처리될 수 있으므로, 불필요하게 Send와 Receive를 따로 여러 줄 구성할 필요가 없는 경우가 많습니다.
| 구분 | 적합한 구조 |
|---|---|
| MC 프로토콜로 PC/HMI가 PLC를 읽고 씀 | TCP + Unpassive + Procedure Exist |
| PLC가 특정 문자열을 직접 보냄 | Send 검토 |
| 외부 장비가 문자열을 PLC로 보냄 | Receive 검토 |
| 사용자 정의 데이터 송수신 | Socket 구조와 Send/Receive 방향 확인 |
통신 설정에서 중요한 것은 항목 이름을 외우는 것이 아니라, 실제 데이터 흐름을 먼저 정리하는 것입니다.
실무에서 자주 쓰는 설정 조합
현장에서 자주 사용하는 조합은 몇 가지로 정리할 수 있습니다.
| 용도 | 자주 쓰는 조합 |
|---|---|
| PC 또는 HMI가 PLC 디바이스를 읽고 쓰는 구조 | TCP + Unpassive + Procedure Exist |
| PLC가 PC 서버로 먼저 접속하는 구조 | TCP + Active |
| 외부 장비가 PLC로 문자열을 보내는 구조 | TCP 또는 UDP + Unpassive + Receive |
| PLC가 외부 장비로 주기 데이터를 보내는 구조 | TCP 또는 UDP + Send |
| PLC 간 단순 데이터 교환 | 현장 조건에 따라 TCP 또는 UDP 선택 |
처음 설정하는 경우에는 상대 장비가 MC 프로토콜로 PLC 값을 읽고 쓰는 구조인지 먼저 확인하는 것이 좋습니다. 이 구조라면 TCP + Unpassive + Procedure Exist 조합이 가장 먼저 검토되는 경우가 많습니다.
다만 장비마다 요구하는 통신 구조가 다르므로, 실제 적용 시에는 상대 장비 매뉴얼과 프로그램 담당자의 요구 조건을 기준으로 결정해야 합니다.
상대 장비가 먼저 보내는 구조와 PLC가 요청하는 구조
Open Setting에서 가장 많이 헷갈리는 부분은 상대 장비가 데이터를 먼저 보내는지, PLC가 요청해서 데이터를 가져오는지입니다.
바코드 리더기처럼 스캔이 완료되면 장비가 PLC로 문자열을 보내는 구조가 있습니다. 이 경우 PLC는 대기하고 있다가 데이터를 받아야 하므로 Receive 구조를 검토합니다.
반대로 PLC가 특정 시점에 측정 장비나 PC 서버로 요청을 보내고 응답을 받는 구조도 있습니다. 이 경우 PLC가 먼저 접속하거나 송신 조건을 만들어야 하므로 Active 또는 Send 구조를 검토합니다.
| 구조 | 설정 판단 |
|---|---|
| 상대 장비가 PLC로 접속 | PLC는 Unpassive 대기 |
| PLC가 상대 장비로 접속 | PLC는 Active 검토 |
| 상대 장비가 데이터를 먼저 보냄 | Receive 방향 확인 |
| PLC가 데이터를 먼저 보냄 | Send 방향 확인 |
| PC/HMI가 PLC 디바이스를 읽고 씀 | Procedure Exist 검토 |
통신은 “누가 먼저 말을 거는가”와 “데이터가 어느 방향으로 흐르는가”를 나누어 봐야 합니다.
포트 번호는 진수 표기를 확인한다
Open Setting에서 포트 번호를 입력할 때 10진수와 16진수 표기를 혼동하면 통신이 붙지 않습니다.
상대 PC 담당자가 5000번 포트라고 말했는데, PLC 설정창이 16진수 입력 기준이라면 그대로 5000을 넣으면 안 될 수 있습니다. 10진수 5000은 16진수로 1388입니다.
| 확인 항목 | 설명 |
|---|---|
| 상대가 말한 포트 번호 | 보통 10진수인지 확인 |
| PLC 설정창 입력 방식 | 10진수인지 16진수인지 확인 |
| 실제 열리는 포트 | 상대가 접속할 포트와 일치하는지 확인 |
| 중복 포트 | 같은 포트를 다른 설정에서 사용 중인지 확인 |
포트 번호는 숫자 하나만 틀려도 접속이 되지 않습니다. Open Setting에서 포트 번호를 입력할 때는 반드시 입력 진수를 확인해야 합니다.
불필요한 채널 낭비를 줄여야 한다
통신 설정을 잘 모르면 Send와 Receive를 각각 열어두거나, 같은 상대 장비에 여러 줄을 불필요하게 설정하는 경우가 있습니다.
그러나 MC 프로토콜처럼 하나의 연결에서 읽기와 쓰기를 모두 처리할 수 있는 구조라면 여러 연결을 만들 필요가 없는 경우가 많습니다. 불필요한 연결은 포트 관리와 유지보수를 어렵게 만들고, 연결 자원을 낭비할 수 있습니다.
채널을 구성할 때는 다음을 확인합니다.
| 확인 항목 | 설명 |
|---|---|
| 하나의 연결로 처리 가능한지 | MC 프로토콜 구조 확인 |
| Send/Receive 분리가 필요한지 | 사용자 정의 Socket 통신 여부 확인 |
| 같은 상대 IP가 중복되는지 | 목적별 포트 분리 필요성 확인 |
| 실제 사용하는 포트인지 | 미사용 설정 제거 |
| 주석이 있는지 | 각 Open Setting의 용도 표시 |
Open Setting은 많이 열수록 좋은 것이 아닙니다. 필요한 통신 구조만 명확하게 열어두는 것이 관리에 유리합니다.
현장에서 자주 틀리는 Open Setting 실수
Open Setting에서 자주 발생하는 실수는 다음과 같습니다.
| 실수 | 결과 |
|---|---|
| TCP/UDP를 잘못 선택 | 상대 장비와 통신 방식 불일치 |
| Active/Unpassive를 반대로 설정 | 서로 접속을 기다리거나, 서로 접속을 시도함 |
| Send/Receive 방향을 잘못 설정 | 데이터가 들어와도 처리되지 않음 |
| 포트 번호 진수 혼동 | 상대는 맞게 접속했지만 PLC는 다른 포트 대기 |
| MC 프로토콜인데 불필요하게 Send/Receive 분리 | 연결 자원 낭비와 설정 복잡도 증가 |
| 상대 IP 미확인 | Active 접속 실패 또는 잘못된 장비와 통신 |
| 설정 반영 누락 | PLC Write 또는 재기동 누락으로 이전 설정 유지 |
통신이 안 될 때는 설정값을 계속 바꾸기보다, 위 항목을 기준으로 하나씩 확인하는 것이 좋습니다.
Open Setting 확인 순서
GX Works2에서 Open Setting을 확인할 때는 다음 순서로 보는 것이 좋습니다.
| 순서 | 확인 항목 |
|---|---|
| 1 | 상대 장비가 TCP인지 UDP인지 확인 |
| 2 | PLC가 먼저 접속하는지, 상대 장비가 접속하는지 확인 |
| 3 | MC 프로토콜인지 Socket 통신인지 확인 |
| 4 | Send, Receive, Procedure Exist 중 필요한 방식 선택 |
| 5 | PLC IP와 상대 IP 확인 |
| 6 | 포트 번호와 입력 진수 확인 |
| 7 | 같은 포트를 중복 사용하지 않는지 확인 |
| 8 | 설정 목적을 주석으로 남김 |
| 9 | PLC Write 후 설정 반영 여부 확인 |
| 10 | 접속 상태와 송수신 데이터를 모니터링 |
이 순서대로 보면 표의 각 항목이 따로 보이지 않고 하나의 통신 구조로 연결됩니다.
상대방에게 확인할 질문
Open Setting을 잡기 전에 상대방에게 다음 항목을 확인하면 설정 시간을 줄일 수 있습니다.
| 질문 | 목적 |
|---|---|
| TCP인가요, UDP인가요? | Protocol 선택 |
| PLC가 기다리면 되나요? | Active/Unpassive 판단 |
| 사용하는 프로토콜은 MC인가요, Socket인가요? | Procedure Exist 또는 Send/Receive 판단 |
| 데이터를 누가 먼저 보내나요? | Send/Receive 방향 판단 |
| 포트 번호는 몇 번인가요? | Port No. 입력 |
| 포트 번호는 10진수 기준인가요? | Hex 입력 실수 방지 |
| 상대 IP는 무엇인가요? | Active 접속 또는 제한 접속 설정 |
| 읽고 쓸 PLC 주소는 어디인가요? | 데이터 영역 정리 |
이 질문에 답이 정리되면 Open Setting 표에 넣어야 할 값도 자연스럽게 결정됩니다.
Open Setting 해석 정리
GX Works2 Open Setting은 TCP/UDP, Active/Unpassive, Send/Receive 같은 항목이 함께 있어 처음에는 복잡해 보입니다. 하지만 실제로는 통신 방식, 접속 주체, 데이터 방향, 프로토콜을 정리하는 표입니다.
TCP는 안정적인 연결형 통신이고, UDP는 연결 절차가 없는 비연결형 통신입니다. Active는 PLC가 먼저 접속하는 구조이고, Unpassive는 PLC가 포트를 열고 상대 접속을 기다리는 구조입니다. Send는 PLC가 외부로 데이터를 보내는 방향이고, Receive는 외부 장비에서 PLC로 들어오는 데이터를 받는 방향입니다. Procedure Exist는 MC 프로토콜처럼 정해진 절차에 따라 읽기와 쓰기를 처리하는 구조에서 자주 사용됩니다.
처음 설정할 때는 값을 외우기보다 상대 장비와 통신 구조를 먼저 정리해야 합니다. 누가 먼저 접속하는지, 누가 먼저 데이터를 보내는지, MC 프로토콜인지 Socket 통신인지, 포트 번호는 10진수인지 16진수인지 확인하면 Open Setting 표의 대부분은 자연스럽게 결정됩니다.
통신은 설정을 많이 넣는 것이 아니라 필요한 약속만 정확히 맞추는 작업입니다. Open Setting을 구성한 뒤에는 PLC Write와 설정 반영 여부, 접속 상태, 송수신 데이터까지 함께 확인해야 실제 통신이 정상인지 판단할 수 있습니다.