Sau khi học xong, sinh viên có khả năng: – Biết cách kết nối thiết bị vào PLC. – Thiết kế, lựa chọn thiết bị và lập trình điều khiển dùng PLC S7-200, 300 – Sử dụng phần mềm WINCC tạo giao diện điều khiển, giám sát hoạt động của hệ thống
Trang 1ĐIỀU KHIỂN LẬP TRÌNH PLC
(30 tiết)
GV: Bùi Thúc Minh buithucminh@gmail.com
Bộ môn: Điện công nghiệp ĐẠI HỌC NHA TRANG
• Sau khi học xong, sinh viên có khả năng:
– Biết cách kết nối thiết bị vào PLC
– Thiết kế, lựa chọn thiết bị và lập trình điều khiển
dùng PLC S7-200, 300
– Sử dụng phần mềm WINCC tạo giao diện điều
khiển, giám sát hoạt động của hệ thống
Trang 2• Bài tập, kiểm tra & báo cáo: 50% tổng điểm
• Thi kết thúc môn: 50% tổng điểm
• Hình thức thi: viết (không dùng tài liệu)
• Thời gian: 60 phút
Trang 3TÀI LIỆU THAM KHẢO
[1] Simatic S7-300 Điều khiển hệ thống , Trung
tâm Việt-Đức
[2] Điều khiển lập trình 2, ĐHNT 2011
and S7-400 Programming , Reference Manual
[4] SIMATIC, Working with STEP 7
[5] Trần Thu Hà, Lập trình với S7&WINCC, NXB
Trang 4Chương 1 Tổng quan về Simatic S7-300
Thiết bị điều khiển logic khả trình PLC
(Programmable Logic Control), là loại thiết bị cho
phép 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.
• S7-300 là PLC cỡ vừa của hãng Siemens
Trang 5– Các module mở rộng được chia thành 5 loại chính:
- PS (Power Supply): module nguồn nuôi: có 3 loại 2A, 5A,
10A.
- SM (Signal module): module mở rộng cổng tín hiệu vào/ra
bao gồm
- IM (Interface module): module ghép nối.
- FM (Function module): module có chức năng điều khiển
riêng
- CP (Communication module): module phục vụ truyền
Trang 8sử dụng các kiểu dữ liệu sau:
- BOOL: với dung lượng một bit có giá trị 0 hoặc 1
Đây là kiểu dữ liệu cho biến hai trị
– BYTE: dung lượng 8 bit, thường dùng biểu diễn số
nguyên dương từ 0 đến 255, mã BCD của số thập
phân 2 chữ số, mã ASCII của ký tự,…
– WORD: dung lượng 2 byte, biểu diễn số nguyên
dương từ 0 đến 65535
Trang 92 KIỂU DỮ LIỆU VÀ PHÂN CHIA BỘ NHỚ
– INT: dung lượng 2 byte, biểu diễn số nguyên từ
Trang 10– FC (Function): miền chứa 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ứa chương trình con,
được tổ chức thành hàm và có khả năng trao đổi dữ
liệu với bất cứ một khối chương trình nào khác Các
dữ liệu này phải được xây dựng thành một khối dữ
liệu riêng (DB - data block)
Cấu trúc bộ nhớ của CPU
• Vùng chứa tham số của hệ điều hành và chương trình
ứng dụng: được chia thành 7 miền khác nhau:
– I (Process image input): miền bộ đệm các dữ liệu của cổng
vào số.
– Q (Process image output): miền bộ đệm các dữ liệu của cổng
ra số.
– M: miền các biến cờ (tham số)
– T: miền nhớ phục vụ các bộ thời gian.
– C: miền nhớ phục vụ bộ đếm.
– PI: miền địa chỉ cổng vào của các module tương tự.
– PQ: miền địa chỉ cổng ra của các module tương tự.
Trang 11Cấu trúc bộ nhớ của CPU
• Vùng chứa các khối dữ liệu: được chia thành 2
loại:
– DB (Data block): miền chứa các dữ liệu được tổ
chức thành khối Kích thước cũng như số lượng khối
do người sử dụng quy định phù hợp với từng bài
toán điều khiển
– L (Local data block): miền dữ liệu cục bộ, được các
khối chương trình OB, FC, FB tổ chức và sử dụng
cho các biến tạm thời
Trang 12– Toàn bộ chương trình điều khiển nằm trong một
khối trong bộ nhớ Loại điển hình cấu trúc tuyến
tính này phù hợp với những bài toán phù hợp nhỏ,
không phức tạp
Trang 13– Chương trình (CT) được chia thành những phần nhỏ
với từng nhiệm vụ riêng và các phần này nằm trong
những khối chương trình khác nhau
– Loại cấu trúc này phù hợp với những bài toán điều
khiển nhiều nhiệm vụ và phức tạp
– Loại khối OB (Organization block): khối tổ chức
quản lý CT điều khiển
– Loại khối FC ( Pr ogr am bl ock): khối chương trình với những chức
năng riêng giống như một chương trình con hoặc
một hàm (CT con có biến hình thức)
– Loại khối FB (Function block): là loại khối FC đặc
biệt có khả năng trao đổi một lượng dữ liệu lớn với
các khối chương trình khác
– Loại khối DB (Data block): khối chứa các dữ liệu
cần thiết để thực hiện CT
Trang 15• Ngôn ngữ “liệt kê lệnh”, ký hiệu là STL (Statement list).
Đây là dạng ngôn ngữ lập trình thông thường của máy tính
Một chương trình được ghép bởi nhiều câu lệnh theo một
thuật toán nhất định, mỗi lệnh chiếm một hàng và đều có
cấu trúc chung “tên lệnh” + “toán hạng”
• Ngôn ngữ “hình thang”, ký hiệu là LAD (Ladder logic).
Đây là dạng ngôn ngữ đồ họa thích hợp với những người
quen thiết kế mạch điều khiển logic
• Ngôn ngữ “hình khối”, ký hiệu là FBD (Function block
diagram) Đây cũng là ngôn ngữ đồ họa dành cho người có
thói quen thiết kế mạch điều khiển số
Trang 16Cấu trúc lệnh và trạng thái kết quả
– M: chỉ ô nhớ trong miền các biến cờ có kích thước là 1 bit.
– MB: chỉ ô nhớ trong miền các biến cờ có kích thước là 1 byte (8 bit).
– MW: chỉ ô nhớ trong miền các biến cờ có kích thước là 2 byte (16
bits).
– M: chỉ ô nhớ trong miền các biến cờ có kích thước là 4byte (32 bits).
– I: chỉ ô nhớ có kích thước là 1 bit trong miền bộ đệm cổng vào số.
– IB: chỉ ô nhớ có kích thước là 1 byte trong miền bộ đệm cổng vào số.
– IW: chỉ ô nhớ có kích thước là 1 từ trong miền bộ đệm cổng vào số.
– ID: chỉ ô nhớ có kích thước là 2 từ trong miền bộ đệm cổng vào số.
– Q: chỉ ô nhớ có kích thước là 1 bit trong miền bộ đệm cổng ra số.
– QB: chỉ ô nhớ có kích thước là 1 byte trong miền bộ đệm cổng ra số.
– QW: chỉ ô nhớ có kích thước là 1 từ trong miền bộ đệm cổng ra số.
– QD: chỉ ô nhớ có kích thước là 2 từ trong miền bộ đệm cổng ra số.
– T: chỉ ô nhớ trong miền nhớ của bộ thời gian (Timer).
Trang 17Cấu trúc lệnh và trạng thái kết quả
• Thanh ghi trạng thái: khi thực hiện lệnh, CPU sẽ
ghi lại trạng thái của phép tính trung gian cũng
như ghi lại kết quả vào 1 thanh ghi đặc biệt 16
Cấu trúc lệnh và trạng thái kết quả
• FC (Fisrt Check): khi thực hiện các lệnh logic
liên tiếp nhau gồm các phép tính ^ (VÀ), V
(HOẶC), ĐẢO thì bit FC=1 Khi kết thúc các
lệnh thì FC=0.
Trang 18Cấu trúc lệnh và trạng thái kết quả
– 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 Ví dụ lệnh:
• Nếu trước khi thực hiện lệnh bit FC = 0 thì có tác
dụng chuyển nội dung của cổng vào số I 0.3 vào bit
trạng thái RLO
• Nếu trước khi thực hiện bit FC = 1 thì có tác dụng
thực hiện phép tính giữa RLO và giá trị logic cổng
vào I 0.3 Kết quả của phép tính được ghi lại vào bit
Cấu trúc lệnh và trạng thái kết quả
– STA (Status bit): Bit trạng thái này luôn có giá trị
logic của tiếp điểm được chỉ định trong lệnh Ví dụ
Trang 19Cấu trúc lệnh và trạng thái kết quả
– OR: Ghi lại giá trị của phép tính logic cuối cùng
được thực hiện để phụ giúp cho việc thực hiện phép
toán sau đó Điều này là cần thiết vì trong một
biểu thức hàm giá trị, phép tính bao giờ cũng phải
được thực hiện trước các phép tính
– OS (Stored overflow bit): Ghi lại giá trị bit bị tràn ra
Cấu trúc lệnh và trạng thái kết quả
– CC0 và 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ể là:
• 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
Trang 20Cấu trúc lệnh và trạng thái kết quả
Khi thực hiện lệnh toán học với số nguyên nhưng kết
Trang 21• Các lệnh ghi/xóa cho tiếp điểm
• Các lệnh tiếp điểm đặc biệt
Trang 43Overview of Counter Instructions
• Counters have an area reserved for them in
the memory of your CPU.
• This memory area reserves one 16-bit word
for each counter address.
• The ladder logic instruction set supports 256
Trang 451 S_CU (Up Counter)
• S_CU (Up Counter) is preset
with the value at input PV if
there is a positive edge at input
S
• The counter is reset if there is a
"1" at input R and the count
value is then set to zero
• The counter is incremented by
one if the signal state at input
CU changes from "0" to "1" and
the value of the counter is less
1 S_CU (Up Counter)
• If the counter is set and if RLO
= 1 at the inputs CU, the counter
will count once in the next scan
cycle, even if there was no
change from a positive to a
negative edge or viceversa
• The signal state at output Q is
"1" if the count is greater than
zero and "0" if the count is
Trang 46If I0.2 changes from "0" to "1", the counter is preset with the
value of MW10 If the signal state of I0.0 changes from "0"
to "1", the value of counter C10 will be incremented by one
-unless the value of C10 is equal to "999" Q4.0 is "1" if C10
is not equal to zero.
Trang 47• S_CUD (Up-Down Counter) is preset with the value
at input PV if there is a positive edge at input S
• If there is a 1 at input R, the counter is reset and the
count is set to zero The counter is incremented by
one if the signal state at input CU changes from "0"
to "1" and the value of the counter is less than "999"
• The counter is decremented by one if there is a
positive edge at input CD and the value of the
counter is greater than "0"
Trang 48• If there is a positive edge at both count inputs,
both instructions are executed and the count
value remains unchanged.
• If the counter is set and if RLO = 1 at the inputs
CU/CD, the counter will count once in the next
scan cycle, even if there was no change from a
positive to a negative edge or viceversa.
• The signal state at output Q is "1" if the count is
greater than zero and "0" if the count is equal to
Trang 49• If I0.2 changes from "0" to "1", the counter is
preset with the value of MW10 If the signal
state of I0.0 changes from "0" to "1", the value
of counter C10 will be incremented by one
-except when the value of C10 is equal than
"999" If I0.1 changes from "0" to "1", C10 is
decremented by one - except when the value of
Trang 531 Viết chương trình điều khiển thuận nghịch động
cơ không đồng bộ 3 pha (gián tiếp và trực tiếp)
2 Viết chương trình điều khiển khởi động sao-tam
giác động cơ không đồng bộ 3 pha rô to lồng sóc.
3 Viết chương trình điều khiển khởi động sao-tam
giác thuận nghịch động cơ không đồng bộ 3 pha
rô to lồng sóc.
4 Viết chương trình điều khiển hệ thống đèn giao
Trang 54• Soạn thảo chương trình lựa chọn cách lập trình:
lập trình dạng tuyến tính hay dạng có cấu trúc?
Ngôn ngữ lập trình: LAD, STL hay FBD?
• Download chương trình xuống PLC.