Tải bản đầy đủ (.doc) (34 trang)

Đồ án: Thiết kế giao diện cho mô hình đo lường độ Oxy hòa tan sử dụng phần mềm WinCC và bộ điều khiển PLC S7300 – Sử dụng khối hàm FB

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (950.17 KB, 34 trang )

ĐỒ ÁN MÔN HỌC
HỆ THỐNG SCADA , DCS VÀ MẠNG TRUYỀN THÔNG TRONG
CÔNG NGHIỆP
NHÓM 10.

Giáo viên hướng dẫn : Hoàng Quốc Xuyên
Sinh viên thực hiện : Nguyễn Mạnh Cường
Đào Văn Mạnh
Nguyễn Văn Quỳnh
Nội dung đề tài : Thiết kế giao diện cho mô hình đo lường độ Oxy hòa tan sử
dụng phần mềm WinCC và bộ điều khiển PLC S7-300 – Sử dụng khối hàm FB

1


Mẫu: MC - 11)

Bộ Công THƯƠNG

Cộng hoà xã hội chủ nghĩa Việt Nam

Trờng ĐH Công nghiệp Hà Nội

Độc lập - Tự do - Hạnh phúc

Bài tập lớn môn học : Hệ THốNG SCADA, DCS Và MạNG TRUYềN
THÔNG CÔNG NGHIệP
H v tờn HS-SV : Nhúm 10
1.
2.
3. ....


Lp : H TH1
Khoỏ :
7
in..

Khoa

Giỏo viờn hng dn : Hong Quc Xuyờn
NI DUNG
Thit k giao din cho mụ hỡnh o lng Oxy hũa tan s dng phn mm
WinCC v b iu khin PLC S7-300 S dng khi hm FB
PHN THUYT MINH
Chng 1- Tỡm hiu cỏc cm bin o Oxy hũa tan
Chng 2- Thit k phn mm o lng trờn S7-300
Chng 3- Thit k giao din giỏm sỏt
Chng 4- Kt qu mụ phng.
Ngy giao : 5/10/2015 Ngy hon thnh : 10/12/2015
GIO VIấN HNG DN
Hong Quc Xuyờn

2

:


MỞ ĐẦU
Cũng như các loài sinh vật sống trên cạn, các thủy sinh vật cũng cần có oxy để
duy trì sự sống.Đa phần thủy sinh vật điều sử dụng oxy hòa tan trong
nước.Lượng oxy hòa tan trong nước gọi tắt là DO ( Dessolved Oxygen )
Ngày nay trong công nghiệp nuôi trồng thủy sản cũng như công nghệ xử lý

nước rất chú trọng tới việc đánh giá lượng DO nhằm giúp thủy hải sản phát triển
tốt cũng như việc đánh giá mức độ ô nhiễm nước. Vì vậy với đề tài này chúng
em xin đưa ra mô hình điều khiển giám sát mức độ DO trong nước sử dụng
phần mềm Wincc và bộ điều khiển PLC S7-300 để giám sát điều chỉnh độ oxy
hòa tan DO trong nước, giúp sing vật phát triển.

3


MỤC LỤC
Bµi tËp lín m«n häc : HÖ THèNG SCADA, DCS Vµ M¹NG TRUYÒN TH¤NG C¤NG NGHIÖP..................2
Chương 1. Tìm hiểu các cảm biến đo độ Oxy hòa tan............................................................................6
1.Có thể xác định DO bằng hai phương pháp khác nhau:..................................................................6
2. Kỹ thuật phân tích..........................................................................................................................6
2.1.Phương pháp Winkler..................................................................................................................6
2.2.Phương pháp điện cực oxy hoà tan- máy đo oxy.........................................................................6
III.Lựa chọn thiết bị............................................................................................................................8
1.Giới thiệu cảm biến.........................................................................................................................8
2. Thông số kỹ thuật..........................................................................................................................8
Chương 2 :Thiết kế phần mềm đo lường trên S7-300...........................................................................9
I.Sơ lươc về PLC Siemens S7-300.......................................................................................................9
1.Tổ chức bộ nhớ CPU.....................................................................................................................11
2.Vòng quét chương trình của PLC..................................................................................................13
3.Cấu trúc chương trình...................................................................................................................14
4.Ngôn ngữ lập trình........................................................................................................................17
II. lựa chọn loại PLC sử dụng và thiết bị...............................................................................................18
PLC S7- 300 CPU 312........................................................................................................................18
1.Module nguồn PS 307...................................................................................................................18
2.Module nguồn PS 307 10A............................................................................................................19
3.Đèn báo 220V...............................................................................................................................19

4.Nút ấn...........................................................................................................................................20
III. Thiết kế giao diện giám sát.........................................................................................................20
3.1: Lập trình khối hàm FB...............................................................................................................20
3.2: Sử dụng phần mềm simatic......................................................................................................21
3.2.1: Cấu hình phần cứng trong simatic manager hình 3.2............................................................21
3.2.3: chương trình chính OB1 gọi chươn trình con đọc và cảnh báo mức oxy hòa tan..................26
Chương 3- Thiết kế giao diện giám sát.................................................................................................28
I.Tìm hiểu về wincc..........................................................................................................................28
1.Tổng quan về WinCC.....................................................................................................................28
2.Cấu trúc của WinCC......................................................................................................................28
3.Kết nối PLC S7-300 với Wincc qua MPI.........................................................................................31
Chương 4.Kết quả mô phỏng...............................................................................................................33

4


5


Chương 1. Tìm hiểu các cảm biến đo độ Oxy hòa tan
I.Tìm hiểu DO
Oxy hoà tan trong nước đóng vai trò rất quan trọng đối với động vật thuỷ sinh
nói chung và động vật thuỷ sản nói riêng, oxy hoà tan của thuỷ vực có hai
nguồn chính: khuyếch tán từ không khí (nhờ gió, sóng) và do tảo quang hợp tạo
ra, oxy bị tiêu hao bởi các quá trình: thoát vào không khí, hô hấp của tảo và
động vật, phân huỷ chất hữu cơ do vi sinh vật, do các chất sa lắng trong lớp bùn.
Đảm bảo lượng oxy hoà tan cần thiết cho thuỷ vực là đảm bảo năng suất nuôi
trồng thủy sản, chất lượng sản phẩm thuỷ sản.
Nhằm mục đích theo dõi đánh giá nồng độ oxy tan trong nước để đảm bảo sự
sống cho sinh vật thủy sinh ta sử dụng cảm biến oxy hòa tan DO

II.Phương pháp xác định DO
1.Có thể xác định DO bằng hai phương pháp khác nhau:
- Phương pháp Winkler (hóa học).
- Phương pháp điện cực oxy hòa tan - máy đo oxy.
2. Kỹ thuật phân tích.
2.1.Phương pháp Winkler
Cách tiến hành: Oxy trong nước được cố định ngay sau khi lấy mẫu bằng hỗn
hợp chất cố định (MnSO4, KI, NaN3), lúc này oxy hòa tan trong mẫu sẽ phản
ứng với Mn2+ tạo thành MnO2. Khi đem mẫu về phòng thí nghiệm, thêm acid
sulfuric hay phosphoric vào mẫu, lúc này MnO2 sẽ oxy hóa I- thành I2. Chuẩn
độ I2 tạo thành bằng Na2S2O3 với chỉ thị hồ tinh bột. Tính ra lượng O2 có trong
mẫu theo công thức:
DO (mg/l) = (VTB x N/ VM ) x 8 x 1.000
Trong đó: VTB: là thể tích trung bình dung dịch Na2S2O3 0,01N (ml) trong các
lần chuẩn độ.
N: là nồng độ đương lượng gam của dung dịch Na 2S2O3 đã sử
dụng.
8: là đương lượng gam của oxy.
VM: là thể tích (ml) mẫu nước đem chuẩn độ.
1.000: là hệ số chuyển đổi thành lít.
2.2.Phương pháp điện cực oxy hoà tan- máy đo oxy
Đây là phương pháp được sử dụng rất phổ biến hiện nay. Máy đo DO được
dùng để xác định nồng độ oxy hòa tan ngay tại hiện trường. Điện cực của máy
đo DO hoạt động theo nguyên tắc: dòng điện xuất hiện trong điện cực tỷ lệ với
lượng oxy hòa tan trong nước khuếch tán qua màng điện cực, trong lúc đó

6


lượng oxy khuếch tán qua màng lại tỷ lệ với nồng độ của oxy hòa tan. Đo cường

độ dòng điện xuất hiện này cho phép xác định được DO
Các cảm biến đo hàm lượng oxy hòa tan thông dụng hoạt động dựa trên nguyên
lý do Macbeth đề xuất, trong đó, cảm biến hoạt động giống như một pin điện
hóa.
Nguyên lý về cấu tạo và hoạt động của cảm biến này được trình bày trên sơ đồ

Cảm biến đo hàm lượng oxy hòa tan
Trong cảm biến chứa dung dịch KCl và 2 điện cực, anốt bằng kẽm hay chì và
catốt bằng bạc. Một màng chắn xốp ngăn cách phần trong cảm biến và dung
dịch cần đo nhưng cho phép oxy di chuyển vào trong cảm biến
Tại anốt xẩy ra sự oxy hóa : Zn → Zn2 + + 2 e Tại catốt xẩy ra sự khử oxy : 2 e -+ ½ O2 + H2O → 2 OH Do các phản ứng oxy hóa khử trên mà cảm biến hoạt động giống như một pin
điện hóa và tạo ra dòng điện. Cường độ dòng điện này phụ thuộc vào hàm lượng
oxy hòa tan trong dung dịch đo. Khi đo được cường độ dòng điện ta xác định
được hàm lượng oxy hòa tan.

7


Cấu tạo thực tế của cảm biến được trình bày trong Hình 9b, trong đó catốt là
một lõi ở giữa, anốt là một ống bọc ngoài catốt. Tất cả đặt trong một thân.
III.Lựa chọn thiết bị
Nhằm đáp ứng nhu cầu công nghệ nhóm chúng em xin đưa ra cảm biến
GLI5500 –một loại cảm biến đo DO rất hay được sử dụng trên thị trường hiện
nay.
1.Giới thiệu cảm biến
GLI5500 sử dụng công nghệ tế bào polarographic Clark, hệ thống cảm biến bao
gồm ba bộ đo một anot bạc, một catot vàng và một điện cực bạc tham
chiếu. Cảm biến tham chiếu bạc cho ra tín hiệu rõ nhờ sử dụng một hằng số
phép đo điện áp phân cực đóng vai trò ổn định, để tránh sự gián đoạn của hệ
thống cảm biến .Với việc sử dụng bộ ba cảm biến tế bào kết hợp với việc điện

cực oxy hòa tan GLI 5500 cho phép ta xác đinh DO với độ chính xác và ổn định
cao .
Tính năng
- Màng chống bám bẩn và bền
Màng thẩm thấu có tính năng kị nước dày 50 micron đảm bảo sensor không bị
đóng bám cặn và hoạt động được trong môi trường khắc nghiệt như trong các
nhà máy xử lý nước thải.
- Bao bọc toàn bộ
Cấu trúc thiết kế bao bọc toàn bộ để bảo vệ các bộ phận điện tử bên trong
sensor tránh khỏi các vấn đề về độ ẩm, kéo dài tuổi thọ của sensor
- Kiểu gắn đa dạng
Có thể lắp sensor vào các khung gắn kiểu trục, kẹp hay lắp vào ống đứng, khớp
quay hay quả cầu nổi để định vị trí sensor cũng như lấy sensor ra khỏi hệ thống
dễ dàng. Kiểu lắp với quả cầu nổi giúp sensor nhấp nhô lên xuống để màng điện
cực va chạm nhẹ nhàng với dòng mẫu. Kiểu gắn nhúng ngập giúp cố định vị trí
ở độ sâu cần đo đạc trong bể.
2. Thông số kỹ thuật
Đầu ra Analog :4-20mA
Giao thức truyền thông RS-232 & 485, Profibus DPV1 RS-232 N / A
Lớp bảo vệ NEMA4X (IP66), 1 / 2DIN NEMA4X (IP65), 1 / 4DIN (panel)
NEMA4X

8


Chương 2 :Thiết kế phần mềm đo lường trên S7-300

I.Sơ lươc về PLC Siemens S7-300
Giới thiệu PLC S7-300
a. Thiết bị điều khiển logic khả trình

Thiết bị điều khiển logic khả trình (Programmable Logic Controller) là loại
thiết bị thực hiện linh hoạt các thuật toán điều khiển số thông qua một ngôn ngữ
lập trình, thay vì phải thực hiện thuật toán đó bằng mạch số. Như vậy, PLC là
một bộ điều khiển gọn, nhẹ và dễ trao đổi thông tin với môi trường bên ngoài
(với các PLC khác hoặc máy tính). Toàn bộ chương trình điều khiển được lưu
trữ trong bộ nhớ của PLC dưới dạng các khối chương trình và được thực hiện
theo chu kỳ của vòng quét (scan)

Cấu trúc bên trong của một PLC
Để thực hiện một chương trình điều khiển, tất nhiên PLC phải có tính năng
như một máy tính, nghĩa là phải có một bộ vi xử lý (CPU), một hệ điều hành, bộ
nhớ để lưu chương trình điều khiển, dữ liệu và tất nhiên phải có các cổng vào/ra
để giao tiếp với đối tượng điều khiển và để trao đổi thông tin với môi trường
xung quanh. Bên cạnh đó nhằm khắc phục bài toán điều khiển số, PLC còn phải
có thêm một số khối chức năng đặc biệt khác như bộ đếm (Counter), bộ định
thời (Timer)…và những khối hàm chuyên dùng
9


-

-
















b.

-

-

Ưu điểm của bộ điều khiển lập trình được so với điều khiển nối dây:
Tính năng mở rộng: khả năng mở rộng xử lý bằng cách thay đổi chương trình
lập trình một cách dễ dàng
Độ tin cậy cao
Cách kết nối các thiết bị điều khiển đơn giản
Hình dáng PLC gọn nhẹ
Phù hợp với môi trường công nghiệp
Các ứng dụng của PLC trong sản xuất và trong dân dụng
Điều khiển Robot trong công nghiệp
Hệ thống xử lý nước sạch
Công nghệ thực phẩm
Công nghệ chế biến dầu mỏ
Công nghệ sản xuất vi mạch
Điều khiển các máy công cụ
Điều khiển và giám sát dây chuyền sản xuất
Điều khiển hệ thống đèn giao thông
Các module của PLC S7-300

Để tăng tính mềm deo trong các ứng dụng thực tế mà ở đó phần lớn các đối
tượng điều khiển có số tín hiệu đầu vào, đầu ra cũng như chủng loại tín hiệu
vào/ra khác nhau mà các bộ điều khiển PLC được thiết kế không bị cứng hóa về
cấu hình. Chúng được chia nhỏ thành các module. Số các module được sử dụng
nhiều hay ít tùy thuộc vào từng bài toán, song tối thiểu bao giờ cũng có module
chính (module CPU, module nguồn). Các module còn lại là những module
truyền nhận tín hiệu với các đối tượng điều khiển, chúng được ogị là các
module mở rộng. Tất cả các module đều được gá trên một thanh Rack
Module CPU:
Đây là loại module có chứa bộ vi xử lý, hệ điều hành, bộ nhớ, các bộ thời gian,
bộ đếm, cổng truyền thông,… và có thể có các cổng vào/ra số. Các cổng vào/ra
tích hợp trên CPU gọi là cổng vào ra onbroad
Trong họ PLC S7-300, các module CPU có nhiều loại và được đặt tên theo bộ
vi xử lý bên trong như: CPU 312, CPU 314, CPU 316,… Những module cùng
một bộ vi xử lý nhưng khác nhau số cổng vào/ra onbroad cũng như các khối
hàm đặc biệt thì được phân biệt bằng cụm chữ cái IFM (Intergrated Function
Module). Ví dụ như: CPU 312IFM, CPU 314IFM,…
Ngoài ra, còn có các loại module CPU có 2 cổng truyền thông, trong đó cổng
thứ 2 dùng để nối mạng phân tấn như mạng PROFIBUS (PROcess FIeld BUS).
Loại này đi kèm với cụm từ DP (Distributed Port) trong tên gọi. Ví dụ: module
CPU 315-DP
Module mở rộng:
10




o
o
o


o

o

o





-

Các module mở rộng được chia thành 5 loại
PS (Power Supply): module nguồn là module tạo ra nguồn có điện áp 24 VDC
cấp cho các module khác. Có loại: 2A, 5A và 10A
SM (Signal Module): Module mở rộng vào/ra
DI (Digital Input): module mở rộng cổng vào số. Số các cổng vào số mở rộng
có thể là 8, 16 hoặc 32 tùy thuộc vào từng loại module
DO (Digital Ouput): module mở rộng cổng ra số. Số các cổng vào số mở rộng
có thể là 8, 16 hoặc 32 tùy thuộc vào từng loại module
DI/DO (Digital Input/Digital Output): module mở rộng cổng vào/ra số. Số các
cổng vào/ra mở rộng có thể là 8 vào/ra hoặc 16 vào/ra tùy thuộc vào từng loại
module
AI (Analog Input): module mở rộng cổng vào tương tự. Bản chất chúng là
những bộ chuyển đổi tương tự sang số (ADC). Số các cổng vào tương tự có thể
là 2, 4 hoặc 8 tùy từng loại module, số bit có thể là 8, 10, 12, 14, 16 tùy theo
từng loại module. Các dạng tín hiệu đọc được: Điện áp, dòng điện, điện trở,
nhiệt độ
AO (Analog Output): module mở rộng cổng ra tương tự. Chúng là những bộ

chuyển đổi từ số sang tương tự (DAC). Số cổng ra tương tự có thể là 2 hoặc 4
tùy từng loại module
AI/AO (Analog Input/Analog Output): module mở rộng vào/ra tương tự. Số các
cổng vào ra tương tự có thể là 4 vào/2 ra hoặc 4 vào/4 ra tùy từng loại module
IM (Interface Module): Module kết nối
Đây là loại module dùng để kết nối từng nhóm các module mở rộng thành một
khối và được quản lý bởi một module CPU. Thông thường các module mở rộng
được gá liền nhau trên một thanh rack. Mỗi thanh rack chỉ có thể gá được nhiều
nhất 8 module mở rộng (không kể module CPU và nguồn). Một module CPU có
thể làm việc nhiều nhất với 4 thanh rack và các rack này phải được nối với nhau
bằng module IM
FM (Function Module): Module có chức năng điều khiển riêng như: module
điều khiển động cơ bước, module điều khiển động cơ servo, module PID,…
CP (Communication Processor): Module truyền thông giữa PLC với PLC hay
giữa PLC với PC
1.Tổ chức bộ nhớ CPU
Vùng nhớ chứa các thanh ghi: ACCU1, ACCU2, AR1, AR2,…
Load memory: là vùng nhớ chứa chương trình ứng dụng (do người sử dụng
viết) bao gồm tất cả các khối chương trình ứng dụng OB, FC, FB, các khối
chương trình trong thư viện hệ thống được sử dụng (SFC, SFB) và các khối dữ
liệu DB. Vùng nhớ này được tạo bởi một phần bộ nhớ RAM của CPU và
11


-

-

EEPROM (nếu có EEPROM). Khi thực hiện động tác xóa bộ nhớ (MRES) toàn
bộ các khối chương trình và khối dữ liệu nằm trong RAM sẽ bị xóa. Cũng như

vậy, khi chương trình hay khối dữ liệu được tải xuống (download) từ thiết bị lập
trình (PG, máy tính) vào CPU, chugns sẽ được ghi lên phần RAM của vùng nhớ
Load Memory
Work memory: là vùng nhớ chứa các khối DB đang được mở, khối chương
trình (OB, FC, FB, SFC hoặc SFB) đang được CPU thực hiện và phần bộ nhớ
cấp phát cho những tham số hình thức để các khối chương trình này trao đổi
tham trị với hệ điều hành và với các khối chương trình khác (local block). Tại
một thời điểm nhất định vùng Work Memory chỉ chứa một khối chương trình.
Sau khi khối chương trình đó được thực hiện xong thì hệ điều hành sẽ xóa khỏi
Work Memory và nạp vào đó khối chương trình kế tiếp đền lượt được thực hiện
System memory: là vùng nhớ chứa các bộ đệm vào/ra số (Q, I), các biến cờ (M),
thanh ghi C-Word, PV, T-bit của timer, thanh ghi C-Word, PV, C-bit của
counter. Việc truy cập, sửa lỗi dữ liệu những ô nhớ này được phân chia hoặc bởi
hệ điều hành của CPU hoặc do chương trình ứng dụng.
Có thể thấy rằng trong các vùng nhớ được trình bày ở trên không có vùng
nhớ nào được dùng làm bộ đệm cho các cổng vào/ra tương tự. Nói cách khác
các cổng vào/ra tương tự không có bộ đệm và như vậy mỗi lệnh truy cập
module tương tự (đọc hoặc gửi giá trị) đều có tác dụng trực tiếp tới các cổng vật
lý của module
Vùng địa chỉ và tầm địa chỉ
Kích thước Kích thước tối đa (tùy
truy cập
thuộc vào CPU)
I
0.0 ÷ 127.7
Process input image
IB
0 ÷ 127
(I)
IW

0 ÷ 126
Bộ đệm vào số
ID
0 ÷ 124
Q
0.0 ÷ 127.7
Process output image QB
0 ÷ 127
(Q)
QW
0 ÷ 126
QD
0 ÷ 124
M
0.0 ÷ 255.7
Bit memory (M)
MB
0 ÷ 255
Vùng nhớ cờ
MW
0 ÷ 254
MD
0 ÷ 252
Timer (T)
T0 ÷ T255
Counter (C)
C0 ÷ C255
Data block (DB)
DBX
0.0 ÷ 65535.7

Tên gọi

12


DBB
Khối dữ liệu chia sẻ
DBW
DBD
DIX
Data instance (DI)
DIB
Khối dữ liệu mẫu
DIW
DID
L
Local block (L)
LB
Miền nhớ cục bộ cho
LW
các tham số hình thức
LD
PIB
Peripheral input (PI)
PIW
Đầu ra phân tán
PID
PQB
Peripheral input (PQ)
PQW

Đầu vào phân tán
PQD

0 ÷ 65535
0 ÷ 65534
0 ÷ 65532
0.0 ÷ 65535.7
0 ÷ 65535
0 ÷ 65534
0 ÷ 65532
0.0 ÷ 65535.7
0 ÷ 65535
0 ÷ 65534
0 ÷ 65532
0 ÷ 65535
0 ÷ 65534
0 ÷ 65532
0 ÷ 65535
0 ÷ 65534
0 ÷ 65532

Trừ phần bộ nhớ EEPROM thuộc vùng Load memory và mộ phần RAM tự
nuôi đặc biệt (non-volatile) dùng để lưu trữ tham số cấu hình trạm PLC như địa
chỉ trạm (MPI address), tên các module mở rộng, tất cả các phần bộ nhớ còn lại
ở chế độ mặc định không có khả năng tự nhớ (non-retentive). Khi mất nguồn
nuôi hoặc khi thực hiện công việc xóa bộ nhớ (MRES), toàn bộ nội dung của
phần bộ nhớ non-retentive sẽ bị mất
2.Vòng quét chương trình của PLC
PLC thực hiện chương trình theo chu trình lặp. Mỗi vòng lặp được gọi là
vòng quét (scan). Mỗi vòng quét được bắt đầu bằng giai đoạn chuyển dữ liệu từ

các cổng vào số tới vùng bộ đệm ảo I, tiếp theo là giai đoạn thực hiện chương
trình. Trong từng vòng quét, chương trình được thực hiện từ lệnh đầu tiên đến
lệnh kết thúc của khối OB1. Sau giai đoạn thực hiện chương trình là giai đoạn
chuyển các nội dung của bộ đệm ảo Q tới các cổng ra số. Vòng quét được kết
thúc bằng giai đoạn truyền thông nội bộ và kiểm tra lỗi
Thời gian cần thiết để PLC thực hiện được một vòng quét gọi là thời gian
vòng quét (Scan time). Thời gian vòng quét không cố định, tức là không phải
vòng quét nào cũng được thực hiện lâu, có vòng quét được thực hiện nhanh tùy
thuộc vào số lệnh trong chương trình được thực hiện, vào khối dữ liệu được
truyền thông…trong vòng quét đó

13


Vòng quét CPU
Như vậy giữa việc đọc dữ liệu từ đối tượng để xử lý, thhh toán và việc gửi
tín hiệu điều khiển tii đối tượng có một khoảng thời gian trễ đúng bằng thời
gian vòng quét. Nói cách khác, thời gian vòng quét quyết định tính thời gian
thực của chương trình điều khiển trong PLC. Thời gian vòng quét càng ngắn,
tính thời gian thực của chương trình càng cao
Nếu sử dụng các khối chương trình đặc biệt có chế độ ngắt, ví dụ như khối
OB40, OB80,… Chương trình của các khối đó sẽ được thực hiện trong vòng
quét khi xuất hiện tín hiệu báo ngắt cùng chủng loại. Các khối chương trình này
có thể được thực hiện tại mọi điểm trong vòng quết chứ không bị gò ép là phải ở
trong giai đoạn thực hiện chương trình. Chẳng hạn nếu một tín hiệu báo ngắt
xuất hiện khi PLC đang ở giai đoạn truyền thông và kiểm tra nội bộ, PLC sẽ
tạm ngững công việc truyền thông, kiểm tra, để thực hiện khối chương trình
tương ứng với khối tín hiệu báo ngắt đó. Với hình thức xử lý tín hiệu ngắt như
vậy, thời gian vòng quét sẽ càng lớn khi càng có nhiều tín hiệu ngắt xuất hiện
trong vòng quét. Do đó, để nâng cao tính thời gian thực cho chương trình điều

khiển tuyệt đối không nên viết chương trình xử lý ngắt quá dài hoặc qua lạm
dụng việc sử dụng chế độ ngắt trong chương trình điều khiển
Tại thời điểm thực hiện lệnh vào/ra, thông thường lệnh không làm việc trực
tiếp với cổng vào/ra mà chỉ thông qua bộ đệm ảo của cổng trong vùng nhớ tham
số. Việc truyền thông giữa bộ đệm ảo với ngoại vi trong các giai đoạn 1 và 3 do
hệ điều hành CPU quản lý. Ở một số module CPU, khi gặp lệnh vào/ra ngay lập
tức, hệ thống sẽ cho dừng mọi công việc khác, ngay cả chương trình xử lý ngắt,
để thực hiện lệnh trực tiếp với cổng vào/ra
3.Cấu trúc chương trình
Chương trình cho S7-300 được lưu trong bộ nhớ của PLC vùng dành riêng
cho chương trình. Ta có thể được lập trình với hai dạng cấu trúc khác nhau
a. Lập trình tuyến tính
Toàn bộ chương trình điều khiển nằm trong một khối trong bộ nhớ. Loại lập
trình cấu trúc chỉ thích hợp cho những bài toán tự động nhỏ, không phức tạp
14


Vòng quết PLC
Khối được chọn là khối OB1, là khối mà PLC luôn quét và thực hiện các lệnh
trong nó thường xuyên, từ lệnh đầu tiên đến lệnh cuối cùng và quay lại từ đầu
b. Lập trình cấu trúc
Chương trình được chia thành những phần nhỏ với từng nhiệm vụ riêng biệt
và các phần này nằm trong những khối chương trình khác nhau. Loại lập trình
có cấu trúc phù hợp với những bài toán điều khiển nhiều nhiệm vụ và phức tạp.
Các khối cơ bản:
- Khối OB (Organization Block): khối tổ chức và quản lý chương trình điều
khiển. Có nhiều loại khối OB với những chức năng khác nhau. Chúng được
phân biệt với nhau bằng số nguyên theo sau nhóm ký tự OB, ví dụ: OB1, OB35,
OB80…
- Khối FC (Program Block): khối chương trình với những chức năng riêng biệt

giống như một chương trình con hay một hàm (chương trình con có biến hình
thức). Một chương trình ứng dụng có thể có nhiều khối FC và các khối FC này
được phân biệt với nhau bằng số nguyên theo sau nhóm ký tự FC, chẳng hạn
như FC1, FC2,…
- Khối FB (Function Block): khối FC đặc biệt có khả năng trao đổi một lượng dữ
liệu lớn với các khối chương trình khác. Các dữ liệu này phải được tổ chức
thành khối dữ liệu riêng được gọi là Data Block. Một chương trình ứng dụng có
thể có nhiều khối FB và các khối FB này được phân biệt với nhau bằng số
nguyên theo sau nhóm ký tự FB. Chẳng hạn như FB1, FB2, …
- Khối DB (Data Block): khối lượng dữ liệu cần thiết để thực hiện chương trình.
Các tham số của khối do người sử dụng tự đặt. Một chương trình ứng dụng có
thể có nhiều khối DB và các khối DB này được phân biệt với nhau bằng số
nguyên theo sau nhóm ký tự DB. Chẳng hạn như DB1, DB2,…
Chương trình trong các khối được liên kết vii nhau bằng các lệnh gọi khối
và chuyển khối. Các chương trình con được phép gọi lồng nhau, nghĩa là từ một
chương trình con này gọi 1 chương trình con khác và từ chương trình con được
gọi lại một chương trình con thứ 3
15


Lập trình có cấu trúc
c. Các khối OB đặc biệt
- OB10 (Time of Day Interrupt): Chương trình trong khối OB10 sẽ được thực
hiện khi giá trị thời gian của đồng hồ thời gian thực nằm trong một khoảng thời
gian đã được quy định. Việc quy định khoảng thời gian hay số lần gọi OB10
được thực hiện nhờ chương trình hệ thống SFC28 hay trong bảng tham số của
module CPU nhờ phần mềm STEP 7
- OB20 (Time Relay Interrupt): Chương trình trong khối OB20 sẽ được thực hiện
sau một khoảng thời gian trễ đặt trước kể từ khi gọi chương trình hệ thống
SFC32 để đặt thời gian trễ

- OB35 (Cyclic Interrupt): Chương trình trong khối OB35 sẽ được thực hiện cách
đều nhau một khoảng thời gian cố định. Mặc định, khoảng thời gian này là
100ms, nhưng ta có thể thay đổi nhờ STEP 7
- OB40 (Hardware Interrupt): Chương trình trong khối OB40 sẽ được thực hiện
khi xuất hiện một tín hiệu báo ngắt từ ngoại vi đưa vào CPU thông qua các cổng
onbroad đặc biệt, hoặc thông qua các module SM, CP, FM
- OB80 (Cycle Time Fault): Chương trình trong khối OB80 sẽ được thực hiện khi
thời gian vòng quét (scan time) vượt quá khoảng thời gian cực đại đã quy định
hoặc khi có một tín hiệu ngắt gọi một khối OB nào đó mà khối OB này chưa kết
thuc ở lần gọi trước. Thời gian quét mặc định là 150ms
- OB81 (Power Supply Fault): Chương trình trong khối OB81 sẽ được thực hiện
khi thấy có xuất hiện lỗi về bộ nguồn nuôi
- OB82 (Diagnostic Interrupt): Chương trình trong khối OB82 sẽ được thực hiện
có sự cố từ các module mở rộng vào/ra. Các module này phải là các module có
khả năng tự kiểm tra mình (diagnostic cabilities)
- OB87 (Communication Fault): Chương trình trong khối OB87 sẽ được thực
hiện có xuất hiện lỗi trong truyền thông
- OB100 (Start Up Information): Chương trình trong khối OB100 sẽ được thực
hiện một lần khi CPU chuyển từ trạng thái STOP sang RUN

16


-

-

-

OB121 (Synchronous Error): Chương trình trong khối OB121 sẽ được thực hiện

khi CPU phát hiện thấy lỗi logic trong chương trhhh đổi sai kiuu dữ liệu hay lỗi
truy nhập khối DB, FC, FB không có trong bộ nhớ
4.Ngôn ngữ lập trình
PLC S7-300 có ba ngôn ngữ lập trình cơ bản sau:
Ngôn ngữ lập trình liệt kê lệnh STL (Statement List). Đây là dạng ngôn ngữ lập
trình thông thường của máy tính. Một chương trình được hoàn chỉnh bởi sự
ghép nối của nhiều câu lệnh theo một thuật toán nhất định, mỗi lệnh chiếm một
hàng và có cấu trúc chung “tên lệnh” + “toán hạng”
Ngôn ngữ lập trình LAD (Ladder Logic). Đây là dạng ngôn ngữ đồ họa, thích
hợp với những người lập trình quen với việc thiết kế mạch điều khiển logic
Ngôn ngữ lập trình FBD (Function Block Diagram). Đây cũng là dạng ngôn
ngữ đồ họa, thích hợp cho những người quen thiết kế mạch điều khiển số
Trong PLC có nhiều ngôn ngữ lập trình nhằm phục vụ cho các đối tượng sử
dụng khác nhau. Tuy nhiên một chương trình viết trên ngồn ngữ LAD hay FBD
có thể chuyển sang dạng STL, nhưng ngược lại thì không. Và trong STL có
nhiều lệnh mà LAD hoặc FBD không có. Đây cũng là thế mạnh của ngôn ngữ
STL

17


II. lựa chọn loại PLC sử dụng và thiết bị
PLC S7- 300 CPU 312

1.Module nguồn PS 307

18


2.Module nguồn PS 307 10A


3.Đèn báo 220V

19


4.Nút ấn

III. Thiết kế giao diện giám sát
3.1: Lập trình khối hàm FB
Vì độ phân giải của module không giống nhau và có thể có những ứng
dụng không cần Scale K1,2 là 27648 do vậy chúng em viết lại hàm FB đọc giá
trị analog để được tối ưu hơn, không sử dụng hàm có sẵn trong PLC
Để không bị cứng nhắc trong quá trình đo và đọc giá trị từ cảm biến,
chúng em sẽ quy định dải đo của cảm biến và độ phân giải của module như sau :
PVmin:là giá trị nhỏ nhất mong
muốn thực tế đo được
PVmax:là giá trị lớn nhất
mong muốn thực tế đo được
AIWmin: Là giá trị nhỏ nhất mà module có thể đọc.
AIWmax: là giá trị lớn nhất module có thể đọc được
hoặc là mình muốn cho nó đọc. (Ở trên Siemens nói là
từ nhỏ hơn 27648 đó, chính là giá trị lớn nhất mà
module analog có thể xử lý được).
AIW : là giá trị đọc được từ đầu vào Input module
PV: là giá trị thực tế PLC đưa ra ngoài để hiển thị

20



Hình 3.1: đồ thị biểu diễn mối quan hệ giữa PV và AIW
Từ đồ thị trên ta thấy được mối quan hệ giữa PV và AIW là tuyến tính, qua đó
ta có phương trình như sau:
=
 PV = (PVmax-PVmin) +PVmin
Để thuận tiện cho người sử dụng, chúng em sẽ tích hợp với wincc và
nhập trực tiếp dải đo và giá trị đọc được PLC tương ứng từ trên giao diện wincc.
3.2: Sử dụng phần mềm simatic
3.2.1: Cấu hình phần cứng trong simatic manager hình 3.2

Hình 3.2: cấu hình phần cứng cho trạm PLC
3.2.2: Viết chương trình khối hàm FB
21


22


23


Bảng interface

24


Bảng khối hàm DB1 đi theo FB

25



×