Download as pdf or txt
Download as pdf or txt
You are on page 1of 131

HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

BÀI 1: GIỚI THIỆU PLC SIEMENS VÀ PHẦN MỀM TIA PORTAL

1.1. GIỚI THIỆU PLC S7-1500

1.1.1. CPU

Màn hình của PLC S7-1500 là phụ kiện rời, có thể được gắn thêm trên thân CPU hoặc khôn

1
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Standard CPUs:

PROFINET PROFINET PROFINET Processing


Performance PROFIBUS Work
CPU IO RT/IRT IO RT basic time for bit
segment interfaces memory
interfaces interface functionality operations

CPU 1511-1 PN Standard CPU for -- 1 -- -- 1.23 MB 60 ns


small to mid-range
applications

CPU 1513-1 PN Standard CPU for -- 1 -- -- 1.95 MB 40 ns


mid-range applications

CPU 1515-2 PN Standard CPU for -- 1 1 -- 3.75 MB 30 ns


mid-range to large
applications

CPU 1516-3 Standard CPU for 1 1 1 -- 6.5 MB 10 ns


PN/DP demanding
applications and
communication tasks

CPU 1517-3 Standard CPU for 1 1 1 -- 11 MB 2 ns


PN/DP demanding
applications and
communication tasks

CPU 1518-4 Standard CPU for 1 1 1 1 26 MB 1 ns


PN/DP high-performance

applications,
CPU 1518-4 demanding
PN/DP ODK communication tasks
and very short reaction
times

Compact CPUs:

PROFINET IO
PROFIBUS RT/IRT PROFINET IO PROFINET basic Work Processing time for
CPU Performance segment interfaces interfaces RT interface functionality memory bit operations

CPU 1511C-1 Compact CPU for small to -- 1 -- -- 1.175 MB 60 ns


PN mid-range applications

CPU 1512C-1 Compact CPU for mid- -- 1 -- -- 1.25 MB 48 ns


PN range applications

2
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Fail-safe CPUs:

PROFINET PROFINET PROFINET Processing


PROFIBUS IO RT/IRT IO RT basic Work time for bit
CPU Performance segment interfaces interfaces interface functionality memory operations

CPU 1511F-1 Fail-safe CPU for small -- 1 -- -- 1.23 MB 60 ns


PN to mid-range
applications

CPU 1513F-1 Fail-safe CPU for mid- -- 1 -- -- 1.95 MB 40 ns


PN range applications

CPU 1515F-2 Fail-safe CPU for mid- -- 1 1 -- 3.75 MB 30 ns


PN range to large
applications

CPU 1516F-3 Fail-safe CPU for 1 1 1 -- 6.5 MB 10 ns


PN/DP demanding applications
and communication
tasks

CPU 1517F-3 Fail-safe CPU for 1 1 1 -- 11 MB 2 ns


PN/DP demanding applications
and communication
tasks
CPU 1517TF-
3 PN/DP

CPU 1518F-4 Fail-safe CPU for high- 1 1 1 1 26 MB 1 ns


PN/DP performance

applications,
CPU 1518F-4 demanding
PN/DP ODK communication tasks
and very short reaction
times

3
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Module mở rộng đầu vào/ ra Digital/Analog

Module mở rộng Digital


DI8/16/32: Module mở rộng đầu vào số với số lượng 8/16/32 ngõ.
DQ8/16/32: Module mở rộng đầu ra số với số lượng 8/16/32 ngõ.
Các thông số đi sau như x24VDC hay x230VAC cho biết điện áp sử dụng cho module.

Mỗi module sẽ có thông số chi tiết cụ thể của từng loại.


Thông số ta cần quan tâm dùng để khai báo trên phần mềm chính:
Ví dụ:
Mã DI16/ DQ16 x24VDC/0.5A BA
Article no. 6ES7 524-1BL00-0AA0
Version: V1.0
Module mở rộng Analog
AI: Analog Input
AQ: Analog Output
AI4: Module mở rộng đầu vào analog 4 kênh.
Các chỉ số phía sau như xU/I/RTD/TC cho biết chức năng đọc áp/dòng/RTD/TC của module.

4
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
1.1.2. Các module khác
Module nguồn

Module truyền thông/ Technology

1.1.3. Thẻ nhớ


PLC S7-1500 sử dụng thẻ nhớ ngoài để lưu trữ chương trình (Load memory)

Thông số xem trên màn


Thông số xem trên phần mềm Tia Portal
hình gắn ngoài CPU

5
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
1.2. KHAI BÁO PLC VỚI TIA PORTAL

Bước 1: Tạo Project mới


1: Nhấn "create new project" để khởi tạo
2: Đặt tên project

3: Nhấn "Create" để bắt đầu tạo


Kết quả: Project đã được tạo.

6
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Bước 2: Khai báo CPU bằng cách "auto detection" kết nối Online với CPU.
(Hoặc tới bước 2.1 khai báo Offline)
1: Mở "Devices & Networks"
2: Nhấn "Add new device"
3: Chọn Controllers. Đặt tên nếu muốn (ví dụ Color_Mixing_CPU)

4: Nhấnv ào SIMATIC S7-1500 để khai báo PLC S7-1500


5: Chọn CPU "Unspecified CPU 1500"

7
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

6: Khởi tạo bằng cách nhấn double-click hoặc nhấn "add"


Kết quả: Một CPU không rõ mã số được tạo ra

8
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Bước 3: Auto detection


1: Nhấn vào detect hiện lên trong khung màu vàng
Hoặc Nhấn chọn CPU sau đó chọn menu Online rồi chọn "Hardware detection"
2: Một giao diện hiện ra, Chọn Type of PG/PC interface là PN/IE và PG/PC interface chính là
tên card mạng của máy tính đang kết nối với CPU.

9
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
3: Sau đó nhấn Start search
4: Nhấn Detect
* Nếu có nhiều CPU trong
đường mạng, có thể chọn
một CPU sau đó nhấn Flash
LED để xác định các CPU
với nhau. (Nhưng các CPU
phải khác địa chỉ) Kết quả:
Cấu hình PLC đã được lấy
lên.
Bước 2.1: Khai báo khi không kết nối Online với PLC (Offline)

1: Tại cửa sổ này, ta chọn SIMATIC S7-1500.


2: Sau đó chọn đúng mã mà CPU ta muốn tạo thay vì chọn unspecified CPU như trên.

10
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Lưu ý: Phải khai báo đúng mã CPU, còn version firmware có thể khai báo thấp hơn so với
CPU thực tế chứ không được khai cao hơn.

3: Khởi tạo bằng cách nhấn double-click hoặc nhấn "add"


Kết quả: Một CPU đã được tạo ra

10
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Bước 3: Thêm module mở rộng
Bên cột Hardware catalog bên phải màn hình ta có thể chọn các module mở rộng khác mà ta
có để khai báo thêm vào CPU
Lưu ý: Đọc đúng mã module để tìm trong Catalog khai báo, nguyên tắc có thể không cần
khai báo đủ module so với số lượng bên ngoài. Nên khai báo đúng thứ tự so với thực tế.

11
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
1.3. DOWNLOAD CHƯƠNG TRÌNH VÀO BỘ MÔ PHỎNG
Để sử dụng bộ mô phỏng ta cần cài đặt phần mềm mô phỏng S7-PLCSIM.

Chọn Online > Simulation > Start ho ặc nhấn biểu tượng để mở bộ mô phỏng.

Thiết lập cổng download và chọn download vào PLCSIM S7-1200/S7-1500.


Nhấn "Start search", sau đó "Load".

12
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Chờ đợi phần mềm compile chương trình.

Nếu không có lỗi nhấn "Load". Còn nếu có lỗi thì kiểm tra lại và thực hiện lại từ đầu.

Chọn "Start all" nếu muốn Run CPU từ đây, sau đó nhấn "Finsish" để kết thúc.

13
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Nhấn vào biểu tượng mở rộng ở gốc phải bên dưới.

Chọn Sim Table, sau đó nhập các biến muốn kích bằng mô phỏng vào bảng.

14
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
1.4. DOWNLOAD CHƯƠNG TRÌNH VÀO PLC S7-1500
Bước 1: Tại Project tree, ta nhấn chuột phải vào CPU S7-1500 chọn Download to device,
chọn Hardware and sofware (only changes)
Hoặc nhấn biểu tượng download trên thanh công cụ.

Bước 2: Bảng kết nối truyền thông sẽ hiện lên


Tại Type of the PG/PC interface chọn PN/IE
Tại PG/PC interface chọn card mạng của máy tính đang kết nối với PLC
Chọn Connection to subnet

Bước 3: Nếu yêu cầu "Start search" thì ta nhấn vào để xác định PLC ta sẽ download chương
trình vào.
Sau đó nhấn Load.
Bước 4: Xác nhận địa chỉ IP. Bằng cách xác nhận "Assign IP address" bằng Yes và OK

15
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Nếu máy tính đang kết nối PLC để chế độ IP động (như hình)

Thì phần mềm sẽ tự động gán IP cho máy tính để trùng khớp lớp mạng của PLC đang được
đặt.

Bước 5: Trong bảng "Load preview", xác nhận các thông tin trong bảng.
Nếu báo đỏ thì kiểm tra thông tin lỗi và thực hiện lại từ bước 1
Bước 6: Nhấn Load
Bước 7: Xác nhận lại việc Run CPU, nếu ta muốn Run CPU từ đây thì check vào "Start all"
sau đó nhấn Finish.
Còn không thì bỏ check "start all" và nhấn Finish.
Kết quả: Sau khi download xong sẽ có thông báo hoàn thành.

16
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
1.5. UPLOAD CHƯƠNG TRÌNH TỪ PLC S7-1500
Bước 1: Mở cửa sổ upload chương trình từ CPU

Bước 2: Chọn giao thức kết nối với CPU. Sau đó nhấn search để tìm kiếm các CPU đang truy
cập.
Bước 3: Upload CPU lên project.
Kết quả: Cấu hình phần cứng, chương trình của CPU sẽ được upload lên project.
Program block và tags

17
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
BÀI 2: CẤU TRÚC CHƯƠNG TRÌNH VÀ CÁC KIỂU DỮ LIỆU
2.1. CẤU TRÚC CHƯƠNG TRÌNH PLC

OB (Organization block): Khối tổ chức (OB 1 Main: khối tổ chức chính)


FC (Function): Chương trình con, có thể được viết thành khối hàm chức năng có biến
để trao đổi dữ liệu.
FB (Function block): Chương trình con, có thể được viết thành khối hàm chức năng có
biến để trao đổi dữ liệu. Các dữ liệu này được xây dựng thành một khối dữ liệu riêng
(Instance DB).
DB (Data block): Có hai loại DB bao gồm, DB dùng để quản lý dữ liệu của riêng một
khối FB (Instance DB); loại hai là Global DB, dữ liệu trong khối DB dạng này có thể
truy xuất tới các OB, FC, FB khác.

2.2. VÙNG NHỚ ĐỊA CHỈ


2.2.1. Vùng nhớ toàn cục (Global data)
I (Input), Q (Output), vùng nhớ nội M (memory), Global DB là những vùng nhớ có thể
truy xuất ở tất cả các khối.
2.2.2. Vùng nhớ cục bộ (Local data)

Vùng dữ liệu cục bộ được sử dụng trong các khối chương trình như OB, FB, FC trao
đổi dữ liệu bên trong khối chương trình của nó, tức là không thể truy xuất ra các khối
khác.
Tuy nhiên ta có thể truy cập gián tiếp vào địa chỉ vùng nhớ cục bộ này thông qua các
biến nhớ khác của khối chứa nó.

18
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

2.3. KIỂU DỮ LIỆU


So sánh một số kiểu dữ liệu thông dụng trong PLC S7-300/1500
Mô tả Chi tiết S7-300 S7-1500
Kiểu bit dữ liệu BOOL Có Có
BYTE
WORD
DWORD
LWORD Không Có
Kiểu ký tự CHAR (8 bit) Có Có
STRING

Kiểu dữ liệu số INT (16 bit) Có Có


DINT (32 bit)
REAL (32 bit)

SINT (8 bit) Không Có


USINT (8 bit)
UINT (16 bit)
UDINT (32 bit)
LREAL (64 bit)

LINT (64 bit) Không Có

19
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

ULINT (64 bit)


Kiểu Time TIME Có
DATE
TIME_OF_DAY

S5TIME Có Có
LTIME Không Có
L_TIME_OF_DAY

DT (DATE_AND_TIME) Có Có

DTL Không Có

LDT Không Có
(L_DATE_AND_TIME)

Mảng ARRAY Có Có
(limited 16 bit) (limited 64 bit)
Cấu trúc STRUCT Có Có
Con trỏ POINTER Có Có
ANY

Khối TIMER Có Có
COUNTER (Thêm loại IEC)
BLOCK_FB Có Có
BLOCK_FC
PLC data types PLC DATA TYPE Có Có

20
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
2.4. NGÔN NGỮ LẬP TRÌNH
Khi cài đặt phần mềm Tia Portal sẽ có sẵn 4 ngôn ngữ lập trình:
- LAD (Ladder)
- FBD (Function block diagram)
- STL (Statement list)
- SCL (Structured control language)
- Graph
Đối với chương trình trong tài liệu này sẽ sử dụng ngôn ngữ LAD.

21
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
BÀI 3: CÁC TẬP LỆNH CƠ BẢN
3.1. LẬP TRÌNH BIT LOGIC
3.1.1. Tiếp điểm I/O
INPUT OUTPUT
--| |--: Tiếp điểm thường mở (Normal --( )--: Cuộn coil
Open “NO”) - Khai báo: Output
--|/|--: Tiếp điểm thường đóng - Kiểu dữ liệu: BOOL
(Normal Close “NC”) - Vùng dữ liệu: Q, M, L, D
- Khai báo: INPUT - Miêu tả: Trạng thái ngõ ra là kết quả
- Kiểu dữ liệu: BOOL xử lý của phép toán logic.
- Vùng dữ liệu: I, Q, M, L, D, T, C
- Miêu tả : Tiếp điểm NO hay NC dùng
để kiểm tra trạng thái ở mức “1” hay
mức “0” của tín hiệu

Ví dụ 1:Nút nhấn được đấu vào ngõ I0.0 của PLC (sử dụng tiếp điểm NO của nút nhấn); Bóng
đèn được đấu vào ngõ Q0.0 của PLC.

Mô tả: Q0.0 “Bóng đèn” sẽ có tín hiệu mức “1” khi I0.0 “Nút nhấn” có trạng thái tín hiệu mức
“1”, tức nhấn nút nhấn

Ví dụ 2:Nút nhấn được đấu vào ngõ I0.1 của PLC (sử dụng tiếp điểm NO của nút nhấn); Bóng

đèn được đấu vào ngõ Q0.1 của PLC.


Mô tả: Q0.1 “Bóng đèn” sẽ có tín hiệu mức “1” khi I0.1 “Nút nhấn” có trạng thái tín hiệu mức
“0”, tức chưa nhấn nút nhấn.

Ví dụ 3:
Địa chỉ Mô tả
I0.0 Nút nhấn 1
I0.1 Nút nhấn 2 (Đấu NC)
Q0.0 Motor

22
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Mô tả: “Motor” Q0.0 sẽ có tín hiệu mức “1” khi


- “Nút nhấn 1” I0.0 có trạng thái tín hiệu mức “1”, hoặc
- “Nút nhấn 2” I0.1 có trạng thái tín hiệu mức “0”

3.1.1.1. Phép toán AND


Toán tử AND sẽ trả về 1 nếu tất cả các trạng thái bit là 1, còn trong tất cả các trường
hợp khác AND sẽ trả về 0.
X Y Z
0 0 0
0 1 0
1 0 0
1 1 1
Ngõ ra Z lên 1 khi cả X và Y có trạng thái tín hiệu mức “1”
Ví dụ 1: Cho mạch Z = X.Y, chuyển sang mạch lập trình PLC.

Ví dụ 2: Cho mạch Q = A.B̄.C, chuyển sang mạch lập trình PLC

3.1.1.2. Phép toán OR


Toán tử OR sẽ trả về 1 nếu có ít nhất một trong các trạng thái bit là 1, còn trong tất cả
các trường hợp khác OR sẽ trả về 0
X Y Z
0 0 0
0 1 1
1 0 1
1 1 1
Ngõ ra Z lên 1 khi cả X hoặc Y có trạng thái tín hiệu mức “1”
Ví dụ 1: Cho mạch Q = A+B̄+C, chuyển sang mạch lập trình PLC.

23
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Ví dụ 2: Cho mạch Z = A+(B.C)+(D.Ē), chuyển sang mạch lập trình PLC.

Ví dụ 3:Viết chương trình với ngõ ra là Q0.0 sẽ lên mức 1 (True) khi I0.0 được bấm ON, hoặc
nếu I0.1 bấm On và I0.2 OFF, hoặc ngược lại I0.1 OFF và I0.2 ON.

Bài tập 3.1:Điều khiển một đối tượng (như là: động cơ, đèn, chuông, quạt …) chạy và dừng
bằng 2 nút nhấn ON và OFF.
Bài tập 3.2:Nhấn cả 2 nút ON 1 và ON 2 thì động cơ chạy. Nhấn 1 trong 2 nút STOP 1 và
STOP 2 thì động cơ dừng.
Bài tập 3.3: Đặt sản phẩm vào đầu băng tải, băng tải chạy chuyển vật đến cuối băng tải thì
dừng. Cho biết đầu và cuối băng tải đều có gắn cảm biến phát hiện vật thể đó.
Bài tập 3.4: Cho biết đầu và cuối băng tải đều có gắn cảm biến phát hiện vật.
Đặt sản phẩm vào đầu băng tải đèn Q1 sáng, băng tải chạy chuyển vật đến cuối băng tải thì
dừng và đèn Q1 tắt, Q2 sáng.

24
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
3.1.2. Tập lệnh SET, RESET
3.1.2.1. Lệnh SET và RESET
Ký hiệu Khai báo Kiểu dữ liệu Mô tả
--(S)--: Set ngõ ra OUT BOOL Khi lệnh Set được tác
động thì địa chỉ ngõ
ra sẽ được đặt
lên mức 1.
--(R)--: Reset ngõ ra OUT BOOL Khi lệnh Set được
tác động thì địa chỉ
ngõ ra sẽ được đặt trả
về 0.
Ví dụ 1: Ngõ ra “Quạt” Q0.0 sẽ được chốt giá trị mức 1 khi
- “Nút nhấn 1” I0.0 có trạng thái tín hiệu mức 1, hoặc
- “Nút nhấn 2” I0.1 có trạng thái tín hiệu mức 1 và “Nút nhấn 3” có trạng thái tín hiệu
mức 0.

Ví dụ 2: Ngõ ra “Quạt” Q0.0 sẽ được trả về giá trị mức 0 khi


- “Nút nhấn 1” I0.0 có trạng thái tín hiệu mức 1, hoặc
- “Nút nhấn 2” I0.1 có trạng thái tín hiệu mức 1 và “Nút nhấn 3” có trạng thái tín hiệu
mức 0.

Ví dụ 3: Sử dụng lệnh Set, Reset viết chương trình điều khiển động cơ quay thuận/ quay
nghịch(đảo chiều) trực tiếp. Nhấn nút STOP động cơ dừng.

25
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Bài tập 3.5:Sử dụng lệnh Set, Reset viết chương trình điều khiển động cơ quay thuận/ quay
nghịch (đảo chiều) gián tiếp. Nhấn nút STOP động cơ dừng.
Bài tập 3.6:Sử dụng lệnh Set, Reset làm bài tập 2.1, 2.2, 2.3, 2.4
3.1.2.2. Lệnh SET_BF và RESET_BF

Khi tín hiệu I0.0 mức "1" sẽ thực hiện lệnh Set ngõ ra với 5 bit liên tục bắt đầu từ Q0.0. Tức là
Q0.0 - Q0.1 - Q0.2 - Q0.3 - Q0.4 sẽ được chốt giá trị.

Tương tự khi tín hiệu I0.1 mức "1" sẽ Reset ngõ ra với 5 bit liên tục bắt đầu từ Q0.0.
Như vậy khi ta muốn Set hoặc Reset các tín hiệu liên tục thì có thể sử dụng 2 lệnh Set-Reset
này.
3.1.2.3. Khối hàm SR và RS
Thực chất khối hàm SR và RS có thể được viết từ lệnh Set và Reset như trên.
Thông thường khi lập trình khối SR Flipflop hoặc RS Flipflop này thì khi khai báo toán hạng
ta hay sử dụng vùng nhớ M, D hoặc L để quản lý chương trình. Tuy nhiên, vẫn phải phụ thuộc
vào người viết đang mong muốn thực hiện chương trình như thế nào bởi không có sự ràng buộc
chắc chắn nào ép người viết chương trình phải thực hiện như trên.
Ký hiệu Khai báo Kiểu dữ liệu Mô tả
BOOL Ngõ ra được Set lên
S IN khi có tín hiệu ở chân
R IN S, và được Reset khi
: <toán IN có tín hiệu ở chân R.
Khối SR hạng> /OUT
Q OUT

26
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Khi cả 2 chân S, R
đều có tín hiệu mức
1 thì sẽ ưu tiên
Reset.
BOOL Ngõ ra được Set lên
S IN khi có tín hiệu ở chân
R IN S, và được Reset khi
: <toán IN có tín hiệu ở chân R.
Khối RS hạng> /OUT Khi cả 2 chân S, R
Q OUT đều có tín hiệu mức 1
thì sẽ ưu tiên Set.

Ví dụ 1:Xem bảng trạng thái để phân tích đoạn chương trình

SR
I0.0 I0.2 Q1.0
(S) (R1) (Q)
0 0 0
0 1 0
1 0 1
1 1 0 Ưu tiên RESET

Ví dụ 2:Xem bảng trạng thái để phân tích đoạn chương trình

RS
I0.2 I0.0 Q1.0
(S1) (R) (Q)
0 0 0
0 1 0
1 0 1
1 1 1 Ưu tiên SET

3.1.3. Tập lệnh nhận biết xung cạnh lên, cạnh xuống
Lưu ý: Có một sự hay nhầm lẫn thường gặp, nhiều bạn cứ tưởng tín hiệu xung cạnh lên/ xuống
chỉ dùng cho tín hiệu ngõ vào INPUT (I). Chúng ta có thể bắt xung cạnh lên/xuống của các tín
hiệu khác với kiểu dữ liệu BOOL (I, Q, M, D, …).
27
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Định nghĩa:
3.1.3.1. Lệnh nhận biết xung cạnh lên
Ký hiệu Khai báo Kiểu dữ liệu Mô tả
BOOL Khi lệnh được
<toán I, Q, M, thực thi sẽ quét tín
hạng1> D, L, T, hiệu cạnh lên của
C <toán hạng 1>.
<toán I, Q, M, <toán hạng 2>là
hạng2> D, L bit nhớ cạnh nghĩa
là dùng lưu trạng
thái tín hiệu trước
khi quét.
CLK BOOL Khi lệnh được
I, Q, M,
D, L
thực thi sẽ quét tín
hiệu cạnh lên tại
<toán M, D
hạng> chân CLK.
Ngõ Q là kết quả
Q I, Q, M, của tín hiệu cạnh
D, L
lên, nhận tín hiệu
mức 1 trong một
chu kỳ lệnh hay
còn gọi là One
shot output.
<toán hạng>là bit
nhớ cạnh nghĩa là
dùng lưu trạng
thái tín hiệu trước
khi quét.
Lệnh kiểu tiếp điểm cạnh lên dùng cho việc nhận biết xung cạnh lên của từng bit
đơn lẻ, còn kiểu khối hàm dùng cho kết quả của một tổ hợp tín hiệu.
<toán I, Q, M, BOOL Khi lệnh được
hạng1> D, L thực thi tín hiệu ở
<toán I, Q, M, <Toán hạng 1> sẽ
hạng2> D, L chứa tín hiệu cạnh
lên. Còn <toán
hạng 2> sẽ là mức
tín hiệu của tín
hiệu đầu vào.

Ví dụ:
Khi I10.0 mức "1" thì M0.0 sẽ là tín hiệu cạnh lên của I10.0; còn ngõ Q4.0 chính là
mức tín hiệu của I10.0, tức là khi I10.0 mức "1" thì Q4.0 mức "1" và ngược lại.
28
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
CLK I, Q, M, BOOL Khối hàm chức
D, L năng bắt tín hiệu
Q I, Q, M, cạnh lên từ chân
D, L CLK và đưa ra kết
quả ngõ Q.

3.1.3.2. Lệnh nhận biết xung cạnh xuống


Ký hiệu Khai báo Kiểu dữ liệu Mô tả
BOOL Khi lệnh được
<toán I, Q, M, thực thi sẽ quét tín
hạng1> D, L, T, hiệu cạnh xuống
C của <toán hạng1>.
<toán I, Q, M, <toán hạng 2>là
hạng2> D, L bit nhớ cạnh nghĩa
là dùng lưu trạng
thái tín hiệu trước
khi quét.
BOOL Khi lệnh được
CLK I, Q, M, thực thi sẽ quét tín
D, L hiệu cạnh xuống
<toán M, D tại chân CLK.
hạng> Ngõ Q là kết quả
Q I, Q, M, của tín hiệu cạnh
D, L xuống, nhận tín
hiệu mức 1 trong
một chu ký lệnh
hay còn gọi One
shot output.
<toán hạng> là bit
nhớ cạnh nghĩa là
dùng lưu trạng
thái tín hiệu trước
khi quét.
Lệnh kiểu tiếp điểm cạnh xuống dùng cho việc nhận biết xung cạnh xuống của từng
bit đơn lẻ, còn kiểu khối hàm dùng cho kết quả của một tổ hợp tín hiệu.

<toán I, Q, M, BOOL Khi lệnh được


hạng1> D, L thực thi tín hiệu ở
<toán I, Q, M, <Toán hạng 1> sẽ
hạng2> D, L chứa tín hiệu cạnh
xuống. Còn <toán
hạng 2> sẽ là mức
tín hiệu của tín
hiệu đầu vào.
29
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Ví dụ:
Khi I10.0 mức "1" thì M0.1 sẽ là tín hiệu cạnh lên của I10.0; còn ngõ M0.2 chính
là mức tín hiệu của I10.0, tức là khi I10.0 mức "1" thì M0.2 mức "1" và ngược lại.
CLK I, Q, M, BOOL Khối hàm chức
D, L năng bắt tín hiệu
Q I, Q, M, cạnh xuống từ
D, L chân CLK và đưa
ra kết quả ngõ Q.

Ví dụ 1: Xét đoạn chương trình sau

Khi nhấn “Nút nhấn ON” I0.0, tín hiệu “Động cơ quay thuận” Q0.0 lên mức 1 được
giữ trạng thái đến khi nào mất tín hiệu I0.0 (về mức 0). Và “Tín hiệu xung cạnh lên”
M6.0 lên mức 1 trong một chu kỳ lệnh. Ví dụ 2:Xét đoạn chương trình sau

30
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Khi nhấn “Nút nhấn ON” I0.0, tín hiệu “Động cơ quay thuận” Q0.0 lên mức 1 được giữ trạng
thái đến khi nào mất tín hiệu I0.0 (về mức 0). Đợi khi nào “Nút nhấn ON” I0.0 trả về mức 0
thì “Tín hiệu xung cạnh xuống” M6.0 lên mức 1 trong một chu kỳ lệnh.
Ví dụ 3:Xét đoạn chương trình sau

“Tín hiệu xung cạnh lên” M6.0 sẽ lên mức 1 trong một chu kỳ lệnh khi:
- Kết quả phép toán I0.0 AND I1.0 = 1, hoặc I0.0 AND I1.1 = 1;
- Hoặc “Nút nhấn STOP” I0.2 lên mức 1.
Ví dụ 4: Xét các đoạn chương trình sau:

Bài tập 3.7:Bài toán một nút nhấn hai tác động.
Trạng thái ban đầu đèn tắt, khi tác động nút nhấn đèn sáng, tác động lần tiếp theo đèn tắt,
trạng thái cứ như vậy lặp đi lặp lại.

3.2. HÀM MOVE, CONVERT, ROUND


3.2.1. Hàm MOVE
Hàm MOVE dùng để chuyển dữ liệu từ vùng nhớ này sang vùng nhớ khác hay chuyển dữ liệu
abc sang một hoặc nhiều vùng nhớ. Nói cách khác hàm MOVE như là một lệnh copy dữ liệu.
Ví dụ 1: đặt giá trị vùng nhớ MW10 = 10 khi nhấn nút START
31
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Ví dụ 2: Khi nhấn nút băng tải chạy đồng thời nạp 10 vào vùng nhớ MW10, đến cuối thì dừng
băng tải và nạp 20 vào vùng nhớ MW10.

32
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Ví dụ 3: Khi nhấn nút băng tải chạy đồng thời nạp 10 vào vùng nhớ MW10, đến cuối thì dừng
băng tải và nạp 20 vào vùng nhớ MW10. Khi nhấn STOP băng tải dừng và nạp 0 vào MW10.
Ở ví dụ 2 ta sử dụng tiếp điểm NC để cho băng tải dừng. Còn ở ví dụ này ta sẽ ứng dụng lệnh
MOVE để làm việc đó.

Hàm MOVE đầu tiên là để nạp 0 vào MW10, hàm MOVE thứ 2 là nạp 0 vào QB2.
Mà QB2 bao gồm 8 bit từ Q2.0 đến Q2.7 dẫn đến kết quả Q2.0 = 0 (Băng tải dừng).
Trường hợp này ta chỉ mới sử dụng 1 bit Q2.0 trong QB2, khi làm như thế này có thể sẽ ảnh
hưởng đến 7 bit còn lại trong QB2. Vì thế khi ta muốn dừng 1 loại các bit thì có thể áp dụng
lệnh MOVE với giá trị 0 vào vùng nhớ muốn xóa.

33
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
3.2.2. Hàm CONVERT
Hàm CONVERT dùng để chuyển đổi kiểu dữ liệu này sang kiểu dữ liệu khác.
Khối hàm Thông số Kiểu dữ liệu Mô tả
EN BOOL Cho phép khối hàm thực hiện.
ENO BOOL Báo khối hàm đang thực hiện.
IN Integers, floating- Giá trị sẽ được chuyển đổi
point numbers,
BCD16, BCD32
OUT Integers, floating- Kết quả chuyển đổi
point numbers,
BCD16, BCD32
Ví dụ 1: Chuyển đổi số 10 sang dạng số thực.
10 đang dạng số nguyên INT, ta sẽ chuyển sang dạng số thực REAL 10.0

Thực hiện việc chuyển đổi này ta phải qua 2 bước. INT to DINT và DINT to REAL. Bởi vì khi
ta nhập số 10 vào hệ thống sẽ tự hiểu 10 thuộc INT tức sử dụng INT 16bit đã đủ để chứa 10.
Tuy nhiên nếu ta khai báo DINT to REAL trước sau đó nhập 10 sau thì sẽ gọn hơn.

** Các lệnh CONV có thể thực hiện trực tiếp được


IN OUT
DINT
INT
BCD16
REAL
DINT
BCD32
BCD16 INT
BCD32 DINT
** Nếu không thể chuyển đổi trực tiếp ta có thể thực hiện 2 hoặc nhiều hơn để chuyển đổi đến
kiểu dữ liệu ta cần.
Ví dụ 2: Chuyển đổi vùng nhớ MW50 (INT) sang số thực REAL
Ta phải dùng hàm INT to DINT sau đó dùng DINT to REAL

Ví dụ 3: Chuyển đôi vùng nhớ DINT sang INT


Đối với trường hợp này thì không có lệnh chuyển, bới vì giá trị DINT > INT.
Tuy nhiên nếu ta biết được chính xác dãi giá trị của vùng DINT mà ta sử dụng thì vẫn có thể
chuyển qua INT được với điều kiện dãi giá trị sử dụng của DINT <= dãi INT.

34
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Ví dụ 3.1: Nếu dữ liệu MD100 (DINT) = 262144. Thì ta không thể chuyển sang INT được vì
dãi INT chỉ là 0-65535 (đối với số dương).
Ví dụ 3.2: Nếu dữ liệu MD100 (DINT) = 12345. Thì ta có thể chuyển sang INT vì 12345 nhỏ
hơn 65535
MD100
MW100 (Word cao) MW102 (Word thấp)
Giá trị 216 đến 232-1 Giá trị 20 đến 216-1
0 12345
Như vậy giá trị 12345 được lưu truong Word thấp MW102.
Kết luận: giá trị MD100 = MW102 = 12345
3.2.3. Hàm ROUND/ CEIL/ FLOOR/ TRUNC
Thực chất đây là hàm chuyển từ số thực REAL sang số nguyên DINT (do REAL 32bit)
nhưng với nhiều kiểu khác nhau
* Làm tròn quá bán (Hàm ROUND)

Ví dụ 1: 8.4 làm tròn thành 8


8.5 làm tròn thành 9
8.9 làm tròn thành 9

* Làm tròn lên (Hàm CEIL)

Ví dụ 2: 8.0000001 làm tròn thành 9


8.9 làm tròn thành 9

* Làm tròn xuống (Hàm FLOOR)

Ví dụ 3: 8.9 làm tròn thành 8


8.1 làm tròn thành 8

** Hàm TRUNC thực hiện cắt bỏ phần phía sau dấu chấm động để lấy phần nguyên phía
trước.

Ví dụ 4: 86870.1812 kết quả sẽ là 86870


35
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
BÀI 4: LẬP TRÌNH ỨNG DỤNG BỘ ĐỊNH THỜI – TIMER
4.1. TIMER – S5TIME
Tên timer Lệnh Khối hàm Giản đồ thời gian
Timer xung SP S_PULSE

Timer xung SE S_PEXT


duy trì

Timer On SD S_ODT
delay

36
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Timer On SS S_ODTS
delay duy trì

Timer Off SF S_OFFDT


delay

Bài tập 4.0: Đọc giản đồ thời gian để nắm nguyên tắc hoạt động của chúng.
Có thể khai báo 5 hàm trên phần mềm để thử 5 loại Timer trên.
Khối S_ODT:

Lệnh SF:

37
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Ví dụ 1: Viết chương trình điều khiển 3 bơm luân phiên 20s
Gợi ý.
Địa chỉ:

38
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Ví dụ 2: Băng tải chạy khi cảm biến S1 phát hiện vật đầu băng tải. CB S2 phát hiện vật đến
giữa băng tải, gạt đóng lại. Sau 5 giây, gạt mở ra cho vật đi qua đến cuối S3 thì băng tải dừng
lại.

Bài tập 4.1: Viết chương trình điều khiển đèn giao thông

Bài tập 4.2: Tạo xung 2s bằng Timer

** Xem clock memory sau khi hoàn thành bài tập 4.2

39
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
4.2. TIMER - IEC
Đối với PLC S7-1500 hoặc PLC S7-1200 có 4 loại câu lệnh Timer là TON, TOF, TP, TONR.
Nguyên lý hoạt động không có gì thay đổi so với Simatic Timer.
Độ phân giải của IEC Timer là 1ms, Max time = 231 - 1 ms đối với Timer 32 bit (Time) và
Max time = 263 - 1 ms đối với Timer 64 bit (LTime).

: Tại ??? ta có thể chọn hoặc

4.2.1. TON
Khi ngõ vào IN tác động và duy trì trạng thái cho phép TON hoạt động. Khi giá trị ET > PT thì
ngõ ra Q cho kết quả mức 1. (Các tiếp điểm thay đổi trạng thái)
Khi ngõ vào IN mất tín hiệu thì TON ngưng hoạt động. Giá trị ET trả về 0.

IN: Chân tín hiệu bắt đầu chạy Timer


Q: Kết quả sau khi đạt đủ thời gian đặt PT
PT: Đặt giá trị Timer với cú pháp T#...
ET: Giá trị thời gian hiện tại của Timer

IEC Timer không đặt tên giống Simatic Timer là từ T0-T255 mà sử dụng một DB để quản lý dữ
liệu, DB này do hệ thống tự tạo ra nên ta chỉ có thể thay đổi tên tag (symbol).
Tên timer ở trên đang là "IEC_Timer_0_DB" ta có thể đổi thành "Timer 1" như dưới để dễ sử
dụng tiếp điểm -| |- hay -|/|-.

Như vậy tiếp điểm Timer IEC sẽ là "Tên timer".Q

40
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Ví dụ 1: Nhấn nút ON, bơm nước 25s sau đó tự tắt. Quan sát chân vùng nhớ ET
ON: I0.0; OFF: I0.1; Bơm: Q0.0

Nhận xét 1: chân ET (MD10): Thời gian đếm lên hay xuống ???
Nhận xét 2: Giá trị ET như thế nào khi ngắt ngõ vào IN ?. So sánh với Simatic Timer.

4.2.2. TOF
Khi ngõ vào IN tác động và duy trì thì tiếp điểm TOF thay đổi trạng thái.
Khi ngõ vào IN chuyển trạng thái tín hiệu về 0 thì sau khoảng thời gian đặt ở PT thì trạng thái
tiếp điểm trả về vị trí ban đầu.

Khai báo tương tự TON


Ví dụ 1: Nhấn nút START động cơ chạy và quạt làm mát hoạt động, Nhấn nút STOP động cơ
dừng sau 10 giây quạt làm mát dừng.

41
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
4.2.3. TP
Khi ngõ vào IN có tín hiệu tác động thì TP hoạt động, ngõ ra Q sẽ tạo 1 xung bằng giá trị đặt ở
PT.
Khi giá trị ET = PT thì kết thúc.
Trong quá trình TP hoạt động ngõ vào IN còn tác động hay không cũng không ảnh hưởng.

Ví dụ 1: Nhấn nút ON đèn hành lang sáng trong 10 giây thì tắt.

4.2.4. TONR

Khối hàm Timer này hoạt động giống như Ondelay Timer TON, chỉ khác ở chức năng nhớ
được thời gian khi mất tín hiệu đầu vào IN. Khi tín hiệu đầu vào IN có trở lại thì bộ Timer
TONR này sẽ chạy tiếp tục với giá trị bị dừng lúc trước.
Giản đồ thời gian của TONR:

42
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Bài tập 4.3: Thực hiện thay thế IEC Timer cho các bài tập ví dụ Simatic Timer

** Tạo xung 1 giây với 2 bộ Timer TON (Ton = Toff = 0.5s)

43
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
BÀI 5: LẬP TRÌNH ỨNG DỤNG BỘ ĐẾM VÀ SO SÁNH
5.1. BỘ ĐẾM COUNTER
Bộ đếm counter cũng có 2 dạng là Simatic và IEC.
Cả 2 đều có 3 loại bộ đếm là CU, CD và CUD tức đếm lên, đếm xuống và vừa đếm lên đếm
xuống.
Ta cùng điểm qua một số điểm khác nhau:

Simatic Counter IEC Counter


Khối hàm Lệnh Khối hàm
Đặt tên C0 đến C255 Do DB quản lý
Value 0 đến 999 Tùy thuộc vào hàm Counter sử
dụng 16/ 32/ 64 bit và có dấu
"âm" hay không.
Dù vậy thì giá trị vẫn lớn hơn rất
nhiều so với Simatic Counter.

Bộ đếm
lên

CU: kích đếm lên CU: kích đếm CU: kích


S: Đặt giá trị từ chân PV vào lên đếm lên R:
giá trị hiện tại của bộ đếm SC: đặt giá trị Reset giá trị
R: Reset giá trị về 0 C0 = 10 về 0
Q : lên 1 khi bộ đếm ≠0 (C#10) PV: đặt giá trị cho bộ đếm
CV và CV_BCD: lưu trữ giá Q: lên 1 khi giá trị bộ đếm ≥ PV
trị hiện tại của bộ đếm CV: lưu trữ giá trị hiện tại của
bộ đếm

44
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Bộ đếm
xuống

Giá trị bộ đếm chỉ đếm xuống tới 0, không có Giá trị bộ đếm có thể xuống giá trị
giá trị âm âm (Min = -32767)
CD: kích đếm xuống
LD: Đặt giá trị từ chân PV vào giá
trị hiện tại của bộ đếm
PV: đặt giá trị cho bộ
đếm Q: lên 1 khi bộ
đếm ≤ 0
CV: lưu trữ giá trị hiện tại của bộ
đếm
Bộ đếm
lên/
xuống

5.2. HÀM SO SÁNH


Có 5 hàm so sánh: bằng ==, khác <>, hơn hơn bằng >=, nhỏ hơn bằng <=, lớn hơn > và nhỏ
hơn <

Ví dụ 1: Xét đoạn chương trình dưới

Q1.0 TRUE khi giá trị trong MW10 = 10

45
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Kiểu dữ liệu có thể là INT, DINT, REAL, WORD, DWORD, TIME


Tuy nhiên khi sử dụng bộ so sánh với khối hàm Counter thì ta phải khai báo là kiểu INT vì bộ đếm
là số nguyên 16 bit. Nếu ta thay đổi kiểu dữ liệu thì phải thay đổi cho phù hợp khi sử dụng hàm so
sánh.
Ví dụ 2: Xét đoạn chương trình dưới

46
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Kết quả:
Q 0.0 0.1 1.0 1.1 1.2 1.3 1.4
MW20
Nhỏ hơn 0 X X X X
0 X X X X
1 X X X
2 X X X
3 X X X X
4 X X X
5 X X X
6 X X X X X
7 X X X X
8 X X X X X
9 X X X X X
10 X X X X
11 X X X X
12 X X X X
Lớn hơn 13 X X X

Bài tập 5.1: Đếm sản phẩm từ I0.1 và bào số lượng sản phẩm theo yêu cầu sau:
• Không có sản phẩm đèn A sáng.
• Từ 1 đến 10 sản phẩm đèn B sáng.
• Từ 11 đến 20 sản phẩm đèn C sáng.
• Từ 20 sản phẩm trở lên đèn D sáng.

Bài tập 5.2: Đếm số sản phẩm bên trong băng tải, tức sản phẩm vào thì đếm lên, sản phẩm ra
đếm xuống.

Bài tập 5.3: Điều khiển 4 đèn A, B, C, D sáng dần. Thời gian chuyển đổi là 1 giây.
Đèn
t A B C D
0 0 0 0 0
1 1 0 0 0
2 1 1 0 0
3 1 1 1 0
4 1 1 1 1
5 (reset) 0 0 0 0

47
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
BÀI 6: PHÂN TÍCH QUY TRÌNH CÔNG NGHỆ VÀ GIẢI THUẬT LẬP TRÌNH
6.1. LẬP TRÌNH TUẦN TỰ ỨNG DỤNG KHỐI HÀM SR (Grafcet)
Lưu đồ tuần tự nối tiếp có hồi tiếp:

Start

Điều kiện A

Điều kiện B
Hồi tiếp

Điều kiện C và
Điều kiện E

Điều kiện D

48
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Chuyển đổi giản đồ trên qua chương trình PLC:

49
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
6.2. KHẢO SÁT MÔ HÌNH ĐÓNG NẮP

Bảng địa chỉ:


I0.0 Cảm biến đầu băng tải S1 Q0.0 Băng tải ON
I0.1 PP ở trong Q0.1 PP đi vào
I0.2 PP ở ngoài Q0.2 PP đi ra
I0.3 PP ở trên Q0.3 PP đi xuống
I0.4 PP hút OK Q0.4 PP hút
I0.5 Cảm biến ở giữa băng tải S2 Q0.5 Gạt
I0.6 Cảm biến ở cuối băng tải S3
I1.0 Nút START Q1.0 Đèn START
I1.1 Nút STOP (NC) Q1.1 Đèn RESET
I1.2 Key Auto/Man Q1.2 Đèn Q1
I1.3 Nút RESET Q1.3 Đèn Q2

Nhận dạng và nhận xét tín hiệu ngõ vào I, ngõ ra Q:

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

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

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

50
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
6.3. MÔ TẢ QUY TRÌNH HOẠT ĐỘNG CỦA MÔ HÌNH

1. Nhấn nút “RESET” trên bảng điều


khiển.
Hệ thống di chuyển về Vị trí ban đầu:
- Băng tải dừng.
- Tay gấp P&P ở vị trí trên cùng và ở
bên trong.
- Chân không tắt.
- Bộ chặn ở vị trí cho phép phôi vào vị
trí xử lý.
- Đèn “START” trên bảng điều khiển
sáng.
2. Nhấn nút “START” trên bảng điều
khiển.
Đèn “START” trên bảng điều khiển tắt.
3. Khi có phôi ở vị trí đầu băng tải.
Băng tải di chuyển phôi đến vị trí xử lý.
4. Module P&P di chuyển xuống hút
nắp cho đến khi cảm biến báo đã hút
được nắp.
5. Module P&P di chuyển đi lên.
6. Module P&P di chuyển đi ra.
7. Module P&P di chuyển đi xuống.
8. Module P&P nhả nắp ra.
9. Module P&P di chuyển đi lên.
10. Module P&P di chuyển đi vào.
11. Bộ chặn hoạt động cho phép phôi
đang xử lý đi qua.
12. Phôi được di chuyển đến cuối
băng tải.
13. Băng tải dừng.
14. Bộ chặn trả lại vị trí ban đầu.
=> Chu kỳ mới tiếp tục.

51
TUÂN CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

BÀI 7: LẬP TRÌNH VÀ XỬ LÝ TÍN HIỆU ANALOG INPUT


7.1. TỔNG QUAN TÍN HIỆU ANALOG PLC S7-1500
Xét tín hiệu analog trên CPU 1512C-1PN

CPU này có tích hợp AI5/ AQ2

Đối với PLC S7-1500 ta có thể cài đặt thông số trực tiếp từng kênh một, không giống PLC S7-
1200/300 ta chỉ có thể cài đặt 1 nhóm kênh (gồm 2 kênh).
Địa chỉ của Analog ta có thể thay đổi được giống địa chỉ ở ngõ vào/ ra Digital

52
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Ví dụ 1: Xét gian đồ với giá trị đơn cực bên dưới:
Giá trị điện áp 0 - 10V sẽ được scale ra giá trị INT 0 - 27648
Volt 0 10
INT 0 27648

Tương tự giá nếu ta đo giá trị dòng điện 4-20mA thì giá trị cũng sẽ được scale
như vậy:
4 - 20mA tương ứng 0 - 27648

Ví dụ 2: Xét gian đồ với giá trị lưỡng cực bên dưới:


Volt -10 10
INT -27648 27648

53
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
* Vậy tại sao lại là "27648"??

Giá trị đo dòng điện


Giá trị INT Kết quả
0 - 20 mA 4 - 20mA
32767 23.70 mA 22.96 mA
Overflow
32512
32511 23.52 mA 22.81 mA
Overrange
27648 20 mA 20 mA
20736 15 mA 16 mA
Rated range
1 723.4 nA 4 mA ± 578.7 nA
0 0 mA 4 mA
-1
Underrange
-4864 -3,52 mA 1.185 mA
-4865
Underflow
-32768

7.2. BÀI TẬP ỨNG DỤNG


Yêu cầu: Tính giá trị mực nước (ml) trong bồn và giá trị điện áp cảm biến trả về module Analog
PLC (mV), biết địa chỉ các tín hiệu;
Bơm nước: Q0.0
Nút nhấn Start: I1.0
Cảm biến áp suất: PIW 272
Thực hiện:

Bước 1: Đánh giá hình dạng của bồn nước

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

Bước 2: Cho mực nước ở mức 0.5 lit, ghi nhận giá trị INT đọc được

Cho mực nước ở mức 2.7 lit, ghi nhận giá trị INT đọc được

Bước 3: Từ 2 điểm khảo sát trên, viết phương trình đường tín hiệu

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

Bước 4: Lập trình PLC

Chương trình:

54
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
7.3. KHỐI HÀM NORM_X VÀ SCALE_X

Sử dụng lệnh Normalize để chuyển đổi giá trị đầu cào nằm trong giới hạn [Min, Max] với ngõ
ra thay đổi tuyến tính trong giới hạn [0.0, 1.0].
Công thức toán học của lệnh NORM_X là:
OUT = (VALUE - MIN) / (MAX - MIN)

Sử dụng lệnh Scale để chuyển đổi giá trị sang một tầm giá trị mới phù hợp với yêu cầu sử dụng.
Khi lệnh SCALE_X được thực hiện thì giá trị VALUE trong giới hạn [0.0, 1.0] sẽ được chuyển
đổi nằm trong giới hạn [MIN, MAX] và được lưu vào vùng nhớ OUT.
Công thức toán học của lệnh SCALE_X là:
OUT = [VALUE * (MAX - MIN)] + MIN

55
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Ví dụ: Sử dụng NORM_X và SCALE_X xử lý tín hiệu cảm biến lưu lượng (điện áp).

Tầm đo Kênh 0

Tính giá trị điện áp của cảm biến [V]:

Tính giá trị lưu lượng của cảm biến [L/m]:

56
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
7.4. KHỐI HÀM SCALE
Khối hàm SCALE (hay khối FC105 kế thừa từ phần mềm STEP Manager) là khối hàm thư
viện của Siemens, khối hàm này có chức năng tính giá trị INT đọc về sang giá trị điện áp, dòng
điện, ... với dãi giá trị MIN <= OUT <= MAX do người dùng quy định.

IN là địa chỉ ngõ vào analog

HI_LIM là giá trị max, thường lấy giá trị max của cảm biến khai báo

LO_LIM là giá trị min, thường lấy giá trị min của cảm biến khai báo

BIPOLAR là chân xác định giá trị đơn cực hay lưỡng cực,

FALSE: đơn cực, K1 = 0 ≤ INT DATA ≤ K2 = 27648

TRUE: lưỡng cực, K1 = -27648 ≤ INT DATA ≤ K2 = 27648

RET_VAL báo giá trị về để xác định lỗi, thường là:

W#16#0000: Không lỗi

W#16#8000: Vượt ngưỡng trên hoặc dưới

OUT là kết quả giá trị được tính toán

OUT = [((IN - K1)/(K2 - K1)) * (HI_LIM - LO_LIM)] + LO_LIM

Bài tập nhanh: Sử dụng khối hàm SCALE khai báo các giá trị như trên kiểm tra giá trị
OUT với điện áp thực tế cảm biến trả về.

57
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
BÀI 8: LẬP TRÌNH XỬ LÝ TÍN HIỆU ANALOG OUTPUT

8.1. LÝ THUYẾT
Giá trị xuất ra ngõ PQWxxx cũng là giá trị INT với dải K1 đến K2
Xét giản đồ sau:

Giá trị xuất ra ngõ ra Analog sẽ nằm trong giới hạn LO_LIM và HI_LIM
OUT = [(Set_Value - LO_LIM)/(HI_LIM - LO_LIM) * (K2 - K1)] + K1

Ví dụ ta muốn xuất giá trị điện áp ra ngõ PQW272 với điện áp 0 - 10V;
tức là tương ứng K1 = 0, K2 = 27648

Với mỗi mức điện áp từ 0 - 10V sẽ


tương ứng giá trị từ 0 - 27648.
Ta chỉ việc giá trị điện áp mong
muốn sẽ ra được giá trị INT cần
đưa vào PQW272 là bao nhiêu.

58
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
8.2. BÀI TẬP ỨNG DỤNG
Viết chương trình điều khiển bơm để ổn định mực nước ở mức 2Lit với công suất bơm như
sau.
Khi mực nước thấp hơn 1.0 lit thì bơm 100% công suất.
Khi mực nước từ 1.0 - 1.5 lit thì bơm 70% công suất.
Khi mực nước từ 1.5 - 1.8 lit thì bơm 50% công suất.
Khi mực nước từ 1.8 - 2.0 lit thì bơm 30% công suất.
Hướng dẫn
Bước 1: Bơm nước đến các mực nước1.0; 1.5; 1.8; 2.0 Lit, đọc giá trị INT trả về từ cảm biến.

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

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

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

Bước 2: Quy đổi 0 - 27648 ra 0 - 100%

Tính:
30% = ........ INT
50% = ........ INT
70% = ........ INT
100% = ........ INT

59
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Bước 3: Dùng lệnh so sánh để viết để đặt giá trị cho ngõ ra Analog (bơm)
Giá trị INT tại các điểm mực nước, học viên khảo sát và nhập vào.

Do STOP
đấu NC

60
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

8.3. KHỐI HÀM UNSCALE


Tương tự như khối hàm SCALE, khối UNSCALE (hay FC106 đối với Step7 V5.) này cũng là
khối hàm có sẵn trong thư viện, chức năng ngược lại với hàm SCALE

KẾT LUẬN VẤN ĐỀ ANALOG:

Việc sử dụng khối hàm SCALE hay UNSCALE chỉ giúp việc tính toán nhanh hơn, ta hoàn toàn
có thể tự sử dụng các phép toán + - * / để tự tính toán lấy giá trị của mình mong muốn.
Việc tính ra giá trị vật lý mới là vấn đề chủ chốt và cần thiết.
Trong thực tế, việc xác định phương trình đường thẳng như trên ví dụ là hơi khó khăn bởi tính
chất tuyến tính của cảm biến và hệ thống. Vì vậy nếu sử dụng phương trình tuyến tính này ta
có thể chia nhỏ các điểm để có nhiều đường tuyến tính nhỏ, việc tính toán ra giá trị sẽ chính
xác hơn.

61
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
BÀI 9: THỜI GIAN THỰC - REAL TIME

9.1. KHỐI HÀM WR_SYS_T VÀ RD_SYS_T


9.1.1. Khối hàm WR_SYS_T
Khối hàm WR_SYS_T cho phép ta đặt thời gian vào CPU.
Ví dụ ta muốn set thời gian CPU bắt đầu từ năm 2020/01/15 vào lúc 07:10:20:0.0
Thực hiện:
* Tạo khối DB
Chọn Add new block

Chọn Data block (DB) > Đặt tên cho khối > Type: Global DB > Chọn number: Automatic >
Nhấn OK
(Đặt tên cho dễ hiểu, không nên quá dài như ví dụ)

Kết quả:

* Vào khối DB ta vừa tạo:


62
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Tạo biến tên WR_SYS_T (đặt tên trùng khối cho dễ quản lý, hoặc tùy người viết)
Data type: Date_And_Time
Start value: thời gian ta muốn đặt với cú pháp DT#năm-tháng-ngày-giờ:phút:giây.miligiây

* Lấy khối hàm WR_SYS_T ra và khai báo như bên dưới

Khi tác động M5.0 sẽ thực hiện load thời gian DT#2020-01-15-7:20:0.0 vào CPU. Ta chỉ cần
load thời gian này vào CPU 1 lần nên M5.0 chỉ cần tác động 1 lần duy nhất. Nêu tác động lại
thì sẽ lại load DT#2020-01-15-7:20:0.0 vào CPU.
MW210 sẽ lưu giá trị mã lỗi của khối:

63
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
9.1.2. Khối hàm RD_SYS_T
Cũng tương tự như WR_SYS_T ta cũng tạo ra 1 khối DB để lưu giá trị Date And Time đọc lên
từ CPU.

* Tạo khối DB tên READ_DATEANDTIME

* Trong khối DB này ta cũng tao một biến có data type là Date_And_Time

* Lấy khối hàm RD_SYS_T ra và khai báo như bên dưới

Ta muốn đọc liên tục thì chân EN luôn TRUE (ở đây sử dụng 1 tiếp điểm NC)

Giá trị sẽ được xuất ra chân OUT, mà ta sử dụng DB để lưu trữ.

MW212 sẽ lưu giá trị mã lỗi của khối:

64
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
9.1.3. Khối hàm T_COMP
Khối hàm này sẽ cho phép ta so sánh 2 DATE AND TIME

Ví dụ ta muốn SET ngõ ra Q2.4 vào 2020/01/15 vào lúc 20:10:20:0.0

* Tạo một DB tên CMP_DT để ta lưu giá trị đặt mong muốn

* Khai báo 1 biến với data type là Date And Time và giá trị DT#2020-01-015-20:10:00

Đặt vấn đề: Viết chương trình tưới cây tự động vào 10 giờ sáng hằng ngày trong 10 phút.

Trong khối DB tên CMP_DT ta đã tạo biến với khung giờ trên, thế nhưng khung giờ cố định
nhưng ngày lại khác, qua ngày mới DB không thể tự thay đổi ngày trong khung giờ so sánh.

65
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
9.2. CÁC PHÉP TOÁN THỜI GIAN
9.2.1. Phép cộng thời gian T_ADD

IN1: DT
IN2: Time
OUT: DT
Giải quyết vấn đề trên:
Ta có thể viết chương trình để mỗi lần tưới sẽ thực hiện cộng thêm 24h (tức 1 ngày) vào khung
giờ tưới.

Lấy thời gian đọc được so


sánh với giá trị đặt
(Giá trị đặt ban đầu sẽ là
lần tưới đầu tiên:

Kết quả so sánh: tưới cây trong


10m
(ở đây đặt 10s để kiểm tra
chương trình nhanh hơn)

Cứ mỗi lần tưới cây


lại cộng giá trị đặt
với 1 ngày (1d)

66
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
9.2.2. Phép trừ thời gian T_SUB

IN1: DT
IN2: Time
OUT: DT
Tương tự phép cộng, phép trừ thực hiện (IN1 - IN2) đưa ra kết quả OUT.

9.3. KHỐI HÀM READ TIME SYSTEM - TIME_TCK

Giá trị tại chân RET_VAL chính là thời gian CPU bắt đầu hoạt động.
Giá trị sẽ chạy lại từ 0 khi CPU chuyển từ STOP sang RUN hoặc vượt quá giới hạn 231 -1 ms.

Giải quyết vấn đề tưới cây ở trên.


Ta cũng có thể dùng cách này để tưới cây hàng ngày với các khung giờ khác nhau khung giờ
được tính từ lúc mở CPU, với điều kiện CPU mở 24/24. Tuy nhiên rất khó vì có thể xảy ra
trường hợp cúp điện.

67
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
BÀI 10: THIẾT KẾ HÀM CHỨC NĂNG VỚI FUNCTION FC

10.1. THIẾT KẾ HÀM CHỨC NĂNG VỚI FC


Hàm chức năng FC là khối hàm có các biến IN, OUT, IN/OUT do người dùng tự định nghĩa.
Trong khối FC có biến Temp sử dụng riêng trong khối, thường dùng với chức năng tính toán
trung gian.
Hàm FC không có bộ nhớ nội nên dữ liệu sẽ mất đi khi không gọi FC ra nữa. Có thể gọi FC
trong khối OB, FC, FB khác.
Không bắt buộc người dùng phải sử dụng hết toàn bộ các chức năng của các biến. Ví dụ, khối
hàm chỉ có 1 biến IN và 1 biến OUT vẫn được chấp nhận.
Ví dụ 1: Thiết kế khối hàm chức năng điều khiển động cơ thuận nghịch với thời gian đặt.
* Add new block

* Chọn FC Function > Đặt tên khối "Motor_Controller" > Chọn ngôn ngữ LAD > OK

Kết quả:
68
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
* Ta vào khối FC vừa tạo ở trên, khai báo biến Input và Output
Các biến Input bao gồm:
Nút nhấn START
Nút nhấn STOP
Nút điều khiển Motor chạy thuận: FOR.
Nút điều khiển Motor chạy nghịch: REV.
2 bộ Timer để đặt thời gian là Timer_For và Timer_Rev
2 chân để đặt giá trị thời gian
(Ở đây sử dụng Simatic Timer nên Data type là S5Time
và Timer. Nếu sử dụng IEC Tỉmer thì Data type là
IEC_Timer và Time)
Các biến Output bao gồm:
Đèn báo Start_light sáng khi nhấn START
Motor chạy thuận: Motor_For
Motor chạy nghịch: Motor_Rev
* Viết chương trình sử dụng các biến In, Out đã khai báo ở trên

69
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
* Sau khi viết xong ta compile kiểm tra lỗi và save project.

* Vào khối chương trình chính OB Main gọi khối FC2 (Khối FC ta tạo) ra hoặc nơi ta muốn
gọi khối "Motor_Controller" này.

* Lấy Điền "Motor_Controller" hoặc FC2 ta được


* Khai báo các biến địa chỉ vào ta được.

** Tương tự như vậy ta có thể gọi hàm khác ra và khai báo cho Motor 2, 3, 4, ...

Chú ý trong trường hợp này đang dùng Simatic Timer nên chỉ có thể khai báo từ T0 -T255.

70
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Ví dụ 2: Thiết kế hàm SCALE
Hàm SCALE có chân Input: IN, HI_LIM, LO_LIM, BIPOLAR và Ouput: OUT
OUT = [((FLOAT (IN) – K1)/(K2–K1)) ∗ (HI_LIM–LO_LIM)] + LO_LIM
* Tạo khối FC "SCALE_FC"

* Khai báo biến trong khối SCALE_FC

* Lập trình
Do chương trình thực hiện nhiều phép toán nên cần biến nhớ để chứa giá trị tính toán, giá trị
này không có ý nghĩa hiển thị ra khỏi khối nên ta dùng biến Temp.

71
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

* Sau khi viết xong ta compile kiểm tra lỗi và save project.

* Lấy Điền "SCALE_FC" hoặc FC1 (số FC khi ta khởi tạo) ta được

Khai báo và kiểm tra chức năng khối SCALE_FC.

Bài tập 10.2: Thiết kế khối hàm chức năng đọc tín hiệu Analog, đưa ra kết quả điện (giống tín
hiệu cảm biến) và giá trị vật lý (độ cao, nhiệt độ, tốc độ, ...)

72
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
** Khi ta thay đổi các biến In, Out hay In/Out thì sẽ phải gọi lại khối hoặc Update interface
Nhấn chuột phải vào khối hàm > Chọn Update block call

Sẽ hiện ra 2 giao diện cũ và mới để ta so sánh

Nhấn OK

** Còn nếu không thay đổi In/Out thì mà chỉ thay đổi chương trình bên trong khối thì không
ảnh hưởng đến khối hàm được gọi ra. (Lúc này chỉ khác chức năng do chương trình thay đổi).

73
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
10.2. THIẾT KẾ HÀM CHỨC NĂNG VỚI FC VỚI DB
Các ngõ vào START, STOP, FOR, REV ở khối hàm "Motor_Controller" sử dụng các nút nhấn
bên ngoài điều khiển, nhưng ngoài ra ta muốn trên HMI/SCADA cũng có thể điều khiển được
nên phải viết thêm một biến nhớ M song song với ngõ I.
Tuy nhiên ta có thể quản lý dữ liệu Motor_Controller bằng một khối DB.

Ví dụ 1: Từ khối hàm chức năng Motor_Controller ở trên, hãy thiết lập một khối DB quản lý
dữ liệu khối hàm này.
* Tạo một khối DB tên Motor_DB sau đó tạo các biến với kiểu dữ liệu như dưới đây.

Khi check vào ô Retain thì giá trị tag đó sẽ được lưu lại kể cả khi CPU mất điện.
74
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Thời gian For và Rev ta có đặt tại giá trị bắt đầu trong DB, khi ta liên kết tag này với
HMI/SCADA ta có thể thay đổi thời gian chạy của Motor. (Việc này cũng có thể sử dụng vùng
nhớ M để thực hiện nhưng phức tạp hơn.)

75
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
10.3. KIỂU DỮ LIỆU DO NGƯỜI DÙNG ĐỊNH NGHĨA - UDT
Đặt vấn đề: Ta có số lượng lớn Motor cần điều khiển, như vậy ta phải tạo ra một list các biến
như bảng 10.1.

Bảng 10.1: Khai báo thông thường Bảng 10.2: Khai báo với UDT
Chú ý kiểu dữ liệu Data type ở bảng 10.2.

Kiểu dữ liệu "Motor_UDT" như vậy ta có thể tự tạo cho mình kiểu dữ liệu mong muốn bao
gồm nhiều biến khác nhau. Như vậy khi khai báo biến ta chỉ việc chọn kiểu dữ liệu
"Motor_UDT" là sẽ bao gồm 7 biến bên trong.

Thực hiện: Tạo UDT

* Chọn PLC data types > Add new data type

Có thể đổi tên:

76
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
* Mở Motor_UDT > Tạo biến tên Motor_type1 với kiểu dữ liệu Struct.
Sau đó tạo các biến cần thiết như bên dưới.

* Sau đó vào khối DB > Tạo biến với tên Motor_1 với kiểu dữ liệu "Motor_UDT" mà ta đã
tạo ở trên.

** Khi ta có sự thay đổi trong Motor_UDT thì bên khối DB sẽ báo lỗi

Ta muốn cập nhật thay đổi này thì nhấn chuột phải vào chỗ bôi đỏ "Motor_UDT" > Chọn
Update interface.

77
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

78
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
BÀI 11: ĐIỀU KHIỂN ĐỘNG CƠ VỚI HÀM PHÁT XUNG

11.1 Tính toán giá trị và cấu hình cho động cơ bước autonics driver MD5-HD14
Số xung tối thiểu cần điều khiển động cơ quay 1 vòng là
360
𝑝= = 5000xung
0.072

Với 360 là góc 1 vòng


0.072 là góc 1 bước của động cơ
Số xung trên mỗi vòng quay của động cơ (P ) : (resolution) x p
Chân Division selection của Driver ở mức cao MS2 hoạt động, ở mức thấp MS1 hoạt động.
Ta điều chỉnh xung của 1 bước bằng cách xoáy mũi tên trên MS1 của drive theo số từ 0…F
𝐵𝑎𝑠𝑖𝑐 𝑠𝑡𝑒𝑝 𝑎𝑛𝑔𝑙𝑒 (0.72)
𝑅𝑜𝑡𝑎𝑡𝑖𝑜𝑛 𝑎𝑛𝑔𝑙𝑒 𝑜𝑓 𝑠𝑡𝑒𝑝 𝑚𝑜𝑡𝑜𝑟 =
𝑅𝑒𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛

Tỉ số chia theo mức cài đặt


➢ Tính P36

P36 chỉ định hệ số nhân xung đầu vào để đạt tốc độ định mức của step. Nó sẽ được đặt thành
các giá trị được xác định và phải được tính toán tối đa tần số của đầu ra xung được chọn của
bộ điều khiển.
𝑇
4𝑋𝑃𝑋
𝑃36 ≥ 60𝑠
𝑓𝑜𝑢𝑡 𝑚𝑎𝑥
Tốc độ định mức đông cơ step :180 vòng /phút
Số xung trên mỗi vòng quay của động cơ (P ) : (resolution) x p
Tần số tối đa của đầu ra xung được chọn Q0.0 : 100khz
➢ Tính tần số vận tốc tối đa

𝑇
4𝑋𝑃𝑋
𝑓𝑚𝑎𝑥 ≥ 60𝑠
𝑃36
Tốc độ định mức đông cơ step :180 vòng /phút
Số xung trên mỗi vòng quay của động cơ (P ) : (resolution) x p
79
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
➢ Cấu hình
➢ Nhấp chuột phải vào tên PLC => Chọn Properties => tại mục pulse generators (PTO/PWM)
nhấp chuột vào PTO1/PWM1 => tích cho phép vào Enable và Pulse options chọn PTO (pulse
A and direction B)

Cấu hình chân phát xung của PLC

Vào Technology objects => Add new object => TO_Positioning axis => Ok

80
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Cấu hình cài đặt driver điều khiển bằng plc


Vào Basic parameters => General :
- Drive : chọn PTO (Pulse Train Output) (xung phát ra)
- Unit of measurement : Pulses (chọn đơn vị là xung)

Cấu hình đầu ra giá trị là xung

Vào Driver :
- Pulse generator : chọn Pulse_1 (địa chỉ phát xung đã cấu hình ở plc phía trên)

81
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
- Signal type : chọn PTO (pulse A and direction B) (tín hiệu điều khiển A chân xung , B
chân hướng )
- Axis 1 pulse chân Q0.0, Axis 1 direction chân Q0.1

Cấu hình chân xung chân hướng driver


Vào Mechanis:
- Pulses per motor revolution: ( xung trên mỗi vòng quay của động cơ)
- Load movement per motor revolution :xung tối thiểu cần dùng động cơ quay 1 vòng
- Permitted direction of rotation : Both directions (đặt hướng quay cả hai hướng
- Kích vào Invert direction signal (tín hiệu hướng)

82
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Cấu hình chiều quay động cơ và số xung cho một vòng
Vào Dynamics:
- Maximum velocity: (vận tốc tối đa)
- Start/stop velocity: (vận tốc bắt đầu/dừng)
- Acceleration/deceleration:thời gian tăng/giảm tốc là 1s

Cấu hình vận tốc cho động cơ


Vào Emergency Stop : đặt thời gian giảm tốc khi dừng khẩn 0.1s

83
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Cấu hình dừng khẩn


11.2 Câu lệnh điều khiển động cơ

Khối MC Power
Khối MC Power là khối cho phép động cơ quay:
- Chân Axis: chân nhận giá trị cấu hình động cơ.
- Chân Enable: nhận tín hiệu cho phép hoặc là không chân này phải luôn có tín hiệu động cơ mới
chạy.
- Start Mode: Chế độ chạy tín hiệu lên mức 1.
- Stop Mode : Chế độ dừng tín hiệu xuống mức 0.
- Status : chân trạng thái
- Error: chân báo lỗi

84
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
MC MoveRelative
Khối MC MoveRelative điều khiển động cơ quay tương đối
- Chân Axis: chân nhận giá trị cấu hình động cơ.
- Chân Execute: nhận tín hiệu điều khiển động cơ quay chỉ nhận sườn dương
- Distance: nhận giá trị khoảng cách và hướng
- Velocity : nhận giá trị vận tốc
- Done : báo quay xong góc
- Error : báo lỗi

85
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
BÀI 12: TRUYỀN THÔNG DỮ LIỆU GIỮA 2 PLC

12.1. Truyền thông Profibus S7300 với S71200


- Điều kiện phần cứng: 1. CPU 313C-2DP (Slave)
2. CPU1214C –DC/DC/DC
3. Modul SM1243-5 (Profibus Master)
- Mở phần mềm TIA Portal V12, khởi tạo New Project. Chọn Devices & network và Add new
Devices.

- Thiết lập phần cứng cho trạm Master ( 1214C- CM1243-5). Chọn Simatic S71200, chọn
CPU, kích đúp chuột trái chọn CPU1214C DC/DC/DC.

86
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

- Để thiết lập Modul truyền thông CM1243-5. Kích chuột trái vào Slot 101. Chọn
Communication modul, chọn CM1243-5.

- Đặt địa chỉ cho trạm Master là 2

-
- Thiết lập phần cứng trạm Slave CPU313C-2DP.
87
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
- Chọn Add new devices, chọn SIMATIC S7-300, chọn CPU 313C-2DP.

-
- Để kết nối 2 Modul, chọn Devices & network. Giữ chuột trái, nối cổng DP của S7300 với
cổng DP của CM1243-5 như hình dưới.

- Để thiết lập mạng, kích đúp chuột trái vào cổng DP của S7300. Ở table Operating Mode
chọn DP Slave.

- Đặt địa chỉ cho Slave là 3

88
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

-
- Mục Assigned DP Master chọn kết nối tới CM1243-5.

-
- Để thiết lập vùng nhớ truyền nhận dữ liệu kích đúp vào Add new và thiết lập vùng nhớ.

89
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

- Viết chương trình test trên Slave và Download

90
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

-
- Viết chương trình và Download trên Master

91
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

- Để Download chương trình trên Master. Đặt địa chỉ của PC là 192.168.1.2 và địa chỉ của PLC
là 192.168.1.4. Kích chuột trái vào thanh rail của CPU 1214C và chọn Download.

- Hãy Run PLC và chạy Test thử chương trình của bạn.

92
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
12.2. Truyền thông Modbus Ethernet giữa 2 PLC S7-1200
Bước 1: Cho phép truyền nhận giữa 2 PLC

Để thực hiện việc truyền nhận dữ liệu ta cần cấp quyền cho phép như sau:

Nhấp chuột phải vào tên PLC => Chọn Properties => tại mục Protection & Security nhấp chuột vào Connection
mechanisms và tích dấu cho phép kết nối như hình bên dưới.

Hình 2.8: Cho phép truyền nhận dữ liệu


Thao tác tương tự cho PLC tiếp theo.

Bước 2: Kết nối S7 Connection giữa 2 PLC, ta click chuột vào mục Devices & networks bên trái màn hình để
thực hiện kết nối truyền thông.

Lưu ý: Đổi địa chỉ IP cho PLC sao cho không trùng nhau.

Để đổi địa chị 2 PLC ta có thể thực hiện bằng cách click chuột trái vào cổng PROFINET trên mỗi PLC. Hoặc

tại Devices & networks ta click chuột vào biểu tượng phía trên và đổi địa chỉ.

Sau khi đổi địa chỉ IP ta nhấp chuột vào cồng Profinet PLC1 kéo sang cổng Profinet PLC2 để tạo kết nối truyền
thông PN/IE.

Nhấp chuột vào biểu tượng sau đó chọn S7 Connection và kết nối 2 PLC với nhau thao tác
tương tự việc kết nối PN/IE.

93
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Hình 2.9 : Cấu hình kết nối truyền thông 2 PLC


Lưu ý: Khi viết chương trình ta gọi hàm PUT/GET trong chương trình của 1 PLC được chọn
làm Master để thực hiện ghi đọc dữ liệu truyền nhận 2 PLC.

1.2 Chương trình điều khiển trên phần mềm Tia portal v14.
Ta gọi một hàm khối xuống gõ PUT rồi nhấn enter sẽ đc hàm PUT.

• Hàm PUT: Gửi tín hiệu từ Master sang Slave

➢ Chân REQ : Chân cho phép gửi dữ liệu

➢ Chân ID : Địa chỉ

➢ Chân ADDR_i (i = 1…4): Địa chỉ trên Slave nhận tín hiệu từ Master

➢ Chân SD_i (i = 1…4): Địa chỉ trên Master gửi tín hiệu cho Slave

➢ Chân DONE : Chân báo đã gửi tín hiệu thành công

➢ Chân ERROR : Chân báo lỗi không gửi được tín hiệu

➢ Chân STATUS : Chân trạng thái

94
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Hình 2.10: Khối PUT


Ta kích vào biểu tượng trên hàm PUT để thiết lập hàm PUT
- Chọn Connection parameter: ở local có sẵn PLC Mater bên partner ta chọn PLC Slave

Hình 2.11: Cấu hình khối PUT


- Chọn Block Parameter :

Gọi các chân REQ , DONE, ERROR,STATUS để điều khiển việc cho phép gửi dữ liệu
Chân ID tự động có sau khi chọn REQ
Chân ADDR_1 nhập m60.0 vào start chọn 1byte length nghĩa là gửi tín hiệu từ master cho slave dài 1byte từ
M60.0 đến M60.7( địa chỉ ở slave)
Chân RD_1 nhập nhập m60.0 vào start chọn 1byte length nghĩa là tín hiệu nhận slave dài 1byte từ m60.0 đến
m60.7(địa chỉ ở master)

95
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

96
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Sau khi cấu hình xong các chân của khối PUT ta được như hình sau:

Network này là REQ cho phép gửi tín hiệu khi gửi xong chân DONE sẽ reset chân REQ bắt đầu một chu trình gửi
mới, nếu lỗi thì chân ERROR reset chân REQ
97
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
• Hàm GET: Tín hiệu gửi từ SLAVE sang MASTER

➢ Chân REQ : Chân cho phép gửi dữ liệu

➢ Chân ID : Địa chỉ

➢ Chân ADDR_i (i = 1…4): Địa chỉ trên Slave gửi tín hiệu cho Master

➢ Chân SD_i (i = 1…4): Địa chỉ trên Master nhận tín hiệu từ Slave

➢ Chân NDR : Chân báo đã gửi tín hiệu thành công

➢ Chân ERROR : Chân báo lỗi không gửi được tín hiệu

➢ Chân STATUS : Chân trạng thái

Hình 2.12: Khối GET


Ta gọi một hàm khối xuống gõ put rồi nhấn enter sẽ đc hàm get

Ta kích vào biểu tượng trên hàm GET để thiết lập hàm GET
- Chọn Connection parameter: ở local có sẵn PLC Mater bên partner ta chọn PLC Slave
- Chọn Block Parameter :

Gọi các chân REQ , DONE, ERROR,STATUS để điều khiển việc cho phép gửi dữ liệu
Chân ID tự động có sau khi chọn REQ
Chân ADDR_1 nhập m70.0 vào start chọn 2byte length nghĩa là gửi tín hiệu từ slave cho master dài 2 byte từ
m70.0 đến m71.7( địa chỉ ở master)
Chân RD_1 nhập nhập m70.0 vào start chọn 2byte length nghĩa là tín hiệu nhận master dài 2byte từ m70.0 đến
M71.7(địa chỉ ở slave)

98
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Hình 2.13: Cấu hình khối GET

99
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

100
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Network này là REQ cho phép gửi tín hiệu khi gửi xong chân NDR sẽ reset chân REQ bắt đầu
một chu trình gửi mới, nếu lỗi thì chân ERROR reset chân REQ
❖ Viết chương trình gửi và nhận tín hiệu qua các địa chỉ đã đặt ở cấu hình khối PUT và khối GET

Chương trình trên PLC master

101
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Chương trình bên PLC slave

102
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
BÀI 13: LẬP TRÌNH XỬ LÝ XUNG TỐC ĐỘ CAO

13.1. PHẦN CỨNG CPU COMPACT VÀ KHAI BÁO ĐỌC XUNG TỐC ĐỘ CAO
CPU Compact có tích hợp sẵn các DI/DO, hoặc có thể thêm AI/AO tùy mã hàng. Và còn có
thêm bộ đếm xung tốc độ cao HSC, bộ điều xung PWM.
Một số dòng Compact - CPU 300C: 312C, 313C, 313C-2DP/PtP, 314C -2DP, ...
13.1.1. Đấu nối phần cứng.
Tùy thuộc vào mỗi mã CPU mà có các chân đấu khác nhau. Để cụ thể ta phải tra manual của
CPU đó. (Học viên chép tài liệu trong ổ D:\Tai lieu\CPU 31xC Technological functions.pdf)
Trong bài này sẽ sử dụng CPU 313C-2DP
Các chân trong Connector X1 của CPU 313C-2DP/ PtP

13.1.2. Chức năng của bộ đếm tronng CPU300C


Có 3 chế độ đếm: Đếm liên tục, đếm 1 lần, đếm chu kỳ.
Track A/ pulse: Pha A/ chân xung.

103
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Track B/ Direction: Pha B/ chân hướng.
Hardware gate: Chân điều khiển phần cứng.
Latch: Chân chốt giá trị phần cứng.
Ví dụ: Ta muốn đọc xung từ encoder, ta có thể sử dụng CH0 bao gồm:
- 2 chân xung Pha A và Pha B lần lượt đấu vào DI+0.0 và 0.1
- Nếu sử dụng chức năng Start/Stop phần cứng thì đấu nút điều khiển vào DI+0.2
- Nếu sử dụng chức năng chốt phần cứng thì đấu nút điều khiển vào DI+1.4
- Ngõ ra output DO+0.0
13.1.3.Khai báo trên phần mềm
* Khai báo project PLC có CPU 313C-2DP

* Vào properties của CPU ta có thể thấy


ở mục Count, CPU này có 3 kênh đọc/
điều rộng xung

* Mà tại mỗi kênh ta có thể chọn mode như bên hình dưới

104
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

(1) Gate function: Abort counting - reset giá trị đếm hoặc Interrupt counting - chức năng ngắt.
(2) Comparision value: giá trị so sánh để thực hiện chức năng (1)
(3) Hysteresis: Độ trễ, ta có thể đặt độ trễ của ngõ ra số.
(4) Tín hiệu Input: Sử dụng loại tín hiệu ngõ vào như thế nào.
Nếu sử dụng ngắt cứng hay đảo chiều đếm cứng thì check vào ô.
(5) Output: Ngõ ra có thể được set lên bằng việc so sánh >= hoặc <= với giá trị đặt; hoặc tạo ra
một xung có độ rộng với thời gian đặt tại Pulse duration.
(6) Chọn tần số cho tín hiệu, HW gate và latch.
(7) Chọn điều kiện xảy ra ngắt phần cứng - HW interrupt. Nếu không sử dụng ngắt thì không
check

Nếu ở các mode khác nhau thì thông số có thể có thay đổi với từng mode.
13.1.4. I/O addresses

105
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Ta có thể thay đổi hoặc để mặc định địa chỉ I/O, địa chỉ này sẽ được khai báo trong khối
hàm
13.1.5. Khối hàm bộ đếm COUNT

Tham số Kiểu dữ Mô tả
liệu
INPUT
LADDR WORD Địa chỉ I/O address.
Phần này do ta đặt trong khai báo phần cứng. Sau đó quy
đổi ra số hệ thập lục phân.
Ví dụ ta khai báo 768, đổi ra số hex sẽ là 300. Vậy ta khai
báo trong khối hàm là W#16#300
CHANNEL INT Kênh được sử dụng.
SW_GATE BOOL Start / Stop bộ đếm.
CTRL_DO BOOL Cho phép ngõ ra hoạt động
106
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
SET_DO BOOL Cho phép điều khiển ngõ ra
JOB_REQ BOOL Kích hoạt động JOB (Trigger)
JOB_ID WORD W#16#0000: Không thực hiện chức năng gì hết
W#16#0001: Ghi giá trị vào COUNTVAL
W#16#0002: Ghi giá trị khởi đầu cho đếm
W#16#0004: Ghi giá trị vào chế độ Comparison
W#16#0008: Ghi giá trị sai lệch cho hysteresis
W#16#0010: Ghi khoảng thời gian xung - pulse duration
W#16#0082: Đọc giá trị khởi đầu cho đếm
W#16#0084: Đọc giá trị của chế độ Comparison
W#16#0088: Đọc giá trị sai lệch - hysteresis
W#16#0090: Đọc khoảng thời gian xung - pulse duration
JOB_VAL DINT Ghi giá trị cho JOB
OUTPUT
STS_GATE BOOL Trạng thái SW_Gate
STS_STRT BOOL Trạng thái HW_Gate
STS_LTCH BOOL Trạng thái chốt
STS_DO BOOL Trạng thái ngõ ra
STS_C_DN BOOL Trạng thái chiều đếm xuống
STS_C_UP BOOL Trạng thái chiều đếm lên
COUNTVAL DINT Giá trị thực thi
LATCHVAL DINT Giá trị chốt
JOB_DONE BOOL Thực hiện công việc mới khi giá trị là True, mặc định là
TRUE
JOB_ERR BOOL Lỗi JOB
JOB_STAT WORD Mã lỗi xem Help F1

107
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
BÀI 14: LẬP TRÌNH ĐIỀU KHIỂN PID VỚI HÀM CHỨC NĂNG
ĐIỀU KHIỂN LIÊN TỤC VỚI KHỐI HÀM "CONT_C"

14.1. CẤU TRÚC MODULE MỀM “CONT_C”.

Khối hàm CONT_C được sử dụng để điều khiển quá trình kĩ thuật với các biến đầu vào và đầu
ra tương tự trên cơ sở thiết bị khả trình Simatic. Trong khi thiết lập tham số, có thể tích cực
hoặc không tích cực một số thành phần chức năng của bộ điều khiển PID sao cho phù hợp đối
tượng.

Có thể sử dụng module mềm PID như một bộ điều khiển với tín hiệu chủ đạo đặt cứng ( fix
setpoint) hoặc thiết kế một hệ thống điều khiển nhiều mạch vòng theo kiều điều khiển cascade.
Những chức năng điều khiển được thiết kế trên cơ sở của luật điều khiển PID của bộ điều khiển
mẫu với tín hiệu tương tự.

Module mềm PID bao gồm tín hiệu chủ đạo SP_INT, tín hiệu ra của đối tựơng PV_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 quá trình
thực hiện luật và thuật điều khiển PID như PVPER_ON,P_SEL,I_SEL , D_SEL ,
MAN_ON…..

Tín hiệu chủ đạo SP_INT được nhập dưới dạng số thực dấu phẩy động.

108
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Tín hiệu ra của đối tượng PV_PER:Thông qua hàm nội của FB41 có tên CRP_IN, tín hiệu ra
của đối tượng có thể đựơc nhập dưới dạng số nguyên có dấu hoặc số thực dấu phẩy động. Chức
năng của CRP_IN là chuyển đổi kiểu biểu diễn của PV_PER từ dạng số nguyên sang số thực
dấu phẩy động có giá trị nằm trong khoảng -100 đến 100% theo công thức:

Tín hiệu ra của CRP_IN = PV_PER*100/27648

Chuẩn hóa : chức năng của hàm chuẩn hóa PV_NORM tín hiệu ra của đối tượng là chuẩn hóa
tín hiệu ra của hàm 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_OFF

Hai tham trị khống chế giải giá trị cho phép của PV_NORM là PV_FAC và PV_OFF .

Mặc định PV_FAC của hàm PV_NORM có giá trị bằng 1 và PV_OFF có giá trị bằng 0.

Lọc nhiễu tác động trong lân cận điểm làm việc. Tín hiệu sai lệch là hiệu giữa tín hiệu chủ đạo
và tín hiệu ra của đối tượng. Nó được tạo ra ngay trong FB41 và là đầu vào của khối
DEADBAND hoặc của đối tượng mà có thể bỏ qua sự ảnh hưởng của nhiễu trong lân cận điểm
làm việc ta chọn DEAD_W = 0

14.2. CHỌN LUẬT ĐIỀU KHIỂN TRÊN MODULE “CONT_C”.

Hình vẽ dưới mô tả thuật PID được thiết kế theo kiểu song song của 3 thuật điều khiển đơn lẻ:
tỉ lệ P, tích phân I và vi phân D theo sơ đồ cấu trúc (sau khối DEADBAND) Chính vì cấu trúc
song song như vậy nên ta có thể thông qua các tham trị P_SEL,I_SEL, hay D_SEL mà tích hợp
các thuật điều khiển khác nhau từ bộ lấy mẫu như thuật điều khiển P , PI , PID

Thuật điều khiển PID.

Đặt giá trị :Phần mềm cho phép chọn chế độ tự động ( automatic mode) hoặc chế độ bằng tay.
Ở chế độ bằng tay các giá trị của các biến được chọn bằng tay . Bộ tích phân (INT) tự thiết lập
chế độ LNM_LNM, P-DISV và bộ vi phân (DIF) tự động về 0. Điều đó đảm bảo cho việc
109
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
chuyển chế độ từ thiết bị lập giá trị bằng tay về chế độ tự động không gây nên 1 biến đổi đột
ngột nào đối với các biến đã được thiết lập giá trị bằng tay.

Cũng có thể giới hạn cho các giá trị được thiết lập bằng tay nhờ hàm LMN_LIMIT.

Một bit cờ sẽ có giá trị logic bằng 1 khi biến vào có giá trị vượt qúa giới hạn đã chọn. Hàm
LMN_MORM sẽ chuẩn hóa tín hiệu ra của hàm LMNLIMIT theo công thức :

LMN_PER = LMN *27648/100

Ngòai ra nhiễu có thể được lọc trước bằng cách đưa qua đầu vào DISV.

14.3. KHỞI ĐỘNG VÀ THÔNG BÁO LỖI

Khối hàm CONT_C có một chương trình con phục vụ cho việc khởi tạo lại tòan bộ hệ thống.
Chương trình này được gọi khi tín hiệu vào COM_RST có giá trị logic bằng 1.

Trong khi khởi tạo ,luật điều khiển tích phân được tự động thiết lập với giá trị khởi tạo
I_ITVAL. Nếu luật điều khiển này được gọi theo ngắt thời gian, nó sẽ luôn làm việc với giá trị
này. Tất cả các đầu ra khác được đặt giá trị mặc định.

Khối hàm CONT_C không có khả năng tự kiểm tra lỗi bên trong của module mềm PID . Mã
báo lỗi RET_VAL không được sử dụng.

14.3.1. Tham biến chính thức đầu vào: Khối hàm CONT_C có 26 tham biến chính thức đầu vào
như sau:

Kiểu dữ
Biến Mặc định Mô tả chức năng
liệu

COM_RST BOOL FALSE COMPLETE RESTART

Khối có chức năng khởi tạo lại hệ thống


hoàn tòan khi đầu vào “complete restart”
đựơc thiết lập giá trị logic TRUE.

MAN_ON BOOL TRUE MANUAL VALUE ON

Khi đầu vào “manual value on” có giá trị


logic TRUE mạch vòng dk sẽ bị ngắt, các
giá trị thiết lập bằng tay.

PVPER_ON BOOL FALSE PROCESS VARIABLE PERIPHERAL


ON

110
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
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 với các
cổng vào/ra và đầu vào “process variable
peripheral” có giá trị logic True.

P_SEL BOOL TRUE PROPORTIONAL ACTION ON

Hoạt động của bộ dk PID có thể tích cực


hoặc không tích cực từng phần riêng trong
thuật dk PID , thuật dk tỉ lệ đc kích hoạt khi
giá trị logic True được thiết lập tại cổng vào
“proportional action on”.

I_SEL BOOL TRUE INTEGRAL ACTION ON

Hoạt động của bộ dk PID có thể tích cực


hoặc không tích cực từng phần riêng trong
thuật dk PID , thuật dk tỉ lệ đc kích hoạt khi
giá trị logic True được thiết lập tại cổng vào
“proportional action on”.

INT_HOLD BOOL FALSE INTEGRAL ACTION HOLD

Đầu ra của bộ điều khiển tích phân có thể


bị đông lạnh (not use) khi thiết lập giá trị
logic true cho đầu vào “intergral action
hold”.

I_ITL_ON BOOL FALSE SET INTEGRAL ACTION

Đầu ra của bộ điều khiển tích phân có thể


được đặt tại đầu vào I_ITLVAL khi thiêt
lập giá trị logic true cho đầu vào “Set I-
action”

D_SEL BOOL FALSE DERIVATIVE ACTION ON

Hoạt động của bộ dk PID có thể tích cực


hoặc không tích cực từng phần riêng trong
thuật dk PID. Thuật dk vi phân được kích
hoạt khi giá trị logic True được thiết lập tại
cổng vào “derivative action on”.

111
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
CYCLE TIME T#1s SAMPLING TIME

Thời gian lấy mẫu là khoảng thời gian


không đổi giữa các lần khối được cập nhật.

(CYCLE >= 1ms)

SP_INT REAL 0.0 INTERNAL SETPOINT

Đầu vào “internal setpoint” được sử dụng


để thíêt lập tín hiệu chủ đạo (tín hiệu mẫu).

(-100.0 ..100.0 (%) hoặc giá trị vật lý)

PV_IN REAL 0.0 PROCESS VARIABLE IN

Giá trị khởi tạo có thể đặt ở đầu vào


“process variable in” hoặc từ biến quá trình
được nối với CPU thông qua cổng vào
tương tự.

(-100.0 100.0 (%) hoặc giá trị vật lý)

PV_PER WORD W#16#0000 PROCESS VARIABLE PERIPHERAL

Biến quá trình được nối với CPU qua cổng


vào tương tự.

MAN REAL 0.0 MANUAL VALUE

Cổng vào “manual value” được sử dụng để


đặt giá trị bằng các hàm giao diện.

(-100.0 ..100.0 (%) hoặc giá trị vật lý)

GAIN REAL 2.0 PROPORTIONAL GAIN

Đầu vào “proportional gain” được sử dụng


để thiết lập hệ số tỉ lệ cho bộ điều khiển
theo luật tỉ lệ.

TI TIME T#20s RESET TIME

112
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Cổng vào “reset time” được sử dụng để
thiết lập hằng số thời gian tích phân cho bộ
dk tích phân.

(TI >= CYCLE)

TD TIME T#10s DERIVATIVE TIME

Cổng vào “derivate time” được sử dụng để


thiết lập hằng số thời gian vi phân cho bộ
dk vi phân.

(TD >= CYCLE)

TM_LAG TIME T#2s DERIVATIVE ACTION

Thời gian tích cực của luật điều khiển vi


phân được chon thông qua cổng vào “time
lag of the derivate action”.

(TM_LAG >= CYCLE/2)

DEADB_W REAL 100.0 DEAD BAND WIDTH

Một vùng kém nhạy để xử lý tín hiệu sai


lệch. Độ rộng của vùng kém nhạy được đặt
thông qua cổng vào “dead band width”.

(DEADB_W >=0 (%) hoặc giá trị vật lý)

LMN_HLM REAL1 MANIPULATED VALUE HIGH


0
LIMIT : Giới hạn chế trên được thíêt lập
bằng tay qua cổng vào “manipulated value
high limit”.

LMN_LLM REAL 0.0 MANIPULATED VALUE LOW

LIMIT :Giá trị hạn chế dưới được thiết lập


bằng tay thông qua cổng vào “manipulated
value low limit”.

PV_FAC REAL 1.0 PROCESS VARIABLE FACTOR

113
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Biến quá trình được nhân với một hệ số cho
phù hợp với phạm vi qui định của biến này.
Hệ số được chọn thông qua cổng vào
“process

variable factor”.

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 qui định của biến
này. Giá trị bù được chọn thông qua cổng
vào

“process variable offset”.

LMN_FAC REAL 1.0 MANIPULATED VALUE FACTOR

Giá trị giới hạn được nhân với một hệ số


cho phù hợp với phạm vi qui định của biến
quá trình. Hệ số này được đặt qua cổng vào
“manipulated value factor”.

LMN_OFF REAL 0.0 MANIPULATED VALUE OFFSET

Giá trị giới hạn được cộng thêm một lượng


bù cho phù hợp với phạm vi qui định của
biến quá

trình. Hệ số này được đặt qua cổng vào


“manipulated value offset”.

I_ITLVAL REAL 0.0 INITIALIZATION VALUE OF THE


INTEGRAL ACTION : Giá trị đầu ra của
bộ điều khiển tích phân có được thiết lập
thông qua cổng vào “initialization value of
the integral action”.

DISV REAL 0.0 DISTURBANCE VARIABLE

Khi điều khiển hệ thống bằng phương pháp


feedforward thì một giá trị bù nhiễu được

114
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
đặt thông qua cổng vào “disturbance
variable”.

14.3.2. Tham biến chính thức đầu ra: Khối hàm CONT_C có 9 tham biến chính thức đầu ra như
sau:

Kiểu dữ
Biến Mặc định Mô tả chức năng
liệu

LMN REAL 0.0 MANIPULATED VALUE

Giá trị được thiết lập bằng tay hông qua


cổng “manipulated value”.

LMN_PER WORD W#16#0000 MANIPULATED VALUE PERIPHERAL

Giá trị đầu ra thiết lập bằng tay theo kiểu


biểu diễn phù hợp với các cổng vào/ra
tương tự được chọn qua cổng ra the
“manipulated value peripheral”.

QLMN_HLM BOOL FALSE HIGH LIMIT OF MANIPULATED


VALUE REACHED : Cổng ra “high limit
of manipulated value reached” thông báo
giá trị biến quá trình vượt quá giá trị giới
hạn trên.

QLMN_LLM BOOL FALSE LOW LIMIT OF MANIPULATED

VALUE REACHED : Cổng ra “low limit


of manipulated value reached” thông báo
giá trị của biến quá trình nhỏ hơn giá trị giới
hạn dưới.

LMN_P REAL 0.0 PROPORTIONAL COMPONENT

Tín hiệu ra của bộ đk tỉ lệ được xuất qua


cổng ra “proportional component”.

LMN_I REAL 0.0 INTEGRAL COMPONENT

115
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Tín hiệu ra của bộ đk tích phân được xuất
qua cổng ra “intergral component”.

LMN_D REAL 0.0 DERIVATIVE COMPONENT:

Tín hiệu ra của bộ đk vi phân được xuất qua


cổng ra “derivative component”.

PV REAL 0.0 PROCESS VARIABLE

Tín hiệu quá trình được xuất qua cổng ra


“process variable”.

ER REAL 0.0 ERROR SIGNAL

Tín hiệu sai lệch được xuất qua cổng ra


“error signal”.

14.4. XÁC ĐỊNH THAM SỐ CHO KHỐI HÀM CONT_C.

14.4.1. Ký hiệu và dạng PID lý tưởng, tiêu chuẩn.

Bộ điều khiển PID là bộ điều khiển xuất hiện nhiều trong công nghiệp, và bộ điều khiển thích
hợp nhất để điều chỉnh thuật toán là dạng chuẩn.
t
Trong dạng này: MV (t ) = K (e(t) + 1
f e(t)dt + T d
e(t))
p Ti 0 d dt

Trong đó: Ti là hằng số thời gian tích phân;

Td là hằng số thời gian vi phân

Trong dạng song song lý tưởng, được trình bày trong phần lý thuyết bộ điều khiển

d t
MV(t) = Kpe(t) + Ki ƒ e (t)dt + K
dt e(t)
0 d

các thông số độ lợi được liên kết tới dạng chuẩn thông qua Ki=Kp/Ti và Kd=Kp*Td . Dạng song
song này, trong đó các thông số được xử lý như là các độ lợi đơn giản, là dạng tổng quá và linh
hoạt nhất. Tuy nhiên, nó cũng là dạng mà các thông số có sự liên quan vật lý ít nhất và thường
được dành riêng cho việc khảo sát lý thuyết của bộ điều khiển PID. Dạng chuẩn, mặc dù ít phức
tạp hơn về mặt toán học, nhưng lại phổ biến hơn trong công nghiệp.
116
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Độ lợi tỉ lệ, Kp

Giá trị càng lớn thì đáp ứng càng nhanh do đó sai số càng lớn, bù khâu tỉ lệ càng lớn. Một giá
gị độ lợi tỉ lệ quá lớn sẽ dấn đến quá trình mất ổn định và dao động.

Độ lợi tích phân, Ki

Giá trị càng lớn kéo theo sai số ổn định bị khử càng nhanh. Đổi lại là độ vọt lố càng lớn: bất kỳ
sai số âm nào được tích phân trong suốt đáp ứng quá độ phải được triệt tiêu tích phân bằng sai
số dương trước khi tiến tới trạng thái ổn định.

Độ lợi vi phân, Kd

Giá trị càng lớn càng giảm độ vọt lố, nhưng lại làm chậm đáp ứng quá độ và có thể dẫn đến
mất ổn định do khuếch đại nhiễu tín hiệu trong phép vi phân sai số.

14.4.2. Phương pháp Ziegler–Nichols.

Một phương pháp điều chỉnh theo kinh nghiệm khác là phương pháp Ziegler–Nichols, được
đưa ra bởi John G. Ziegler và Nathaniel B. Nichols vào những năm 1940. Phương pháp này,
ban đầu cho đầu ra của vòng điều khiển bị dao động; trong lúc hệ thống bị dao động xác định
được số dao động trong khoảng thời gian khảo sát, Tth.

Chọn luật điều khiển và tính toán tham số từ Kpth và Tth theo bảng sau:

Luật điều khiển Kp/Kpth Ti/Tth Td/Tth

P 0.50

PI 0.45 0.80

PID 0.60 0.50 0.125

117
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
14.5. LẬP TRÌNH HỆ THỐNG.

14.5.1. Khai báo PLC

CPU 315F-2PN/DP

Module DI16/DO16

Module AI4/AO2

Một số địa chỉ liên quan đến phần điều khiển PID:

Nút Start: I1.0

Nút Stop: I1.1

Cảm biến siêu âm xác định mực nước trong bồn nối vào ngõ analog input CH0: PIW272

Relay cho phép bơm nước hoạt động: Q0.0

Bơm tuyến tính được nối vào ngõ analog output CH0: PQW272

Một van xã bằng tay.


118
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
** Yêu cầu: Điều khiển ổn định mực nước với giá trị đặt Setpoint.

14.5.2.Chương trình trong OB35

Bước 1: Lấy khối hàm PID Control CONT_C


(Technology PID Basic functions CONT_C)

Bước 2: Khai báo một số tham số cần thiết, để chuyển sang bước điều khiển bằng tay để xác
định các tham số cho bộ điều khiển PID.

Bước 3: Download chương trình xuống PLC.

Chọn “Monitoring on/off” để quan sát Online: “Modify to 1” đầu vào “PVPER_ON”.

119
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Chọn “Configuration” (biểu tượng trên khối hàm CONT_C); hoặc vào :

Chọn bộ điều khiển là PID:

Chọn “Commissioning” (biểu tượng ngay trên khối hàm CONT_C); hoặc vào

Tại giao diện Commissioning này sẽ có 3 phần chính:

120
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Vùng 1: Đồ thị.

Vùng 2: Các thông số của 3 đường “SP_INT”, tức giá trị đặt (ở đây là mực nước); “PV”, tức
giá trị thực tế cảm biến đo về được (ở đây là cảm biến siêu âm đo mực nước hiện tại trong bồn);
“LMN”, tức đáp ứng của ngõ ra tuyến tính (ở đây là Pump).

Vùng 3: Chọn và hiệu chỉnh các tham số của bộ điều khiển PID.

: Chọn thời gian lấy mẫu của đồ thị và nút


Start/Stop để đồ thị bắt đầu hoạt động.

Bước 4: Ta sử dụng phương pháp Ziegler–Nichols. Cho Ti=0, Td=0, tăng Kp từ từ đến khi hệ
thống dao động. Xác định Kpth

Ban đầu cho P=2.0; Ti=0; Td=0 Send parameters to CPU.


121
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Check “Change setpoint” và đặt Setpoint=50 Send parameters to CPU.


Quan sát vùng đồ thị:

Và Process value (PV).

Ta có thể thấy giá trị “PV” vẫn bám theo giá trị “Setpoint”, nhưng ngõ ra lại có sự dao động.
Khi ta càng tăng P lên thì dao động càng lớn (đây cũng chính là nhược điểm của phương pháp
này, làm cho hệ thống giao động để tìm ra các tham số).

Khi P=5.0

122
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Khi P=8.0

Khi P=15.0

Khi P=30.0, dao động gần như đạt tới hạn.

Khi P=60.0, dao động đã tới hạn, số dao động càng dày đặc.

123
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Bước 5: Xét tại thời điểm P=30.0, dao động gần như tới hạn nên ta tăng P lên thêm một ít và
chọn Kpth phù hợp hơn.

Tại P=35.0. Dao động như hình dưới:

Ta chọn Kpth=35.0

Phương pháp tìm các tham số như sau:

Sử dụng các công cụ trên thanh công cụ:

Chọn ra phần dao động trong một khoảng thời gian.

124
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

Ở đây chọn từ giây 20 đến 40 (tức Tth=40-20=20s). Đếm số dao động (có 31 xung).

Tth = số dao động (xung) / khoảng thời gian xét = 31/20 = 1.55

Tính toán các tham số:

Kp = 0.6 * Kth = 0.6 * 35 = 21

TI = 0.5 * Tth = 0.5 * 1.55 = 0.775

Td = 0.125 * Tth = 0.125 * 1.55 = 0.19375 = 0.194

Bước 6: Nhập các tham số đã tính vào bộ điều khiển, xem kết quả.

125
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7

14.6. ĐÁNH GIÁ BỘ ĐIỀU KHIỂN ĐÃ THỰC THI

Cho chạy lại hệ thống và tìm các thông số cần thiết với các tham số đã tìm được:
Kp=21.0;
Ti=0.775s;
Td=0.194s;
Setpoint=50.0

Xét về thời gian quá độ:

Định nghĩa: Thời gian quá độ là thời gian cần thiết để sai lệch giữa đáp ứng của hệ thống và
giá trị xác lập của nó không vượt quá e% (thường chọn là 2% hoặc 5%).
Từ giây thứ 6 đến 26, vậy t đáp ứng = 20s.

Do hình dáng của bồn nước này phần đáy là hình chóp nón (từ 0-0.5L), phần thân là hình trụ
(0.5-3L) nên khoảng thời gian lúc đầu (giây thứ 6 đến 14) đáp ứng chậm hơn so với khoảng
thời gian sau.

126
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
Xét về độ vọt lố.
Độ vọt lố = 0.
Xét về sai số.
Ta phóng to đồ thị PV.

Sai số trên = (50.45 – 50)/50*100% = 0.9%


Sai số dưới = (49.55-50)/50*100% = -0.9%
Vậy sai số là: ±0.9%
Nhận xét: Với việc đã được chứng minh và kiểm chứng nên việc áp dụng phương pháp Ziegler–
Nichols này là phù hợp với thực tiễn. Tuy nhiên khi thực hiện phương pháp này cũng gặp một
số nhược điểm như sau: làm rối loạn quá trình, một số thử nghiệm và lỗi, phải điều chỉnh nhiều
lần.
Ngoài phương pháp Ziegler–Nichols còn một số phương pháp khác như:

Phương pháp Ưu điểm Khuyết điểm

Điều chỉnh thủ Không cần hiểu biết về toán. Yêu cầu nhân viên có kinh
công Phương pháp online. nghiệm.

Các công cụ Điều chỉnh chắc chắn. Phương Giá cả cao, và phải huấn luyện.
phần mềm pháp online hoặc offline. Có thể
bao gồm phân tích các van và
cảm biến. Cho phép mô phỏng
trước khi tải xuống để thực thi.

Cohen-Coon Xử lý các mô hình tốt. Yêu cầu kiến thức toán học.
Phương pháp offline. Chỉ tốt
đối với các quá trình bậc một.

127
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
14.7. HOÀN THIỆN BỘ ĐIỀU KHIỂN VỚI KHỐI HÀM CONT_C

Dựa theo sơ đồ cấu trúc của khối hàm ta xác định các tham số chính cần cho bộ điều khiển PID
trên như sau:

Các tham số trên là những


tham số cơ bản cho một bộ
điều khiển PID. Ngoài ra
tùy thuộc vào hệ thống điều
khiển cụ thể mà ta sẽ điều
khiển các tham số khác để
có một bộ điều khiển tốt
nhất.

128
HOÀNG QUỐC TUÂN - CƠ ĐIỆN TỬ - TIA Portal – SIMATIC S7
TÀI LIỆU THAM KHẢO

1. System Manual: STEP 7 Professional V13 SP1 - Siemens


2. System Manual: Visualize processes V13 SP1 - Siemens
3. MPS® The Modular Production System - Festo Didactic
4. Một số hình ảnh minh họa trên internet.
5. Thông tin từ diễn đàn - https://support.industry.siemens.com

129

You might also like