PLC/지멘스

지멘스 Safety Programming 만들어보기

감튀러버 2025. 1. 1. 12:27
반응형

안녕하세요 오늘은 Safety Programming 에 대해 알아보겠습니다.

 

S7-1500 PLC에는 Safety Program을 만들 수 있는 CPU가 따로 있는데요

보통 PLC 이름 옆에 [F] 라고 붙습니다 (예를들어 CPU-1517TF 등)

 

일반 프로그램과 마찬가지로 Safety 프로그램도 역시 지멘스에서 권장하는 방식이 있습니다.

아래와 같은 방식인데요. 이 자료는 SIOS에서 [Programming Guideline Safety for SIMATIC S7-1200/1500] 라는 매뉴얼을 다운로드 받으면 찾아볼 수 있습니다.

이 방식에서는 프로그램을 3개의 영역으로 나눕니다.

  1. Standard Program 영역
  2. Standard program 과 Safety program이 데이터를 주고받는 영역
  3. Safety program 영역

Standard 와 Safety 가 데이터를 주고 받는 부분에서는 FC를 하나 거쳐서 데이터 이동이 됩니다.

(해당 FC를 가지고 Safety Administration에서 PreProcessing 설정을 하게 됩니다.)

 

또한 DB는 일반 Global DB가 아닌 F-UDT 타입으로 구성됩니다.


위 내용대로 세이프티 프로그램을 구성해 보겠습니다.

 

먼저 UDT를 만들어 보겠습니다.

(DataToSafety 와 DataFromSafety 두개를 생성해 줍니다)

 

UDT 생성후 필요한 데이터를 추가합니다(저는 EMO 두개를 추가했습니다)

 

 

그 다음 Standard Program과 Safety Program에서 사용할 DB를 만들어 보겠습니다.

DB는 총 3개가 필요합니다.

  1. DataFromSafety
  2. DataToSafety
  3. DataFromStandard

여기서 주의해야 할 것이 있는데요.

DB Type을 Global 대신 위에서 만들었던 F-UDT로 선택을 해야합니다.

 

이렇게 F-UDT를 사용하는 이유는 두가지입니다.

  1. UDT에 암호를 걸어 보안성을 유지하려는 목적
  2. Safety Program에서 읽거나 쓰는 Standard Program을 변경하게되면 Safety Program을 다시 컴파일 해야 하고 컴파일한 Safety Program을 PLC에 다운로드 하려면 CPU Stop을 해야하는 불편함이 있습니다. (이런 불편함을 F-UDT가 줄여줍니다)

 

그 다음 Standard 와 Safety 사이에서 데이터 교환을 할 수 있는 FC를 만들어줍니다.

위에서 만든 DB를 드래그해서 프로그램을 만들어 줍니다.

 

데이터 교환을 목적으로 만든 FC를 Safety Administration 설정의 PreProcessing에 넣어줍니다.

이와 같은 설정은 Safety Program 처리 중에 데이터가 변경되지 않도록 합니다.

 

반응형