Lệnh thực hiện phép tính ^ với giá trịCú pháp: AN Toánn hạng là dữ liệu kiểu BOOL hoặc địa chỉ bit I, Q, M, L, D, T, C Nếu FC=0, lệnh sẽ gán giá trị logic nghịch đảo của toán hạng vào
Trang 1BÀI GIẢNG MÔN HỌC SIEMENS PLC S7 – 300Chương mở đầu: Giới thiệu dòng sản phẩm Siemens
Chương 1: Nhập môn PLC S7 – 300
Chương 2: Cấu trúc PLC S7 – 300
Chương 3: Hướng dẫn sử dụng phần mềm lập trình PLC S7-300
Chương 4: Ngôn ngữ lập trình STL
Chương 5: Kỹ thuật lập trình
Chương 6: Bài tập thực hành
Trang 2CHƯƠNG MỞ ĐẦU: GIỚI THIỆU DÒNG SẢN PHẨM
SIEMENS
• PLC S7 – 200: loại cực nhỏ, thích hợp cho những ứng dụng riêng lẽ, với số lượng I/O vừa phải
• PLC S7 – 300: loại trung bình, thích hợp cho những
ứng dụng vừa phải
• PLC S7 – 400: tiêu chuẩn ở mức cao đáp ứng được các bài toán điều khiển ở mức cao nhất
Trang 3CHƯƠNG 1:
2.1 Đại số Boolean
2.2 Biểu diễn số nguyên dương
2.3 Biểu diễn số nguyên có dấu
Trang 4- Ngược lại, nếu giá trị của biến này phụ thuộc vào giátrị của biến kia thì gọi là biến phụ thuộc
- Hàm hai trị là mô hình toán học mô tả sự phụ thuộc của một biến Boole vào các biến Boole khác
Trang 5x và y là hai biến Boole độc lập nhau
Đèn z là biến Boole phụ thuộc vào hai biến công tắc
Trang 62.1.2 Các phép toán trên hàm hai trị
01
10
yx
a Phép Not (y = Not(x))
Trang 7b Phép cộng (z = x + y)
11
1
10
1
11
0
00
0
ZY
X
Trang 8c Phép giao (z = x^y)
11
1
00
1
01
0
00
0
ZY
X
Trang 92.2 Biểu diễn số nguyên dương
2.2.1 Trong hệ cơ số 10 (hệ thập phân)
Một số nguyên dương un bất kỳ, trong hệ cơ số 10 bao giờ cũng được biểu diễn đầy đủ bằng dãy con
số nguyên từ 0 đến 9
Ví dụ: un = 515 được biểu diễn trong cơ số 10
515 = 5.102 + 1.101 + 5.100
Trang 102.2.2 Trong hệ cơ số 2 (hệ nhị phân)
Cách biểu diễn un trong hệ cơ số 10 chưa phù hợp với nguyên tắc mạch điện (hay nguyên tắc hàm 2 trị) Để sửdụng nguyên tắc hàm 2 trị, ta đưa ra khái niệm bit
Ví dụ: un = 205
Được biểu diễn như sau:
11001101
205 = 1.27 + 1.26 + 0.25 + 0.24 + 1.23 + 1.22 + 0.21 + 1.20
Trang 112.2.3 Trong hệ cơ số 16 (hệ Hexadecimal)
Cũng giống như hệ cơ số 10, một số nguyên dương bất
kỳ cũng có thể biểu diễn trong hệ cơ số 16 như sau:
Ví dụ: 7723 trong hệ cơ số 10 được biểu diễn thành
1E2B trong hệ cơ số 16
1E2B = 1.163 + 14.162 + 2.161 + 11.160
2.2.4 Mã BCD trong số nguyên dương
Số 259 trong hệ thập phân được biểu diễn dưới dạng mã BCD như sau:
0010 0101 1001
Trang 122.3 Biểu diễn số nguyên có dấu
Số nguyên có dấu uk được biểu diễn theo quy tắc bù loại
2 gồm các bước sau:
-Biểu diễn |uk| trong hệ cơ số 2 thành dãy các bit xk
-Đảo giá trị từng bit xk, thành
-Cộng thêm 1
Ví dụ: biểu diễn uk=-15 trong hệ có số 2 với độ dài 8
bit? Lần lượt thực hiện theo 3 bước trên
Trang 13CHƯƠNG 2: CẤU TRÚC PLC S7 – 300
2.1 Định nghĩa2.2 Các tín hiệu kết nối với PLC2.3 Các module của PLC S7-3002.4 Kiểu dữ liệu và phân chia bộ nhớ2.5 Cấu trúc bộ nhớ của CPU
2.6 Vòng quét chương trình2.7 Cấu trúc chương trình2.8 Các khối OB đặc biệt
Trang 14toán đó bằng mạch số.
Ưu điểm: + Nhỏ gọn
+ Dễ thay đổi thuật toán + 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)
Trang 15*> Các bộ phận chính của PLC:
- Bộ vi xử lí trung tâm (CPU)
- Hệ điều hành
- Bộ nhớ chương trình
- Các cổng vào ra,…
Trang 162.2 Các tín hiệu kết nối với PLC
+ Tín hiệu số: Là các tín hiệu thuộc dạng hàm Boolean, dạng tín hiệu chỉ có 2 trị 0 hoặc 1
Đối với PLC Siemens:
- Mức 0: tương ứng với 0V hoặc hở mạch
Trang 172.3 Các module của PLC S7 - 300
2.3.1 Module CPU
Modul CPU là loại Module chứa vi xử lí, hệ điều hành, bộ nhớ, các bộ thời gian, bộ đếm, cổng truyền thơng vàcổng vào ra số
Các cổng vào ra số trên CPU được gọi là cổng vào ra Onboard
Trong họ PLC S7 – 300 cĩ nhiều loại CPU khác nhau: CPU312, CPU314, CPU315,…
Trang 192.3.2 Các module mở rộng:
Được chia thành 5 loại chính sau:
- Nguồn nuôi (PS: Power Supply): cung cấp nguồn cho CPU
và các module khác.
- SM (Signal Module): Module tín hiệu vào ra, bao gồm:
+ DI: Digital Input
+ DO: Digital Output
+ DI/DO: Digital In/Output
+ AI: Analog Input
+ AO: Analog Output
+ AI/AO: Analog In/Output
- IM (Interface Module): Module ghép nối
- FM (Function Module): Module điều khiển riêng: điều
khiển Servo,…
- CP (Communication Module): Module truyền thông
Trang 222.4 Kiểu dữ liệu và phân chia bộ nhớ
Kiểu BOOL: dung lượng một bit, có giá trị 0 hoặc 1
Kiểu BYTE: gồm 8 bits, được dùng để biểu diễn số
nguyên dương trong khoảng từ 0 đến 255
Kiểu WORD: gồm 2 bytes, biểu diễn một số nguyên
Trang 232.4 Kiểu dữ liệu và phân chia bộ nhớ (tt)
Kiểuu S5T (hay S5TIME): khoảng thời gian, được tínhtheo giờ/phút/giây/mili giây
Kiểuu TOD: biểu diễn giá trị thời gian tính theo
Trang 242.5 Cấu trúc bộ nhớ của CPU
+ FB (Function block): miền chứa chương trình con, được tổ chức thành hhàm, có khả năng trao đổi dữ liệuvới bất cứ một khối chương trình nào khác
Trang 25 Vùng chứa tham số của hệ điều hành và chương
Trang 26 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ứcthành khối Kính thước và số lượng khối do người sử
dụng quy định, phù hhợp với từng bài toán điều khiển
+ L (Local data block): Miền dữ liệu địa phương, đượccác khối chương trình OB, FC, FB tổ chức, sử dụụng cho
các biến nháp tức thời và trao đổi dữ liệu của biếnn hình
thức với những khối chương trình đã gọi nó Nội dung của một số dữ liệu trong miền nhớ này sẽ bị xóa khi kếtthúc chương trình tương ứng trong OB, FC, FB
Trang 272.6
PLC thực hiện chương trình theo chu trình lặp Mỗi
vòng lặp được gọi là vòng quét (scan) Mỗi vòng quétđược bắt đầu bằng giai đoạn chuyển dữ liệu từ các cổngvào số tới vùng bộ đệm ảo I, tiếp theo là giai đoạn thựchiện chương trình
Trong từng vòng quét, chương trình được thực hiện từlệnh đầu tiên đến lệnh kết thúc của khối OB1
Sau giaigiai đoạn thực hiện chương trình là giai đoạn
chuyển các nội dung của bộ đệm ảo Q tới các cổng ra
số
Vòng quét được kết thúc bằng giaigiai đoạn truyền thôngnội bộ và kiểm lỗi
Thời gian cần thiết đđể PLC thực hiện được một vòng
quét gọi là thời gian vòng quét (Scan time)
Trang 282.7 Cấu trúc chương trình
Có 2 dạng cấu trúc chương trình sau:
Lập trình tuyến tính: Toàn bộ chương trình điều khiểnnằm trong một khối trong bộ nhớ Loại hình cấu trúc
tuyến tính này phù hhợp với nhũng bài toán tự động nhỏ, không phức tạp Khối được chọn phải là khối OB1, làkhối mà PLC luôn quét và thực hiện các lệnh trong nóthường xuyên, từ lệnh đầu tiên đến lệnh cuối cùng và
quay lại lệnh đầu tiên
Lập trình có cấu trúc: Chương trình được chia thành
những phần nhỏ với từng nhiệm vụ riêng và các phần
này nằm trong những khối chương trình khác nhau
Loại hình cấu trúc này phù hợp với những bài toán điềukhiển nhiều nhiệm vụ và phức tạp
Trang 292.7 Cấu trúc chương trình (tt)
PLC S7 – 300 có 4 loại khối cơ bản sau:
- Loại khối OB (Organization block): khối tổ chức và quản lý chương trình điều khiển Có các loại khối OB có chức năng khác nhau như: OB1, OB35, OB40,…
- Loại khối FC (Program block): 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 Một chương trình ứng dụng có thể có nhiều khối FC.
- 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 nhau.
- Loại khối DB (Data block): khối chứa các dữ liệu cần thiết
để thực hiện chương trình Các tham số của khối do người dùng tự đặt
Chương trình trong các khối được liên kết với nhau bằng các lệnh gọi khối, chuyển khối S7 – 300 cho phép gọi chương trình con lồng nhau
Trang 302.8 Những khối OB đặc biệt
Các khối OB nàyy chỉ thực hiện khi xuất hiện tínhiệu báo ngắt tương ứng
OB10 (Time of Day Interrupt): Chương trình trong
khối OB10 sẽ được thực hiện khi giá trị của đồng hồ
thời gian thực nằm trong một khoảng thời gian đã đượcquy định Việc quy định khoảng thời gian hay số lần gọiOB10 được thực hiện nhờ chương trình hệ thống SFC28
OB20 (Time Delay Interrupt): Chương trình trong
khối OB20 sẽ được thực hiện sau một khoảng thời giantrễ đặt trước kể từ khi gọi chương trình hệ thống SFC32
Trang 31 OB40 (Hardware Interrupt): Chương trình trong OB40
sẽ được thực hiện khi xuất hiện một tín hiệu báo ngắt từngoại vi đưa vào module CPU thông qua các cổng vào
ra số onboard đặc biệt hoặc thông qua các module SM,
CP, FM
OB80 (Cycle Time Fault): Được thực hiện khi thời gianvòng quét (scan time) vượt quá khoảng thời gian cực
đại đã quy định hoặc khi có một tín hiệu ngắt gọi một
khối OB nào đó mà khối OB này chưa kết thúc ở lần gọitrước Mặc định, scan time cực đại là 150ms
OB81 (Power Supply Fault): Module CPU sẽ gọi
chương trình trong khối OB81 khi phát hiện thấy có lỗi
về ngunguồn nuôi.
Trang 32 OB82 (Diagnostic Interrupt): Được gọi khi CPU pháthiện có sự cố từ các module vào ra mở rộng Các
module mở rộng này phải là những module có khả năng
tự kiểm tra mình
OB85 (Not Load Fault): Được gọi khi phát hiện thấy
chương trình ứng dụng có sử dụng chế độ ngắt nhưngchương trình xử lý tín hiệu ngắt lại không có trong khối
OB tương ứng
OB87 (Communication Fault): Được gọi khi CPU pháthiện thấy lỗi trong truyền thông, ví dụ như không có tínhiệu trả lời từ đối tác
Trang 33 OB100 (Start Up Information): Được thực hiện một lầnkhi CPU chuyển trạng thái từ STOP sang RUN.
OB121 (Synchronous): Được thực hiện khi CPU pháthiện thấy lỗi trong chương trình như đổi sai kiểu dữ liệuhoặc lỗi truy nhập khối DB, FC, FB không có trong bộnhớ của CPU
OB122 (Synchronous error): Được thực hiện khi CPU phát hiện thấy lỗi truy nhập module trong chương trìn,
ví dụ chương trình có lệnh truy nhập module vàoo ra mở
rộng nhưng lại khôngkhông tìm thấy module này.
Trang 34CHƯƠNG 3: HƯỚNG DẪN SỬ DỤNG
3.1 Cài đặt Step7 V5.43.2 Khái niệm về một Project3.3 Các bước soạn thảo một Project3.4 Làm việc với PLC S7-300
Trang 353.1 Cài đặt Step7 V5.4: Làm việc trên máy
3.2 Khái niệm về một project
Các logic block chứa chương trình ứng dụng
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 trạm PLC của mạng
Trang 363.3 Các bước soạn thảo một project
- Mở cửa sổ Step7 V5.4
- Khai báo cấu hình phần cứng cho trạm PLC
- Mặc định có sẵn khối OB1, nếu muốn sử dụng thêm khối nào thì tiếp tục khai báo khối đó
- Đặt tên các đầu vào ra, các bit tương ứng (nếu cần) trong “library”
- Viết chương trình trong khối OB1 bằng cách vào S7 program -> OB1
Trang 373.4 Làm việc với PLC S7 – 300
- Quy định địa chỉ MPI cho module CPU
- Ghi chương trình lên module CPU
- Giám sát việc thực hiện chương trình
- Giám sát module CPU
- Quan sát nội dung ô nhớ
Các thao tác trên được hướng dẫn và thao tác trực tiếp trên máy tính
Trang 38CHƯƠNG 4: NGÔN NGỮ LẬP TRÌNH STL 4.1 Thanh ghi trạng thái (Status word)
Thanh ghi gồm 16 bits, chỉ sử dụng 9 bits với cấu trúc
Trang 394.1 Thanh ghi trạng thái (tt)
- 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 tínhⅴsau đó
- OS (Stored overflow bit): Ghi lại giá trị Bit bị tràn ra ngoài mảng ô nhớ
- OV(Overflow Bit): Bit báo cáo kết quả phép tính bị tràn ra ngoài mảng ô nhớ
- 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
Trang 40+ 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:
+ Khi thực hiện lệnh dịch chuyển:
+ Khi thực hiện lệnh logic trong ACCU
Trang 414.1 Thanh ghi trạng thái (tt)
- BR (Binary result bit): Bit trạng thái cho phép liên kết hai loại ngôn ngữ lập trình STL và LAD
Chẳng hạn cho phép người sử dụng có thể viết một khối chương trình FB hoặc FC trên ngôn ngữ STL nhưng gọi và sử dụng chúng trong một chương trình khác viết trên LAD
Để tạo ra được mối liên kết đó, ta cần phải kết thúc chương trình trong FB, FC bằng lệnh ghi:
+ BR = 1 nếu chương trình chạy không có lỗi + BR = 0 nếu chương trình chạy có lỗi
Trang 424.2 Nhóm lệnh logic tiếp điểm
4.2.1
4.2.1 Lệnh gán:
Cú pháp: = <toán hạng>
Toán hạng là địa chỉ bit I, Q, L, M, D
Lệnh ggán giá trị logic cả RLO tới ô nhớ có địa chỉđược chỉ thị trong toán hạng
Lệnh tác động vào thanh ghi trạng thái như sau:
Trang 43Lệnh tác động vào thanh ghi trạng thái như sau:
Trang 444.2.3 Lệnh thực hiện phép tính ^ với giá trị
Cú pháp: AN <toán hạng>
Toánn hạng là dữ liệu kiểu BOOL hoặc địa chỉ bit I, Q,
M, L, D, T, C
Nếu FC=0, lệnh sẽ gán giá trị logic nghịch đảo của
toán hạng vào RLO Ngược lại, sẽ thực hiện phép
tính ^ giữa RLO với giá trị nghịch đảo của toán hạng
và ghi kết quả vào RLO
Lệnh tác động vào thanh ghi trạng thái như sau:
Trang 454.2.4 Lệnh thực hiện phép tính hợp:
Cú pháp: O < toán hạng >
Toán hạng làdữ liệu kiểu Bool hoặc địa chỉ bit
I,Q,M,L,D,T,C
Nếu FC=0 lệnh sẽ gán giá trị logic của toán hạng vào RLO Ngược lại sẽ thực hiện phép tính hợp giữa RLO với giá trị nghịch đảo của toán hạng và ghi lại kết quảvào RLO
Lệnh tác động vào thanh ghi trạng thái như sau:
Trang 464.2.5 Lệnh thực hiện phép tính hợp với giá trị nghịch đảo
Cú pháp: ON < toán hạng >
Toán hạng làdữ liệu kiểu Bool hoặc địa chỉ bit
I,Q,M,L,D,T,C
Nếu FC=0 lệnh sẽ gán giá trị logic nghịch đảo của
toán hạng vào RLO Ngược lại sẽ thực hiện phép tính hợp giữa RLO với giá trị nghịch đảo của toán hạng vàghi lại kết quả vào RLO
Lệnh tác động vao thanh ghi trạng thái như sau:
Trang 474.2.6 Lệnh thực hiện phép tính giao với giá trị một biểu thức
Cú pháp: A (
Lệnh không có toán hạng
Nếu FC=0 lệnh sẽ gán giá trị logic của biểu thức trong dấu ngoặc sau nó vào RLO Ngược lại sẽ thực hiện
phép tính giao giữa RLO với giá trị logic của biểu thức trong dấu ngoặc sau nó ghi lại kết quả vào RLO
Lệnh sẽ tác động vào thanh ghi trạng thái như sau:
Trang 484.2.7 Lệnh thực hiện phép tính hợp với giá trị một biểu thức
Cú pháp: O (
Lệnh không có toán hạng
Nếu FC=0 lệnh sẽ gán giá trị logic của biểu thức trong dấu ngoặc sau nó vào RLO Ngược lại sẽ thực hiện
phép tính hợp giữa RLO với giá trị logic của biểu thức trong dấu ngoặc sau nó ghi lại kết quả vào RLO
Lệnh tác động vào thanh ghi trạng thái như sau:
Trang 494.2.8 Lệnh thực hiện phép tính giao với giá trị nghịch đảo của một biểu thức
Cú pháp: AN (
Lệnh không có toán hạng
Nếu FC=0 lệnh sẽ gán giá trị logic của biểu thức trong dấu ngoặc sau nó vào RLO Ngược lại sẽ thực hiện
phép tính giao giữa RLO với giá trị nghịch đảo logic của biểu thức trong dấu ngoặc sau đó ghi lại kết quả
vào RLO
Lệnh tác động vào thanh ghi trạng thái như sau:
Trang 504.2.9 Lệnh thực hiện phép tính hợp với giá trị nghịch đảo một biểu thức
Cú pháp: ON (
Lệnh không có toán hạng
Nếu FC=0 lệnh sẽ gán giá trị logic nghịch đảo của
biểu thức trong dấu ngoặc sau nó vào RLO Ngược lại sẽ thực hiện phép tính hợp giữa RLO với giá trị nghịch đảo logic nghịch đảo của biểu thức trong dấu ngoặc
sau đó ghi lại kết quả vào RLO
Lệnh tác động vào thanh ghi trạng thái như sau:
Trang 514.2.10 Lệnh thực hiện phép exclusive or
Cú pháp: x < toán hạng >
Toán hạng làdữ liệu kiểu Bool hoặc địa chỉ bit
I,Q,M,L,D,T,C
Nếu FC=0 lệnh sẽ gán giá trị logic của toán hạng vào RLO Ngược lại sẽ kiểm tra xem nội dung của RLO vàgiá trị logic của toán hạng có khác nhau không Trong trường hợp khác nhau thì ghí vào RLO, ngược lại thìghi 0 Nói cách khác, lệnh sẽ đảo nội dung của RLO nếu toán hạng có giá trị là1
Trang 52Nếu FC=0 lệnh sẽ gán giá trị logic nghịch đảo của
toán hạng vào RLO Ngược lại sẽ kiểm tra xem nội
dung của RLO và giá trị logic của toán hạng có khác nhau không Trong trường hợp khác nhau thì ghi 1 vào RLO, ngược lại thì ghi 0 Nói cách khác, lệnh sẽ đảo nội dung của RLO nếu toán hạng có giá trị là 0
4.2.11 Lệnh thực hiện phép exclusive or notCú pháp: XN < toán hạng >
Toán hạng làdữ liệu kiểu Bool hoặc địa chỉ bit
I,Q,M,L,D,T,C