포스트

Siemens PLC 통신 기초 (S7.NetPlus + WPF)

TIA Portal, S7.NetPlus 소개 + 통신 예제

Siemens PLC 통신 기초 (S7.NetPlus + WPF)

Siemens PLC 란?

  • Siemens 사의 대표적인 산업용 PLC
  • 주요 유럽/글로벌 시장 점유율 1위
  • 주요 시리즈: S7-1200, S7-1500, S7-300, S7-400
  • 통신 방식
    • PROFINET (Ethernet 기반)
    • MPI (Multi-Point Interface)
    • Profibus (Fieldbus)
    • Modbus TCP/IP 지원 가능 (게이트웨이 사용)

사전 준비 (소프트웨어 설치)

  • TIA Portal (Totall Integrated Automation Portal)
    • Siemens PLC 프로그램 작성/다운로드/시뮬레이션 툴
  • S7 Communication Library (통신 라이브러리)
    • S7.NetPlus (C#용, 간편한 오픈소스)

WPF 에서 Siemens PLC 연결하기

Nuget 패키지 관리에서 S7.NetPlus 검색 후 설치

WPF 에서 기본 통신 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using S7.Net;

public class SiemensPLC
{
    private Plc plc;

    public bool Connect(string ipAddress, CpuType cpuType = CpuType.S71500, short rack = 0, short slot = 1)
    {
        plc = new Plc(cpuType, ipAddress, rack, slot);
        plc.Open();
        return plc.IsConnected;
    }

    public void Disconnect()
    {
        plc.Close();
    }

    public object Read(string address)
    {
        return plc.Read(address);
    }

    public void Write(string address, object value)
    {
        plc.Write(address, value);
    }
}

사용 예시

1
2
3
4
5
6
7
8
var siemens = new SiemensPLC();
bool connected = siemens.Connect("192.168.0.10");

if (connected)
{
    var value = siemens.Read("DB1.DBW0"); // 데이터 블록1의 워드0 읽기
    siemens.Write("DB1.DBW2", (short)1234); // 데이터 블록1의 워드2에 1234 쓰기
}
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.