728x90
TIA Portal에서 설정하고, Visual Studio로 실시간 제어까지
Siemens PLC는 글로벌 산업 자동화 표준이라 할 만큼 다양한 스마트팩토리 현장에서 활용되고 있습니다. 특히 S7-1200/1500 시리즈는 OPC UA 서버 내장으로, 외부 IT 시스템과의 연결성이 뛰어납니다.
이 글에서는 C# OPC UA 클라이언트 앱을 직접 구현하여, S7 PLC에서 실시간 데이터를 읽고 이벤트 처리까지 해보겠습니다.
TIA Portal → 인증서 설정 → C# 코드 구현까지 단계별로 구성되어 있어 실무에 바로 적용 가능합니다.

- 통신 프로토콜: OPC UA (opc.tcp://<PLC IP>:4840)
- 개발 언어: C# (.NET 6 이상)
- 개발 환경: Visual Studio 2022+
- 사용 라이브러리: OPCFoundation.NetStandard.Opc.Ua
- 주요 기능:
- TIA Portal에서 태그 공유 설정
- C#으로 OPC UA 연결 및 데이터 Read
- Subscription 기반 변경 이벤트 수신
- 보안 정책/인증서 구성 실전 팁

🔧 Siemens OPC UA 서버 활성화 절차 (TIA Portal)
- S7-1200/1500 모델 선택 (1500은 고급 보안, 1200은 기본 기능 제공)
- Device Configuration → OPC UA 탭
- OPC UA Server 활성화
- Global DB 생성 → 공개할 변수에 Accessible from HMI/OPC UA 체크
- 보안 인증서 생성 및 외부 Client와 교환

📦 C# OPC UA 연결 코드 예제
string endpointUrl = "opc.tcp://192.168.130.72:4840"; // PLC IP 주소
string nodeId = "ns=3;s=\"DB1\".\"Speed\""; // TIA Portal에서 설정한 DB 변수
var session = await Session.Create(config, endpoint, false, "SiemensClient", 60000, null, null);
var value = session.ReadValue(nodeId);
Console.WriteLine($"Speed 값: {value.Value}");
Siemens의 노드ID는 "DB명"."태그명" 형식으로 표현됨. ns=3은 서버 구성에 따라 달라질 수 있으니 UA 클라이언트 툴(ex. UAExpert)로 확인 필요.
🔁 Subscription 이벤트 처리
var monitoredItem = new MonitoredItem(subscription.DefaultItem)
{
StartNodeId = "ns=3;s=\"DB1\".\"Speed\"",
DisplayName = "Speed",
SamplingInterval = 500
};
monitoredItem.Notification += (item, args) =>
{
foreach (var v in item.DequeueValues())
{
Console.WriteLine($"Speed 변경됨: {v.Value}");
}
};
🛠️ 실무 노하우
항목설명
| TIA Portal 설정 필수 | Accessible from HMI/OPC UA 옵션 체크 안 하면 외부 접근 불가 |
| 인증서 관리 | Siemens는 기본적으로 인증서 기반 접근만 허용 → C# 클라이언트 인증서 생성 후 교환 |
| NodeId 확인 | UAExpert 또는 TIA Portal에서 OPC UA 구조 Export 가능 |
| 포트 개방 | 기본 포트 4840 방화벽 허용 필수 |
| S7-1200 제한사항 | S7-1500 대비 OPC UA 채널 수, 보안 기능 제한 있음 |
https://www.youtube.com/watch?v=wPMMyGQfk4Y
728x90
'산업 IoT & 스마트 팩토리 디지털트윈 > OPC UA 표준 통신' 카테고리의 다른 글
| OPC UA & C# 통신 예제 – IOT(아두이노) 연동편 (0) | 2026.02.12 |
|---|---|
| OPC UA & C# 통신 예제 - OMRON NX/NJ PLC 연동편 (0) | 2026.02.12 |
| OPC UA & C# 통신 예제 – 미쯔비시 MELSEC PLC 연동편 (0) | 2026.02.12 |
| OPC UA & C# 기초 통신 예제 – LS산전 PLC 연동편 (0) | 2026.02.11 |
| OPC UA 쉽게 이해하기: 구조부터 Python 예제까지 한눈에 정리! (0) | 2025.06.09 |