–Ngôn ngữ lập trình đa dạng phong phú, ngoμi ba ngôn ngữ chính thống, còn có các ngôn ngữ đồ hoạ mạng SFC, ngôn ngữ bậc cao..... –Để thể kết quả phép toán vμ trạng thái của lệnh vừa thực
Trang 1Giới thiệu tổng quát về PLC S7-300
PLC S7-300 là một sản phẩm PLC mạnh, tốc độ
xử lý cao, khả năng quản lý bộ nhớ tốt, kết nối mạng công nghiệp.
Về tính năng, 300 có nhiều cải tiến so với S7-200.
–Dung lượng bộ nhớ lớn hơn, tốc độ truy nhập nhanh hơn.
–Các module được nối với nhau qua khe cắm.
–Ngôn ngữ lập trình đa dạng phong phú, ngoμi ba ngôn ngữ chính thống, còn có các ngôn ngữ đồ hoạ (mạng SFC), ngôn ngữ bậc cao
–Khả năng quan lí các môdule mở rộng lớn hơn
–Để thể kết quả phép toán vμ trạng thái của lệnh vừa thực hiện, S7-300 sử dụng thanh ghi trạng thái
–Thực hiện các phép toán lôgic vμ biểu thức lôgic
đối với ngôn ngữ STL được cải tiến cho phù hợp với cách viết thông thường hơn
–S7-300 sử dụng 2 thanh ghi trung gian ACCU1 vμ ACCU2 để lưu kết quả khi lμm việc với các lệnh byte, word, double word.
–S7-300 còn sử dụng 2 thanh ghi đặc biệt lμm con trỏ AR1 vμ AR2.
–Tổ chức chương trình trong S7-300 rộng hơn vμ chặt
Trang 2Một số thông tin kĩ thuật của
s7-300 cpu 3xx
128 byte
80 kB ram
48 KB CPU 315
128 byte
128 byte
128 byte
32 byte Kích thước bộ
đệm
40 kB ram, eeprom
40 kB ram
20 kB ram
20 kB ram, eeprom
Vùng nhớ chương trình ứng dụng
24 kB
24 kB
12 kB
6 kB Vùng nhớ
thực thi (work)
CPU 315 2DP
CPU 314 IMF
CPU 314 CPU 313
CPU
312 IMF
các module mở rộng của
s7-300 cpu 3xx
Industrial Ethernet Profibus
ASi Truyền thông (CP)
AI/AO (4/2)
Là các module điều khiển chuyên dụng (Động cơ bước, động cơ servo, PID, fuzzy logic
Chức năng (FM)
IM 365
IM 361
IM 360 Ghép nối (IM)
AO (2,4)
AI (2,4,8,15)
DO (8,16,32)
DI (4,8,16,32) Tín hiệu (SM)
Vào xoay chiều, ra 24 VDC
10A 5A
2A Nguồn cấp (PS)
Trang 3Tổ chức vùng nhớ và địa chỉ vùng nhớ.
–Vùng nhớ các thanh ghi
–Vùng nhớ hệ thống (system)
–Vùng nhớ chương trình ứng dụng (Load)
–Vùng nhớ thực thi (work)
Vùng nhớ thanh ghi
–Gồm các thanh ghi sau: ACCU1, ACCU2, AR1, AR2, DB (share), DI (instance), status reg.
Vùng nhớ chương trình ứng dụng (Load)
–Lμ vùng nhớ lưu nội dung mã chương trình được soạn ra do người lập trình Tuỳ theo CPU, vùng nhớ nμy có thể mở rộng tới 512kB
Vùng nhớ thực thi (work)
–Lμ vùng nhớ chứa các dữ liệu đang được thực thi bởi CPU, vùng nhớ nμy liên tục bị hệ điều hμnh thay đổi nội dung mỗi khi nạp một khối chương trình mới.
Vùng nhớ hệ thống (system)
–Lμ vùng nhớ bao gồm các địa chỉ nhớ I, Q, M, T
vμ C
Địa chỉ vùng nhớ
–Bộ đệm vμo số: I0.0→I127.7 (128 byte)
–Bộ đệm ra số: Q0.0→Q127.7 (128 byte)
–Vùng nhớ bít: M0.0 → M255.7
Trang 4–Vùng nhớ timer: T0 → T255
–Vùng nhớ counter: C0 → C255
–Vùng nhớ khối dữ liệu (share):
DBX0.0 → DBX65535.7
–Vùng nhớ khối dữ liệu (instance):
DIX0.0 → DIX65535.7
–Vùng nhớ địa phương: L0.0 → 65535.7
–Vùng nhớ đầu vμo tương tự: PIB65535
–Vùng nhớ đầu ra tương tự: PIQ65535
Truy nhập dữ liệu tại các vùng nhớ
của S7-300
Truy nhập trực tiếp ô nhớ Truy nhập gián tiếp thông qua con trỏ
Trang 5Truy nhËp d÷ liÖu trùc tiÕp Truy nhËp theo bÝt, theo byte, theo word, theo double word t−¬ng tù nh− cña S7-200
Truy nhËp vïng nhí cña khèi d÷ liÖu:
– Côm ch÷ c¸i: DB (khèi d÷ liÖu share)
DI (khèi d÷ liÖu instance) Truy nhËp theo bÝt:
DBX1.5 (BÝt thø 5 cña byte 1 n»m trong
khèi DB share) DB2.DBX1.5 (BÝt thø 5 cña byte 1 n»m trong khèi DB
share thø 2) DIX2.3 (BÝt thø 3 cña byte 2 n»m trong
khèi DI instance)
–Truy nhËp theo byte:
DBB5 (Byte thø 5 n»m trong khèi DB share) DB5.DBB5 (Byte thø 5 n»m trong
khèi DB share thø 5) DIB3 (Byte thø 3 n»m trong khèi DI instance)
–Truy nhËp theo work:
DBW5 (Tõ thø 5 n»m trong khèi DB share) DB5.DBW5 (Tõ thø 5 n»m trong
khèi DB share thø 5) DIW3 (Tõ thø 3 n»m trong khèi DI instance)
Trang 6–Truy nhập theo double work:
DBD5 (Từ kép thứ 5 nằm trong khối DB share) DB5.DBD5 (Từ kép thứ 5 nằm trong
khối DB share thứ 5) DID3 (Từ kép thứ 3 nằm trong khối DI instance)
Truy nhập dữ liệu gián tiếp thông
qua con trỏ
Đối với S7-300 ngoài vùng nhớ M được dùng làm con trỏ, S7-300 còn sử dụng 2 thanh ghi chuyên dụng AR1 và AR2 kích thước 32 bít làm con trỏ.
Để khởi tạo và sử dụng con trỏ, trong S7-300 không
sử dụng các kí tự đặc biệt & và * như S7-200:
–Khởi tạo con trỏ:
L 200
T MD10 (MD10 sẽ có nội dung 200)
–Sử dụng con trỏ:
L MW[MD10] (ACCU1 sẽ có nội dung của
MW200)
Trang 7DB number (or 0): Tên số khối dữ liệu, hoặc bằng 0 nếu dữ liệu không nằm trong khối dữ liệu.
Memory area: Xác định vùng nhớ
Cấu trúc tổng quát của con trỏ trong S7-300
Đệm đầu vào I
1000 0001
Mô tả
Vùng nhớ Mã nhị phân
Vùng nhớ địa phương L
1000 0110
Vùng dữ liệu instance DI
1000 0101
Vùng dữ liệu share DB
1000 0100
Vùng nhớ bít M
1000 0011
Đệm đầu ra Q
1000 0010
Mô tả
Vùng nhớ Mã nhị phân
Địa chỉ dữ liệu : Được định dạng theo kiểu
Địa chỉ Byte (0-65535).Địa chỉ Bit (0-7) Khai báo cấu trúc con trỏ tổng quát như sau:
p# [Vùng nhớ] [Địa chỉ byte].[Địa chỉ bit]
Trang 8–Sử dụng con trỏ với thanh ghi con trỏ:
Với thanh ghi AR1 vμ AR2, việc sử dụng con trỏ còn kết hợp thêm với một độ lệch (offset)
–Cấu trúc truy nhập tổng quát:
[Vùng nhớ][ARx, P# [Địa chỉ byte].[Địa chỉ bit]
Vị trí con trỏ AR
Vị trí đ−ợc truy nhập
Độ lệch (offset)
Ví dụ 1, truy nhập gián tiếp ô nhớ 1 bít dùng vùng nhớ M làm con trỏ:
–Khởi tạo con trỏ:
L P#8.7
T MD2 (nội dung MD2 có dạng
10000111)
–Sử dụng con trỏ:
A I[MD2] (Đọc nội dung I8.7)
= Q[MD2] (Ghi ra địa chỉ Q8.7)
Trang 9Ví dụ 2, truy nhập gián tiếp ô nhớ 1 bít dùng thanh ghi con trỏ nội vùng AR1 và AR2:
–Khởi tạo con trỏ (cách 1):
L P#8.7 LAR1 (nội dung AR1 có dạng
10000111)
–Khởi tạo con trỏ (cách 2):
LAR1 P#8.7 (nội dung AR1 có dạng
10000111)
A I[AR1,P#0.0] (đọc đầu vμo I8.7)
= Q[AR1,P#1.1] (ghi đầu ra Q10.0)
Chú ý: Q10.0 = Q8.7 + offset(1.1)
Ví dụ 3, truy nhập gián tiếp ô nhớ 1 bít dùng thanh ghi con trỏ AR1 và AR2 ngoại vùng:
–Khởi tạo con trỏ (cách 1):
L P#I8.7 LAR1 (nội dung AR1 có dạng
1000 0001 1000 0111)
–Khởi tạo con trỏ (cách 2):
LAR1 P#I8.7 (nội dung AR1 có dạng
1000 0001 1000 0111)
Trang 10–Khởi tạo con trỏ (cách 1):
L P#Q8.7 LAR2 (nội dung AR2 có dạng
1000 0010 1000 0111)
–Khởi tạo con trỏ (cách 2):
LAR2 P#Q8.7 (nội dung AR2 có dạng
1000 0010 1000 0111)
–Sử dụng con trỏ:
A [AR1, P#0.0] (đọc đầu vμo I8.7)
= [AR2, P#1.1] (ghi đầu ra Q10.0)
Ví dụ 4, truy nhập gián tiếp vùng nhớ dùng thanh ghi con trỏ AR1 và AR2 nội vùng:
–Khởi tạo con trỏ (cách 1):
L P#8.0 LAR1 (nội dung AR1 có dạng
1000 0000)
–Khởi tạo con trỏ (cách 2):
LAR1 P#8.0 (nội dung AR1 có dạng
1000 0000)
–Sử dụng con trỏ
L MB[AR1,P#0.0] (nội dung của MB8
đ−ợc đọc vμo ACCU1)
Trang 11Ví dụ 5, truy nhập gián tiếp vùng nhớ dùng thanh ghi con trỏ AR1 và AR2 ngoại vùng:
–Khởi tạo con trỏ (cách 1):
L P#M8.0 LAR1 (nội dung AR1 có dạng
1000 0011 1000 0000)
–Khởi tạo con trỏ (cách 2):
LAR1 P#M8.0 (nội dung AR1 có dạng
1000 0011 1000 0000)
–Sử dụng con trỏ
L B[AR1,P#0.0] (nội dung của MB8
đ−ợc đọc vμo ACCU1)
Chú ý: Khi dùng con trỏ ARx truy nhập gián tiếp vùng nhớ Byte, Word, Double word thì
–Khai báo cấu trúc con trỏ nh− sau:
p# [Vùng nhớ] [Địa chỉ byte].0
–Cấu trúc truy nhập tổng quát nh− sau:
[Vùng nhớ][ARx, P# [Địa chỉ byte].0]
Có nghĩa lμ địa chỉ bit luôn bằng 0
Trang 12Lùa chän ng«n ng÷ lËp tr×nh
Ng«n ng÷ STL Ng«n ng÷ LAD Ng«n ng÷ FBD Ng«n ng÷ Graph (SFC) Ng«n ng÷ Hi-Graph Ng«n ng÷ SCL