PLC và viết tắt của Programmable Logic Controller, là bộ điều khiển logic có khả năng lập trình được, cho phép thực hiện linh họat các thuật toán điều khiển logic thông qua ngôn ngữ lập
Trang 1CHƯƠNG I GIỚI THIỆU CHUNG VỀ PLC
2.1 PLC
* Thế nào là PLC?
PLC và viết tắt của Programmable Logic Controller, là bộ điều khiển logic có khả năng
lập trình được, cho phép thực hiện linh họat các thuật toán điều khiển logic thông qua ngôn ngữ lập trình ( Đây là định nghĩa về PLC của Nguyễn Doãn Phước – Phan Xuân Minh trong sách
“Tự động hoá với simatic S7 – 200”)
Phạm vi ứng dụng:
+ Lúc đầu chủ yếu trong các ngành công nghiệp chế tạo, điều khiển các quá trình rời rạc.+ Ngày nay cả trong điều khiển trình tự và điều khiển quá trình liên tục, cạnh tranh với
Compact Digital Controllers và các hệ DCS trong các ứng dụng “lai”.
+ Thiết bị thu thập dữ liệu trong các hệ SCADA
Lịch sử ra đời của PLC: hình thành từ nhóm các kỹ sư của hãng General Motor năm 1968
với ý tưởng ban đầu là thiết kế một bộ điều khiển thõa mãn các yêu cầu sau:
+ Dễ dàng sửa chữa và thay thế
+ Ổn định trong môi trường công nghiệp
Năm 1975 PLC với bộ điều khiển PID ra đời
Năm 1976: Lần đầu tiên PLC sử dụng trong hệ thống phân cấp điều khiển dây chuyền sản xuất
Năm 1977 : mP-based PLC
Năm 1980: Các module vào/ra thông minh
Năm 1981: PLC nối mạng, 16-bit PLC, các màn hình CRT màu
Năm 1982: PLC với 8192 I/O (lớn nhất)
Năm 1992: Chuẩn IEC 61131 ra đời
Trang 2Năm 1996: Slot-PLC, Soft-PLC,
Vai trò của PLC trong quá trình tự động hóa sản xuất:
Như đã biết, nước ta hiện nay đang trong quá trình công nghiệp hóa, hiện đại hóa Vì thế, tự động hóa sản xuất đóng vai trò quan trọng, tự động hóa giúp tăng năng suất, tăng độ chính xác
và do đó tăng hiệu quả quá trình sản xuất Để có thể thực hiện tự động hóa sản xuất, bên cạnh các máy móc cơ khí hay điện, các dây chuyền sản xuất…v.v, cũng cần thiết phải có các bộ điều khiển để điều khiển chúng PLC là một trong các bộ điều khiển đáp ứng đươc yêu cầu đó
2.2 Cấu trúc và nguyên lý hoạt động của PLC
a Cấu tạo của PLC
Hiện nay trên thế giới có rất nhiều hãng sản xuất PLC như Toshiba, Hitachi, Omron, Misubishi của Nhật Bản; LS của Hàn Quốc – GM4; Siemens, ABB của Đức; Rockwell, General electric của Mỹ; Schneider của Pháp ; Danfort của Đan Mạch; Allen Bradley của Anh; B&G system 2000 của Áo; Honeywell;…
Tất cả chúng đều gồm 4 thành phần chính (như hình vẽ 1.1)
Hình 1.1 Cấu tạo của PLC
OutputsInputs CPU - Memory
Source
Outputs
Trang 3
Hình 1.2 Sơ đồ cấu trúc của PLC
* CPU (Central Processing Units- Khối xử lý trung tâm – đơn vị xử lý trung tâm):
Là bộ xử lý trung tâm, nó như bộ não của PLC có nhiệm vụ điều khiển và quản lý mọi hoạt động bên trong PLC Việc trao đổi thông tin giữa CPU, bộ nhớ và các cổng vào/ ra được thực hiện thông qua hệ thống các bus nối dưới sự điều khiển của CPU PLC của hãng Siemens dòng S7- 200 CPU 21x bao gồm: CPU 210, CPU 212, CPU 214, CPU 215- 2DP, CPU 216
Dòng S7- 200 CPU 22x bao gồm: CPU 221, CPU 222, CPU 224, CPU 224XP, CPU 226,CPU 226XM; Trong đó CPU 224XP có hỗ trợ analog 2I/1O onboard và 2 port truyền thông
* Bộ nhớ chương trình (Memory):
Dùng để lưu giữ và sao chép chương trình Tất cả các loại PLC đều sử dụng các loại bộ nhớ sau
cơ bản sau: ROM, EPROM, EEPROM, RAM, đĩa cứng, đĩa mềm
+ ROM (Read Only Memory): Là bộ nhớ chỉ đọc, trong PLC bộ nhớ này dùng để lưu giữ
hệ điều hành do nhà sản xuất nạp và chỉ nạp được một lần
+ EPROM (Electrically Programmable ROM) là bộ nhớ mà người sử dụng bình thường chỉ có thể đọc chứ không ghi nội dung vào được Nội dung của EPROM không bị mất khi mất nguồn, nó được gắn sẵn trong máy, đã được nhà sản xuất nạp và chứa hệ điều hành sẵn
EPROM có thể xóa được bằng tia cực tím
+ Bộ nhớ EEPROM (Electrical Erasable Programable ROM): Là bộ nhớ ROM có thể
xóa và nạp lại bằng tín hiệu điện, tùy thuộc loại EEPROM cho phép xóa và nạp lại với vài nghìnđến vài chục nghìn lần Bộ nhớ EEPROM được dùng để lưu giữ chương trình ứng dụng trong PLC
+ RAM (Random Acess Memory): Là bộ nhớ truy cập ngẫu nhiên, trong PLC bộ nhớ này
dùng để lưu giữ dữ liệu hoặc kết quả tạm thời của các phép toán RAM có thể nạp chương trình,
Bộ xử lý
Giao diện nhập Giao diện xuất
Nguồn công suất
Bộ nhớ Thiết bị lập trình
Trang 4thay đổi hay xóa bỏ nội dung bất kỳ lúc nào Nội dung của RAM sẽ bị mất nếu nguồn điện nuôi
bị mất Để tránh tình trạng này các PLC đều được trang bị một tụ hoặc một pin khô để nuôi RAM, do đó khi mất điện dữ liệu trong RAM có thể lưu trong vài chục giờ, vài tháng đến vài năm Trong thực tế RAM được dùng để khởi tạo và kiểm tra chương trình Khuynh hướng hiện nay dùng CMOS RAM nhờ khả năng tiêu thụ thấp và tuổi thọ lớn
+ Môi trường ghi dữ liệu nữa là đĩa cứng hoặc đĩa mềm, được sử dụng trong máy lập trình Đĩa cứng hoặc đĩa mềm có dung lượng lớn nên thường được dùng để lưu những chương trình lớn trong một thời gian dài
Hình 1.3 Cấu trúc bộ nhớ RAM, EEPROM.
* Các cổng vào/ ra- Inputs/ Outputs:
Mọi hoạt động bên trong PLC đều có mức điện áp 5VDChoặc 15VDC (mức điện áp cấp cho các IC TTL hoặc CMOS) trong khi đó tín hiệu điều khiển theo tiêu chuẩn công nghiệp là 24VDC hoặc 230 VAC Do đó các cổng vào/ ra đóng vai trò là mạch giao tiếp giữa các vi mạch điện tử bên trong PLC với các mạch công suất bên ngoài, nó thực hiện chuyển đổi mức tín hiệu
và cách ly
b Nguyên lý hoạt động của PLC
* Vòng quét của PLC: 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 đọc dữ liệu từ các cổng vào vùng
bộ đệm ảo, tiếp theo là giai đoạn thực hiện chương trình Trong từng vòng quét, chương trình
Trang 54 Chuyển dữ liệu ra
đầu outputs
Truyền thông và
tự kiểm tra lỗi
2.Thực hiện chương trình
1 Nhập dữ liệu từ ngoại vi vào
được thực hiện bằng lệnh đầu tiên và kết thúc tại lệnh kết thúc Sau giai đoạn thực hiện chương
trình là giai đ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 1.4 Vịng quét của PLC.
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 trực tiếp với cổng vào/ ra 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
Nếu sử dụng các chế độ 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ứ thời điểm nào trong vịng quét
c Truyền thơng cho CPU S7 - 200 :
SIMATIC NET là mạng truyền thơng cho phép kết nối với các bộ điều khiển của SIEMENS,các máy tính chủ, các trạm làm việc SIMATIC NET bao gồm các mạng truyền thơng, các thiết
bị truyền dữ liệu, các phương pháp truyền thơng dữ liệu, các giao thức và dịch vụ truyền dữ liệugiữa các thiết bị, các module cho phép kết nối mạng LAN
Với hệ thống SIMATIC NET, SIEMENS cung cấp hệ thống truyền thơng mở cho nhiều cấpkhác nhau của các quá trình tự động hố trong mơi trường cơng nghiệp Hệ truyền thơngSIMATIC NET dựa trên nhiều tiêu chuẩn quốc tế ISO/OSI (International StandardizationOrganisation / Open System Interconnection) Cơ sở của các hệ thống truyền thơng này là cácmạng cục bộ (LANs), cĩ thể thực hiện theo nhiều cách khác nhau: điện học, quang học, khơng
Trang 6Theo các yêu cầu về chức năng các lớp trong tổ chức điều hành, quản lý sản xuất thì mạng côngnghiệp được chia thành nhiều cấp bao gồm: cấp điều hành quản lý, cấp phân xưởng, cấp trường
và cấp cơ cấu chấp hành – cảm biến - đối tượng Theo phương pháp tổ chức hệ thống như trên
- Mạng PPI
- Mạng MPI
- Mạng AS- interface
- Mạng Profibus
- Mạng Ethernet công nghiệp
2.3 Giới thiệu chung về S7- 200
* CPU 21x: bao gồm CPU 210, 212, 214, 216 (Loại này không còn sản xuất nữa)
+ Cấu hình của CPU 212 như sau:
- 8DI: I0.x (x= 07)
- 6 REL.OUTP: Q0.x (x= 05)
- Điện áp vào 24VDC hoặc 120 VDC;
- Điện áp ra 24VDC hoặc 230 VAC;
- Có thể ghép nối thêm tối đa 2 modul (kể cả modul tương tự- Analog) để mở rộng để số cổng vào / ra, khi đó số cổng logic vào / ra cực đại là 64 cổng vào và 64 cổng ra
- 64 timer, trong đó có 2 timer có độ phân giải 1ms, 8 timer có độ phân giải 10ms và 54 timer có độ phân giải 100ms
- 64 counter, chia làm 2 loại: loại bộ đếm chỉ đếm tiến và loại bộ đếm vừa đếm tiến vừa đếm lùi
- 368 bits nhớ đặc biệt, sử dụng làm các bit trạng thái hoặc các bit đặt chế độ làm việc
- Các chế độ ngắt và xử lý tín hiệu ngắt khác nhau bao gồm: ngắt truyền thông, ngắt theo sườn lên hoặc sườn xuống, ngắt theo thời gian và ngắt báo hiệu của bộ đếm tốc độ cao (2KHz)
- Thời gian mất dữ liệu khi mất nguồn nuôi là 50 giờ
Trang 7Hình 1.4 CPU 212 + Cấu hình của CPU 214 như sau:
- 14DI: I0.x; I1.x (x=07)
- 10 REL.OUTP: Q0.x (x=07); Q1.0, Q1.1
- Điện áp vào 24VDC hoặc 120VDC
- Điện áp ra 24VDC hoặc 230VAC
- Có thể ghép nối thêm tối đa 7 modul (kể cả modul tương tự- Analog) để mở rộng để số cổng vào / ra, khi đó số cổng logic 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 counter 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 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 đếm tốc độ cao và ngắt truyền xung
- 3 bộ đếm tốc độ cao HSC0, HSC1 và HSC2 với nhịp xung 2KHz và 7 KHz
Trang 8Hình 1.5 CPU 214
Tổng hợp: Cấu hình phần cứng của CPU 21x như sau:
Trang 9+ CPU 22x: bao gồm CPU 221, CPU 222, , CPU 224, CPU224XP, CPU 226, CPU 226XM; Trong đó CPU 224XP có hỗ trợ analog 2I/1O onboard và 2 port truyền thông
Tổng hợp: Cấu hình phần cứng của CPU 22x như sau:
Trang 10Gi¶ng Viªn: Ph¹m V¨n TuÊn 10
Trang 11* Cấu hình vào ra của S7- 200 CPU 22x
Trang 122.3.2 Cấu trúc bộ nhớ của S7- 200
a Bộ nhớ của S7- 200 được chia thành 4 vùng, với một tụ điện 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 điện.
4 vùng nhớ đó gồm: chương trình, tham số, dữ liệu và đối tượng
Vùng chương trình: Lưu giữ các lệnh chương trình, vùng này thuộc kiểu Non- volatile, đọc/ ghi Vùng nhớ tham số: Lưu giữ các tham số như: từ khóa, địa chỉ trạm , vùng này thuộc kiểu Non- volatile, đọc/ ghi.
Vùng dữ liệu: Cất các dữ liệu của chương trình, bao gồm các kết quả phép tính, hằng số được định nghĩa trong chương trình, , vùng này thuộc kiểu Non- volatile, đọc/ ghi.
Vùng đối tượng: Timer, counter, bộ đếm tốc độ cao và các cổng vào ra tương tự, được đặt trong vùng nhớ này Vùng này không thuộc kiểu Non- valatile nhưng đọc/ ghi được./.
Trang 13Hai vùng nhớ cuối có ý nghĩa quan trọng trong việc thực hiện một chương trình, do vậy sẽ đượctrình bày kỹ hơn.
*Vùng dữ liệu : là miền nhớ động, có thể truy cập theo từng bit, byte, 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, 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 những miền nhớ nhỏ với công dụng khác nhau
V variable memory (vùng nhớ biến – vùng nhớ thay đổi)
I Input image register (vùng nhớ bộ đệm ảo đầu vào)
Q Output image register (vùng nhớ bộ đệm ảo đầu ra)
M Internal memory bits (vùng nhớ nội)
SM Special memory bits (vùng nhớ đặc biệt)
Địa chỉ các vùng nhớ dữ liệu của CPU 212
- Đầu vào (Input): I0.0 I0.7
- Đầu ra (output): Q0.0 Q0.5
- Bộ đệm ảo đầu vào: I0.0 I7.7 (64 DI)
- Bộ đệm ảo đầu ra: Q0.0 Q7.7 (64DQ)
- Vùng nhớ V- variable memory (đọc/ ghi): VB0 VB1023
- Vùng nhớ nội M- Internal memory bits(đọc/ ghi), thường dùng làm biến nhớ trung gian,
16 bytes, được truy cập theo bit:
M0.0 M15.7
- Vùng nhớ đặc biệt SM- Special memory bits, truy cập theo bit:
Chỉ đọc: SM0.0 SM29.7
Đọc / ghi: SM30.0 SM45.7
Địa chỉ các vùng nhớ dữ liệu của CPU 214
- 14 đầu vào số (Input): I0.0 I1.7
- 10 đầu ra số (output): Q0.0 Q1.1
- Bộ đệm ảo đầu vào: I0.0 I7.7 (64 DI)
- Bộ đệm ảo đầu ra: Q0.0 Q7.7 (64DQ)
- Vùng nhớ V- variable memory (đọc/ ghi): VB0 VB4096
- Vùng nhớ nội M- Internal memory bits(đọc/ ghi), thường dùng làm biến nhớ trung gian,
32 bytes, được truy cập theo bit;
Trang 14timer, counter, các bộ đếm tốc độ cao, bộ đệm vào/ ra tương tự và các thanh ghi Accumulator (AC- thanh ghi tổng 32 bits).
Địa chỉ các vùng nhớ dữ liệu của CPU 212
- Bộ đệm cổng vào tương tự, chỉ đọc: AIWx (x= 0 30)
- Bộ đệm cổng ra tương tự, chỉ ghi: AQWx (x= 0 30)
- Bộ đệm cổng vào tương tự, chỉ đọc: AIWx (x= 0 30)
- Bộ đệm cổng ra tương tự, chỉ ghi: AQWx (x= 0 30)
Trong đó x là số chẵn, x= 0, 2, 4, , 30
- Thanh ghi tổng Accumulator (đọc/ ghi) AC;AC0 AC3, trong đó AC0 không có khả năng làm con trỏ
- Bộ đệm tốc độ cao (đọc/ ghi): HSC0 (HSC1 và HSC2 chỉ có trong CPU 214)
Trang 16Gi¶ng Viªn: Ph¹m V¨n TuÊn 16
Trang 17Gi¶ng Viªn: Ph¹m V¨n TuÊn 17
Trang 18b Cách truy cập dữ liệu
+ Cách truy cập dữ liệu trực tiếp
* Truy cập theo bit: I0.2; Q0.5;
* Truy cập theo Byte: VB100
* Truy cập theo word (từ đơn): VW100
1 W= 2 byte= 16 bít
1 D= 4 byte = 32 bít
* Truy cập theo Double word: VD100
+ Cách truy cập gián tiếp thông qua con trỏ
* Con trỏ (Pointer): Là một ô nhớ có kích thước 1 từ kép (32 bít) chứa địa chỉ của một ô nhớ
khác Khi ta truy cập con trỏ có nghĩa là ta đang đọc nội dung của ô nhớ mong muốn
+ Có 3 vùng nhớ trong S7- 200 cho phép dùng con trỏ: VD; LD; AC1; AC2; AC3 (AC0 không dùng làm con trỏ)
+ S7- 200 cho phép dùng con trỏ để truy cập các địa chỉ nhớ sau: I; Q; V; M; S; T (T_Word); C (C_Word)
+ S7- 200 không cho phép dùng con trỏ để truy cập địa chỉ nhớ sau: AI; AQ;
SM; HSC; L và địa chỉ dưới dạng bit
VB100
LSBMSB
Trang 192.3.3 Mở rộng cổng vào/ ra
CPU 212 có thể mở rộng tối đa 2 module EM 221, EM 222
CPU 214 có thể mở rộng tối đa 7 module Các module mở rộng tương tự và số đều có trong S7- 200
CPU 216 có thể mở rộng tối đa 7 module
Trang 20CPU 221 không ghép nối được module mở rộng.
CPU 222 ghép nối được tối đa 2 module mở rộng
CPU 224 ghép nối được tối đa 7 module mở rộng
CPU 226 ghép nối được tối đa 7 module mở rộng
Trang 21* Có các loại module mở rộng sau:
Trang 222.3.4 Bảng lệnh của CPU S7- 200
a, CPU 21x có những đặc điểm sau:
Trang 23Gi¶ng Viªn: Ph¹m V¨n TuÊn 23
Trang 24Gi¶ng Viªn: Ph¹m V¨n TuÊn 24
Trang 25Gi¶ng Viªn: Ph¹m V¨n TuÊn 25
Trang 26* CPU 22x có những đặc điểm sau:
Trang 27Gi¶ng Viªn: Ph¹m V¨n TuÊn 27
Trang 28Gi¶ng Viªn: Ph¹m V¨n TuÊn 28
Trang 29Gi¶ng Viªn: Ph¹m V¨n TuÊn 29
Trang 30Gi¶ng Viªn: Ph¹m V¨n TuÊn 30
Trang 31Gi¶ng Viªn: Ph¹m V¨n TuÊn 31
Trang 32CHƯƠNG III LẬP TRÌNH TRONG S7- 200
3.1 Phương pháp lập trình
Trong S7- 200 cho phép lựa chọn 3 ngôn ngữ lập trình:
+ Ngôn ngữ STL (Statement List)- liệt kê lệnh
+ Ngôn ngữ Ladder (Ladder Logic)- Ngôn ngữ bậc thang
+ Ngôn ngữ FBD (Function Block Data) – Lập trình theo khối chức năng
3 ngôn ngữ này về hình thức có thể chuyển đổi lẫn nhau Mạnh nhất là ngôn ngữ STL Chuyên viên ngành điện hay lập trình theo kiểu Ladder hơn
* Nêu một ví dụ nhỏ cho sinh viên (3 ngôn ngữ lập trình có thể chuyển đổi cho nhau)
* vòng quét của PLC S7- 200 (Scan PLC)- Nguyên lý làm việc của PLC: giống nguyên lý làm
việc chung của PLC
* Cấu trúc của một chương trình PLC S7- 200
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 chính(END)
+ 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 END
+ 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ươngtrình xử lý ngắt phải viết sau lệnh kết thúc chương trình chính, đó là lệnh END
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 ngay 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
Được một chương trình hoàn chỉnh
Nội dung của chương trình con viết sau chương trình chính
SBR0- lam thu //Chương trình con thứ nhất
thực hiện khi được c.t chính gọi
RET SBR n
RET
INT 0
Trang 33
RETI
INT n
RETI
3.2 Các lệnh đơn bit trong S7- 200
Mặc dù S7- 200 có một khối lượng lệnh tương đối lớn thể hiện các thuật toán của đại số Boolean song chỉ có một vài các kiểu lệnh khác nhau Sau đây từng lệnh của S7- 200 được mô
tả chi tiết về cách sử dụng, chức năng và tác động của chúng vào nội dung ngăn xếp, trong đó giá trị của ngăn xếp trước khi thực hiện lệnh được ký hiệu từ Iv0 đến Iv8
3.2.1 Ngăn xếp (Stack)
* Lựa chọn ngôn ngữ lập trình
Trong S7- 200 có thể chọn một trong ba ngôn ngữ lập trình sau:
* Khái niệm ngăn xếp: Ngăn xếp trong S7- 200 là một thanh ghi 9 bits, nguyên tắc hoạt động
của ngăn xếp là FILO (First Input, Last Out)
Đỉnh ngăn xếp
Ngăn xếp
Iv0Iv1Iv2Iv3Iv4Iv5Iv6Iv7Iv8