PLC viết tắt của Programmable Logic Control, là thiết bị điều khiển logic lập trình được, cho phép thực hiện linh hoạt các thuật toán điều khiển thông qua một ngôn ngữ lập trình.
S7 – 200 là thiết bị điều khiển khả trình loại nhỏ của hãng Siemens, có cấu trúc theo kiểu modul và có các modul mở rộng. Các modul này sử dụng cho nhiều ứng dụng lập trình khác nhau. Thành phần cơ bản của S7 – 200 là khối vi xử lý CPU 212, CPU 214,CPU 214, CPU 226. Về hình thức bên ngoài, sự khác nhau của hai loại CPU này nhận biết được nhờ số đầu vào/ra và nguồn cung cấp.
- CPU 212 có 8 cổng vào, 6 cổng ra và có khả năng được mở rộng thêm bằng 2 modul mở rộng.
- CPU 214 có 14 cổng vào, 10 cổng ra và có khả năng được mở rộng thêm bằng 7 modul mở rộng.
- CPU 214 có 14 cổng vào, 10 cổng ra có 14 cổng vào, 10 cổng ra và có khả năng được mở rộng thêm bằng 7 modul mở rộng
- CPU 226 có 24 cổng vào 16 cổng ra và có khả năng được mở rộng thêm bằng 7 modul mở rộng.
S7 – 200 có nhiều loại modul mở rộng khác nhau. 3.1.1 CPU 214 bao gồm:
- 2048 từ đơn (4K byte) thuộc miền nhớ đọc/ghi non-volatile để lưu chương trình (vùng nhớ có giao diện với EEPROM).
- 2048 từ đơn (4K byte) kiểu đọc/ghi để lưu dữ liệu, trong đó 512 từ đầu thuộc miền nhớ non-volatile.
- 14 cổng vào và 10 cổng ra logic.
- Có 7 modul để mở rộng thêm cổng vào/ra bao gồm luôn cả modul analog.
- Tổng số cổng vào/ra cực đại là 64 cổng vào và 64 cổng ra.
- 128 Timer chia làm 3 loại theo độ phân giải khác nhau: 4 Timer 1ms, 16 Timer 10ms và 108 Timer 100ms.
- 128 bộ đếm chia làm 2 loại: chỉ đếm tiến và vừa đếm tiến vừa đếm lùi.
- 688 bit nhớ đặc biệt dùng để thông báo trạng thái và đặt chế độ làm việc.
- Các chế độ ngắt và xử lý ngắt bao gồm: ngắt truyền thông, ngắt theo sườn lên hoặc xuống, ngắt thời gian, ngắt của bộ đếm tốc độ cao và ngắt truyền xung.
- 3 bộ đếm tốc độ cao với nhịp 2 KHz và 7KHz.
- 2 bộ điều chỉnh tương tự.
- Toàn bộ vùng nhớ không bị mất dữ liệu trong khoảng thời gian 190 giờ khi PLC bị mất nguồn nuôi.
Hình 1. Bộ điều khiển lập trình được S7 – 200, CPU 214
3.1.2 Mô tả các đèn báo trên S7 – 200, CPU 214
SF (đèn đỏ) Đèn đỏ SF báo hiệu hệ thống bị hỏng. Đèn SF sáng lên khi PLC bị hỏng hóc.
RUN (đèn xanh) Đèn xanh RUN chỉ định PLC đang ở chế độ làm việc và thực hiện chương trình được nạp trong máy.
STOP (đèn vàng) Đèn vàng STOP chỉ định PLC đang ở chế độ dừng. Dừng chương trình đang thực hiện lại.
Ix.x (đèn xanh) Đèn xanh ở cổng vào chỉ định trạng thái tức thời của cổng Ix.x (x.x = 0.0 ÷ 1.5). Đèn này báo hiệu trạng thái của tín hiệu theo giá trị logic của cổng.
Qy.y (đèn xanh) Đèn xanh ở cổng ra báo hiệu trạng thái tức thời của cổng Qy.y (y.y = 0.0 ÷ 1.1). Đèn này báo hiệu trạng thái của tín hiệu theo giá trị logic của cổng.
3.1.3 Cổng truyền thông
S7 – 200 sử dụng cổng truyền thông nối tiếp RS485 với phích nối 9 chân để phục vụ cho việc ghép nối với thiết bị lập trình hoặc với các trạm PLC khác. Tốc độ truyền cho máy lập trình kiểu PPI là 9600 baud. Tốc độ truyền cung cấp của PLC theo kiểu tự do là 300 đến 38.400.
Chân Giải thích Chân Giải thích
Q0.0 Q0.1 Q0.2 Q0.3 Q0.4 Q0.5 Q0.6 Q0.7 I1.0 I.11 I1.2 I1.3 I1.4 I1.5 I0.0 I0.1 I0.2 I0.3 I0.4 I0.5 I0.6 I0.7 SF RUN STOP SIEMENS SIMATIC S7 - 200
Các cổng vào Cổng truyền thông Các cổng ra
Q1.0 Q1.1
Hình 2. Sơ đồ chân của cổng truyền thông
5 4 3 2 1 9 8 7 6
1 Đất 6 5 VDC (điện trở trong 100ς)
2 24 VDC 7 24 VDC (120mA tối đa)
3 Truyền và nhận dữ liệu 8 Truyền và nhận dữ liệu
4 Không sử dụng 9 Không sử dụng
5 Đất
Để ghép nối S7 – 200 với máy lập trình PG702 hoặc với các loại máy lập trình thuộc họ PG7xx có thể sử dụng một cáp nối thẳng MPI. Cáp đó đi kèm theo máy lập trình.
Ghép nối S7 – 200 với máy tính PC qua cổng RS-232 cần có cáp nối PC/PPI với bộ chuyển đổi RS232/RS485.
3.1.4 Công tắc chọn chế độ làm việc của PLC
Công tắc chọn chế độ làm việc nằm phía trên, bên cạnh các cổng ra của S7 – 200 có ba vị trí cho phép chọn các chế độ làm việc khác nhau cho PLC.
- RUN cho phép PLC thực hiện chương trình trong bộ nhớ. PLC S7 – 200 sẽ rời khỏi chế độ RUN và chuyển sang chế độ STOP nế trong máy có sự cố hoặc trong chương trình gặp lệnh STOP, thậm chí ngay cả khi công tắc ở chế độ RUN. Nên quan sát trạng thái thực tại của PLC theo đèn báo.
- STOP cưỡng bức PLC dừng thực hiện chương trình đang chạy và chuyển sang chế độ STOP. Ở chế độ STOP PLC cho phép hiệu chỉnh lại chương trình hoặc nạp một chương trình mới.
- TERM cho phép máy lập trình tự quyết định một trong các chế độ làm việc cho PLC hoặc ở chế độ RUN hoặc ở chế độ STOP.
3.1.5 Chỉnh định tương tự
Điều chỉnh tương tự (1 bộ trong CPU 212 và 2 trong CPU 214) cho phép điều chỉnh các biến cần phải thay đổi và sử dụng trong chương trình. Núm chỉnh analog được lắp đặt dưới nắp đậy bên cạnh các cổng ra. Thiết bị chỉnh định có thể quay 270o.
3.1.6 Pin và nguồn nuôi bộ nhớ
Nguồn nuôi dùng để mở rộng thời gian lưu giữ cho các dữ liệu có trong bộ nhớ. Nguồn pin tự động được chuyển sang trạng thái tích cực nếu như dung
lượng tụ nhớ bị cạn kiệt và nó phải thay thế vào vị trí đó để dữ liệu trong bộ nhớ không bị mất đi.
3.2 CẤU TRÚC BỘ NHỚ 3.2.1 Phân chia bộ nhớ: 3.2.1 Phân chia bộ nhớ:
Bộ nhớ của S7 – 200 được chia thành 4 vùng với một tụ có nhiệm vụ duy trì dữ liệu trong một khoảng thời gian nhất định khi mất nguồn. Bộ nhớ của S7 – 200 có tính năng động cao, đọc và ghi được trong toàn vùng, loại trừ phần bit nhớ đặc biệt được kí hiệu SM (Special Memory) chỉ có thể truy nhập để đọc.
Vùng chương trình: là miền nhớ được sử dụng để lưu các lệnh chương trình. Vùng này thuộc kiểu non-volatile đọc/ghi được.
Vùng tham số: là miền lưu giữ các tham số như: từ khóa, địa chỉ trạm … cũng như vùng chương trình, vùng tham số thuộc kiểu non-volatile đọc/ghi được.
Vùng dữ liệu: dùng để cất các dữ liệu của chương trình bao gồm các kết quả các phép tính, hằng số được định nghĩa trong chương trình, bộ đệm truyền thông … một phần của vùng nhớ này thuộc kiểu non-volatile.
Vùng đối tượng: Timer, bộ đếm, bộ đếm tốc độ cao và các cổng vào/ra tương tự được đặt trong vùng nhớ cuối cùng. Vùng này không kiểu non-volatile nhưng đọc/ghi được. Chương trình Tham số Dữ liệu Vùng đối tượng Chương trình Tham số Dữ liệu Chương trình Tham số Dữ liệu
EEPROM Miền nhớ ngoài
3.2.2 Vùng dữ liệu:
Vùng dữ liệu là một vùng nhớ động. Nó có thể được truy nhập theo từng bit, từng byte, từng từ đơn hoặc từng từ kép và được sử dụng làm miền lưu trữ dữ liệu cho các thuật toán các hàm truyền thông, lập bảng các hàm dịch chuyển, xoay vòng thanh ghi, con trỏ địa chỉ …
Vùng dữ liệu lại được chia thành các miền nhớ nhỏ với các công dụng khác nhau. Chúng được ký hiệu bằng các chữ cái đầu của tên tiếng Anh, đặc trưng cho từng công dụng của chúng như sau:
V - Variable memory. I - Input image regigter. O - Output image regigter. M - Internal memory bits. SM - Speacial memory bits.
Tất cả các miền này đều có thể truy nhập được theo từng bit, từng byte, từng từ đơn (word-2byte) hoặc từ kép (2 word).
Hình 4. Mô tả vùng dữ liệu của CPU 214
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 Miền V (đọc/ghi) Vùng đệm cổng vào I (đọc/ghi) Vùng nhớ nội M Vùng đệm (đọc/ghi) cổng ra Q (đọc/ghi) Vùng nhớ đặc biệt Vùng nhớ đặc SM (chỉ đọc) biệt (đọc/ghi)
Địa chỉ truy nhập được qui ước theo công thức:
V0 Μ V4095 I0.x (x=0÷7) Μ I7.x (x=0÷7) M0.x (x=0÷7) Μ M31.x (x=0÷7) Q0.x (x=0÷7) Μ Q7.x (x=0÷7) SM0.x (x=0÷7) Μ SM29.x (x=0÷7 SM30.x (x=0÷7 Μ SM85.x (x=0÷7
- Truy nhập theo bit: Tên miền (+) địa chỉ byte (+)•(+) chỉ số bit. Ví dụ V150.4 chỉ bit 4 của byte 150 thuộc miền V.
- Truy nhập theo byte: Tên miền (+) B (+) địa chỉ của byte trong miền. Ví dụ VB150 chỉ 150 thuộc miền V.
- Truy nhập theo từ: Tên miền (+) W (+) địa chỉ byte cao của từ trong miền. Ví dụ VW150 chỉ từ đơn gồm 2 byte150 và 151 thuộc miền V, trong đó byte 150 có vai trò byte cao trong từ.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 VB150
- Truy nhập theo từ kép: Tên miền (+) D (+) địa chỉ byte cao của từ trong miền. Ví dụ VD150 chỉ từ kép gồm 4 byte150, 151, 152 và 153 thuộc miền V, trong đó byte 150 có vai trò byte cao và byte 153 là thấp trong từ kép.
63 32 31 16 15 8 7 0
VD150
o Tất cả các byte thuộc vùng dữ liệu đều có thể truy nhập được bằng con trỏ. Con trỏ được định nghĩa trong miền V hoặc các thanh ghi AC1, AC2 và AC3. Mỗi con trỏ địa chỉ chỉ gồm 4 byte (từ kép).
3.2.3 Vùng đối tượng:
Vùng đối tượng được sử dụng để lưu giữ dữ liệu cho các đối tượng lập trình như các giá trị tức thời, giá trị đặt trước của bộ đếm, hay Timer. Dữ liệu kiểu đối tượng bao gồm của thanh ghi của Timer, bộ đếm, bộ đếm tốc độ cao, bộ đệm vào/ra tương tự và các thanh ghi Accumulator (AC).
Kiểu được đối tượng bị hạn chế rất nhiều vì các dữ liệu kiểu đối tượng chỉ được ghi theo mục đích cần sử dụng của đối tượng đó.
VB150 (byte cao) VB151 (byte thấp)
Hình 5. Vùng nhớ đối tượng được phân chia như sau: CPU214 15 0 bit Timer (đọc/ghi) Bộ đếm (đọc/ghi) Bộ đệm cổng vào tương tự (chỉ đọc) Bộ đệm cổng ra tương tự (chỉ ghi) 31 23 8 0
Thanh ghi Accumulator (đọc/ghi)
Bộ đếm tốc độ cao (đọc/ghi)
3.2.4 Mở rộng ngõ vào/ra:
Có thể mở rộng ngõ vào/ra của PLC bằng cách ghép nối thêm vào nó các modul mở rộng về phía bên phải của CPU (CPU 214 nhiều nhất 7 modul), làm thành một móc xích, bao gồm các modul có cùng kiểu.
Các modul mở rộng số hay rời rạc đều chiếm chỗ trong bộ đệm, tương ứng với số đầu vào/ra của các modul.
Sau đây là một ví dụ về cách đặt địa chỉ cho các modul mở rộng trên
T0 Μ T127 T0 Μ T127 C0 Μ C127 C0 Μ C27 AW0 Μ AW30 AQW0 Μ AQW30
AC0 (không có khả năng làm con trỏ)
AC1 AC2 AC3 HSC0 HSC1 (chỉ có trong CPU 214) HSC2 (chỉ có trong CPU 214)
CPU 214:
CPU214 MODUL 0
(4vào/4ra) MODUL 1 (8 vào) (3vào analog MODUL 2 /1ra analog)
MODUL 3
(8 ra) (3vào analog MODUL 4 /1ra analog) I0.0 Q0.0 I0.1 Q0.1 I0.2 Q0.2 I0.3 Q0.3 I0.4 Q0.4 I0.5 Q0.5 I0.6 Q0.6 I0.7 Q0.7 I1.1 Q1.0 I1.2 Q1.1 I1.3 I1.4 I1.5 I2.0 I2.1 I2.2 I2.3 Q2.0 Q2.1 Q2.2 Q2.3 I3.0 I3.1 I3.2 I3.3 I3.4 I3.5 I3.6 I3.7 AIW0 AIW2 AIW4 AQW0 Q3.0 Q3.1 Q3.2 Q3.3 Q3.4 Q3.5 Q3.6 Q3.7 AIW8 AIW10 AIW12 AQW4 3.2.5 Thực hiện chương trình:
PLC thực hiện chương trình theo chu trình lặp. Mỗi vòng lặp được gọi là một vòng quét (scan). Mỗi vòng quét được bắt đầu bằng gian đoạn đọc dữ liệu từ các cổng vào vùng đệm ảo, tiếp theo là gian đoạn thực hiện chương trình. Trong từng vòng quét, chương trình được thực hiện bằng lệnh đầu tiên và kết thúc bằng lệnh kết thúc (MEND). Sau giai đoạn thực hiện chương trình là gian đoạn truyền thông nội bộ và kiểm tra lỗi. Vòng quét được kết thúc bằng giai đoạn chuyển các nội dung của bộ đệm ảo tới các cổng ra.
Hình 6. Chương trình thực hiện theo vòng quét (scan) trong S7 – 200.
Như vậy, tại thời điểm thực hiện lệnh vào/ra, thông thường lệnh không làm việc mà chỉ thông qua bộ đệm ảo của cổng trong vùng nhớ tham số. Việc truyền thông giữa bộ đệm ảo với ngoại vi trong các giai đoạn 1 và 4 do CPU quản lý. Khi gặp lệnh vào/ra ngay lập tức thì hệ thống sẽ cho dừng mọi công việc khác, ngay cả chương trình xử lý ngắt, để thực hiện lệnh này một cách trực tiếp với cổng vào/ra.
4. Chuyển dữ liệu từ bộ đệm ảo ra ngoại vi
3. Truyền thông và tự kiểm tra lỗi
1. Nhập dữ liệu từ ngoại vi vào bộ đệm ảo 2. Thực hiện chương trình
Nếu sử dụng các chế độ xử lý ngắt, chương trình con tương ứng với từng tín hiệu ngắt được soạn thảo và cài đặt như một bộ phận của chương trình. Chương trình xử lý ngắt chỉ được thực hiện trong vòng quét khi xuất hiện tín hiệu báo ngắt và có thể xảy ra ở bất cứ điểm nào trong vòng quét.
3.2.6 Cấu trúc chương trình của S7 – 200
Có thể lập trình cho S7 – 200 bằng cách sử dụng một trong những phần mềm sau đây:
- STEP 7 – Micro/DOS
- STEP 7 – Micro/WIN
Những phần mềm này đều có thể cài đặt được trên các máy lập trình họ PG7xx và các máy tính cá nhân (PC).
Các chương trình cho S7 – 200 phải có cấu trúc bao gồm chương trình chính (main program) và sau đó đến các chương trình con và các chương trình xử lý ngắt được chỉ ra sau đây:
- Chương trình chính được kết thúc bằng lệnh kết thúc chương trình (MEND)
- Chương trình con là một bộ phận của chương trình. Các chương trình con phải được viết sau lệnh kết thúc chương trình chính, đó là lệnh MEND.
- Các chương trình xử lý ngắt là một bộ phận của chương trình. Nếu cần sử dụng chương trình xử lý ngắt phải viết sau lệnh kết thúc chương trình chính MEND.
Các chương trình con được nhóm lại thành một nhóm ngay sau chương trình chính. Sau đó đến các chương trình xử lý ngắt. Bằng cách viết như vậy, cấu trúc chương trình được rõ ràng và thuận tiện hơn trong việc đọc chương trình sau này. Có thể tự do trộn lẫn các chương trình con và chương trình xử lý ngắt đằng sau chương trình chính. Main Program Μ MEND Thực hiện trong một vòng quét SBR 0 chương trình con thứ nhất Μ RET
Thực hiện khi được chương trình chính gọi SBR n chương trình con thứ n+1 Μ RET INT 0 chương trình xử lý ngắt thứ nhất Μ
Thực hiện khi có tín hiệu báo ngắt
Hình 7. Cấu trúc chương trình của S7 – 200 INT n chương trình xử lý ngắt thứ n+1 Μ
Hình 8: Hình ảnh thực tế của PLC SIMATIC S7 – 200 (CPU 214)
Hình 10: CPU 224 đang được kết nối với modul mở rộng
3.3 NGÔN NGỮ LẬP TRÌNH CỦA S7 – 200 3.3.1 Phương pháp lập trình: 3.3.1 Phương pháp lập trình:
S7 – 200 biểu diễn một mạch logic cứng bằng một dãy các lệnh lập trình. Chương trình bao gồm một dãy các lệnh. S7 – 200 thực hiện chương trình bắt đầu từ lệnh lập trình đầu tiên và kết thúc ở lệnh cuối trong một vòng. Một vòng như vậy được gọi là vòng quét.
Một vòng (scan cycle) quét được bắt đầu bằng việc đọc trạng thái của đầu vào, và sau đó thực hiện chương trình. Scan cycle kết thúc bằng việc thay đổi trạng thái đầu ra. Trước khi bắt đầu một vòng quét tiếp theo S7 – 200 thực thi các nhiệm vụ bên trong và nhiệm vụ truyền thông. Chu trình thực hiện chương trình là chu trình lặp.
Cách lập trình cho S7 – 200 nói riêng và cho các PLC của Siemens nói chung dựa trên hai phương pháp lập trình cơ bản: Phương pháp hình thang (Ladder Logic viết tắt là LAD) và phương pháp liệt kê lệnh (Statement List viết tắt là STL).
Nếu chương trình được viết theo kiểu LAD, thiết bị lập trình sẽ tự tạo ra một chương trình theo kiểu STL tương ứng. Nhưng ngược lại không phải mọi chương trình được viết theo kiểu STL cũng có thể chuyển được sang LAD.