본문 바로가기
Siemens Automation/TIAPortal STEP7

S7-1200 PID CONTROL

by 의명 2020. 6. 5.

STEP7 Basic (S7-1200) 에서  다음과 같은 PID 컨트롤 명령어를 사용할 수 있습니다.

* PID Compact 는 지속적으로 변화하는 입력, 출력값을 다루는 테크니컬 공정을 제어하는데 유용합니다.

* PID_3Step 은 열림과 닫힘 동작을 사용하는, 모터와 같은 별개의 신호로 동작되는 디바이스 제어에 주로 사용됩니다.

두 종류의 PID 명령어 모두 (pretuning 선택시) PLC 구동중 P, I, D 게인의 계산이 가능합니다. 

또한 PID 컨트롤의 파라메터를 최적화 시킬수 있는 "fine tuning" 을 구성할 수 있습니다.

PID 명령어는 일정한 인터벌의 샘플링 타임의 조건에서 동작되어야한다. (cyclic OB 에서 사용할 것을 권장)

PID 루프는 OB1 에서 사용하지 않습니다. PID 컨트롤 명령어는 매 사이클 호출되어 매 사이클 출력값이 계산되어지는것이 아니라,

컨트롤 밸브의 변화에 정확한 응답성을 제공하는것이 필요함으로 OB1 이 아닌 cyclic OB 에서 호출되어 사용합니다.

PID 알고리즘

 * P(proportional) : P게인이 계산되어지면, 출력값은 setpoint 와 process value (입력값) 사이의 

 편차에 따라 비례하게된다.

 (setpoint와 pv 의 차이가 크면 출력값도 커지고, 차이가 작으면 출력값도 낮아진다)

 * I (Integral) : I게인이 계산되어있다면,  setpoint 와 process value (입력값) 사이의 편차의 

 조정 시간 설정(적분시간) 에 따라 출력값이 증가하게된다. 

 (조정 시간이 길면 pv가 setpoint 에 도달하는 시간이 길어지고, 조정시간이 짧은 경우 조정 횟수가 늘어남으로 

 setpoint 에 도달하는 시간이 짧아진다. 단, 조정시간이 너무 짧은 경우 통제 불능의 상태에 빠질 수 있다.)

 * D (derivative) : D게인의 계산에 의해, 출력값은 setpoint 와 process value 사이의 편차의 변화율에 따라 증가한다.

 출력값은 setpoint 에 보다 빠르게 도달할 수 있다.

STEP7 은 PID control 을 위해 두개의 명령어를 제공합니다.

 * PID_Compact 명령어는 일반적인 PID 컨트롤과 튜닝의 목적에 적합합니다. 명령어와 관련 툴은 

 PID 컨트롤에 필요한 모든 설정이 가능합니다.

 * PID_3Step 명령어는 모터 구동방식의 밸브의 구체적인 세팅을 위한 PID control 에 적합합니다.

 테크니컬 오브젝트는 제어회로의 모든 세팅이 가능합니다. PID_3Step 은 두개의 Bool 타입 출력을 추가적으로

 제공합니다.


 


* PID 명령어의 호출 

PID 명령어를 유저 프로그램에서 호출하게되면, Step7은 자동적으로 Technology object 와 

인스턴스 DB를 생성합니다.

인스턴스DB 내에는 PID control 에 사용되는 모든 파라메터가 저장됩니다.

각각의 PID 명령어는 개별의 인스턴스 DB 를 갖게 됩니다. PID 명령어를 호출한 다음, Technologtical object와

인스턴스 DB를 생성한 후, Technological object 의 파라메터를구성합니다.


PID_Compact instruction

PID_Compact 명령어는 자동모드와 수동모드에서의 PID 컨트롤러의 자체 튜닝을 지원합니다.
PID_Compact 는 PIDT1 컨트롤로서 헌팅의 억제와 함께 P, D 게인을적용시킵니다.

 Parameter

 type

 Data

 Description

 Setpoint

IN

 REAL    자동모드에서의 PID Control 의 SETPoint. 기본값 : 0.0 

 Input

 IN

 REAL 

 Process Value. Default Value : 0.0 

   

 sPid_Cmpt_b_Input_PER_On = FALSE (이와 같이 반드시 설정) 

 Input_PER

 IN

 WORD

 Analog process value (옵션) 기본값 : W#16#0 

 

 

 

 sPid_Cmpt_b_Input_PER_On = TURE (이와 같이 반드시 설정

 ManualEnable

 IN

 BOOL

 수동모드의 활성화 or 비활성화. 기본값 : FALSE 

 

 

 

 * 신호가 False 에서 True 로 바뀌면 PID Controller는 

 

 

 

 수동모드로 바뀌며 State = 4, sRet.i_Mode 는 현상태를 유지하게 된다.

 

 

 

 * 신호가 True 에서 False 로 바뀔때 PID Controller 는 마지막으로

 

 

 

 활성화되었던 조작 모드로 전환되고 State = sRet.i_Mode 의 상태가 된다.

 ManualValve

 IN

 REAL

 Process Valve 의 수동 조작. 기본값 : 0.0 

 Reset

 IN

 BOOL

 PID Controller 의 재기동. 기본값 : False 

 

 

 

 값이 True 일때 다음과 같은 상태로 전환된다.

 

 

 

 * 조작모드 비활성화

 

 

 

 * Input value = 0

 

 

 

 * Integral part of process value = 0

  

 

 

 * 시스템상의 계산되던 값들은 Reset 된다. (PID 파라메터는 유지됨)

 ScaledInput

 OUT

 REAL 

 Scaled process valve. 기본값 : 0.0 

 Output

 OUT

 REAL 

 Output value. 기본값 : 0.0 

 Output_PER

 OUT

 WORD 

 Analog output value. 기본값 : W#16#0 

 Output_PWM

 OUT

 BOOL 

 Output value for pulse width modulation. 기본값 : False 

 SetpointLimit_H 

 OUT

 BOOL Setpoint high limit. 기본값 : False

 

 

 

 Setpoint 의 Upper limit 에 값이 도달 하게 되면, SetpointLimit_H = TRUE

 

 

 

 기본값 : False

 SetpointLimit_L

 OUT

 BOOL 

 Setpoint Low limit. 기본값 : False

 

 

 

 Setpoint 의 Lower limit 에 값이 도달 하게 되면, SetpointLimit_L = TRUE

 

 

 

 기본값 : False

 InputWarning_H

 OUT

 BOOL 

 PV 값이 warning limit 에 위치하거나 초과시, InputWarning_H = TRUE

 

 

 

 기본값 : False

 InputWarning_L

 OUT

 BOOL 

 PV 값이 warning limit 아래로 떨어질때, InputWarning_L = TRUE

 

 

 

 기본값 : False

 State

 OUT

 INT 

 현재의 PID Controller 의 조작 모드를 나타낸다. 기본값 : 0 

 

 

 

 조작 모드를 바꾸기 위해 sRet.i_Mode 를 사용한다.

 

 

 

 * State = 0 : Inactive

 

 

 

 * State = 1 : Pretuning 

 

 

 

 * State = 2 : Manual Fine Tuning

 

 

 

 * State = 3 : Automatic Mode

 

 

 

 * State = 4 : Manual Mode

 Error OUT  DWORD 에러시 에러코드 표시. DW#16#0000 (no error)


Configuring the PID controller

Technological object 의 파라메터를 설정하여 PID controller 의 동작을 결정한다.



PID_Compact 의 컨피규레이션 편집창 (Basic Setting)


Settings 

Description 

 Basic

 Controller type

 Engineering unit 선택

 Invert the control logic

 PID 루프의 반전 동작을 실행합니다.

 * 선택되지 않은 경우 정방향-동작 모드로 PID Loop 가 되며,

 input value < setpoint 일 경우 PID loop 의 출력이 증가됨

 * 선택시 Input value > setpoint 일 때 PID loop 의 출력값이 증가된다.

 Enable last mode after

 리셋 시 혹은 input limit 가 초과되었다 다시 정상 영역으로 돌아오면 

 CPU restart

 PID loop 는 재시작됩니다.

 Input

 입력값 (PV) 으로 [Input] 혹은 [Input_PER] (아날로그의 경우) 중 하나의

 파라메터에 값을 할당합니다. Input_PER 으로 설정시 아날로그 

 입력모듈의 어드레스를 바로 할당 될 수 있습니다. (ex. IW102)

 Output

 출력값 로서 [Output] 혹은 [Output_PER] (아날로그의 경우) 중 하나의

 파라메터에 값을 할당합니다. Output_PER 으로 설정시 아날로그 

 출력모듈의 어드레스를 바로 할당 될 수 있습니다. (ex. QW86)

 Process   Value

 Process Value 의 범위와 한계치를 조정합니다. PV 가 Low Limit 을 벗어나게 되면

 PID loop 는 비활성화 (Inactive) 되며 출력은 0 으로 나가게 됩니다.

 Input_PER 할당할시에는 analog process value 를 반드시 스케일해야 합니다.


Commissioning the PID controller

commissioning editor 를 사용하여 PID controller 의 시동시 혹은 구동중의 오토튜닝을 구성할 수 있다.

commissioning editor 는 명령어 (PID Compact) 의 아이콘 혹은 project nevigator 에서 Technological object 

-> PID_Compact-> commissioning 아이콘을 클릭하여 열수 있다.



 * Measurement : 실시간상의 Setpoint, Input Value (PV) Output value 을 디스플레이 하기위해서 sample time 을 입력한 후 

 "start" 버튼을 누른다

 * Tuning mode : PID loop 를 튜닝하기위해서 "Pretuning" 혹은 "Fine tuning (manual) 을 

 선택한 후 "start" 버튼을 누른다

 PID controller 는 세단계를 거쳐 시스템응답성을 계산하고 업데이트한다. 이과정을 거쳐 적절한 

 튜닝 파라메터가 계산 되어진다.

 

 튜닝 과정이 끝마치게되면, commissioning editor 의 하단 왼측 "Upload PID parameters" 버튼을 클릭하여 

 튜닝을 통해 얻어진 새로운 파라메터를 저장(적용) 시킬 수 있다.

 

 튜닝 과정중에 에러가 발생하면, 출력값은 0 으로 나가게되며 PID mode 는 비활성화 (inactive) 상태가 된다.  

 status 파라메터에는 에러코드가 나타난다.


지멘스 교육이나 기술지원이 문의 사항이 있으시면 언제든지 연락주시고,

제가 도움을 드릴 수 있는 내용은 최대한 답을 드릴수 있도록 하겠습니다.

긴글 읽어주셔서 감사드리고, 틈나는대로 계속 관련 내용 업데이트하도록 하겠습니다

감사합니다.



'Siemens Automation > TIAPortal STEP7' 카테고리의 다른 글

TSEND_C / TRCV_C SETTING  (0) 2020.06.13
I-DEVICE COMMUNICATION  (6) 2020.06.12
S7-1200 Modbus RTU Sample Program  (1) 2020.06.06
S7-1200 CPU FIRMWARE UPDATE  (2) 2020.06.04
SIEMENS PLC SERIES (S7-1200, S7-1500)  (0) 2020.05.21

댓글