You are on page 1of 188

MỤC LỤC

1. BÀI 1 ................................................................................................................5
GIỚI THIỆU CHUNG VỀ THIẾT BỊ LOGIC KHẢ TRÌNH S7-300
1.1. Giới thiệu chung về S7-300........................................................................5
1.1.1. Khái niệm chung PLC S7-300.............................................................5
1.1.2. Các module trong hệ PLC S7-300.......................................................5
1.1.2.1. Giới thiệu về các module CPU.....................................................6
1.1.2.2. Module xuất nhập tín hiệu tương tự/số SM..................................7
1.1.2.3. Module chức năng FM.................................................................8
1.1.2.4. Module truyền thông CP-300.......................................................9
1.1.2.5. Module nguồn PS-300..................................................................9
1.1.2.6. Module ghép nối IM...................................................................10
1.2. Cách lắp đặt một trạm PLC S7-300..........................................................10
1.2.1. Nguyên tắc lắp đặt các module..........................................................10
1.2.2. Nguyên tắc nối dây từ nguồn đến CPU.............................................11
1.3. Làm việc với phần mềm Step7.................................................................13
1.3.1. Cách tạo một Project.........................................................................14
1.3.2. Khai báo và mở một Project..............................................................15
1.3.3. Xây dựng cấu hình cứng cho trạm PLC............................................21
1.3.4. Đặt tham số quy định chế độ làm việc cho Module..........................26
1.3.5. Soạn thảo chương trình cho các khối logic.......................................28
1.3.6. Sử dụng thư viện của Step7...............................................................30
1.3.7. Sử dụng tên hình thức........................................................................31
1.4. Làm việc với một trạm PLC.....................................................................34
1.4.1. Quy định địa chỉ MPI cho Module CPU...........................................34
1.4.2. Đổ chương trình xuống CPU.............................................................36
1.4.3. Giám sát việc thực hiện chương trình...............................................37
1.4.4. Giám sát module CPU.......................................................................39
1.4.5. Quan sát nội dung ô nhớ....................................................................42
1.5. Các cấu trúc vào ra trong hệ thống...........................................................43
1.5.1. Vào ra tập trung IM mở rộng rack.....................................................43
1.5.2. Vào ra phân tán sử dụng Bus trường.................................................48
2. BÀI 2...............................................................................................................59
LẬP TRÌNH CHO S7-300 VÀ MÔ PHỎNG BẰNG PLCSIM
2.1. Cấu trúc của S7-300.................................................................................59
2.1.1. Cấu trúc chung...................................................................................59
2.1.2. Cấu trúc bộ nhớ.................................................................................60
2.1.3. Các thanh ghi.....................................................................................61
2.1.3.1. Thanh ghi trạng thái ..................................................................61
2.1.3.2. Thanh ghi ACCU.......................................................................63

1
2.2. Các kiểu dữ liệu và các phép toán............................................................64
2.2.1. Các kiểu dữ liệu.................................................................................64
2.2.2. Các phép toán....................................................................................65
2.2.2.1. Các phép toán logic....................................................................65
2.2.2.2. Các phép toán số học..................................................................66
2.2.2.3. Các phép toán chuyển đổi kiểu dữ liệu và so sánh.....................66
2.3. Kỹ thuật lập trình......................................................................................67
2.3.1. Vòng quét chương trình.....................................................................67
2.3.2. Phương pháp lập trình.......................................................................68
2.3.2.1. Lập trình tuyến tính....................................................................68
2.3.2.2. Lập trình cấu trúc.......................................................................68
2.4. Giới thiệu ngôn ngữ lập trình với S7-300................................................69
2.5. Ứng dụng module vào ra số với bài toán điều khiển cổng các công sở.. .75
2.5.1. Giới thiệu về các module vào và ra số..............................................75
2.5.2. Ứng dụng điều khiển đóng mở cổng ở các công sở..........................77
2.5.2.1. Mô tả thiết bị..............................................................................77
2.5.2.2. Yêu cầu của bài toán..................................................................79
2.5.2.3. Phương án thiết kế......................................................................80
2.5.2.4. Thi công .....................................................................................81
2.6. Giới thiệu phần mềm PLCSIM để mô phỏng PLC..................................82
2.6.1. Khởi động phần mềm PLCSIM.........................................................83
2.6.2. Truy nhập các module ......................................................................84
2.6.3. Tiến hành download chương trình xuống CPU.................................85
2.6.3.1. Download cấu hình cứng............................................................85
2.6.3.2. Download chương trình .............................................................87
2.6.4. Tiến hành mô phỏng .........................................................................87
3. BÀI 3...............................................................................................................90
SỬ DỤNG BỘ TIMER/COUNTER
3.1. Sử dụng bộ TIMER..................................................................................90
3.1.1. Nguyên tắc hoạt động........................................................................90
3.1.2. Các loại Timer của S7-300................................................................93
3.1.2.1. Tổng quan chung........................................................................93
3.1.2.2. Khai báo sử dụng Timer.............................................................93
3.1.3. Bài tập ứng dụng bộ timer...............................................................107
3.2. Sử dụng bộ COUNTER..........................................................................111
3.2.1. Giới thiệu về Counter......................................................................111
3.2.1.1. Nguyên tắc làm việc.................................................................111
3.2.1.2. Phân loại...................................................................................111
3.2.2. Ví dụ ứng dụng bộ counter..............................................................115
3.2.3. Bài tập ứng dụng bộ Counter..........................................................117
4. BÀI 4.............................................................................................................118
SỬ DỤNG MODULE ANALOG

2
4.1. Giới thiệu chung về Module analog.......................................................118
4.1.1. Khái niệm module analog................................................................118
4.1.2. Analog input module.......................................................................118
4.1.3. Analog output module.....................................................................119
4.2. Nguyên lý hoạt động chung của các cảm biến và các tín hiệu đo chuẩn
trong công nghiệp..........................................................................................119
4.3. Giới thiệu về hai module vào ra analog SM331 (AI2x12Bit) và SM332
(AO2x12Bit)..................................................................................................120
4.3.1. Đặc điểm của module SM331 (AI2x12Bit)....................................120
4.3.2. Đặc điểm của module ra analog SM332 (AO2x12Bit)...................123
4.4. Sử dụng hàm thư viện FC105 và FC106................................................124
4.4.1. Hàm căn chỉnh tín hiệu đầu vào FC105 “SCALE “........................124
4.4.2. Hàm căn chỉnh tín hiệu đầu ra FC106 “UNSCALE”......................127
4.5. Ứng dụng module analog input trong thực tế.........................................130
4.5.1. Bài toán............................................................................................130
4.5.2. Tính toán mức nước từ cảm biến.....................................................131
4.5.3. Điều khiển van.................................................................................132
4.5.4. Viết chương trình trong phần mềm Step7.......................................133
4.6. Bài tập.....................................................................................................137
5. BÀI 5.............................................................................................................138
SỬ DUNG MODULE PID VÀ THỜI GIAN THỰC
5.1. Module PID mềm có trong phần mềm Step7.........................................138
5.2. Đặc điểm của bộ điều khiển PID............................................................139
5.3. Sử dụng module mềm FB41 “CONT_C” ..............................................139
5.3.1. Sử dụng khối FB41 “CONT_C” trong phần mềm Step7................148
5.3.1.1. Tạo một trạm PLC S7-300 :.....................................................148
5.3.1.2. Chèn khối FB41 vào trong Project :.........................................148
5.3.1.3. Lựa chọn khối thư viện và copy :.............................................149
5.3.1.4. Paste vào phần Blocks:.............................................................150
5.3.1.5. Tạo khối dữ liệu dạng Instance cho FB41:...............................150
5.3.1.6. Gán tham số cho bộ điều khiển :..............................................151
5.3.2. Ví dụ sử dụng bộ PID mềm “CONT_C”.........................................153
5.3.2.1. Mô tả bài toán :.........................................................................153
5.3.2.2. Các bước giải bài toán :............................................................154
5.4. Sử dụng các hàm thời gian thực.............................................................159
5.4.1. Giới thiệu các hàm sử dụng với thời gian thực...............................160
5.4.1.1. Các hàm thiết lập thời gian thực SFC0 (SET_CLK)................160
5.4.1.2. Hàm đọc thời gian của hệ thống SFC1 “READ_CLK” :.........161
5.4.2. Các hàm kèm theo để xử lý thời gian (FC3,FC6,FC7,FC8)............161
5.4.2.1. Hàm FC3 “D_TOD_DT”.........................................................161
5.4.2.2. Hàm FC6 “DT_DATE”............................................................162
5.4.2.3. Hàm FC7 “DT_DAY”..............................................................162

3
5.4.2.4. Hàm FC8 “DT_TOD”..............................................................163
5.4.3. Ứng dụng hàm thời gian thực..........................................................164
6. BÀI 6.............................................................................................................170
TRUYỀN THÔNG PROFIBUS TRONG HỆ S7-300
6.1. Khái niệm...............................................................................................170
6.2. Đặc điểm và phạm vi ứng dụng hệ thống PROFIBUS trong công nghiệp.
.......................................................................................................................170
6.3. Cấu trúc và lập trình mạng Profibus-DP trong hệ S7-300.....................171
6.3.1. Cấu trúc mạng profibus-dp..............................................................171
6.3.2. Nguyên tắc trao đổi dữ liệu trong mạng PROFIBUS-DP:.............172
6.3.3. Các thành phần trong mạng PROFIBUS-DP..................................172
6.4. Ví dụ về cách cấu hình và lập trình một mạng profibus-dp sử dụng phần
mềm Step7.....................................................................................................175
6.4.1. Cấu hình phần cứng:........................................................................177
6.4.2. Viết chương trình giao tiếp cho hệ thống........................................190
6.5. Bài tập.....................................................................................................191

1. BÀI 1

4
GIỚI THIỆU CHUNG VỀ THIẾT BỊ LOGIC
KHẢ TRÌNH S7-300

Nội dung chính:

 Giới thiệu tổng quan về họ S7-300


 Giới thiệu các module của S7-300
 Giới thiệu về phần mềm lập trình Step7
 Tạo 1 project và cách cấu hình cho một trạm S7-300

1.1. Giới thiệu chung về S7-300.

1.1.1. Khái niệm chung PLC S7-300.


Thiết bị điều khiển logic khả trình (PLC) 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. PLC là một bộ
điều khiển số nhỏ gọn, dễ thay đổi thuật toán và đặc biệt dễ trao đổi thông tin
với môi trường xung quanh (với PLC khác hoặc với máy tính).

1.1.2. Các module trong hệ PLC S7-300.


 Module CPU: Bộ xử lý trung tâm.
 Module SM: module xuất/nhập tín hiệu tương tự/số.
 Module chức năng FM.
 Module truyền thông CP.
 Module nguồn PS-300.
 Module ghép nối IM.

5
1.1.2.1. Giới thiệu về các module CPU.
Các module CPU khác nhau có hình dạng, chức năng, tốc độ xử lý lệnh, bộ
nhớ khác nhau...
PLC S7-300 có các loại sau:
 Loại thường: Gồm CPU 312, 313, 314, 315, 316.

CPU 313 CPU 314


CPU 312

Loại này có Work memory từ (12 128)KB tùy loại, kết nối MPI. CPU
312 và 313 ghép được với 8 module, các loại còn lại ghép được với 32
module. Loại module này không tích hợp sẵn các cổng vào/ra.

 Loại Compact: Gồm CPU 312C, 313C.


Có tích hợp sẵn cổng vào/ra, đầu ra xung, kênh
đếm và đo encoder và kết nối MPI.

CPU 31xC
Loại IFM: Gồm CPU 312IFM, 314IFM
có kết nối MPI, tích hợp sẵn cổng vào/ra,
ghép nối được 8 hoặc 31 module mở rộng.
Cũng tương tự như loại compact.
CPU 314 IFM

6
 Loại có tích hợp DP: Gồm CPU315-2DP, 316-2DP, 317-2DP, 318-2DP,
có kết nối MPI+DP, truyền thông S7, có thể gửi/nhận data trực tiếp.

CPU 317-2 DP CPU 315-2 DP CPU 318-2 DP

 Ngoài ra còn một số loại CPU kết hợp một trong những loại trên:
313C-2DP, 313C-2PtP, 314C-2DP, 315F-2DP, 317-2PN/DP,…

313C-2 PtP CPU315F-2PN/DP CPU 317f-2DP

1.1.2.2. Module xuất nhập tín hiệu tương tự/số SM.

 Bao gồm các module sau:


 Module vào số: SM321 (có 4,8,16,32 đầu nối, có thể lựa
chọn tùy ý)
 Module ra số: SM322 (có 4,8,16,32 đầu nối, có thể lựa chọn
tùy ý)
 Module vào/ra số: SM323,SM327 (có 8,16 đầu nối, có thể
lựa chọn tùy ý)

7
 Module vào tương tự: SM331 (có 2,4,8 đầu nối, và có 12-14
bit với tín hiệu dòng hoặc áp có thể lựa chọn tùy ý)
 Module ra tương tự.: SM332 (có 2,4,8 đầu nối, và có 12-14
bit với tín hiệu dòng hoặc áp có thể lựa chọn tùy ý)
 Module vào/ra tương tự: SM334,SM335 (có 4 đầu nối với
8/12/14 bit với tín hiệu dòng hoặc áp có thể lựa chọn tùy ý)

SM321 SM322 SM323

SM331 SM332 SM334

1.1.2.3. Module chức năng FM.


- Controller Modules: Các module chức năng điều khiển.
- M7 Application Modules: Các modules chức năng ứng dụng cho M7-
300.
- CNC’s: Các module chức năng cho điều khiển số.
- Counter modules: Các module counter.

- Positioning Modules: Các module chức năng vị trí.

8
Module FM 357- Module FM 355
2

1.1.2.4. Module truyền thông CP-300.


- AS-Interface: Các module truyền thông kết nối giao diện AS-i của
S7-300.
- Industrial Ethernet: Các module truyền thông cho Industrial Ethernet
của S7-300.
- Profibus: Các module dành cho Profibus của S7-300.
- Point –to- Point: Các module truyền thông PtP của S7-300.

CP343-2 (AS-I) CP342-5 (DP)

1.1.2.5. Module nguồn PS-300.


Gồm 3 loại module:
- PS 307 10A: Điện áp cấp cho tải: 120/230 VAC:24VDC/10A.
- PS 307 2A: Điện áp cấp cho tải: 120/230 VAC:24VDC/2A..

- PS 307 5A: Điện áp cấp cho tải: 120/230 VAC:24VDC/5A..

9
PS307 5A
1.1.2.6. Module ghép nối IM.
Module giao tiếp các rack mở rộng:
- IM 360 IM S: Nằm trong rack trung tâm, mở rộng tối đa 3 rack.
- IM 361 IM R: Thuộc rack mở rộng, nối với IM 360.
- IM 365 IM S-R: Module nối rack trung tâm với
một rack mở rộng.

IM 360-IM S

1.2. Cách lắp đặt một trạm PLC S7-300.

1.2.1. Nguyên tắc lắp đặt các module.


Trên thực tế các module được nối với nhau thông qua các rack. Một rack
chứa tối đa 8 module mở rộng (không kể module CPU và module nguồn) và một
CPU được nối tối đa với 4 rack.
Các module được đặt vào các rack với quy tắc lắp đặt như sau:
 Slot 1: Mặc định đặt module nguồn.
 Slot 2: Mặc định đặt module CPU.

10
 Slot 3: Đặt module giao tiếp IM.
 Slot 4 11: Các module vào/ra, module chức năng, bộ xử lý truyền
thông hoặc để trống.
Các rack 1, 2, 3 quy tắc tương tự. Nếu rack 0 có chứa CPU thì slot 3 của các
rack còn lại để trống. Dưới đây là sơ đồ minh họa việc ghép nối các module.
Thanh rack

…..

Slot 1 Slot 2 Slot 3 Slot 4 ….. Slot 11


Nguồn PS CPU IM 360 Analog Dgital
307 2A 312 input output

1.2.2. Nguyên tắc nối dây từ nguồn đến CPU.


S7-300 có các loại module nguồn như: PS 307 2A, PS 307 5A, PS 307
10A. Module có nhiệm vụ cung cấp nguồn 24V một chiều cho CPU và các
module khác sau khi nhận nguồn xoay chiều một pha từ lưới xoay chiều. Một bộ
nguồn có các đặc tính cơ bản sau:
- Dòng điện đầu ra 2A ( 5 hoặc 10A).
- Điện áp đầu ra 24V (có bảo vệ ngắn mạch và hở mạch).
- Đầu kết nối với nguồn AC (120/230 VAC, 50/60 Hz).
- Cách ly EN 60 950.
- Có thể được sử dụng như nguồn năng lượng của tải.

11
Biểu đồ nối dây của nguồn PS 307 2A

Biểu đồ mạch điện cơ bản của nguồn PS 307 2A

12
Sơ đồ đấu dây nguồn:

1.3. Làm việc với phần mềm Step7.


Để làm việc với PLC S7-300, hãng SIEMENS đã cung cấp phần mềm
STEP 7, cho phép người sử dụng cấu hình phần cứng và lập trình ứng dụng.
Sau khi cài đặt STEP 7 có các phần chính sau:
 SIMATIC manager : Cho phép quản lý toàn bộ dự án.
 HW Config : Cho phép cấu hình phần cứng trạm.

13
 LAD/STL/FDB: viết chương trình ứng dụng.
 S7-PLCSIM: Cho phép mô phỏng.
 Ngoài ra còn rất nhiều phần kèm theo khác.
Dưới đây ta sẽ từng bước làm việc với phần mềm Step7.

1.3.1. Cách tạo một Project.


Khái niệm Project trong Simatic không đơn thuần chỉ là chương trình
ứng dụng mà bao gồm tất cả những gì liên quan đến thiết kế phần mềm ứng
dụng để điều khiển, giám sát một hay nhiều trạm PLC.
Vì vậy, trong một Project bao gồm:
 Bảng cấu hình cứng về tất cả các Module của từng trạm PLC
 Bảng tham số xác định chế độ làm việc cho từng Module của
mỗi trạm PLC
 Các logic block chứa chương trình ứng dụng của từng trạm PLC
 Cấu hình ghép nối và truyền thông giữa các trạm PLC
 Các màn hình giao diện phục vụ việc giám sát toàn bộ mạng
hoặc giám sát từng tram PLC của mạng.
Trong giáo trình này chúng tôi xin giới thiệu các phần 1),2),3). Phần 4),5)
chúng tôi sẽ giới thiệu trong giáo trình SCADA.

1.3.2. Khai báo và mở một Project.


Có hai cách để khai báo một Project.

Cách 1:

14
Từ màn hình chính của Step7 ta chọn File  New hoặc kích chuột vào
biểu tượng “ New Project /Library”. Một hộp thoại sẽ xuất hiện như hình
dưới. Gõ tên Project và nhấn OK và như vậy đã khai báo xong một Project mới.
Cách mở này tạo ra một Project mới hoàn toàn rỗng, ta phải khai báo
phần cứng cũng như tạo các khối logic…

Cách 2:
Cách tạo này sẽ tạo ra một Project mới có trạm S7-300 mặc định, cho
phép chọn CPU, chọn các Blocks và đặt tên cho Project mới đó ngay từ đầu.
Đây là cách tạo một Project nhanh. Thực hiện như sau: Vào File”New
Project” Wizard

15
Đánh dấu nếu muốn cách chọn này xuất
hiện mỗi khi mở SIMATIC Manager

Nhấn Next để chọn chọn trạm SIMATIC 300 Station

16
Chọn loại CPU Chọn địa chỉ MPI
(Nói ở phần sau)
Nhấn Next sau khi chọn được CPU và địa chỉ MPI:

Chọn ngôn ngữ lập trình


Nhấn NextChọn cáctục:
để tiếp Blocks

Đặt tên cho Project

17
Nhấn Finish để hoàn tất việc tạo một Project mới.
Project mới tạo ra là một Project không rỗng mà đã chứa một trạm PLC, các
Block…có hình như bên dưới:

Project mới với đầy đủ CPU và Block

Ngoài ra, ta có thể chọn nơi sẽ cất giữ một Project trên ổ cứng. Mặc định,
nơi cất sẽ là thư mục đã được quy định khi cài Step7 là thư mục C:\Program
Files\Siemens\Step7\s7proj. Sau khi gõ tên Project mới ta kích vào Browse
trong phần Storage location (path) chọn nơi ta muốn cất giữ Project và nhấn
OK

18
Chọn nơi cất Project
Trong trường hợp muốn mở một Project đã có, ta chọn File  Open hoặc
kích chuột vào “Open Project /Library” (Hình 1.2) từ cửa sổ chính của Step7
rồi chọn tên Project muốn mở từ hộp thoại có dạng như hình dưới, cuối cùng ấn
OK để kết thúc.

19
1.3.3. Xây dựng cấu hình cứng cho trạm PLC.
Sau khi khi khai báo xong một Project mới, trên màn hình sẽ xuất hiện
Project đó nhưng ở dạng rỗng (chưa có gì trong Project ),

Biểu
tượng thư
mục rỗng

20
Tiếp theo là xây dựng cấu hình cứng cho trạm PLC. Điều này không bắt
buộc,có thể không cần khai báo cấu hình cứng cho trạm mà đi ngay vào phần
chương trình ứng dụng. Tuy nhiên, để tránh xảy ra lỗi ta nên thực hiện bước này
vì khi có cấu hình trong Project, lúc bật nguồn PLC, hệ điều hành của S7-300
luôn kiểm tra các Module hiện có trong trạm, so sánh với cấu hình mà ta xây
dựng và nếu phát hiện thấy sự không thống nhất sẽ phát ngay tín hiệu báo lỗi
hoặc thiếu Module chứ không cần phải đợi đến khi thực hiện chương trình ứng
dụng.
Trước hết ta khai báo cấu hình cứng cho một trạm PLC với Simatic S7-
300 bằng cách vào Insert  Station Simatic 300 Station:

Khai báo
một trạm
PLC
S7-300

21
Trường hợp không muốn khai báo cấu hình cứng mà đi ngay vào chương
trình ứng dụng ta có thể chọn: InsertProgramS7 program.
Sau khi đã khai báo một trạm, thư mục Project chuyển sang dạng không rỗng
với thư mục con bên trong có tên mặc định là SIMATIC300(1). Ta có thể đổi
lại tên mặc định này. Thư mục SIMATIC300(1) chứa tệp thông tin về cấu hình
phần cứng của trạm.
Để vào màn hình khai báo cấu hình cứng, ta nháy chuột tại biểu tượng
Hardware. Trong hộp thoại hiện ra ta khai báo thanh rack và các Module có
trên thanh rack đó. Hình dưới là bảng cấu hình cứng cho trạm PLC.

Thư mục con của Project vừa tạo

22
Kéo và thả Rail sang màn hình bên
trái

Cấu hình của trạm sẽ 23


được khai báo tại đây
Step7 giúp việc khai báo cấu hình cứng được đơn giản nhờ bảng danh
mục các Module của nó. Muốn đưa Module nào vào bảng cấu hình ta chỉ cần
đánh dấu slot nơi Module sẽ được đưa vào rồi nháy kép chuột tại tên của
Module đó trong bảng danh mục các Module kèm theo.

Bảng danh mục các 24


Module để lựa chọn
Với bảng cấu hình cứng phần mềm Step7 cũng xác định luôn cho ta địa
chỉ từng Module theo quy tắc sau:
+ Một trạm PLC được hiểu là một module CPU ghép nối cùng với các
Module mở rộng khác (Module DI, DO, AI, AO, CP, FM) trên những thanh
rack. Một Module CPU có khả năng quản lý được 4 thanh rack với tối đa 8
Module mở rộng trên mỗi thanh.Mỗi một Module có 11 slot.
+Theo mặc định:
- Slot 1 chứa Module nguồn.
- Slot 2 chứa Module CPU.
- Slot 3 chứa Module IM
- Các Slot 4 11 chứa các Module tín hiệu/ chức năng..

1.3.4. Đặt tham số quy định chế độ làm việc cho Module
Step7 hỗ trợ việc đặt tham số quy định chế độ làm việc cho từng Module.
Chẳng hạn Step7 có thể hỗ trợ việc tích cực ngắt theo thời điểm cho Module
CPU để Module này phát một tín hiệu ngắt gọi khối OB10 một lần vàolúc 7 giờ,
7 phút, 7 giây ngày 07/07/2007. Để làm được điều này ta nháy kép vào chuột tại

25
tên của Module CPU ở Slot 2 rồi chọn ô Time-Of-Day Interrup, trên màn hình
sẽ xuất hiện hộp hội thoại như hình dưới. Điền thời điểm, tần suất phát tín hiệu
ngắt rồi đánh dấu tích cực chế độ ngắt vào các ô tương ứng trong hộp thoại, cuối
cùng nhấn OK.

Tín hiệu ngắt Thời điểm phát tín


Tích cực tín
được phát 1 lần hiệu ngắt
hiệu ngắt

26
Cũng trong hộp hội thoại ta thấy Module CPU314 chỉ cho phép sử dụng
OB10 trong số các Module OB10 OB17 với mức ưu tiên là 2 để chứa chương
trình xử lý tín hiệu ngắt theo thời điểm.
Các chế độ làm việc khác của Module CPU cũng được quy định nhờ
Step7 như sửa đổi vòng quét (scan time) , xác định chế độ làm việc với dạng tín
hiệu điện áp với dải 10V cho Module AI, tích cực tín hiệu ngắt tự chẩn đoán
cho Module DI/DO, tích cực ngắt cứng theo sườn lên tại cổng vào I0.0 cho
Module DI...Cuối cùng nhấn Save để kết thúc.

1.3.5. Soạn thảo chương trình cho các khối logic.


Sau khi khai báo cấu hình cứng cho một trạm PLC và quay cửa sổ chính
của Step7 ta sẽ thấy trong thư mục SIMATIC300(1), bây giờ có thêm các thư
mục con CPU314IM, S7 Program(1), Sources và Blocks, tất cả các thư mục này
đều có thể đổi tên.

Tham số xác định chế độ làm việc của các 27


Module trong trạm vừa soạn thảo nhờ Step
sẽ nằm trong thư System data
Tất cả các khối logic (OB, FC,FB, DB) chứa chương trình ứng dụng sẽ
nằm trong thư mục Blocks. Mặc định trong thư mục này đã có sẵn khối OB1.
Muốn soạn thảo chương trình cho khối OB1 ta nháy chuột tại biểu tượng
OB1 bên nửa cửa sổ bên phải. Trên màn hình sẽ xuất hiện cửa sổ của chế độ
soạn thảo chương trình sau:
Phần local block của khối OB1

Phần chú thích của


Phần chương trình
chương trình

28
Chức năng chương trình soạn thảo của Step7 về cơ bản cũng giống như
các chương trình khác, tức là cũng có các phím nóng để gõ nhanh, có chế độ
cắt và dán, có chế độ kiểm tra lỗi cú pháp…

1.3.6. Sử dụng thư viện của Step7


Phần mềm soạn thảo chương trình của Step7 có một thư viện khá phong
phú gồm những khối chương trình FC, FB, SFC và SFB đã được chuẩn hóa
mà ta có thể sử dụng. Muốn sử dụng một hàm cụ thể nào đó, trước hết ta phải
xác định hàm đó thuộc nhóm chức năng nào, sau đó đi tìm trong bảng danh
mục bằng cách mở thư mục nhóm chức năng đó. Ví dụ để sử dụng hàm tạo
dữ liệu kiểu Data_And_Time, trước hết ta mở thư mục Libraries, trong đó
lại tiếp tục mở stdlibs  iec sẽ thấy hàm ta cần là FC3 với tên hình thức
DATA and TOD to DT

29
1.3.7. Sử dụng tên hình thức.
Để chương trình dễ hiểu, dễ theo dõi, dễ bảo dưỡng và đặc biệt trở nên
thân thiện với người sử dụng hơn, Step7 đã cung cấp them khả năng sử dụng
tên hình thức trong lập trình thay vì các ký hiệu địa chỉ, chữ số khối FC,
FB…khó nhớ. Các tên hình thức của một địa chỉ hay một tên khối…phải
được khai báo trước trong bảng có tên là Symbols.
Do tên hình thức sẽ có giá trị thay thế trong toàn bộ chương trình ứng dụng
nên bảng khai báo tên hình thức phải có vị trí ngang bằng với chương trình
ứng dụng, nói cách khác nó phải nằm trong cùng thư mục với thư mục
Blocks (chứ không phải nằm trong thư mục Blocks).

Symbols và blocks
ngang hang nhau

30
Kích chuột vào thư mục mẹ của Blocks, ở đây là thư mục với tên mặc định
S7 Program(1), sau đó nháy chuột trái vào biểu tượng Symbols ta sẽ được
màn hình soạn thảo bảng các tên hình thức như sau:

Sau khi điền đầy đủ tên hình thức, địa chỉ ô nhớ mà nó thay thế (phần lớn
kiểu dữ liệu sẽ được Step7 tự xác định căn cứ vào địa chỉ ô nhớ) và cất vào
Project, ta quay trở lại màn hình chính của Step7. Mở một khối chương trình,
ví dụ OB1, và chọn View  Display with  Symbolic Representation
trên thanh công cụ của màn hình soạn thảo hoặc dung phím nóng Ctrl+Q,
chương trình trong OB1 sẽ được chuyển sang dạng biểu diễn với tên hình
thức có trong bảng Symbol.
Chương trình chuyển sang biểu diễn với tên hình thức khi viết code dạng
LAD

31
Chương trình chuyển sang biểu diễn với tên hình thức khi viết code dạng STL

32
Muốn quay vè sử dụng lại ký hiệu địa chỉ tuyệt đối ta nhấn phím nóng
Ctrl+Q hoặc chọn View  Display with  Symbolic Representation trên
thanh công cụ.

1.4. Làm việc với một trạm PLC

1.4.1. Quy định địa chỉ MPI cho Module CPU


Máy tính/máy lập trình được ghép nối với Module CPU qua cổng truyền
thông nối tiếp RS232 (COM) của máy tính hay qua cổng MPI (MPI Card)
hay CP (CP Card) là còn tùy thuộc vào bộ giao diện được sử dụng.
Sau khi ghép module CPU với máy tính về phần cứng ta còn phải định
nghĩa thêm địa chỉ truyền thông cho trạm PLC. Điều này là cần thiết vì một
máy tính/máy lập trình có thể cùng một lúc làm việc được với nhiều trạm
PLC. Mặc định, các module CPU đều có địa chỉ là 2 (địa chỉ MPI). Muốn
thay đổi địa chỉ CPU ta nháy kép trái chuột tại tên module trong bảng khai
báo cấu hình cứng để vào chế độ đặt lại tham số làm việc, trong đó ta lại
chọn tiếp GeneralMPI và sửa lại địa chỉ MPI như hình dưới:

Nháy kép trái chuột để đặt lại địa chỉ MPI

Nháy kép trái chuột

33
Thay đổi địa chỉ MPI của module CPU

Sau khi đã định nghĩa lại địa chỉ MPI cho trạm PLC, ta phải ghi lại địa chỉ
đó lên module CPU và chỉ khi đó module CPU mới thực sự làm việc theo địa

34
chỉ mới này. Công việc ghi địa chỉ MPI mới này lên module CPU được thực
hiện cùng với việc ghi tất cả tham số quy định chế độ làm việc của module
bằng cách kích vào biểu tượng Dowload trên thanh công cụ hoặc chọn
PLCDowload

Dowload:Đổ cấu hình cứng Upload:Đọc cấu hình


vừa soạn vào module CPU cứng từ module CPU

Địa chỉ MPI


của module
CPU

Địa chỉ của


module mở
rộng

Bên cạnh việc ghi cấu hình cứng vừa soạn thảo vào module PLC ta cũng
có thể đọc ngược bảng cấu hình cứng hiện có từ module PLC vào Project
bằng cách kích chuột vào biểu tượng Upload trên thanh công cụ của màn
hình hoặc chọn PLCUpload. Với việc đọc ngược cấu hình cứng này ta
cũng đọc luôn cả toàn bộ chương trình hiện có trong Load memory của
module CPU vào Project.

1.4.2. Đổ chương trình xuống CPU


Có hai cách đổ chương trình ứng dụng, sau khi đã soạn thảo xong, vào
module CPU (Load memory) như sau:
1) Đổ từ màn hình soạn thảo chương trình bằng cách kích vào biểu
tượng Dowload trên thanh công cụ của màn hình. Với cách đổ này, chỉ riêng
khối chương trình đang ở màn hình soạn thảo được đổ vào chương trình.
2) Đổ từ màn hình chính của Step7 cũng bằng cách kích vào biểu

35
tượng Dowload. Với cách đổ này ta có thể đổ toàn bộ chương trình ứng dụng có
trong thư mục Blocks hoặc đổ những khối mà ta đánh dấu. Muốn đổ toàn bộ thư
mục Blocks ta phả kích chuột vào tên thư mục trước, sau đó mới kích vào
Dowload. Trong trường hợp chỉ đổ một sô khối, ta đánh dấu những khối sẽ
được đổ trước bằng bằng cách giữ phím Ctrl đồng thời kích chuột tại tên của
từng khối. Cuối cùng, sau khi đã chọn xong các khối thì kích chuột vào biểu
tượng Dowload.

1.4.3. Giám sát việc thực hiện chương trình.


Sau khi ghi chương trình lên module CPU thì nội dung Load memory của
module CPU và thư mục Blocks của Project trong máy tính sẽ đồng nhất. Nếu
bật công tắc module CPU từ STOP sang RUN, CPU sẽ thực hiện theo chương
trình trong Load memory của nó theo vòng quét và quá trình thực hiện lệnh này
được Step7 giám sát thông qua chương trình tương ứng trong Project.
Việc giám sát chương trình được Step7 tiến hành bằng cách cho hiển thị
nội dung các thanh ghi của CPU trước và sau khi thực hiện từng lệnh một của
chương trình.
Để vào màn hình giám sát, kích vào phím Monitor
trên thanh công cụ của màn hình soạn thảo.
Monitor: Phím giám sát việc
thực hiện chươn trình

Sau khi kích vào phím Monitor trên màn hình xuất hiện cửa sổ như sau:

36
Mặc định Step7 chỉ cho hiển thị nội dung các bits RLO, STA (than ghi trạng
thái) và ACCU1. Tuy nhiên, ta có thể cho hiện them nội dung toàn bộ thanh ghi
trạng thái hoặc các thanh ghi khác bằng cách nhấn phải chuột chọn ShowTên
thanh ghi

Ngoài ra, ta cũng có thể thay đổi kiểu dữ liệu được hiển thị. Mặc định Step7 sẽ
cho hiển thị nội dung các thanh ghi dưới dạng mã hexadecimal, song ta có thể
sang các dạng khác như Decimal hay Floating-Point bằng cách đưa chuột vào

37
vùng dữ liệu được hiển thị, ấn phải chuột chọn RepresentationKiểu dữ liệu
trong hộp thoại hiện ra có dạng như hình dưới:

Chú ý:
Không thể sửa đổi được chương trình nếu cửa sổ màn hình giám sát đang
ở trạng thái tích cực. Muốn quay trở về trạng thái soạn thảo, ta phải rời khỏi màn
hình giám sát bằng cách ấn biểu tượng Monitor trên thanh công cụ.
Tương tự, ta cũng không tích cực được cửa sổ màn hình giám sát nếu
chương trình có trong Project không đồng nhất với chương trình có trong Load
memory của module CPU. Bởi vậy để có thể giám sát được chương trình vừa
sửa đổi, trước tiên ta ghi chương trình đó vào module CPU rồi sau đó mới tích
cực màn hình giám sát. Chỉ giám sát việc thực hiện chương trình trong một khối
và đó là khối đang được mở ở màn hình soạn thảo.

1.4.4. Giám sát module CPU


Bên cạnh việc giám sát chương trình, ta có thể giám sát cả công việc của
module CPU bằng cách nhấn vào cửa sổ PLC trên thanh công cụ, sau đó nhấn
chọn Diagnose/settingHardware Diagnose sẽ có hộp hội thoại:

38
Nếu chỉ muốn giám sát module CPU ta kích vào Module information.
Trên màn hình sẽ hiện tiếp ra cửa sổ cho phép ta lựa chọn cụ thể công việc được
giám sát. Chẳng hạn nếu muốn quan sát bộ đệm tự chẩn đoán của module ta
kích chuột vào Diagnose Buffer sẽ có được thông báo về nguyên nhân thay đổi

39
trạng thái của module CPU (Start<-->Stop) từ trước tới nay hoặc muốn quan
sát thời gian thực hiện vòng quét ta chọn ô Scan Cycle Time.

Danh sách các sự thay đổi trạng


Thời điểm xuất hiện việc thay
thái được xếp theo thứ tự thời gian
đổi trạng thái gần đây nhất và
nguyên nhân của nó

1.4.5. Quan sát nội dung ô nhớ


Step7 cho phép quan sát nội dung mọi ô nhớ thuộc System memory và
các ô nhớ có địa chỉ định nghĩa như IP, PQ. Những ô nhớ được quan sát phải
được khai báo trên bảng có tên là Variable Table và để làm điều này ta kích

40
chuột tại PLC từ thanh công cụ màn hình của Step7 sau đó chọn
Monitor/Modify Variable.
Chỉ quan sát ở Quan sát liên tục
thời điểm kích

Hộp hội thoại chọn


kiểu thể hiện dữ liệu

Sau khi khai báo xong bảng tên các ô nhớ đựoc quan sát ta kích phím
quan sát. Trên thanh công cụ có hai phím quan sát như hình trên.
Cũng có thể thay đổi cách trình bày kiểu dữ liệu cho từng ô nhớ bằng
cách đưa chuột vào ô nhớ cần thay đổi và kích phím phải chuột và chọn kiểu
thích hợp trong hộp hội thoại hiện ra.

1.5. Các cấu trúc vào ra trong hệ thống.

1.5.1. Vào ra tập trung IM mở rộng rack.


Cấu trúc vào/ra IM tập trung
Các thiết bị trường đều được nối tập trung về một chỗ.

41
CPU
I/O

A S A S A S

Phân đoạn 1 Phân đoạn 2 … Phân đoạn n

A: Thiết bị truyền động


S: Sensor

Trong hệ S7-300 hỗ trợ kiểu kiểu vào ra này với các rack, và việc mở
rộng các rack nếu hệ thống có số đầu vào ra nhiều. Cấu trúc vào/ra tập trung IM
mở rộng rack là một CPU điều khiển toàn bộ các rack khác thông qua module
giao tiếp IM. Tối đa một trạm S7-300 có 4 rack.
Luật Slots trong S7-300

42
 Rack 0:
- Slot 1: Chứa nguồn hoặc để trống
- Slot 2: Chứa CPU
- Slot 3: Chứa module giao tiếp IM
- Slot 4 11: Các module vào/ra, module chức năng, bộ xử lý truyền thông
hoặc để trống.
 Rack 1 3:
- Slot 1: Chứa nguồn hoặc để trống
- Slot 2: Để trống
- Slot 3: Chứa module giao tiếp IM
- Slot 4 11: Các module vào/ra, module chức năng, bộ xử lý truyền thông
hoặc để trống.
Nguyên tắc lắp đặt module IM:
- Tại rack có chứa CPU (rack 0) chỉ chứa module IM 360 IM S(IM chỉ
gửi), hoặc IM 365 IM S-R(IM cả gửi và nhận). IM 360 S thì có thể nối được với
3 rack khác (rack 1, 2, 3), IM 365 S-R chỉ nối được với 1 rack duy nhất.

43
Các rack 1, 2, 3 chứa IM 361 R. Các bước xây dựng một cấu trúc vào/ra tập
trung như sau:
- Vào khai báo phần cứng (xem mục 2.3 xây dựng cấu hình cứng cho trạm
PLC).
- Lần lượt tạo số lượng các rack (tối đa là 4)

- 4 rack vừa tạo là 4 rack rỗng. Ta sẽ lần lượt thêm các module cho các rack
này. Rack 0 sẽ chứa module CPU, các rack 1, 2 và 3 là các rack mở rộng.
Bằng cách nhấn chuột phải vào từng Slot ta sẽ thêm các thêm các module
cần thiết chuột phải vào SlotInsert Object…:

44
Chọn module cần thiết đặt vào Slot đó. Các module khác làm tương tự
Ngoài ra, cũng có thể đặt các module vào các rack bằng cách vào ViewCtalog
(hoặc nhấn tổ hợp phím Ctrl+K).

45
Bảng Catalog sẽ xuất hiện như hình dưới:

Các module cần thiết


khai báo cho các rack

Sau khi khai báo các module cần thiết ta có hình như dưới đây:

46
Nhấn Save để hoàn tất công việc.

1.5.2. Vào ra phân tán sử dụng Bus trường


Để khắc phục sự phụ thuộc vào một CPU như trong cấu trúc tập trung, tiết
kiệm chi phí nối dây và tăng tính linh hoạt của hệ thống, các mdule tín hiệu
được phân tán xuống cấp trường.

CPU
CPU (dự phòng)

Bus hệ thống

Bus Bus Bus


trường trường trường

I/O I/O I/O

A S A S A S

Phân đoạn 1 Phân đoạn 2 … Phân đoạn n

A: Thiết bị truyền động


S: Sensor

47
Trong trạm điều khiển vào/ra phân tán, các trạm cục bộ sẽ được nối với
các trạm vào ra từ xa (Remote I/O) thông qua các module giao diện Bus. Yêu
cầu đối với Bus trường là tính năng thời gian thực, mức độ đơn giản và giá
thành thấp. Ngoài ra, đối với môi trường dễ cháy nổ còn có các yêu cầu kỹ thuật
đặc biệt khác về chuẩn truyền dẫn, tính năng điện học của các linh kiện mạng,
cáp truyền…Các loại Bus trường được hỗ trợ mạnh nhất là Profibus-DP,
Profibus-PA, Profibus-FMS, Foundation Fieldbus, DeviceNet và AS-i… Trong
môi trường đòi hỏi an toàn cháy nổ thì Profibus-PA và Foundation Fieldbus H1
là 2 hệ được sử dụng phổ biến nhất.
Dưới đây là các bước khai báo cấu hình mạng vào ra phân tán trong phàn
mềm Step7. Đây là một hình ảnh ví dụ về mạng PROFIBUS-DP trong thực tế.

Compact slave Module Slave


(ET200B 16DI/16DO) (ET200M-IM153)

48
Mạng PROFIBUS
Master-Slave

Cáp MPI kết nối


CPU với PG/PC

DP Master
(VD : CPU318-2DP)

Ta làm theo các bước sau :


- Trước hết ta cần tạo một trạm S7-300 chứa CPU 318 – 2DP để làm thiết
bị master.

49
Sau đó save lai dưới tên PROFIBUS_DP_EX.
- Tạo một mạng PROFIBUS-DP

Chọn thư mục PROFIBUS_DP_EX :

Click chuột phải và chọn: Insert New Object > PROFIBUS :

50
Một mạng PROFIBUS được tạo ra :

- Cấu hình phần cứng cho trạm S7-300 (phần này đã được giới thiệu ở
trên ). Ở đây ta chọn CPU loại CPU318-2DP, câu hình phần cứng như
sau:

51
- Cấu hình cho hệ thống DP-Master :
Chọn DP-Master ở trong Slot 2.1 (X2), Click chuột phải chọn Add Master
System:

52
Bảng cho phép thiết lập các tham số hiện ra :

Trong đó :
Trường Address : cho phép ta đặt địa chỉ cho DP-Master (CPU318-2DP).
Trường Subnet : cho phép ta chọn mạng PROFIBUS cần nối tới.
Click OK để hoàn tất .

53
DP-Master Đường dây
(CPU318- mạng
2DP) PROFIBUS

Đây cũng chính là hình ảnh thật về hệ thống mạng PROFIBUS.


- Lựa chọn DP-Slave và nối vào hệ thống:
Trong phần Hardware Catalog ta chọn thư mục PROFIBUS-DP và tìm đến
module ET200B/ 16-DI :

Sau đó kéo và thả vào đường dây hệ thống master (DP-Master system (1)),
đến khi bạn thấy có dấu “ + ” hiện lên, khi đó một bảng tham số hiện ra :

54
Cho phép ta gán địa chỉ cho module này và chọn mạng cần nối tới. Click
OK để đồng ý.
- Hoàn toàn tương tự với ET200B – 16 DO
- Tiếp theo ta lựa chọn Module giao diện IM135 và kéo thả vào hệ thống
Master system :

Đặt địa chỉ và chọn mạng giống như trên .

55
Bước tiếp theo la ta cấu hình cho module IM153 (tương tự như một trạm
S7-300):

Ở đây ta đặt các module từ slot 4.


Ta lựa chọn module đầu vào là DI32xDC24 để đưa vào rack.

Tương tự với module đầu ra DO32xDC24/0.5A.

- Đến đây ta đã coi như cấu hình xong cho một hệ thống vào ra phân tán.
Save lại và biên dịch (Ctrl + S).

Xem cấu hình mạng vừa được tạo ra.

56
Chuyển sang phần SIMATIC Manager. Click đúp chuột trái vào phần
PROFIBUS(1) :

Một cửa sổ NetPro hiện ra cho phép ta xem toàn bộ hệ thống mạng đã được kết
nối.

57
2. BÀI 2

LẬP TRÌNH CHO S7-300 VÀ MÔ PHỎNG


BẰNG PLCSIM

Nội dung chính :


 Các cấu trúc về bộ nhớ và thanh ghi
 Các kiểu dữ liệu và các phép toán logic
 Kỹ thuật lập trình, các phương pháp lập trình và ngôn ngữ lập trình.
 Sử dụng phần mềm PLCSIM để mô phỏng

2.1. Cấu trúc của S7-300.

2.1.1. Cấu trúc chung


Nói chung một bộ PLC đều có cấu trúc chung như sau:

CPU Bộ nhớ chương trình

Khối vi xử lý Timer
Bộ đệm
vào/ra trung tâm Counter
+ Bit cờ
Hệ điều
hành

Cổng
Cổngvào/ra
vào/ra Bus của PLC
onboard
onboard Quản
Quảnlýlýghép
ghépnối
nối
Cổng
Cổngngắt
ngắtvà

đếm tốc độ cao
đếm tốc độ cao
58
2.1.2. Cấu trúc bộ nhớ
Bộ nhớ S7-300 được chia làm 3 vùng chính :
Vùng 1: Vùng chứa chương trình ứng dụng. Gồm 3 miền
 OB (Organisation block) :Miền chương trình tổ chức.
 FC (Function) : Miền chương trình con được tổ chức thành hàm có
biến hình thức để trao đổi dữ liệu với chương trình đã gọi nó .
 FB (Function block) : Miền chương trình con, dược tổ chức thành
hàm và có khả năng trao đổi dữ liệu vớ bất cứ khối chương trình khác
 và các dữ liệu này phải được xây dựng trong khối dữ liệu riêng DB
( Data block)
Vùng 2: Vùng chứa tham số của HDH và chương trình ứng dụng, được
phân chia thành 7 miền khác nhau, gồm có:
 I (Process image input ): Miền bộ đệm các dữ liệu cổng vào số.
Trước khi bắt đầu thực hiện chương trình, PLC sẽ chuyển giá trị
logic của bộ đệm Q tới các cổng ra số.
 Q (Process image output): Miền đệm các dữ liệu cổng ra số. Kết thúc
chương trình, PLC sẽ đọc giá trị logic của bộ đệm Q tới các cổng ra
số.
 M: Miền biến cờ. Chương trình lưu giữ các tham số cần thiết.
 T: Miền nhớ phục vụ thời gian (Timer)
 C: Miền nhớ phục vụ bộ đếm (Counter)
 PI: Miền địa chỉ cổng vào các module tương tự (I/O External input)
 PQ: Miền địa chỉ cổng ra cho các module tương tự (I/O External
output)
Vùng 3: Vùng chứa các khối dữ liệu, chia thành 2 loại:
 DB(data block): Miền chứa dữ liệu được tổ chức thành khối. Kích
thước cũng như số lượng do người sử dụng quy định.
 L (local data block): Miền dữ liệu địa phương.

59
2.1.3. Các thanh ghi.

2.1.3.1. Thanh ghi trạng thái .


Khi thực hiện lệnh, CPU sẽ ghi nhận lại trạng thái trung gian cũng như kết
quả vào 1 thanh ghi đặc biệt 16 bits, được gọi là thanh ghi trạng thái, tuy nhiên ta
chỉ sử dụng 9 bits với cấu trúc như sau:

BR CC1 CC0 OV OS OR STA RLO FC

 FC(First check): Khi phải thực hiện các lệnh logic liên tiếp nhau gồm
các phép tính ^, v và nghịch đảo, bit FC có giá trị bằng 1.
 RLO(Result of logic operation): Kết quả tức thời của phép tính logic
vừa đươc thực hiện.
 STA(Status bit): luôn có giá trị logic của tiếp điểm được chỉ định
trong lệnh.
 OR: Ghi lại giá trị của phép logic cuối cùng thực hiện phụ giúp cho
việc thực hiện phép toán sau đó.
 OS(Stored overflow bit): Bit ghi lại giá trị bit bị tràn ra ngoài mảng ô
nhớ.
 OV(Overflow bit): Bit báo kết quả phép tính bị tràn ra ngoài mảng ô
nhớ.
 CC0, CC1 (condition code): Hai bit báo trạng thái của kết quả phép
tính với số nguyên, số thực, phép dịch chuyển hoặc phép tính logic
trong ACCU.

 Cụ thể :

60
Khi thực hiện lệnh toán học như cộng, trừ, nhân ,chia với số nguyên
hoặc số thực.
CC1 CC0 Ý nghĩa
0 0 kết quả bằng 0
0 1 kết quả nhỏ hơn 0
1 0 kết quả lơn hơn 0
Khi thực hiện lệnh toán học với số nguyên nhưng kết quả bị tràn ô nhớ
CC1 CC0 Ý nghĩa
kết quả quá nhỏ khi thực
0 0
hiện lệnh cộng(I,D)
kết quả quá nhỏ khi thực
hiện nhân(I,D) hoặc quá lớn
0 1
khi thực hiện lệnh cộng
trừ(I,D)
kết quả quá lớn khi thực
hiện lệnh nhân, chia (I,D)
1 0
hoặc quá nhỏ khi thực hiện
lệnh cộng, trừ
kết quả bị tràn do thực hiện
1 1
lệnh chia cho 0
Khi thực hiện lệnh toán học với số thực nhưng kết quả bị tràn ô nhớ
CC1 CC0 Ý nghĩa
0 0 Kết quả có mũ e quá lớn
0 1 KQ có mantissa quá nhỏ
1 0 KQcó mantissa quá lớn
1 0 Phép tính sai quy chuẩn
Khi thực hiện lệnh dịch chuyển.
CC1 CC0 Ý nghĩa

61
0 0 GT bit bị đẩy ra bằng 0
1 0 GT bit bị đẩy ra bằng 1
Khi thực hiện lệnh logic trong ACCU.
CC1 CC0 Ý nghĩa
0 0 KQ bằng 0
1 0 KQ khác 0

-BR(Binary result bit): Bit trạng thái cho phép liên kết 2 loại ngôn ngữ STL và
LAD

2.1.3.2. Thanh ghi ACCU.


Các CPU của S7-300 thường có hai thanh ghi Accumulator (ACCU) ký
hiệu là ACCU1 và ACCU2. Hai thanh ghi này có cùng kích thước 32 bits. Mọi
phép tính toán học trên số thực, số nguyên…đều được thực hiện trên 2 thanh ghi
này.
Cấu trúc 2 thanh ghi này như sau:
ACCU1
31 24 23 16 15 87 0
Byte cao Byte thấp Byte cao Byte thấp

ACCU2
31 24 23 16 15 87 0
Byte cao Byte thấp Byte cao Byte thấp

2.2. Các kiểu dữ liệu và các phép toán

2.2.1. Các kiểu dữ liệu.

62
TT Kiểu dữ liệu Giá trị
1 BOOL Có giá trị logic 0,1
Gồm 8 bit, thường dùng dùng để biểu diễn một
số nguyên dương trong khoảng 255 hoặc mã
ACSII của một ký tự
2 BYTE
VD: L B#16#07
// Nạp số nguyên 07 theo cơ số 16 độ dài 1 byte
vào thanh ghi ACCU1
Gồm 2 byte, biểu diễn một số nguyên dương
3 WORD trong khoảng 0 đến 65535
VD: L 100
Dung lượng 2 byte, dùng dể biểu diễn một số
4 INT nguyen trong khoảng -32768 đến 32767
VD:
Gồm 4 byte, dùng để biểu diễn 1 số nguyên từ -
5 DINT 2147483648 đến 2147483647
VD : L #100
Gồm 4 bytes, dùng để biểu diễn 1 số thực dấu
6 REAL phẩy động.
VD: L 100.0
Khoảng thòi gian, tính theo giờ/phút/giây/mili
7 S5T(S5TIME) giây
VD : L S5T2h_1m_0s_5ms
Biểu diễn giá trị thời gian theo giờ/phut/giây
8 TOD
VD : L TOD#5:20:07
9 DATE Biểu diễn giá trị thờ gian tính theo
năm/tháng/ngày
VD : L DATE#2007-8-1

63
// Lệnh khai báo ngày 1 tháng 8 năm 2007
Biểu diễn 1 hoặc nhiều ký tự (nhiều nhất 4 ký
10 CHAR tự)
VD : L ‘DKS’

2.2.2. Các phép toán.


Ở đây ta chỉ giới thiệu các phép toán hay được sử dụng trong ngôn ngữ
LAD

2.2.2.1. Các phép toán logic

Lệnh logic tiếp điểm

Lệnh logic với các bít trạng thái

64
2.2.2.2. Các phép toán số học

Phép toán với số nguyên


Phép toán với số thực

2.2.2.3. Các phép toán chuyển đổi kiểu dữ liệu và so sánh.

Phép chuyển đổi kiểu dữ liệu

Các phép so sánh

65
2.3. Kỹ thuật lập trình

2.3.1. Vòng quét chương trình


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. Mỗi vòng quét 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.

Truyền thông và Chuyển dữ liệu từ


kiểm tra nội bộ cổng vào tới I

Vòng
quét

Thực hiện chương


Chuyển dữ liệu từ trình
Q tới cổng ra

Thời gian vòng quét: Là thời gian cần thiết để PLC thực hiện 1 vòng
quét.

Chú ý : Thời gian vòng quét không cố định. Nó tùy thuộc vào số lệnh trong
chương trình thực hiện, vào khối lương dữ liệu được truyền thông… trong vòng
quét đó.

66
2.3.2. Phương pháp lập trình

2.3.2.1. Lập trình tuyến tính.


Kỹ thuật lập trình tuyến tính là phương pháp lập trình mà toàn bộ chương
trình ứng dụng sẽ chỉ nằm trong khối OB1, kỹ thuật này có ưu điểm là gọn, rất
phù hợp với những bài toán đơn giản, ít nhiệm vụ.
Do toàn bộ chương trình điều khiển chỉ nằm trong khối OB1 nên khối
OB1 sẽ chỉ gần như là được thường trực trong vùng nhớ Word memory, trừ
trường hợp khi hệ thống phải xử lý các tín hiệu báo ngắt. Ngoài khối OB1, trong
vùng Word memory còn có miền nhớ địa phương (local block) cấp phát cho OB1
và những khối BD được OB1 sử dụng

Chuyển OB1 từ
load memory vào
Work memory và
cấp phát local System
Thực memory
Hệ
block cho nó Thựchiện
hiện
Hệ OB1
điều
điều
OB1 Share
hành trong
trong
hành Work DB
Work
memory
memory Instance
Xóa OB1 và giải DB
phóng local block
trong Work
memory

2.3.2.2. Lập trình cấu trúc


Lập trình cấu trúc là kỹ thuât cài đặt thuật toán điều khiển bằng cách chia
nhỏ các khối chương trình con FC hay FB với mỗi khối thực hiện một nhiêm vụ
cụ thể của bài toán điều khiển chung và toàn bộ các khối chương trình này lại
dược quản lý một cách thống nhất bởi khối chương trình con theo thứ tự phù hợp
với bài toán điều khiển đặt ra.

67
Tương tự, một nhiệm vụ con lại có thể chia nhỏ thành nhiều nhiệm vụ nhỏ
và cụ thể hơn nữa, do đó một khối chương trình con cũng có thể được gọi từ một
khối chương trình con khác.

Chú ý :
-Không bao giờ một khối chương trình con lại gọi chính nó.
-Ngoài ra do sự hạn chế về ngăn xếp của các module CPU nên không
được tổ chức chương trình con gọi bằng lồng nhau quá số lần mà module
CPU cho phép.

2.4. Giới thiệu ngôn ngữ lập trình với S7-300.


Có nhiều ngôn ngữ lập trình và phương pháp lập trình cho phép bạn chọn
phù hợp với nhu cầu. Bộ STEP 7 có 3 ngôn ngữ lập trình chính là LAD, FBD,
STL. Các ngôn ngữ khác tùy chọn.
 Lập trình kiểu STL (Statement List): là ngôn ngữ lập trình kiểu liệt kê
gồm danh sách các câu lệnh. chương trình ứng dụng được viết dưới dạng
một chuỗi các câu lệnh. Mỗi một câu lệnh chứa một lệnh (instruction) xác
định nhiệm vụ. Phụ thuộc vào dạng câu lệnh mà kèm theo lệnh còn có địa
chỉ mà lệnh cần thực thực hiện.

68
Ví dụ:

 Lập trình kiểu FBD (Function Block Diagram): chương trình ứng dụng
được viết bằng cách kết nối các hộp. FBD cung cấp các hộp chức năng để
thực hiện các phép toán logic theo trạng thái tín hiệu, các hộp đơn giản
dùng xử lý kết quả của phép toán logic và các hộp phức tạp dùng cho các
hàm không phải nhị phân.
Ví dụ:

 Lập trình LAD(Ladder logic): cho phép viết chương trình bằng cách sắp
xếp các phần tử theo dạng biểu đồ. Các phần tử chủ yếu gồm các tiếp
điểm, cuộn dây, hộp, liên kết với nhau thành một sơ đồ điều khiển rơ le
dạng bậc thang.
Ví dụ:

Ngoài ra còn có các ngôn ngữ cấp cao hơn như :


 Ngôn ngữ lập trình điều khiển có cấu trúc SCL ( Structured Control
Language) là một ngôn ngữ lập trình bậc cao giống như PASCAL, đã
được tối ưu hoá để lập trình cho PLC. SCL tương thích với tiêu chuẩn
quốc tế IEC1131-1( DIN-EN 6.1131-3) và đặc biệt thích hợp cho việc lập

69
trình các thuật toán phức tạp hay các ứng dụng xử lý dữ liệu , S7-SCL
chỉ chạy được khi đã có SIMATIC Manager.
Ví dụ:

 Biểu đồ chức năng liên tục CFC (Continuous Function Chart): Phần mềm
CFC là một phần mềm soạn thảo dưới dạng đồ họa, cho phép nối các
khối bằng cách vẽ một lưu đồ chức năng. CFC. Chương trình quản lý
SIMATIC Manager (STEP 7 Standard Tool) làm phần mềm cơ sở và
phần mềm SCL để biên dịch .
Ví dụ :

70
 Điều khiển tuần tự GRAPH (sequential Control GRAPH): S7-GRAPH là
một phương pháp lập trình đồ họa cho các hệ thống điều khiển tuần tự.
Phần mềm này tương thích với ngôn ngữ SFC theo tiêu chuẩn IEC 1131-3
(DIN EN 61131-3). Để sử dụng S7-GRAPH bạn phải cần SIMATIC
Manager (STEP 7 Basic).
Ví dụ:

71
 Điều khiển theo đồ hình trạng thái (HIGRAPH): Lập trình S7-HIGRAPH
là một phương pháp lập trình đồ họa cho các hệ điều khiển đồ hình trạng
thái. Nó cần phần mềm cơ sở là SIMATIC Manager (STEP 7).

Ví dụ :

72
Trong giáo trình này, chúng ta sẽ sử dụng chủ yếu 2 ngôn ngữ lập trình STL và
LAD.

73
2.5. Ứng dụng module vào ra số với bài toán điều khiển cổng các công sở.
Các module vào ra số tạo ra một giao diện cho phép CPU có thể giao tiếp
và xử lý các tín hiệu số từ bên ngoài

2.5.1. Giới thiệu về các module vào và ra số.


Trong S7-300 có rất nhiều các module vào ra số. Ở đây ta chỉ giới thiệu
hai module SM321 (DI-16) và SM322 (DO-16).
 Module vào số SM321.
Module SM321 có :
 Có 16 đầu vào, nguồn vào, gộp
thành một nhóm 16 đầu vào.
 Dải điện áp hoạt động là
24VDC
 Các đầu vào thường là các công
tắc, nút bấm, các loại cảm biến
số…

Sơ đồ khối bên trong và sơ đồ các chân ra của module:

74
Các sơ đồ đấu dây thường dùng:
1 L+

K1

K2
SM321
.....

 Module ra số SM322.

75
Module SM322 có :
 Có 16 đầu ra, gộp thành hai
nhóm, mỗi nhóm có 8 đầu ra.
 Dải điện áp cho tải là 24VDC
 Các đầu ra thường là các công
tắc tơ, các cuộn hút của van điện
từ, các đèn báo....

Đây là sơ đồ khối bên trong và cách đấu tải vào module:

2.5.2. Ứng dụng điều khiển đóng mở cổng ở các công sở.

2.5.2.1. Mô tả thiết bị.


- Cổng được đóng mở bằng một xi lanh-piston thủy lực:

76
Cổng đóng – piston đẩy ra Cổng mở – piston đóng lại

- Cấu tạo của xi lanh-piston:

Đường dầu đi
vào

Khi dầu đi vào đường bên trái, piston được đẩy sang bên phải, làm cho
cổng mở ra. Khi đường đi vào đường bên phải, xi lanh được đẩy sang bên trái
làm cho cổng đóng lại. Nếu cấp dầu cả hai bên và điều chỉnh lưu lượng thì ta có
thể cho xi lanh dừng ở vị trí tùy ý nào đó (điều khiển vị trí).
- Hai đường ống cấp dầu cho xi lanh lại được điều khiển bằng một van điện
từ. Nguyên lý như sau:

77
Cuộn hút 1 Cuộn hút 2

Đường
dầu

Đóng mở hai cuộn hút sẽ đóng mở hai đường dầu cấp cho cơ cấu xi lanh.

2.5.2.2. Yêu cầu của bài toán


Có một panel điều khiển gồm có 3 nút :
 Các nút vận hành : Mở , đóng, dừng
 Đèn báo : mở, đóng

Quy tắc vận hành:


 Khi bấm nút Mở : cổng sẽ được mở ra.
 Khi bấm nút Dừng : cổng sẽ dừng lại.
 Khi bấm nút Đóng : cổng sẽ đóng lại.
 Khi đang mở không thể đóng lại được ngay mà phải bấm nút dừng trước,
và ngược lại.

78
2.5.2.3. Phương án thiết kế.
Để giải bài toán này ta có rất nhiều phương án. Ở đây ta chỉ quan tâm tới
hai phương án. Và tìm ra sự liên quan.
 Phương án 1. : Sử dụng các rơ le số và các nút bấm

Dưới đây là một sơ đồ được thiết kế bằng mạch điện chứa các rơ le và nút
bấm.
Dừng R1
Mở

K1
K2’

R2
Đóng

K2
K1’

 Phương án 2: Sử dụng PLC và các nút bấm.


Ta sẽ thay thế sơ đồ mạch điều khiển ở trên bằng PLC
 Nhận xét :
 Với phương án 1 : mạch đơn giản, giá thành thấp, nhưng hoạt
động đơn lẻ
 Với phương án 2: Mạch đơn giản hơn nữa, giá thành cao.
Nhưng ứng dụng tự động nhiều. Nếu có rất nhiều cổng, và
giám sát từ xa, kết hợp với các hệ thống tự động hóa trong
tòa nhà, thì phương án này rất phù hợp.

79
2.5.2.4. Thi công .
Ở đây ta sẽ chọn phương án thiết kế trên PLC.
 Bảng điều khiển và sơ đồ kết nối với module như sau.

Đ1 Đ2
C1 C2 Đ1 Đ2

1 2 3 4 5
SM322
10
K1 K2 K3
SM321
2 3 4
Bảng điều khiển 1

K1 K2 K3

 Sử dụng phần mềm Step7 để thiết kế ứng dụng.


 Tạo một Project mới
 Cấu hình phần cứng như sau:

 Tạo các symbols:

80
 Viết chương trình trong khối OB1:

2.6. Giới thiệu phần mềm PLCSIM để mô phỏng PLC


Phần mềm PLCSIM là một phần mềm mô phỏng PLC rất hay, được kèm theo
phần mềm Step7

81
Dưới đây là chi tiết từng bước sử dụng PLCSIM để mô phỏng cho bài ví dụ
ứng dụng ở trên.

2.6.1. Khởi động phần mềm PLCSIM.


Có hai cách :
 Bạn kich vào Start->Simatic->Step7->S7->PLCSIM Simulating Modules
 Hoặc click vào biểu tượng ngay trên phần mềm SIMATIC
Manager

 Màn hình S7-PLCSIM xuất hiện với một CPU.

82
Trong đó :
- Vùng một chính là một cái CPU giống như thực tế : có thể RUN, STOP,
RUN-P và MRES giống như CPU thật. Ngoài ra cũng có các đèn báo như
ở trên CPU.
- Vùng 2 là các short menu cho phép người sử dụng quan sát, tác động vào
các miền nhớ, cũng cũng như các đầu vào ra của các module trong thực
tế.
- Chi tiết xem thêm trong tài liệu hướng dẫn sử dụng kèm theo phần mềm
Step7.

2.6.2. Truy nhập các module .


Để xuất hiện các cổng vào và ra thể hiện cho 2 module SM321 và 322 ta
lần lượt click vào các biểu tượng như trong hình vẽ dưới đây:

Đổi tên QB0 thành QB4 vì module SM322 được đánh địa chỉ từ QB4 trở
đi (xem thêm trong phần cấu hình cứng ở trên).

83
2.6.3. Tiến hành download chương trình xuống CPU.

2.6.3.1. Download cấu hình cứng

Trong phần HW Config, click vào biểu tượng trên short menu hoặc
vào PLC/Download trong phần menu chính.
Cửa sổ chọn CPU hiện ra

Ở đây chỉ có 1 CPU nên ta chọn OK.

84
Chọn OK.

2.6.3.2. Download chương trình .


Download các chương trình trong các khối OB, FC,FB xuống CPU. Ở đây ta chỉ
viết chương trình trong khối OB1, nên chỉ cần download một khối này.
Chuyển sang phần mềm soạn thảo và cũng Download như trên.

2.6.4. Tiến hành mô phỏng .


 Click vào RUN hoặc RUN-P để CPU chuyển sang chế độ RUN
 Click vào bít số 0 (I0.0) để tạo tín hiệu nút bấm mở cửa ta thấy kết quả là
Cuộn hút 1 được đóng lại (Q0.0) và đèn xanh sáng (Q0.2)

85
 Ta lại click vào I0.0 để đưa bit về 0 tương ứng với động tác nhả phím nhấn
“Mở”. Ta thấy Q0.0 và Q0.2 vẫn bằng 1. Tức là của vẫn được mở và đèn
xanh vẫn sáng.
 Ta click sang I0.1 (nút đóng cửa) :

Nhưng Q0.0 và Q0.2 vẫn bằng 1. Chứng tỏ khi cổng đang mở thì không thể đóng
lại được.
 Bây giờ ta bỏ click I0.1 và click I0.2 (nút dừng):

86
Ta thấy không còn bít nào đầu ra được bật, chứng tỏ cổng đã dừng lại.
 Bỏ click I0.2 và click vào I0.1(nút đóng):

Ta thấy cuộn 2 (Q4.1) được đóng lại và đèn đỏ (Q4.3) sáng , chứng tỏ cổng đang
được đóng lại.
 Bỏ click ở I0.1, ta thấy cổng vẫn được đóng.
Như vậy PLCSIM có thể mô phỏng được quá trình hoạt động của PLC như
trong thực tế. Giúp cho người thực hành có thể hiểu được thực tế mà không cần
tới thiết bị thật, giảm chi phí đầu tư.
Tuy nhiên, nó vẫn có những mặt hạn chế. Được thực hành thực tế sẽ có nhiều
vấn đề nảy sinh, giúp cho người học hiểu sâu hơn về hoạt động của PLC và cách

87
ứng dụng PLC vào các bài toán cụ thể, tăng thêm sự hiểu biết cũng như kinh
nghiệm làm việc.

3. BÀI 3

SỬ DỤNG BỘ TIMER/COUNTER
88
Nội dung chính:
 Giới thiệu về các bộ timer và nguyên tắc hoạt động
 Ứng dụng Timer
 Giới thiệu về các bộ counter và nguyên tắc hoạt động
 Ứng dụng Counter

3.1. Sử dụng bộ TIMER.

3.1.1. Nguyên tắc hoạt động.

Bộ thời gian (Timer) là bộ tạo thời gian trễ mong muốn giữa tín hiệu logic
đầu vào u(t) và tín hiệu logic đầu ra y(t).

u(t)
Timer y(t)
PV T-bit
CV
Thời gian
trễ đặt trước

S7-300 có 5 loại Timer khác nhau. Thời gian trễ mong muốn được khai
báo với Timer bằng một giá trị 16 bits bao gồm hai thành phần:
- Độ phân dải với đơn vị ms. Timer của S7-300 có 4 loại độ phân dải khác
nhau là 10ms, 100ms, 1s và 10s.

89
- Một số nguyên (BCD) trong khoảng 0 999 được gọi là PV (Preset Value-
giá trị đặt trước).
Vậy thời gian trễ mong muốn sẽ là:

= Độ phân dải x PV

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Giá trị PV dưới dạng mã BCD


Không sử dụng 0 PV 999

Độ phân dải
0 0 10ms
0 1 100ms
1 0 1s
1 1 10s

Ngay tại thời điểm kích Timer, giá trị PV được chuyển vào thanh ghi 16
bits của Timer T-Word (gọi là thanh ghi CV). Timer sẽ ghi nhớ khoảng thời
gian trôi qua kể từ khi được kích bằng cách giảm dần một cách tương ứng
nội dung thanh ghi CV. Nếu nội dung thanh ghi trở về 0 thì Timer đã đạt
được giá trị mong muốn và điều này sẽ được báo ra ngoài bằng cách đổi
trạng thái tín hiệu y(t). Việc thông báo ra ngoài bằng cách thay đổi trạng thái
tín hiệu đầu ra y(t) như thế nào còn phụ thuộc vào loại Timer nào được sử
dụng.
Bên cạnh sườn lên của tín hiệu đầu vào u(t), Timer còn có thể được kích
bằng sườn lên của tín hiệu kích chủ động có tên là tín hiệu enable nếu như tại
thời điểm có sườn lên của tín hiệu enable và tín hiệu đầu vào u(t) có giá trị
logic 1.
Nguyên lý làm việc của Timer

90
Tín hiệu đầu vào u(t)

Tín hiệu enable

Giá trị PV


Nội dung thanh ghi CV

Thời điểm Timer được kích

Từng loại Timer được đánh số từ 0 255. Tùy thuộc từng loại CPU. Timer
ký hiệu là Tx với x là số hiệu của Timer (0 x 255). Ký hiệu Tx đồng thời
cũng là địa chỉ hình thức của thanh ghi CV (T-Word) và đầu ra (T_bit) của
Timer đó. Tuy có cùng địa chỉ hình thức nhưng T-Word và T-bit vẫn được
phân biệt với nhau nhờ toán hạng Tx. Khi dùng lệnh làm việc làm việc với
từ, T-bit được hiểu là địa chỉ của T-Word, ngược lại khi sử dụng lệnh làm
việc với tiếp điểm, Tx được hiểu là địa chỉ của T-bit.
Một Timer có thể được đưa về trạng thái chờ khởi động ban đầu bằng lệnh
Reset. Khi đó, T-Word và T-bit đồng thời được xóa về 0, tức là thanh ghi
đếm tức thời CV được đặt về 0 và tín hiệu đầu ra cũng có trạng thái logic
bằng 0.

3.1.2. Các loại Timer của S7-300.

3.1.2.1. Tổng quan chung


S7-300 có 255 Timer, được chia thành các loại khác nhau :
- S_PULSE: Tạo xung không có nhớ
- S_PEXT: Tạo xung có nhớ
- S_SDT: Trễ theo sườn lên không có nhớ
- S_ODTS: Trễ theo sườn lên có nhớ
- S_OFFDT: Trễ theo sườn xuống.

91
3.1.2.2. Khai báo sử dụng Timer
Khai báo sử dụng một Timer bao gồm các bước :
- Khai báo tín hiệu enable nếu muốn sử dụng tín hiệu chủ động kích
- Khai báo tín hiệu đầu vào u(t)
- Khai báo thời gian trễ mong muốn
- Khai báo loại Timer được sử dụng (SD, SS, SP, SE, SF)
- Khai báo tín hiệu xóa Timer nếu muốn sử dụng chế độ reset chủ động
Trong tất cả các bước thì bước 2, 3, 4 là bắt buộc.

 Timer S_PULSE .

 Kí hiệu

Txx
x
S_PULSE

S Q
TV BI
R BCD

Thông số Loại Data Vùng nhớ Miêu tả


Txxx TIMER T
S BOOL I, Q, M, L, D Tín hiệu vào
TV S5TIME I, Q, M, L, D Thời gian đặt
R BOOL I, Q, M, L, D Reset
Thời gian còn lại
BI WORD I, Q, M, L, D
Dạng I
Thời gian còn lại
BCD WORD I, Q, M, L, D
Dạng BCD
Q BOOL I, Q, M, L, D Trạng thái Timer

S gian:
 Giản đồ thời
R  
C 92
V
Q
Timer S_PULSE bắt đầu đếm giảm từ giá trị đặt TV về 0 khi đầu vào cho
phép hoạt động của Timer có giá trị chuyển từ 01.
Trạng thái đầu ra Q bật lên “1” trong quá trình Timer đếm. Tuy nhiên, nếu
tín hiệu vào S chuyển từ 10 trước khi Timer đếm về 0 thì trạng thái của bit
đầu ra Q chuyển ngay xuống 0.
Bộ Timer được reset (R) khi tín hiệu đầu vào R chuyển từ 01. Khi đó,
T-Word (thanh ghi CV) và T-bit cũng đồng thời được đưa về 0. Nếu tín hiệu
xóa về 0, Timer sẽ chờ được kích lai.
 Thanh ghi trạng thái:
BR CC1 CC0 OV OS OR STA RLO FC
- - - - - x x x 1

Ví dụ:

93
 Mô phỏng bằng PLCSIM:

Nếu tín hiệu đầu vào I124.0 chuyển từ 01, Timer sẽ bắt đầu đếm lùi. Bộ
đếm sẽ tiếp tục đếm hết 20s trong khi tín hiệu I124.0 giữ là 1. Nếu trước khi
thời gian đặt của Timer được đếm về 0 mà tín hiệu I124.0 chuyển từ 1 xuống
0 thì Timer sẽ dừng lại.
Đầu ra Q124.0 là 1 khi Timer đang đếm và bằng 0 khi có tín hiệu reset
hay hết thời gian đặt.

94
 Timer S_PEXT.
Txx
x
S_PEXT
 Kí hiệu S Q
TV BI
R BCD

Thông số Loại Data Vùng nhớ Miêu tả


Txxx TIMER T
S BOOL I, Q, M, L, D Tín hiệu vào
TV S5TIME I, Q, M, L, D Thời gian đặt
R BOOL I, Q, M, L, D Reset
Thời gian còn lại
BI WORD I, Q, M, L, D
Dạng I
Thời gian còn lại
BCD WORD I, Q, M, L, D
Dạng BCD
Q BOOL I, Q, M, L, D Trạng thái Timer

 Giản đồ thời gian:


S

R
 
C
V
Q

95
Thời gian giữ trễ được bắt đầu tính từ khi xuất hiện sườn lên của tín hiệu
vào(S), tức là ở ngay thời điểm đó giá trị PV được chuyển vào thanh ghi T-
Word(CV). Trong khoảng thời gian trễ, tức là khi T-Word 0, T-bit có giá trị
bằng 1. Ngoài khoảng thời gian trễ T-bit có giá trị bằng 0. Nếu chưa hết thời
gian trễ mà tín hiệu đầu vào về 0 thì thời gian trễ vẫn được tính tiếp tục, tức
là T-bit và T-Word không về 0 theo tín hiệu đầu vào.
 Thanh ghi trạng thái:
BR CC1 CC0 OV OS OR STA RLO FC
- - - - - x x x 1

Ví dụ:

Nếu tín hiệu vào I124.0 chuyển từ 0 lên 1, Timer T5 sẽ được khởi động.
Timer sẽ tiếp tục chạy hết thời gian đặt (PV) mà không phụ thuộc vào tín
hiệu đầu vào S. Tín hiệu đầu ra Q124.0 bằng 1 từ khi có đầu vào I 124.0 đến
hết thời gian đặt PV. Timer sẽ được reset lại khi tín hiệu vào I 124.1 bằng 1.
 Mô phỏng bằng PLCSIM:

96
 Timer S_ODT.

 Kí hiệu
Txx
x
S_ODT

S Q
TV BI
R BCD

Thông số Loại Data Vùng nhớ Miêu tả


Txxx TIMER T

97
S BOOL I, Q, M, L, D Tín hiệu vào
TV S5TIME I, Q, M, L, D Thời gian đặt
R BOOL I, Q, M, L, D Reset
Thời gian còn lại
BI WORD I, Q, M, L, D
Dạng I
Thời gian còn lại
BCD WORD I, Q, M, L, D
Dạng BCD
Q BOOL I, Q, M, L, D Trạng thái Timer

 Giản đồ thời gian:


S

R   
C
V
Q

Thời gian giữ trễ được bắt đầu khi có sườn lên của tín hiệu đầu vào(S),
tức là ở ngay thời điểm đó giá trị PV được chuyển vào thanh ghi T-
Word(CV). Trong đó, khoảng thời gian trễ T-bit có giá trị bằng 0. Khi hết
thời gian trễ T-bit có giá trị bằng 1. Như vậy, T-bit có giá trị bằng 1 khi T-
Word bằng 0.
Khoảng thời gian trễ chính là khoảng thời gian giữa thời điểm xuất hiện
sườn lên của tín hiệu đầu vào và sườn lên của T-bit.
Khi tín hiệu vào bằng 0, T-bit và T-Word cùng nhận giá trị 0. Khi có tín
hiệu reset ở đầu vào R tín hiệu ra Q (T-Word) trở về 0.
 Thanh ghi trạng thái:

BR CC1 CC0 OV OS OR STA RLO FC


- - - - - x x x 1

98
Ví dụ:

Nếu tín hiệu đầu vào I 124.0 chuyển trạng thái từ 0 lên 1, Timer T30 sẽ
được khởi động. Nếu như thời gian trễ kết thúc và tín hiệu đầu vào I 124.0
vẫn là 1 thì tín hiệu đầu ra Q124.0 sẽ đươc bật lên 1. Nếu tín hiệu đầu vào I
124.0 chuyển trạng thái từ 1 xuống 0, bộ Timer dừng lại và đầu ra Q 124.0 sẽ
bằng 0. Nếu tín hiệu đầu vào R chuyển trạng thái từ 1 lên 0, Timer sẽ được
reset dù thời gian trễ còn hay không.
 Mô phỏng bằng PLCSIM:

99
 Timer S_ODTS.
Txx
 Kí hiệu x
S_ODTS
S Q
TV BI
R BCD

Thông số Loại Data Vùng nhớ Miêu tả


Txxx TIMER T
S BOOL I, Q, M, L, D Tín hiệu vào
TV S5TIME I, Q, M, L, D Thời gian đặt
R BOOL I, Q, M, L, D Reset
Thời gian còn lại
BI WORD I, Q, M, L, D
Dạng I
Thời gian còn lại
BCD WORD I, Q, M, L, D
Dạng BCD
Q BOOL I, Q, M, L, D Trạng thái Timer

 Giản đồ thời gian:

R   
C 100
V
Q
Thời gian giữ trễ được bắt đầu khi có sườn lên của tín hiệu đầu vào(S), tức
là ở ngay thời điểm đó giá trị PV được chuyển vào thanh ghi T-Word(CV).
Khi hết thời gian trễ, tức là khi T-Word =0, T-bit có giá trị băng 1.
Khoảng thời gian trễ chính là khoảng thời gian giữa thời điểm xuất hiện
sườn lên của tín hiệu đầu vào và sườn lên của T-bit.
Với bộ Timer có nhớ thời gian trễ vẫn được tính cho dù lúc đó tín hiệu đầu
vào đã về 0.
Khi tín hiệu vào bằng 0, T-bit và T-Word cùng nhận giá trị 0. Khi có tín hiệu
reset ở đầu vào R tín hiệu ra Q(T-Word) trở về 0.

 Thanh ghi trạng thái:


BR CC1 CC0 OV OS OR STA RLO FC
- - - - - x x x 1

Ví dụ:

101
Nếu tín hiệu đầu vào I 124.0 chuyển trạng thái từ 0 lên 1, Timer T30 sẽ
được khởi động. Timer sẽ chạy mà không quan tâm đến tín hiệu đầu vào I
124.0. Nếu tín hiệu đầu vào I 124.0 chuyển trạng thái từ 0 lên 1 trước khi hết
thời gian trễ, bộ Timer sẽ khởi động lại. Đầu ra Q 124.0 sẽ bằng 1 khi thời
gian trễ kết thúc.. Nếu tín hiệu đầu vào R chuyển trạng thái từ 1 lên 0, Timer
sẽ được reset dù thời gian trễ còn hay không.
 Mô phỏng bằng PLCSIM:

Txx
x
S_OFFDT
 Timer S_OFFDT
S Q
TV BI
102
R BCD
 Kí hiệu

Thông số Loại Data Vùng nhớ Miêu tả


Txxx TIMER T
S BOOL I, Q, M, L, D Tín hiệu vào
TV S5TIME I, Q, M, L, D Thời gian đặt
R BOOL I, Q, M, L, D Reset
Thời gian còn lại
BI WORD I, Q, M, L, D
Dạng I
Thời gian còn lại
BCD WORD I, Q, M, L, D
Dạng BCD
Q BOOL I, Q, M, L, D Trạng thái Timer

 Giản đồ thời gian:


S

R   
C
V
Q

Thời gian giữ trễ được bắt đầu khi có sườn xuống của tín hiệu đầu vào(S),
tức là ở ngay thời điểm đó giá trị PV được chuyển vào thanh ghi T-
Word(CV).
Trong khoảng thời gian giữa sườn lên của tín hiệu vào hoặc T-Word khác
0, thì T-bit có giá bằng 1. Ngoài khoảng đó T-bit có giá trị bằng 0.

103
Khi tín hiệu vào bằng 0, T-bit và T-Word cùng nhận giá trị 0. Khi có tín
hiệu reset ở đầu vào R, tín hiệu ra Q(T-Word) trở về 0.
 Thanh ghi trạng thái:
BR CC1 CC0 OV OS OR STA RLO FC
- - - - - x x x 1

Ví dụ:

Nếu tín hiệu đầu vào I 124.0 chuyển trạng thái từ 1 xuống 0, Timer sẽ được
khởi động. Đầu ra Q có giá trị bằng 0 khi đầu vào I 124.0 bằng 1 hoặc khi bộ
Timer đang đếm.
Nếu tín hiệu đầu vào I 124.1 chuyển từ 0 lên 1 trong khi bộ Timer chưa hết
thời gian trễ, Timer sẽ bị reset.

 Mô phỏng bằng PLCSIM:

104
3.1.3. Bài tập ứng dụng bộ timer.
Điều khiển động cơ chạy, dừng theo chế độ sao- tam giác :
Yêu cầu bài toán :
Bấm nút Start đóng động cơ chạy.

105
Khi chạy có khởi động sao tam giác
Bấm nút Stop dừng động cơ.
Ký hiệu:
Start : I0.0
Stop : I0.1
K1 : Q0.0
K2 : Q0.1
K3 : Q0.2
Phân tích bài toán
Khi nhấn Start động cơ chạy theo theo chế độ sao
Khi hoạt động cơ ở chế độ sao thì đóng Contactor K1, K2.
Khởi tạo timer T0, tạo trễ trong khoảng thời gian 5s
Khi hoạt động cơ ở chế tam giác thì đóng Contactor K1, K3.
Chương trình main:

106
107
Bài tập về nhà :

1. Tạo xung vuông như hình vẽ:

5ms 10ms

2. Bài toán đèn giao thông ngã tư :

108
Giản đồ thời gian được cho như sau (bạn đọc hãy tự phân tích để có giản đồ
này)

Timer

Blue(A)

Yellow(A)

Red(A)

Red(B)

Blue(B)

Yellow(B)

109
3.2. Sử dụng bộ COUNTER.

3.2.1. Giới thiệu về Counter.

3.2.1.1. Nguyên tắc làm việc.


Counter là bộ đếm thực hiện chức năng đếm sườn (cạnh) xung của tín hiệu
đầu vào. S7-300 có tối đa 256 counter (Phụ thuộc vào từng loại CPU)
Ký hiệu: Cx, Trong đó x là số nguyên từ 0->255.

Tín hiệu đếm C-Bit Báo trạng thái


CU
C-Word

C-Word

Số sườn xung đếm được ghi vào thanh ghi 2 byte ( Word ) của bộ đếm gọi
là thanh ghi C_Word ( CV). Bộ đếm khai báo trạng thái của C_Work ra ngoài
qua chân C_Bit của nó :
Nếu CV # 0 thì C_bit =1. Ngược lại CV=1 thì C_bit = 0

Giá trị đặt trước PV ( Present Value ) của bộ đếm chỉ được truyền vào
C_Word tại thời điểm xuất hiện sườn lên của tín hiệu đặt ( Set ) S.
Bộ đếm có thể được xóa bằng tín hiệu Reset. Khi bộ đếm được xóa thì cả
C_Word và C_bit đều có giá trị = 0

3.2.1.2. Phân loại.

 Bộ đếm lên : Counter Up ( S_CU)


 Bộ đếm lùi : Counter Down (S_CD)
 Bộ đếm tiến lùi :Counter UpDown ( S_CUD )
 Bộ đếm tiến (S_CU)

110
Ký hiệu:

Trong đó:
CU- Ngõ vào tín hiệu đếm lên(Theo sườn). Có giá trị kiểu BOOL
S- Cho phép đặt giá trị PV vào bộ đếm CV
PV- Giá trị đặt. Có giá trị trong khoảng 0->999
R- Reset giá trị CV
Q- Ngõ ra trạng thái Counter
CV- Ngõ ra giá trị tức thời của Counter ( dạng Hex )
CV_BCD- Ngõ ra giá trị tức thời của Counter ( dạng BCD )

Ví dụ về bộ đếm Counter Up:

 Bộ đếm lùi (S_CD)

111
Ký hiệu:

Trong đó:
CD- Ngõ vào tín hiệu đếm lùi (Theo sườn). Có giá trị kiểu BOOL
S- Cho phép đặt giá trị PV vào bộ đếm CV
PV- Giá trị đặt. Có giá trị trong khoảng 0->999
R- Reset giá trị CV
Q- Ngõ ra trạng thái Counter
CV- Ngõ ra giá trị tức thời của Counter ( dạng Hex )
CV_BCD- Ngõ ra giá trị tức thời của Counter ( dạng BCD )
Ví dụ về bộ đếm Counter Down:

 Bộ đếm lên (S_CUD)

Ký hiệu:

112
Trong đó:
CU/CD- Ngõ vào tín hiệu đếm tiến/lùi (Theo sườn). Có giá trị kiểu
BOOL
S- Cho phép đặt giá trị PV vào bộ đếm CV
PV- Giá trị đặt. Có giá trị trong khoảng 0->999
R- Reset giá trị CV
Q- Ngõ ra trạng thái Counter
CV- Ngõ ra giá trị tức thời của Counter ( dạng Hex )
CV_BCD- Ngõ ra giá trị tức thời của Counter ( dạng BCD )

Ví dụ về bộ đếm Counter Up/Down:

3.2.2. Ví dụ ứng dụng bộ counter.


Yêu cầu bài toán :
- Kiểm tra số người vào/ra phòng.
- Nếu có người trong phòng thì đèn trong phòng tự bật sáng
Thiết kế :

113
 Tại cửa ra vào bố trí 2 cảm biến quang .
 Có 2 đèn báo khi có người vào và người ra.

Phòng khách

S S
1 2

Sensor Đèn báo đi


I0.0 vào
PLC Q0.1
Đèn báo đi ra
S7-300 Q0.2
Sensor Đèn trong
I0.1
phòng
Q0.0

Chương trình trong PLC:

114
115
3.2.3. Bài tập ứng dụng bộ Counter
Đếm sản phẩm và đóng hộp trong các dây truyền sản suất.

4. BÀI 4

SỬ DỤNG MODULE ANALOG

Nội dung chính :


 Giới thiệu chhung về module analog

116
 Nguyên lý hoạt động của module analog
 Sử dụng các hàm trong thư viện để làm việc với module analog
 Ứng dụng module analog

4.1. Giới thiệu chung về Module analog


Tương tự như trong PLC S7-200, S7-300 cũng sử dụng các Module
Analog để vào/ra tín hiệu analog. Trong thực tế ta gặp những bài toán như: Sử
dụng biến tần để điều chỉnh tốc độ động cơ theo sự tăng của nhiệt độ, hay điều
chỉnh van mở từ (0 100)% phụ thuộc vào lưu lượng nước trong bể.....Vậy làm
thế nào để xử lý được các tín hiệu ở dạng tương tự đó? Module analog chính là
một công cụ để giải quyết bài toán này.

4.1.1. Khái niệm module analog


Module analog là một công cụ để xử lý các tín hiệu tương từ thông qua
việc xử lý các tín hiệu số.

4.1.2. Analog input module


Là một bộ biến đổi tương tự/số (A/D). Nó chuyển tín hiệu tương tự ở đầu
vào thành các con số ở đầu ra. Dùng để kết nối các thiết bị đo với bộ điều
khiển.Ví dụ như đo lưu lượng nước, đo nhiệt độ…

4.1.3. Analog output module


Là một bộ biến đổi số/tương tự (D/A). Nó chuyển tín hiệu số ở đầu vào
thành tín hiệu tương tự ở đầu ra. Dùng để điều khiển các thiết bị với dải đo
tương tự. Ví dụ như điều khiển quạt quay phụ thuộc vào nhiệt độ phòng…

117
4.2. Nguyên lý hoạt động chung của các cảm biến và các tín hiệu đo
chuẩn trong công nghiệp.
Thông thường đầu vào của các module analog là các tín hiệu điện áp hoặc
dòng điện. Trong khi đó các tín hiệu tương tự cần xử lý lại thường là các tín hiệu
không điện như nhiệt độ, độ ẩm, áp suất, lưu lượng, khối lượng…Vì vậy người
ta cần phải có một thiết bị trung gian để chuyển các tín hiệu này về tín hiệu điện
áp hoặc tín hiệu dòng điện. Thiết bị này được gọi là các đầu đo hay cảm biến.
Để tiện dụng và đơn giản các tín hiệu vào của module analog input và tín
hiệu ra của module analog output tuân theo chuẩn tín hiệu của công nghiệp.
Có 2 loại chuẩn phổ biến là chuẩn điện áp và chuẩn dòng điện.
- Điện áp : (0 10)V, (0 5)V, 5V…
- Dòng điện : (4 20)mA, (0 20)mA, 10mA…
Trong khi đó tín hiệu từ các cảm biến đưa ra lại không đúng theo chuẩn.
Vì vậy người ta cần phải dùng thêm một thiết bị chuyển đổi để đưa chúng về
chuẩn công nghiệp. Thiết bị này được gọi là các Transmiter.
Kết hợp các đầu cảm biến và các thiết bị chuyển đổi này thành một bộ
cảm biến hoàn chỉnh, thường gọi tắt là thiết bị cảm biến, hay chính xác là thiết
bị đo và chuyển đổi đo (Transducer).

(010)V
Thiết bị Analog Input
Đầu đo chuyển (A/D)
đổi Các con số
(420)mA

Analog Output
Tín hiệu ra tương tự (D/A)
(010)V Các con số
(420)mA 118
4.3. Giới thiệu về hai module vào ra analog SM331 (AI2x12Bit) và
SM332 (AO2x12Bit).

4.3.1. Đặc điểm của module SM331 (AI2x12Bit)


SM 331 là một module đầu vào tương tự gồm có:
 Hai kênh đầu vào tương tự, tạo thành nhóm.
 Độ phân giải tùy thuộc vào cách chọn giá trị của “integration time” :
 9 bít + dấu.
 12 bit + dấu.
 14 bít + dấu.

Integration 2.5 16.6 20 100


time (ms)

 Phương pháp đo có thể chọn là :


 Điện áp
 Dòng điện
 Điện trở
 Nhiệt độ.

119
 Sơ đồ khối của module SM331:

 Phương pháp đo và dải đầu vào:


Phương pháp đo Dải đo Thiết lập
E : Điện áp ±80 mV A
±250 mV
±500 mV

120
±1000 mV
±2.5 V B
±5 V
1 tới 5V
±10 V
Các loại cặp nhiệt A
TC-I, TC-E

2DMU : đo dòng 2 dây 4÷20mA D


4DMU: đo dòng 4 dây C

R-4L A

TC-IL A

TC-EL A

RTD-4L A

121
4.3.2. Đặc điểm của module ra analog SM332 (AO2x12Bit)
 SM332 là module đầu ra tương tự có:
 Hai kênh đầu ra riêng lẻ
 Đầu ra có thể lựa chọn kiểu dòng hoặc áp.
 Độ phân giải 12 Bit
 Sơ đồ khối:

 Bảng thiết lập đầu ra:


Kiểu Dải đầu ra
Điện áp ±10V
0÷10V
1÷5V
Dòng điện ±20mA
0÷20mA

122
4÷20mA

4.4. Sử dụng hàm thư viện FC105 và FC106.


Trong PLC S7-300 tích hợp sẵn hàm chuyển đổi các giá trị analog trong
thư viện.
Đó là FC105 và FC106.

4.4.1. Hàm căn chỉnh tín hiệu đầu vào FC105 “SCALE “.

 Mô tả chức năng SCALE:


Nhận một giá trị kiểu Integer (IN) và chuyển đổi thành giá trị kiểu số thực
trong đơn vị điện và được scale giữa giới hạn thấp và giới hạn cao (LO_LIM và
HI_LIM). Kết quả được ghi vào cổng OUT.
 SCALE sử dụng phương trình:
OUT=[((FLOAT (IN) – K1)/(K2 – K1))*(HI_LIM - LO_LIM) ] + LO_LIM
Trong đó :
K1 và K2 được set dựa vào giá trị đầu vào hoặc BIPOLAR hoặc UNIPOLAR.
BIPOLAR: Giá trị integer đầu vào nằm giữa -27648 và 27648.
K1 = -27648.0
K2 = +27648.0
UNIPOLAR: Giá trị đầu vào integer nằm giữa 0 và 27648.
K1 = 0.0

123
K2 = +27648.0
Nếu giá trị integer đầu vào lớn hơn K2 thì đầu ra (OUT) được giữ ở
HI_LIM và báo lỗi. Nếu giá trị integer đầu vào thấp hơn K1 thì đầu ra được giữ
ở LO_LIM và báo lỗi.
Các tham số của hàm FC105:
Loại Vùng
Tham số Tên Miêu tả
Data nhớ
I, Q, M, Cho phép đầu vào với trạng thái
EN Input BOOL
D, L tín hiệu của 1
Cho phép đầu ra có một trạng thái
I, Q, M,
ENO Output BOOL tín hiệu ra của 1 nếu chức năng
D, L
được thực hiện không bị lỗi
I, Q, M,
Giá trị đầu vào được scale thành
IN Input INT D, L, P,
giá trị thực của các đơn vị điện
const
I, Q, M,
HI_LIM Input REAL D, L, P, Giới hạn trên của các đơn vị điện
const
I, Q, M,
LO_LIM Input REAL D, L, P, Giới hạn dưới của các đơn vị điện
const
Trạng thái tín hiệu của 1 chỉ thị
I, Q, M, giá trị Input là Bipolar.
BIPOLAR Input BOOL
D, L, P Trạng thái tín hiệu 0 chỉ thị giá trị
input là Unipolar
I, Q, M,
OUT Output REAL Kết quả của Scale
D, L, P
RET_VAL Output WORD I, Q, M, Giá trị trả về của W#16#0000 nếu

124
D, L, P chỉ dẫn lệnh không bị lỗi.
 Thông tin lỗi:
Nếu giá trị integer đầu vào lớn hơn K2 thì đầu ra (OUT) được giữ ở HI_LIM
và báo lỗi. Nếu giá trị integer đầu vào nhỏ hơn K1 thì đầu ra được giữ ở
LO_LIM và bào lỗi. Trạng thái tín hiệu của ENO là 0 và RET_VAL bằng với
W#16#0008.
 Ví dụ sử dụng:

125
4.4.2. Hàm căn chỉnh tín hiệu đầu ra FC106 “UNSCALE”

 Mô tả chức năng.
Chức năng UNSCALE nhận một giá trị kiểu Real (IN) trong các đơn vị điện
và được scale giữa giới hạn thấp và giới hạn cao (LO_LIM và HI_LIM) sau
chuyển đổi thành giá trị kiểu nguyên. Kết quả được ghi vào cổng OUT.
 UNSCALE sử dụng phương trình:
OUT=[((IN – LO_LIM)/(HI_LIM – LO_LIM))*(K2 – K1)]+ K1
Hằng số K1 và K2 được set dựa vào giá trị đầu vào hoặc BIPOLAR hoặc
UNIPOLAR.
IPOLAR: Giá trị integer đầu ra nằm giữa -27648 và +27648.
K2 = -27648.0
K2 = +27648.0
UNIPOLAR: Giá trị đầu ra integer nằm giữa 0 và 27648.
K1 = 0.0
K2 = +27648.0
Nếu giá trị đầu vào nằm ngoài dải LO_LIM và HI_LIM thì đầu ra (OUT)
được giữ gần hơn với hoặc giới hạn thấp hoặc giới hạn cao trong một dải xác
định (BIPOLAR hoặc UNIPOLAR) và báo lỗi.
 Thông tin lỗi:
Nếu giá trị đầu vào nằm ngoài dải LO_LIM và HI_LIM thì đầu ra (OUT)
được giữ gần hơn với hoặc giới hạn thấp hoặc giới hạn cao trong một dải xác

126
định (BIPOLAR hoặc UNIPOLAR) và báo lỗi. Trạng thái tín hiệu ENO là 0 và
RET_VAL bằng với W#16#0008.
 Các tham số FC106:
Loại
Tham số Tên Vùng nhớ Miêu tả
Data
I, Q, M, Cho phép đầu vào khi trạng thái tín
EN Input BOOL
D, L hiệu của 1
Cho phép đầu ra có trạng thái 1
I, Q, M,
ENO Output BOOL nếu chức năng được thực hiện
D, L
không bị lỗi
I, Q, M,
Giá trị đầu vào được unscale thành
IN Input REAL D, L, P,
giá trị nguyên
const
I, Q, M,
HI_LIM Input REAL D, L, P, Giới hạn trên của các đơn vị điện
const
I, Q, M,
LO_LIM Input REAL D, L, P, Giới hạn dưới của các đơn vị điện
const
Trạng thái tín hiệu 1 chỉ thị giá trị
I, Q, M, Input là Bipolar.
BIPOLAR Input BOOL
D, L, Trạng thái tín hiệu 0 chỉ thị giá trị
input là Unipolar
I, Q, M,
OUT Output INT Kết quả của unscale
D, L, P
I, Q, M, Giá trị trả về của W#16#0000 nếu
RET_VAL Output WORD
D, L, P chỉ dẫn lệnh không bị lỗi.

127
Ví dụ sử dụng:

4.5. Ứng dụng module analog input trong thực tế

4.5.1. Bài toán.


Bài toán điều khiển mức nước trong bình:

128
output SP
PID
Controller

PV

Q P-2
Cảm biến đo khoảng cách
Input : h1 – h2
Output : 4-20mA
V-1
h2

Cảm biến
khoảng cách
h
h1

V-2

Ở đây ta sẽ quan tâm tới hai tín hiệu analog và ứng dụng module analog cũng
như sử dụng các hàm trong thư viện vào bài toán này:
- Tín hiệu ra điều khiển van.
- Tín hiệu đo mức nước từ cảm biến siêu âm.

Yêu cầu :
- Viết chương trình đọc mức nước thực.

129
- Viết chương trình mở van ở một vị trí bất kì.

4.5.2. Tính toán mức nước từ cảm biến.


 Nguyên tắc hoạt động của bộ cảm biến mức như sau:
 Khi mức nước ở h1 : tín hiệu ra là nhỏ nhất là 4mA
 Khi mức nước ở h2 : tín hiệu ra là lớn nhất là 20mA
 Nguyên tắc của bộ analog đầu vào :
 Khi có dòng là 4 mA đặt ở đầu vào thì nó sẽ chuyển đổi thành số 0 ở đầu
ra. Con số này sẽ được đưa tới CPU để xử lý.
 Tương tự khi có dòng là 20mA thì con số đó là 27648.
Sự biến đổi từ giá trị đầu vào tương tự sang đầu các con số là sự biến đổi 1 –
1 và hoàn toàn tuyến tính. Như vậy ta lập được mối quan hệ như sau:

Tín hiệu
tương tự

h2
(20mA)
h?

h1
(4mA)

0 10000 Giá trị chuyển


27648
đổi (số)

Mối quan hệ giữa đầu vào và đầu ra có dạng đường thẳng : y = ax + 4


Dễ dàng nhận ra phương trình trên có dạng:

y= x +4. Nếu cần tính dòng điện đầu vào.

y= x +h1. Nếu cần tính mức đầu vào.

130
Dựa vào phương trình trên ta có thể viết chương trình tính toán. Hoặc là
sử dụng hàm có sẵn trong thư viện, là hàm FC105 “SCALE”.

4.5.3. Điều khiển van.

 Van được điều khiển bằng dòng điện .


 Khi dòng điện cấp cho van là 4mA, van sẽ đóng hoàn toàn (0%).
 Khi dòng điện cấp cho van là 20mA, van sẽ mở hoàn toàn (100%).
 Nếu dòng điện ở một giá trị bất kì trong dải 4÷20mA thì van sẽ mở ở một
vị trí bất kỳ 0÷100%.
 Nguyên tắc hoạt động của bộ analog đầu ra :
 Khi đặt vào module số 0 , đầu ra của module sẽ chuyển sang tín hiệu dòng
4mA
 Tương tự khi đặt con số 27648, thì giá trị đầu ra sẽ là 20mA
Ta xây dựng được mối quan hệ như sau :

Giá trị số

27648

0 20% Giá trị đầu ra


0% 100%
(4mA (20mA analog
) )

Tương tự ta cũng xây dựng được phương trình biểu diễn mối quan hệ:
y = 1728x -6912. Nếu chọn x là dòng điện cần tạo ra.

131
y= x . Nếu chọn x là độ mở van.

Ta có thể viết hàm để tính toán theo phương trình trên. Hoặc sử dụng hàm sẵn
có trong thư viện, là FC106 “UNSCALE”

4.5.4. Viết chương trình trong phần mềm Step7.

 Tạo một Project mới.


 Cấu hình phần cứng.

 Viết chương trình trong khối OB1.

132
 Tiến hành mô phỏng trên PLCSIM.
 Khởi động PLCSIM với cửa sổ như sau :

 Download cấu hình cứng.

133
 Download các khối hàm FC105,FC106.
 Download khối chương trình trong OB1.

Giám sát trên OB1 :

134
4.6. Bài tập
Sử dụng các module analog trong bài toán điều khiển quá trình trao đổi
nhiệt không tiếp xúc.

135
5. BÀI 5

SỬ DỤNG MODULE PID VÀ THỜI GIAN THỰC


136
Nội dung chính :
 Giới thiệu về module PID mềm có trong phần mềm Step7
 Đặc điểm của bộ điều khiển PID
 Sử dụng về module mềm FB41
 Ứng dụng bộ điều khiển PID trong bài toán điều khiển mức

5.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

137
5.2. Đặc điểm của 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 Phần giao diện gán Sử dụng, vận


chức năng các tham số cho bộ hành
điều khiển

Một module PID mềm gồm có các thành phần :


 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ự.

5.3. Sử dụng 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:

138
139
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.

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 Dải Giá trị Mô tả
loại giá trị mặc
định
COM_RST BOOL FALS COMPLETE RESTART
E 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
MAIN_ON BOOL TRUE MANUAL VALUE ON
Khi đầu vào “manual value on”
là TRUE, mạch vòng điều khiển

140
sẽ bị ngắt , các giá trị sẽ được
thiết lập bằng tay.
PVPER_ON BOOL FALS PROCESS VARIABLE
E 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
P_SEL BOOL TRUE PROPORTIONAL ACTION
ON
Chọn luật điều khiển P
I_SEL BOOL TRUE INTEGRAL ACTION ON
Chọn luật điều khiển I
INT_HOLD BOOL FALS INTEGRAL ACTION HOLD
E Đầ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
I_ITL_ON BOOL FALS INITIALIZATION OF THE
E 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
D_SEL BOOL FALS DERIVATIVE ACTION ON
E Chọn thành phần D
CYCLE TIME >=1ms T#1s SAMPLING TIME

141
Thời gian lấy mẫu
SP_INT REAL 100.0… 0.0 INTERNAL SETPOINT
100.0% Tín hiệu chủ đạo
PV_IN REAL 100.0… 0.0 PROCESS VARIABLE IN
100.0% 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
PV_PER WORD W#16 PROCESS VARIABLE
#0000 PERIPHERAL
Biến quá trình được nối với
CPU thông qua cổng vào tương
tự
MAIN REAL 100.0… 0.0 MANUAL VALUE
100.0% Cổng vào “manual value” được
sử dụng để đặt giá trị bằng các
hàm giao diện
GAIN REAL 2.0 PROPORTIONAL GAIN
Hệ số tỉ lệ của luật P
TI TIME >= T#20s RESET TIME
CYCLE Hằng số thời gian tích phân
TD TIME >= T#10s DERIVATIVE TIME
CYCLE Hằng số thời gian vi phân
TM_LAG TIME >= T#2s TIME LAG OF THE
CYCLE DERIVATIVE ACTION
/2 Chọn thời gian tích cực của luật
điều khiển vi phân
DEADB_W REAL >=0.0% 0.0 DEAD BAND WIDTH
Để xử lý tính hiệu nhiễu

142
LMN_HLM REAL LMN_L 100.0 MANIPULATED VALUE
LM… HIGH LIMIT
100% Thiết lập bằng tay giới hạn trên
LMN_LLM REAL -100… 0.0 MANIPULATED VALUE
LMN_H LOW LIMIT
LM % Thiết lập bằng tay giới hạn dưới
PV_FAC REAL 1.0 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
PV_OFF REAL 0.0 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
LMN_FAC REAL 1.0 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

LMN_OFF REAL 0.0 MANIPULATED VALUE

143
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… 0.0 INITIALIZATION VALUE OF


100.0% 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
DISV REAL -100.0… 0.0 DISTURBANCE VARIABLE
100.0% 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ố Kiểu Dải giá Giá trị mặc Mô tả
loại trị định
LMN REAL 0.0 MANIPULATED
VALUE
Giá trị được thiết lập bằng
tay thông qua cổng ra
LMN
LMN_PER WORD W#16#0000 MANIPULATED
VALUE PERIPHERAL
Giá trị đầu ra được thiết

144
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 BOOL 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

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

145
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 PROCESS VALUE


Tín hiệu quá trình được
xuất ra cổng PV
ER REAL 0.0 ERROR SIGNAL
Tín hiệu sai lệch được
xuất qua cổng ER

5.3.1. Sử dụng khối FB41 “CONT_C” trong phần mềm Step7

5.3.1.1. Tạo một trạm PLC S7-300 :

5.3.1.2. Chèn khối FB41 vào trong Project :


Mở thư viện chuẩn của Step7:

146
5.3.1.3. Lựa chọn khối thư viện và copy :

147
5.3.1.4. Paste vào phần Blocks:

5.3.1.5. Tạo khối dữ liệu dạng Instance cho FB41:

148
5.3.1.6. 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:

149
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.

5.3.2. 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:
output SP
PID
Controller

PV

Q P-2
Cảm biến đo khoảng cách
Input : h1 – h2
Output : 4-20mA
V-1
h2

Cảm biến
khoảng cách
h
h1

V-2

150
5.3.2.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 : 4-20mA 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ỏ.

5.3.2.2. Các bước giải bài toán :


Phân tích yêu cầu:

Starrt/stop Đèn báo RUN

Giá trị đặt


lấy từ đầu Đèn báo STOP
vào analog S7-300
Tín hiệu ra
Tín hiệu điều khiển
vào từ cảm van
biến

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

151
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)
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.

152
Chi tiết xem thêm trong tài liệu kỹ thuật đi kèm.
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:

153
Viết chương trình trong khối OB1:

154
155
5.4. 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.

156
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.

5.4.1. Giới thiệu các hàm sử dụng với thời gian thực.

5.4.1.1. Các hàm thiết lập thời gian thực 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

157
5.4.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.

RET_VAL
SFC1
Read System Clock CDT
“READ_CLK”

Đầ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)

5.4.2. Các hàm kèm theo để xử lý thời gian (FC3,FC6,FC7,FC8)

5.4.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 RET_VAL
IN2 “D_TOD_DT”

Đầu vào :
IN1 : là đầu vào kiểu DATE (I,Q,M,L,D,Const)

158
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)

5.4.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)

5.4.2.3. Hàm FC7 “DT_DAY”


Mô tả :
Hàm này cho phép lấy ra ngày trong tuần từ kiểu DATE_AND_TIME

IN FC7 RET_VAL
DT to DAY
“DT_DAY”

Đầu vào :

159
N : là đầu vào kiểu DATE_AND_TIME (D,L)
Đầu ra :
RET_VAL : là giá trị trả về kiểu INT (I,Q,M,D,L) là ngày trong
tuần:
 1 = Sunday
 2 = Monday
 3 = Tuesday
 4 = Wednesday
 5 = Thursday
 6 = Friday
 7 = Saturday

5.4.2.4. Hàm FC8 “DT_TOD”


Mô tả :
Hàm này cho phép lấy ra kiểu TOD từ kiểu DATE_AND_TIME

IN FC8 RET_VAL
DT to TOD
“DT_TOD”

Đầ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 TIME_OF_DAY (I,Q,M,D,L)

5.4.3. Ứng dụng hàm thời gian thực.


Bài toán : điều khiển hệ thống bơm nước tự động

160
 Yêu cầu của bài toán :
Mỗi một ngày sẽ có 2 bơm được phép chạy, và cứ liên tiếp thay phiên nhau.

Starrt/stop Đèn báo RUN

Đèn báo STOP


S7-300 Điều khiển ĐC1

Điều khiển ĐC2


Điều khiển ĐC3

 Lựa chọn CPU và các module kèm theo:


Tín hiệu vào và ra đều dưới dạng số, nên ta sẽ chọn module để làm
việc với các tín hiệu 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 CPU314C-2DP : bên trong đã có sẵn 24DI/16DO.

 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 :

161
 Viết chương trình thực hiện:
Tạo các khối cần thiết :

Khai báo các symbol :

162
Khởi tạo trong khối OB100:

Chương trình trong khối OB1:

163
164
165
166
6. BÀI 6

TRUYỀN THÔNG PROFIBUS TRONG HỆ


S7-300

Nội dung chính :


 Khái niệm cơ bản, đặc điểm và ứng dụng mạng Profibus
 Mạng Profibus-DP và cách cấu hình phần cứng
 Lập trình giao tiếp sử dụng mạng Profibus-DP trong phần
mềm Step7

6.1. Khái niệm.


PROFIBUS (Process Field Bus) là một hệ thống bus trường cho phép kết
nối nhiều thiết bị khác nhau, từ các thiết bị trường cho tới vào/ra phân tán,
các thiết bị điều khiển và giám sát.

6.2. Đặc điểm và phạm vi ứng dụng hệ thống PROFIBUS trong công
nghiệp.
PROFIBUS định nghĩa ba giao thức gồm: + PROFIBUS – FMS.
+ PROFIBUS – DP.
+ PROFIBUS – PA.
 PROFIBUS – FMS (Fieldbus Message Specification): Giao thức
nguyên bản của PROFIBUS, được dùng chủ yếu cho việc giao tiếp giữa các
máy tính điều khiển và điều khiển giám sát. Được sử dụng phổ biến trong các
ngành chế tạo, lắp ráp.
 PROFIBUS – DP: Giao thức đơn giản và nhanh hơn nhiều so với
FMS. PROFIBUS – DP được xây dựng tối ưu cho việc kết nối các thiết bị

167
vào/ra phân tán và thiết bị trường với các máy tính điều khiển. Lúc đầu được
sử dụng phổ biến trong các ngành chế tạo và lắp ráp. Tuy nhiên, ngày nay
PROFIBUS – DP đã lan rộng sang nhiều lĩnh vực khác.
 PROFIBUS – PA (Process Automation): Là kiểu đặc biệt được sử
dụng ghép nối trực tiếp các thiết bị trường trong các lĩnh vực tự động hóa các
quá trình có môi trường dễ cháy nổ, đặc biệt trong công nghiệp chế biến.
Thực chất PROFIBUS – PA là sự mở rộng của PROFIBUS – DP xuống cấp
trường trong lĩnh vực công nghiệp chế biến.
Tóm lại, PROFIBUS là giải pháp chuẩn, đáng tin cậy cho nhiều phạm
vi ứng dụng khác nhau, đặc biệt là những ứng dụng có yêu cầu cao về tính
năng thời gian thực
Trong giới thạn bài học này chúng ta sẽ đi tìm hiểu về cách cấu hình và lập
trình sử dụng mạng Profibus-DP.

6.3. Cấu trúc và lập trình mạng Profibus-DP trong hệ S7-300


Giao thức PROFIBUS – DP được chia thành ba phiên bản gồm: DP-V0,
DP-V1, DP-V2.

6.3.1. Cấu trúc mạng profibus-dp


PROFIBUS-DP sử dụng cấu hình một trạm (Mono- Master) hoặc nhiều
trạm (Multi-Master). Cấu hình quy định số trạm, gán địa chỉ trạm…

DP Master
Cấp 1

DP Slave DP Slave DP Slave


(Chào hàng) (Đặt hàng) (Đặt hàng)

Ví dụ về cấu hình một trạm Master

168
6.3.2. Nguyên tắc trao đổi dữ liệu trong mạng PROFIBUS-DP:

Yêu cầu
Hỏi tuần hoàn

Dữ liệu đầu ra Dữ liệu đầu ra


Slave 1 Slave 1
Dữ liệu đầu vào Dữ liệu đầu vào
Dữ liệu đầu ra
Slave 2
Dữ liệu đầu vào

........................

Dữ liệu đầu ra Dữ liệu đầu ra


Slave n Slave n
Dữ liệu đầu vào Dữ liệu đầu vào

DP-Master Đáp ứng

6.3.3. Các thành phần trong mạng PROFIBUS-DP


Tùy thuộc vào phạm vi chức năng, kiểu dịch vụ mà người ta phân biệt các
kiểu thiết bị DP như sau:
 Trạm chủ (DP- Master): Thông thường đó là các bộ điểu khiển trung tâm
như PLC, PC hay các module thuộc bộ điểu khiển trung tâm.

169
 Trạm tớ DP (DP - Slave): Không có vai trò kiểm soát truy nhập bus. Thường
đó là các thiết bị vào/ra, các thiết bị trường (truyền động, HMI, van, cảm
biến…) hoặc các bộ điều khiển phân tán.

 Cảm biến: Thiết bị đưa ra các nhận biết vật thể khác nhau về hình
dạng, mầu sắc, vật liệu…

 Van: Thiết bị điều khiển lưu lượng chất lỏng, chất khí…

 HMI: Thiết bị giao tiếp người – máy.

170
 ET 200S: Hệ thống vào/ra phân tán.

 Dây nối và đầu nối

 Bộ lặp :

171
 Ví dụ về một cấu hình mạng:

Mộ cấu hình mạng PROFIBUS-DP trong SIMATIC S7.

6.4. Ví dụ về cách cấu hình và lập trình một mạng profibus-dp sử dụng
phần mềm Step7

Bài toán : Lập trình giao tiếp 2 trạm S7-300 với Master CPU315-2DP / Slave
CPU315-2DP

172
Trong đó:
1) Máy tính có cấu hình cài đặt được phần mềm STEP 7.
2) Phần mềm STEP 7 v5.x.
3) Cáp MPI.
4) Trạm master PLC SIMATIC S7-300 với CPU315-2DP.
Với :
PS307 2A
CPU315-2DP
16DI/16DO
5) Trạm Slave PLC SIMATIC S7-300 với CPU315-2DP.
Với :
PS307 2A
CPU315-2DP
16DI/16DO
6) Cáp Profibus

6.4.1. Cấu hình phần cứng:


1) Mở phần mềm STEP7 bằng cách kích đúp vào biểu tượng

173
và tạo một Project mới.

2) Đặt tên cho project là PROFIBUS-DP sau đó kích OK

3) Đánh dấu project vừa tạo và kích Inser Subnet PROFIBUS :

174
4) Sau đó, đặt trạm S7-300: Inser Station SIMATIC 300 Station:

5) Đổi tên trạm là Slave:

175
6) Cấu hình phần cứng bằng cách kích đúp vào Hardware:

7) Việc đặt cấu hình phần cứng tương tự như các chương trước đã giới thiệu,
ở đây ta chú ý cấu hình cứng cụ thể như sau :
- Nguồn : PS 307 2A.
- CPU : CPU-315 – 2DP V1.1
- 16 DI
- 16 DO

176
Đặt nguồn và CPU lần luột vào slot 1 và 2

8) Chọn Transmission Rate : 1,5Mbit/s, Profile : DP rồi kích OK.

9) Tiếp theo là cấu hình cho các module vào ra .

177
 Kích đúp vào module giao diện DP để đặt chế độ hoạt động cho
Slave : Operation Mode  DP Slave  OK.

178
 Chuyển sang tab Configuration, Chon New : để tạo ra các vùng
trao đổi dữ liệu

179
10) Kết thúc bằng cách kích nút combile để save và dịch cấu hình :

180
11) Quay trở lại cửa sổ SIMATIC Manage để thêm trạm mới và đổi tên
thành Master :

12) Cấu hình cứng cho trạm Master :


- Rack 0.
- Nguồn: PS 307 2A.

181
- CPU : CPU 315-2DP –> V1.1

13) Cấu hình cho cổng vào ra.

14) Trong hệ Master System, ta sẽ cấu hình trạm Slave.

182
 Trong cửa sổ catalog chọn PROFIBUS DP =>Configured Stations
= >CPU31x

 Keo và thả vào hệ DP master systems: Chọn connect.

183
 Chuyển sang tab Configuration : Ta sẽ thấy các vùng truyền nhận
giữa Master và Slave

Nháy đúp vào các vùng nhớ và cấu hình cho master

184
185
16) Cuối cùng là biên dịch : Kích để lưu và biên dịch chương
trình:

186
6.4.2. Viết chương trình giao tiếp cho hệ thống.
Trở lại cửa sổ SIMATIC Manager mở khối OB1 trạm Slave, kích đúp vào
OB1

 Chương trình gửi và nhận dữ liệu trên Slave

 Tiếp theo ta mởi khối OB1 của trạm Master và viết chương trình
truyền nhận

187
 Cuối cùng là Download chương trình xuống các PLC. Master và
Slave

6.5. Bài tập.


Cấu hình và lập trình giao tiếp mạng profibus bao gồm :
- Master CPU314C-2DP
- Slave 1 : CPU224
- Slave : MM440

188

You might also like