1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Tìm hiểu về PID trong PLC

13 719 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 225,5 KB

Nội dung

Hardware Requirements1 S7-200 PLC 1 Expansion Module EM 235 Analog Combination AI 3/ AQ 1x 12 Bits General Description In this example, a water tank is used to maintain a constant water

Trang 1

SIMATIC S7-200 Tips

CPUs required for this tip

CPU 210  CPU 212  CPU 214  CPU 215  CPU 216  OTHER 

Overview

The following S7-200 program is an short example of how to use the PID instruction.

The PID instruction will be explained using an example of a water tank The aim is to maintain a constant water pressure and also keep the tank from being emptied.

Analog Input (4-20mA) for PID PV

B+,B- and C+,C-are unused inputs Analog Output (0-10V) from PID process

pump with the water supply water level 75 %

I 0.7

I 0.2

I 0.6

I 0.4

I 0.1

I 1.2

I 1.5

I 1.3

I 1.1

Q 0.7

Q 0.2

Q 0.6

Q 0.4

Q 0.1 Q 1.1 STOP

RUN SF

SIEMENS

6ES7 214-1BC01-0XB0

CPU 216

SIMATIC S7-200

X

AI 3x12Bit

AQ 1x12Bit

A+ A- B+ B- Vo L+ M

M L+

Figure 53.1

Copyright 1997 by SIEMENS page 1 / 13 pgb1404015135.doc

Trang 2

Hardware Requirements

1 S7-200 PLC

1 Expansion Module EM 235 Analog Combination AI 3/ AQ 1x 12 Bits

General Description

In this example, a water tank is used to maintain a constant water pressure Water is

continuously being taken from the water tank at a varying rate A variable speed pump is used

to add water to the tank at a rate that will maintain adequate water pressure and also keep the tank from being emptied.

The setpoint for this system is a water level setting that is equivalent to the tank being 75% full The process variable is supplied by a float gauge that provides an equivalent reading of how full the tank is and which can vary from 0% or empty to 100% or completely full The output is a value of pump speed that allows the pump to run from 0% to 100% of maximum speed.

The setpoint is predetermined and will be entered directly into the loop table The process variable will be supplied as a 4 to 20 ma analog value from the float gauge The loop output will

be written to the analog output (0 to 10 V), which is used to control the pump speed The span

of both, the analog input and analog output is 32,000.

NOTE: The Analog value (AIW0) can be averaged by an average subroutine, to filter the input

before the value is used as the PV Refer tip no 54 for details

Only proportional and integral control will be employed in this example The loop gain and time constants have been determined from engineering calculations and may be adjusted as

required to achieve optimum control The calculated values of the time constants are:

KC - 0.25 TS - 0.1 seconds and TI - 30 minutes.

The tank speed will be controlled manually until the water tank is 75% full, then the valve will be opened to allow water to be drained from the tank At the same time, the pump will be switched from manual to auto control mode A digital input will be used to switch the control from manual

to auto This input is described below:

I0.0 - Manual/Auto control: 0 - manual, 1 - auto

While in manual mode, the pump speed will be written by the operator to VD108 as a real number value from 0.0 to 1.0.

The following information documents the program and its operation as well as defining the variables, subroutines and interrupt routines used by the program.

Subroutines:

SBR0 Initialization subroutine

SBR1 Subroutine to check, if an error occurred at the analog module

Trang 3

Interrupt Routines:

INT 0 100 ms timed interrupt that invokes PID execution

Description of variables:

I0.0 Manual/Auto control

Q0.7 Error on the Analog module

The loop table is 36 byte long and the parameters in the V-memory table are all standard

double words (VD) The loop table has the following format:

0 Process

variable

Double word

- real

In Contains the process variable, which must be scaled between 0.0 and 1.0

NO

4 Setpoint Double word

- real IN Contains the setpoint, which must be scaled

between 0.0 and 1.0 YES

8 Output Double word

- real In/Out Contains the calculated output, scaled between 0.0 and 1.0 NO

12 Gain Double word

- real In Contains the gain, which is a proportional constant Can be a positive or negative number YES

16 Sample time Double word

- real In Contains the sample time, in seconds Must be a positive number YES

20 Integral time or

reset

Double word

- real

In Contains the integral time or reset, in minutes

Must be a positive number

YES

24 Derivative time

or rate Double word - real In Contains the derivative time or rate, in minutes Must be a positive number YES

28 Bias Double word

- real In/Out Contains the bias or integral sum valuebetween 0.0 and 1.0 YES

32 Previous

process variable Double word - real In/Out Contains the previous value of the process variable stored from the last execution of the

PID instruction

NO

(Note: The basic address of the example program is VD100.)

VD100 process variable (PV) , from the analog input AWI0

VD104 setpoint (SP)

VD108 output (M), contains the calculated output

VD112 gain (Kc), a proportional constant

VD116 sample time (Ts)

VD120 integral time (Ti)

VD124 derivative time (Td) or rate

VD128 bias (MX) or integral sum

VD132 previous process variable (PVN-1)

More information about the PID Instruction is provided in the S7-200 System manual Basics of Controlling with PID is explained in tip 32.

Information about the analog module is provided in the S7-200 System manual and in tip 34.

Copyright 1997 by SIEMENS page 3 / 13 pgb1404015135.doc

Trang 4

Program Structure

Get the process variable value from the the anlog input word (AIW0), scale value and store the converted value in the loop table

main program Start

main program End

On the first scan: Initialization (SBR 0)

Set and enable time interrupts (INT 0)

In auto mode : execute PID-instruction Update analog output

Interrupt program Start

Interrupt program End

On every scan: Check if the analog module has an error (SBR1)

Set Q0.7 if an error occured

Trang 5

LAD (S7-MicroDOS) STL (IEC)

program description and main program // PID Example Program

│ SM0.1 0

1 ├─┤ ├────────────────────────( CALL ) │

│ SM0.0 1

2 ├─┤ ├────────────────────────( CALL ) │

3 ├──────────────────────────────( MEND ) │

LD SM0.1 // On the first scan CALL 0 // Call the initialization // subroutine LD SM0.0 // On each scan CALL 1 // Check if error at the analog //module MEND // End the main program Subroutines // SBR0: Initialization (set and enable timed interrupt) ┌──────────┐ │ SBR: 0 │ └───┬──────┘ │ SM0.0 MOV_B───┐ 5 ├─┤ ├───────────┬────────────┤EN │

│ │ K100┤IN OUT├SMB34 │ │ └───────┘

│ │ ATCH────┐ │ ├────────────┤EN │

│ │ K0┤INT │

│ │ K10┤EVT │

│ │ └───────┘

│ │

│ └────────────( ENI ) │

6 ├──────────────────────────────( RET ) SBR 0 LD SM0.0 MOVB 100, SMB34 // time interval (100ms) for timed // interrupt ATCH 0, 10 //Set timed interrupt to invoke // PID execution ENI // Enable interrupts RET // SBR1: Check for errors at the analog module If an error occurs set the Q0.7.

┌──────────┐ │ SBR: 1 │ └───┬──────┘ │ SMB8 KH19 Q0.7 8 ├─────┤ == B ├─────┤NOT├─┬──────( )

│ │

│ │

│ │

│ │

│ SMB9 KH0 │

├─────┤ == B ├─────┤NOT├─┘ │

9 ├──────────────────────────────( RET ) SBR 1

NOT // if analog module is plugged in

NOT // if analog module has an error OLD

= Q0.7

// Error reading analog module RET

Copyright 1997 by SIEMENS page 5 / 13 pgb1404015135.doc

Trang 6

// INT 0: Interrupt routine - PID- Routine (timed interrupt for PID-execution).

┌──────────┐

│ INT: 0 │

└───┬──────┘

│ Q0.7 WXOR_DW─┐

11 ├─┤ / ├───────────┬────────────┤EN │

│ │ AC0┤IN1 OUT├AC0

│ │ AC0┤IN2 │

│ │ └───────┘

│ │ MOV_W───┐

│ ├────────────┤EN │

│ │ AIW0┤IN OUT├AC0

│ │ └───────┘

│ │ DI_REAL─┐

│ ├────────────┤EN │

│ │ AC0┤IN OUT├AC0

│ │ └───────┘

│ │ SUB_R───┐

│ ├────────────┤EN │

│ │ KR+6400.00┤IN1 OUT├AC0

│ │ AC0┤IN2 │

│ │ └───────┘

│ │ DIV_R───┐

│ ├────────────┤EN │

│ │ AC0┤IN1 OUT├AC0

│ │ KR+25600.0┤IN2 │

│ │ └───────┘

│ │ MOV_R───┐

│ └────────────┤EN │

│ AC0┤IN OUT├VD100

│ └───────┘

│ I0.0 PID─────┐

12 ├─┤ ├────────────────────────┤EN │

│ VB100┤TBL │

│ 0┤LOOP │

│ └───────┘

│ SM0.0 MUL_R───┐

13 ├─┤ ├───────────┬────────────┤EN │

│ │ VD108┤IN1 OUT├AC0

│ │ KR+32000.0┤IN2 │

│ │ └───────┘

│ │ TRUNC───┐

│ ├────────────┤EN │

│ │ AC0┤IN OUT├AC0

│ │ └───────┘

│ │ MOV_W───┐

│ └────────────┤EN │

│ AC0┤IN OUT├AQW0

│ └───────┘

14 ├──────────────────────────────( RETI )

INT 0 LDN Q0.7

// If analog module is O.K.?

XORD AC0, AC0

// Clear the accumulator MOVW AIW0, AC0

// save the analog value DTR AC0, AC0

// Convert 32-bit integer to real

-R 6400.0, AC0

// Adjust for 4 to 20 mA offset

/R 25600.0, AC0

// Normalize the PV // value in the accumulator

MOVR AC0, VD100

// Store accu in the loop Table

PID VB100, 0 // invoke PID execution

// Analog Output

LD SM0.0 MOVR VD108, AC0 // loop output to accu

*R 32000.00, AC0 // scale value in accu

// 32-bit integer MOVW AC0, AQW0

// write the value to analog output RETI

Trang 7

Data Block DB1 (V Memory):

// initialize values

VD104 0.75 // setpoint = 0.75 = 75% full

VD112 0.25 // loop gain = 0.25

VD116 0.10 // sample time = 0.1 seconds

VD120 30.0 // integral time = 30 minutes

VD124 0.0 // no derivation action

Conversion Notes

To Convert from IEC STL to S7-Micro/DOS STL:

 Add a ‘K’ before all non-Hex numerical constants (i.e 4 ⇒ K4)

 Replace ‘16#’ with ‘KH’ for all Hex constants (i.e 16#FF ⇒ KHFF)

 Commas denote field divisions Use arrow or TAB keys to toggle between fields  To convert an S7-Micro/DOS STL program to LAD form, every network must begin

with the word ‘NETWORK’ and a number Each network in this Application Tip program is designated by a number on the ladder diagram Use the INSNW

command under the EDIT menu to enter a new network The MEND, RET, RETI, LBL, SBR, and INT commands each receive their own networks.

 Line-Comments denoted by ‘//’ are not possible with S7-Micro/DOS, but

Network-Comments are possible.

General Notes

The SIMATIC S7-200 Application Tips are provided to give users of the S7-200 some indication

as to how, from the view of programming technique, certain tasks can be solved with this controller These instructions do not purport to cover all details or variations in equipment, nor

do they provide for every possible contingency Use of the S7-200 Application Tips is free Siemens reserves the right to make changes in specifications shown herein or make improvements at any time without notice or obligation It does not relieve the user of responsibility to use sound practices in application, installation, operation, and maintenance of the equipment purchased Should a conflict arise between the general information contained in this publication, the contents of drawings or supplementary material, or both, the latter shall take precedence.

Siemens is not liable, for whatever legal reason, for damages or personal injury resulting from the use of the application tips.

All rights reserved Any form of duplication or distribution, including excerpts, is only permitted with express authorization by SIEMENS.

Copyright 1997 by SIEMENS page 7 / 13 pgb1404015135.doc

Trang 8

Tham khảo:

Chương trình S7 – 200 dưới đây chỉ là một ví dụ ngắn về cách sử dụng PID thông qua ví

dụ về điều khiển mức nước trong bể để vừa đảm bảo áp suất vừa đảm bảo nước trong bình không bị cạn hết Cấu trúc hệ thống như hình dưới đây:

Yêu cầu thiết bị điều khiển: 01 PLC S7 200/ CPU 216 trở lên và 01 khối EM 235 gồm có

3 đầu vào analog và một đầu ra analog 12 bít

Mô tả hệ thống:

Trong hệ thống này, một bể nước được dùng để khống chế áp lực nước không đổi Nước liên tục được lấy ra từ vòi với một tốc độ bất kỳ Bơm được dùng để tăng thêm nước vào

bể với một tốc độ đủ để duy trì áp suất cũng như mức nước trong bình không hạ xuống quá mức cho phép.

Giá trị đặt của hệ thống là mức nước (trong ví dụ này là 75% bể) Đại lượng đầu vào của hệ thống là tín hiệu do một cảm biến đo mức đưa về thông qua đầu vào analog A+, A- Tín hiệu đưa về có thể thay đổi từ 4 – 20mA tương ứng với 0 – 100% mức đầy của bể Tín hiệu ra của hệ thống là tín hiệu điện áp có thể thay đổi từ 0 – 10 V dùng để điều khiển tốc độ bơm tương ứng là 0 – 100% tốc độ định mức

Giá trị đặt được quyết định bởi người sử dụng và được đưa trực tiếp vào quá trình Trong chương trình này, bộ điều khiển sử dụng hai thông số là P và I, không dùng đến D Thời gian lấy mẫu là Ts = 0.1 giây, KC = 0.25 và Ti = 30 phút.

Trước tiên, bể nước sẽ được tiếp đầy nước cho đến khi được 75% Sau đó, van xả sẽ được mở để lấy nước từ bể và cùng lúc bơm sẽ được chuyển từ chế độ điều khiển bằng tay sang chế độ tự động

Trong quá trình điều khiển bằng tay, tốc độ bơm được qui định bởi số thực lưu tại

VD108 nằm trong khoảng 0.0 tới 1.0.

Trang 9

SBR0 là hàm thực hiện khởi tạo hệ thống.

SBR 1 là hàm thực hiện kiểm tra lỗi của khối analog.

Đầu vào I0.0 sẽ được dùng là tín hiệu khởi động hệ thống điều khiển tự động

Đầu ra Q0.7 báo lỗi xảy ra ở module analog

Ngắt INT 0 thực hiện thuật toán PID mỗi 100 ms một lần

Bảng lặp dùng cho PID gồm có 36 byte và những thống số được đặt trong vùng nhớ V

và tất cả đều dùng là double word (VD)

Khoảng

cách

so với

địa chỉ

bắt đầu

Thông số tính

thể định nghĩa

0 PV Double word

- real vào Tín hiệu về mức nước hiện tại trong bể, khoảng 0.0 – 1.0 tương ứng 0 – 100% NO

4 SP Double word

- real IN Giá trị đặt về mức nước trong bể, cũng phải

nằm trong khoảng 0.0 – 1.0 YES

8 M Double word

- real In/Out Giá trị tín hiệu ra, nằm trong khoảng 0.0 – 1.0 NO

12 KC Double word

- real In Hệ số khuếch đại P. YES

16 TS Double word

- real In Thời gian trích mẫu YES

20 Ti Double word

- real In Thời gian tích phân. YES

24 Td Double word

- real

In Thời gian vi phân YES

28 Bias (MX) Double word

- real In/Out Tổng tích phân (bias MX or integral sum) YES

32 PVN-1 Double word

- real In/Out Giá trị mức nước đo được lần lấy mẫu trước NO

Trong chương trình dùng địa chỉ bắt đầu của bảng là VD100

VD100 PV , lấy vào từ AWI0

VD104 SP

VD112 Kc

VD116 Ts

VD120 Ti

VD124 Td

VD128 MX

VD132 PVN-1

Có thể tham khảo thêm về PID trong các tài liệu được cung cấp trong Hướng dẫn sử dụng hệ thống S7 200 và các sách tham khảo khác

Copyright 1997 by SIEMENS page 9 / 13 pgb1404015135.doc

Trang 10

Lưu đồ thuật toán

Ngày đăng: 29/06/2014, 11:12

TỪ KHÓA LIÊN QUAN

w