Đăng ký Đăng nhập

Tài liệu Bai 5

.DOC
28
596
50

Mô tả:

Bai giang S7 300 rất cơ bản, dễ hiểu
BÀI 5 MODULE PID VÀ THỜI GIAN THỰC 1. Module PID mềm có trong phần mềm Step7. Ta đã biết trong thực tế bộ điều khiển PID được sử dụng rất nhiều (>90% trong công nghiệp), và theo thống kê thì bộ điều khiển PI được sử dụng nhiều nhất. Trong phần mềm Step7 đã tích hợp sẵn các khối hàm thực hiện chức năng bộ điều khiển PID, bao gồm :  Bộ điều khiển liên tục : CONT_C  Bộ điều khiển bước : CONT_S  Ngoài ra còn khối PULSEGEN phục vụ cho việc điều chế độ rộng xung. Tùy vào cách điều khiển, cơ cấu chấp hành,.. mà ta lựa chọn bộ điều khiển cho phù hợp. Bộ điều khiển được sử dụng để điều khiển các đối tượng như : nhiệt độ, mức, lưu lượng, tốc độ của động cơ… Ngoài ra, trong phần mềm Step7 còn có hai khối hàm chuyên để điều khiển nhiệt độ : TCONT_CP và TCONT_S 1.1. Sử dụng bộ điều khiển PID. Khối tổ chức của bộ điều khiển PID PID Control S7-300 và S7-400 Các khối hàm chức năng Phần giao diện gán các tham số cho bộ điều khiển Một module PID mềm gồm có các thành phần : Sử dụng, vận hành  Các khối hàm chức năng : có thể là khối CONT_C, CONT_S, hoặc PULSEGEN.  Phần giao diện gán tham số cho bộ điều khiển : gán các tham số cần thiết cho bộ điều khiển.  Sử dụng, vận hành: bao gồm các phần mô tả các khối chức năng.  Ở đây chúng ta sẽ tập trung giới thiệu cách sử dụng của module mềm FB41 “CONT_C” , các module khác hoàn toàn tương tự. 1.2. Module mềm FB41 “CONT_C” . Module mềm PID “CONT_C” là một bộ điều khiển PID có đầu vào và đầu ra là các tín hiệu liên tục (analog). Bộ PID có thể được sử dụng làm bộ điều khiển có điểm đặt cố định hoặc sủ dụng là bộ điều khiển nhiều vòng như điều khiển tầng, và điều khiển tỉ lệ. Chức năng của bộ điều khiển này dựa trên thuật toán điều khiển PID. Sơ đồ khối của bộ điều khiển: Module mềm PID gồm có tín hiệu chủ đạo SP_INT, tín hiệu ra của đối tượng PVF_PER, tín hiệu giả để mô phỏng tín hiệu ra của đối tượng PV_IN, các biến trung gian trong trong quá trình thực hiện luật và thuật toán điều khiển PID như PV_PERON, P_SEL, I_SEL… Tín hiệu chủ đạo SP_INT : được nhập dưới dạng dấu phẩy động. Tín hiệu ra của đối tượng PV_PER : được nhập dưới dạng số nguyên có dấu hoặc dưới dạng số thực dấu phảy động. Thông qua một hàm nội CRP_IN nó sẽ chuyển đổi kiểu biểu diễn của PV_PER sang số thực dấu phảy động có giá trị nằm trong khoản -100…100% theo công thức: Tín hiệu ra của CRP_IN = PV_PER. 100 27648 Hàm chuẩn hóa : PV_NORM sẽ chuẩn hóa tín hiệu ra của CRP_IN theo công thức : Tín hiệu ra của PV_NORM = (Tín hiệu ra của CRP_IN).PV_FAC + PV_OFF Bảng mô tả các tham số của bộ điều khiển : Bảng mô tả tham số đầu vào : Tham số Kiểu loại Dải giá trị Giá trị mặc định COM_RST BOOL FALSE MAIN_ON BOOL TRUE PVPER_ON BOOL FALSE P_SEL BOOL TRUE Mô tả COMPLETE RESTART Khối có chức năng khởi tạo lại hệ thống hoàn toàn khi đầu vào “complete restart” được thiết lập giá trị logic là TRUE MANUAL VALUE ON Khi đầu vào “manual value on” là TRUE, mạch vòng điều khiển sẽ bị ngắt , các giá trị sẽ được thiết lập bằng tay. PROCESS VARIABLE PERIPHERAL ON Khi đọc biến quá trình từ các cổng vào/ra đầu vào PV_PER phải được nối tới các cổng vào ra và đầu vào “process variable peripheral” có giá trị là TRUE PROPORTIONAL ACTION ON Chọn luật điều khiển P I_SEL BOOL TRUE INT_HOLD BOOL FALSE I_ITL_ON BOOL FALSE D_SEL BOOL FALSE CYCLE TIME >=1ms T#1s SP_INT REAL 0.0 PV_IN REAL 100.0… 100.0% 100.0… 100.0% PV_PER WORD MAIN REAL GAIN REAL TI TIME TD TIME TM_LAG TIME 0.0 W#16#00 00 100.0… 100.0% 0.0 2.0 >= CYCLE >= CYCLE >= T#20s T#10s T#2s INTEGRAL ACTION ON Chọn luật điều khiển I INTEGRAL ACTION HOLD Đầu ra của bộ điều khiển I có thể bị giữ lại không được sử dụng khi ta thiết lập TRUE cho thông số này INITIALIZATION OF THE INTEGRAL ACTION Đầu ra của bộ điều khiển I có thể được nối vào cổng vào I_ITL_VAL nếu đầu vào I_ITL_ON có giá trị là TRUE DERIVATIVE ACTION ON Chọn thành phần D SAMPLING TIME Thời gian lấy mẫu INTERNAL SETPOINT Tín hiệu chủ đạo PROCESS VARIABLE IN Giá trị khởi tạo có thể đặt ở đầu vào PV_IN cũng có thể được đặt từ biến quá trình PROCESS VARIABLE PERIPHERAL Biến quá trình được nối với CPU thông qua cổng vào tương tự MANUAL VALUE Cổng vào “manual value” được sử dụng để đặt giá trị bằng các hàm giao diện PROPORTIONAL GAIN Hệ số tỉ lệ của luật P RESET TIME Hằng số thời gian tích phân DERIVATIVE TIME Hằng số thời gian vi phân TIME LAG OF THE CYCLE/ 2 DEADB_W REAL >=0.0% 0.0 LMN_HLM REAL LMN_LLM REAL PV_FAC REAL LMN_LL 100.0 M… 100% -100… 0.0 LMN_H LM % 1.0 PV_OFF REAL 0.0 LMN_FAC REAL 1.0 LMN_OFF REAL 0.0 DERIVATIVE ACTION Chọn thời gian tích cực của luật điều khiển vi phân DEAD BAND WIDTH Để xử lý tính hiệu nhiễu MANIPULATED VALUE HIGH LIMIT Thiết lập bằng tay giới hạn trên MANIPULATED VALUE LOW LIMIT Thiết lập bằng tay giới hạn dưới PROCESS VARIABLE FACTOR Biến quá trình được nhân với hệ số phù hợp với phạm vi của biến này, Hệ số chọn thông qua cổng PV_FAC PROCESS VARIABLE OFFSET Biến quá trình được cộng với một lượng bù cho phù hợp với phạm vi quy định của biến này. Giá trị bù được chọn thông qua PV_OFF MANIPULATED VALUE FACTOR Giá trị giới hạn được nhân với một hệ số bù cho phù hợp với phạm vi quy định của biến quá trình, giá trị bù này được thiết lập thông qua LMN_FAC MANIPULATED VALUE OFFSET Giá trị giới hạn được cộng với với một hệ số bù cho phù hợp với phạm vi quy định của biến quá trình, giá trị bù này được thiết lập thông qua LMN_OFF I_ITLVAL REAL -100.0… 100.0% 0.0 DISV REAL -100.0… 100.0% 0.0 INITIALIZATION VALUE OF THE INTEGRAL ACTION Giá trị đầu ra của bộ điều khiển tích phân có thể được thiết lập thông qua cổng vào I_ITLVAL DISTURBANCE VARIABLE Giá trị đặt bù nhiễu khi sử dụng phương pháp điều khiển thẳng Bảng môt tả tham số đầu ra : Tham số LMN Kiểu loại REAL LMN_PER WORD Dải trị giá Giá trị mặc định 0.0 W#16#00 00 Mô tả MANIPULATED VALUE Giá trị được thiết lập bằng tay thông qua cổng ra LMN MANIPULATED VALUE PERIPHERAL Giá trị đầu ra được thiết lập bằng tay theo kiểu biểu diễn phù hợp với cổng vào ra tương tự được chọn qua LMN_PER QLMN_HLM BOOL FALSE HIGH LIMIT OF MANIPULATED VALUE REACHED Giá trị thông báo biến quá trình vượt giới hạn trên QLMN_LLM FALSE LOW LIMIT OF MANIPULATED VALUE REACHED Giá trị thông báo biến quá trình vượt giới hạn dưới BOOL LMN_P REAL 0.0 PROPORTIONAL COMPONENT Tín hiệu ra của bộ điều khiển tỉ lệ LMN_I REAL 0.0 INTEGRAL COMPONENT Tín hiệu ra của bộ điều khiển tích phân LMN_D REAL 0.0 DERIVATIVE COMPONENT Tín hiệu ra của bộ điều khiển vi phân PV REAL 0.0 ER REAL 0.0 PROCESS VALUE Tín hiệu quá trình được xuất ra cổng PV ERROR SIGNAL Tín hiệu sai lệch được xuất qua cổng ER 1.2.1. Sử dụng khối FB41 “CONT_C” trong phần mềm Step7 1.2.1.1. Trước hết hãy tạo một trạm PLC S7-300 : 1.2.1.2. Chèn khối FB41 vào trong Project : Mở thư viện chuẩn của Step7: 1.2.1.3. Lựa chọn khối thư viện và copy : 1.2.1.4. Paste vào phần Blocks: 1.2.2. Tạo khối dữ liệu dạng Instance cho FB41: 1.2.3. Gán tham số cho bộ điều khiển : Vào Start / SIMATIC /STEP 7 / PID Control Parameter Assignment Bạn chọn Open , sau đó chọn khối DB1 vừa tạo: Cửa sổ hiện ra cho phép ta thiết lập các giá trị cho bộ tham số: Để hiểu ý nghĩa của các tham số cần thiết lập, ta tra bảng tham số của bộ PID. 1.3. Ví dụ sử dụng bộ PID mềm “CONT_C” Dưới đây ta sẽ áp dụng bộ điều khiển PID để điều khiển mức nước trong bình. Bài toán như sau: 1.3.1. Mô tả bài toán :  Nước được bơm vào bình thông qua một van V-1. Van này có thể điều khiển được. Tín hiệu điều khiển van la tín hiệu dòng điện chuẩn công nghiệp : 420mA tương ứng với độ mở của van là 0-100%.  Van V-2 là van xả , van này không điều khiển, độ mở của van được thực hiện bằng tay và được đặt trước.  Một cảm biến C-1 là loại cảm biến khoảng cách , tín hiệu ra dưới dạng dòng điện : 4-20mA tương ứng với khoảng cách đặt là h1-h2  Yêu cầu bài toán là ổn định mức nước trong bình với một mức h nào đó đạt yêu cầu chất lượng là : Độ quá điều chỉnh là 0%. Thời gian quá độ nhỏ. 1.3.2. Các bước giải bài toán : 1.3.2.1. Phân tích yêu cầu: Starrt/stop Giá trị đặt lấy từ đầu vào analog Đèn báo RUN S7-300 Tín hiệu vào từ cảm biến Đèn báo STOP Tín hiệu ra điều khiển van 1.3.2.2. Lựa chọn CPU và các module kèm theo: Vì tín hiệu từ cảm biến về và tín hiệu đưa tới điều khiển van là tín hiệu analog nên ta chọn một module analog có ít nhất 1 đầu vào và một đầu ra dưới dạng dòng điện. Cần một số phím điều khiển và một số đèn báo hiệu, nên ta sẽ lựa chọn module vào ra số. Với CPU ta cũng tùy chọn, phụ thuộc rất nhiều yếu tố như khả năng nối mạng, khả năng mở rộng nếu cần… Ví dụ với bài toán này ta lựa chọn như sau:  CPU : chọn CPU318-2DP.  module vào ra số : SM323 (6ES7 323-1BH01-0AA0 Digital I/O module DI 8/DO 8xDC24V/0.5A).  module vào tương tự SM331(6ES7 331-7KB00-0AB0 Analog input module AI2/12 to 14 bits).  module ra tương tự (6ES7 332-5HB00-0AB0 Analog output module AO2/12 bits) 1.3.2.3. Xây dựng phần cứng trên phần mềm Step7 Cấu hình một trạm CPU với các module như trên : Cấu hình cho 2 module analog: Sau đó biên dịch và save lại. Chi tiết xem thêm trong tài liệu kỹ thuật đi kèm. 1.3.2.4. Xây dựng chương trình phần mềm.  Lựa chọn và cấu hình cho bộ PID mềm “CONT_C” như phần trên.  Khai báo các tên hình thức:  Viết chương trình trong khối OB1: 2. Sử dụng các hàm thời gian thực. Thực tế có rất nhiều hệ thống hoạt động theo một thời gian thực đặt trước. Ta lấy một ví dụ như sau: Hệ thống điều khiển bơm nước gồm có 3 bơm. Mỗi hôm chỉ chạy có 2 bơm, một bơm nghỉ, và cứ xoay vòng như vậy, nếu một bơm hỏng thì bơm còn lại sẽ chạy nếu có từ 2 bơm bị hỏng trở nên thì báo lỗi. Hoặc một ví dụ khác như hệ thống sấy sử dụng ánh nắng mặt trời. Đối với những ngày nắng, hệ thống sẽ qui định các mốc thời gian để xoay góc sấy của giàn phơi. v.v.. Đối với những hệ thống như vậy người ta phải dùng tới thời gian thực tế. Trong phần mềm Step7 đã có những hàm được xây dựng phục vụ cho mục đích này. 2.1. Giới thiệu các hàm sử dụng với thời gian thực. 2.1.1. Các hàm thiết lập và lấy thời gian thực ( SFC0, SFC1). 2.1.1.1. Hàm thiết lập thời gian SFC0 “SET_CLK”: Hàm SET_CLK cho phép thiết lập thời gian của hệ thống. Mô tả : PDT SFC0 RET_VAL Set System Clock “SET_CLK” Đầu vào : PDT : đầu vào có kiểu DAT_OF_TIME mà ta muốn thiết lập Vùng nhớ : D,L Ví dụ : 15/01/1995 lúc 10h:30m:30s  DT#1995-01-15-10:30:30. Đầu ra : RET_VAL : là giá trị trả về trạng thái nếu hệ thống có lỗi, có kiểu INT Vùng nhớ I,Q,M,D,L 2.1.1.2. Hàm đọc thời gian của hệ thống SFC1 “READ_CLK” : Mô tả : Hàm READ_CLK cho phép đọc thời gian thực của hệ thống. SFC1 Read System Clock “READ_CLK” RET_VAL CDT Đầu vào : Không có. Đầu ra : RET_VAL : là giá trị trả về trạng thái nếu hệ thống có lỗi, có kiểu INT(I,Q,M,D,L) CDT : đầu ra có kiểu DAT_OF_TIME mà ta lấy được(D,L) 2.1.2. Các hàm kèm theo để xử lý thời gian (FC3,FC6,FC7,FC8) 2.1.2.1. Hàm FC3 “D_TOD_DT”. Mô tả : Hàm này cho phép kết hợp kiểu DATE và kiểu TIME_OF_DAY(TOD) thành kiểu DATE_AND_TIME. Ứng dụng để tạo thời gian làm đầu vào cho hàm SFC0. IN1 FC3 IN2 RET_VAL “D_TOD_DT” Đầu vào : IN1 : là đầu vào kiểu DATE (I,Q,M,L,D,Const) IN2 : là đầu vào kiểu TOD (I,Q,M,L,D,Const) Đầu ra : RET_VAL : là giá trị trả về kiểu DATE_AND_TIME (D,L) 2.1.2.2. Hàm FC6 “DT_DATE” Mô tả : Hàm này cho phép lấy ra kiểu DATE từ kiểu DATE_AND_TIME IN FC6 RET_VAL DT to DATE “DT_DATE” Đầu vào : IN : là đầu vào kiểu DATE_AND_TIME (D,L) Đầu ra : RET_VAL : là giá trị trả về kiểu DATE (I,Q,M,D,L)
- Xem thêm -

Tài liệu liên quan