Các khối chức năng của PLC- S7-300 Tuỳ theo quá trình tự động hoá đòi hỏi số lượng đầu vào và đầu ra ta phảilắp thêm bao nhiêu module mở rộng cũng như loại module cho phù hợp.. * Địa chỉ
Giới thiệu về PLC S7-300
1.1.1 Cấu tạo của họ PLC- S7-300
PLC Step 7-300 là sản phẩm thuộc dòng Simatic của Siemens, nổi bật với thiết kế đa khối Cấu trúc cơ bản của PLC này bao gồm một đơn vị xử lý chính, cho phép kết nối thêm các module mở rộng tiêu chuẩn ở phía bên phải, nâng cao khả năng và tính linh hoạt trong ứng dụng.
Hình 1.1 – Các khối modul của PLC S7-300
+ Đèn SF: báo lỗi CPU.
+ Đèn BAF: Báo nguồn ắc qui.
+ Đèn RUN: Báo chế độ PLC đang làm việc.
+ Đèn STOP: Báo PLC đang ở chế độ dừng.
(*) Công tắc chuyển đổi chế độ
+ RUN-P: Chế độ vừa chạy vừa sửa chương trình.
Để xoá chương trình, giữ nút bấm ở vị trí MRES cho đến khi đèn STOP bắt đầu nhấp nháy Khi đèn không còn nhấp nháy, bạn có thể nhả tay ra Tiến hành làm lại một lần nữa mà không cần chú ý đến đèn STOP; nếu đèn vàng nháy nhiều lần, quá trình đã hoàn tất Nếu không, bạn cần thực hiện lại từ đầu.
Hình 1.2 – Các chức năng phần cứng của PLC S7-300
1.1.1 Các khối chức năng của PLC- S7-300
Tùy thuộc vào yêu cầu của quá trình tự động hóa, số lượng đầu vào và đầu ra sẽ quyết định số lượng và loại module mở rộng cần lắp đặt Hệ thống có khả năng lắp tối đa 32 module vào ra trên 4 panen, trong đó mỗi panen có thể chứa 8 module bên phải, ngoài module nguồn, CPU và module ghép nối Thông thường, Step 7-300 sử dụng các module phù hợp để đáp ứng nhu cầu này.
- Ra số: 8 kênh, 16 kênh, 32 kênh.
- Vào, ra số: 8 kênh vào 8 kênh ra,
- Vào tương tự: 2 kênh, 4 kênh, 8 kênh.
- Ra tương tự: 2 kênh, 4 kênh, 8 kênh.
- Vào, ra tương tự: 2 kênh vào 2 kênh ra,
- Truyền thông CP 340, CP340-1, CP341.
+ Module điều khiển (Control Module):
- Module điều khiển rô bot.
- Module điều khiển động cơ bước.
- Module điều khiển động cơ Servo.
1.1.2 Địa chỉ và gán địa chỉ
Trong PLC, các bộ phận được gán địa chỉ đơn như bộ thời gian (T) và bộ đếm (C) chỉ cần một chữ cái kèm theo một số để xác định, ví dụ như T1, C31.
Các địa chỉ đầu vào và đầu ra, cùng với các module chức năng, đều có cách gán địa chỉ tương tự Địa chỉ này phụ thuộc vào vị trí lắp đặt của module trên Panen.
Chỗ gá module trên panen gọi là khe (Slot), các khe đều có đánh số, khe số 1 là khe đầu tiên của và cứ thế tiếp tục
(*) Địa chỉ vào ra trên module số:
Mỗi module có các đầu vào và đầu ra được xác định bởi các kênh, với địa chỉ bit từ 0 đến 7 Địa chỉ của từng đầu vào và đầu ra được tạo thành từ sự kết hợp giữa địa chỉ byte và địa chỉ kênh, trong đó địa chỉ byte đứng trước và địa chỉ kênh đứng sau, được phân cách bằng dấu chấm.
Khi module gá trên khe thì địa chỉ được tính từ byte đầu của khe, các đầu vào và ra của một khe có cùng địa chỉ hình 1.2
Hình 1.3 – Địa chỉ khe và kênh trên module số
Ví dụ: Module 2 đầu vào, 2 đầu ra số gá vào khe số 5 rãnh 0 có địa chỉ là I4.0,
I4.1 và Q4.0, Q4.1 Module số có thể được gá trên bất kỳ khe nào trên panen của PLC
(*) Địa chỉ vào ra trên module tương tự
Trong PLC S7-300, mỗi kênh được sử dụng 16 bit (một word), với 8 kênh trong một khe Địa chỉ đầu tiên của các kênh là PIW256 hoặc PQW256 (byte 256 và 257) và kéo dài đến PIW766 hoặc PQW766, như được minh họa trong hình 2.45 Các module tương tự có thể được lắp đặt dễ dàng.
Ví dụ: Một module tương tự 2 vào, 1 ra gá vào khe số 6 rãnh 0 có địa chỉ là PIW288, PIW290, PQW288.
Hình 1.4 – Địa chỉ khe và kênh trên module tương tự
(*) Các vùng nhớ của PLC S7-300
TT Tham số Diễn giải Vùng tham số
8 QD Đầu ra từ kép 0 65532
10 MB Nhớ nội dạng byte 0 255
11 MW Nhớ nội dạng từ 0 254
12 MD Nhớ nội dạng từ kép 0 252
TT Tham số Diễn giải Vùng tham số
16 PQB Vùng đệm đầu ra dạng byte 0 65535
17 PQW Vùng đệm đầu ra dạng từ 0 65534
18 PQD Vùng đệm đầu ra dạng từ kộp 0 65532
21 DBX Khối dữ liệu kiểu BD dạng bit 0.0 65535.7
22 DBB Khối dữ liệu kiểu BD dạng byte 0 65535
23 DBW Khối dữ liệu kiểu BD dạng từ 0 65534
24 DBD Khối dữ liệu kiểu BD dạng từ kộp 0 65532
25 DIX Khối dữ liệu kiểu BI dạng bit 0.0 65535.7
26 DIB Khối dữ liệu kiểu BI dạng byte 0 65535
27 DIW Khối dữ liệu kiểu BI dạng từ 0 65534
28 DID Khối dữ liệu kiểu BI dạng từ kộp 0 65532
29 L Vùng dữ liệu tạm thời dạng bit 0.0 65535.7
30 LB Vùng dữ liệu tạm thời dạng byte 0 65535
31 LW Vùng dữ liệu tạm thời dạng từ 0 65534
32 LD Vùng dữ liệu tạm thời dạng từ kộp 0 65532
Các lệnh lập trình trong Step 7
1.1.1 Nhóm lệnh logic tiếp điểm:
Tiếp điểm thường hở: KQ=KT nếu I0.0=1 KQ=0 nếu I0.0=0
Tiếp điểm thường đóng: KQ=KT nếu I0.0=0 KQ=0 nếu I0.0=1
Lệnh Not: KQ thu được bằng đảo giá trị của KT, Nếu KT=1 thì KQ=0, Nếu KT=0 thì KQ=1.
Ngõ ra ( cuộn coil) : Gán KQ cho ngõ ra Q0.0
Xác định kết quả: Gán KQ tại vị trí mà lệnh được chèn
Vd: M0.0 lưu kết quả sau 2 phép tính qua I0.0 và I0.1
Lệnh SET Bit: Gán giá trị 1 cho M0.0
Lệnh RESET Bit: Gán giá trị 0 cho M0.0
Vi phân cạnh lên: M0.0 lưu giá trị KQ ở vòng quét trước
Khi I0.0 chuyển trạng thái từ 0 sang 1 và M0.0 =0 thì Q0.0 =1
Vi phân cạnh xuống: M0.0 lưu giá trị KQ ở vòng quét trước
Khi I0.0 chuyển trạng thái từ 1 xuống 0 và M0.0=1 thì Q0.0=1
Khi I0.0=1, Timer sẽ bắt đầu chạy và sẽ dừng lại khi I0.0=0 hoặc khi đã chạy đủ thời gian 2 giây Ngoài ra, nếu có tín hiệu I0.1, Timer cũng sẽ dừng Timer chỉ có thể khởi động lại khi nhận được tín hiệu mới từ I0.0, tức là khi I0.0 chuyển từ 0 sang 1.
MW100 lưu giá trị đếm của Timer theo dạng Integer
MW102 lưu giá trị của Timer theo dạng BCD
Chức năng của Timer này là tạo xung có thời gian được đặt sẵn.
Timer kích có nhớ, Khi có tín hiệu cạnh lên ở I0.0 Timer T5 chạy, nếu đủ thời gian đặt Timer dừng.
Trong quá trình chạy nếu có tín hiệu mới từ chân I0.0 thì thời gian Timer lại được tính lại từ đầu.
Trong quá trình chạy nếu có tín hiệu I0.1 thì Timer dừng Q0.0 =1 khi Timer đang chạy.
Các ô nhớ MW100 và MW102 lưu giá trị hiện thời của Timer theo dạng Integer và dạng BCD
Khi I0.0=1, Timer bắt đầu hoạt động và sẽ dừng lại sau khi đủ thời gian, lúc này ngõ Q0.0 sẽ được kích hoạt lên 1 nếu I0.0 vẫn giữ trạng thái 1 Khi tín hiệu I0.1 xuất hiện, toàn bộ hệ thống sẽ được Reset về 0 Các ô nhớ MW100 và MW102 sẽ lưu trữ giá trị hiện tại của Timer dưới dạng Integer và BCD.
Timer kích có nhớ, khi có xung cạnh lên ở I0.0 Timer bắt đầu chạy, ngõ ra Q0.0=1 khi Timer ngưng và chỉ tắt khi có tín hiệu Reset (tín hiệu I0.1)
Trong quá trình hoạt động của Timer, nếu tín hiệu từ chân I0.0 được chuyển đổi thêm một lần nữa, Timer sẽ ghi nhớ và tiếp tục chạy sau khi hoàn thành thời gian của lần trước.
Số Timer trong S7_300 phụ thuộc vào loại CPU.
CPU 313 trở lên: có 256 Timer.
Có 2 cách cài đặt giá trị cho Timer:
Để cài đặt giá trị cho Timer, bạn cần thêm ký tự S5T# trước giá trị mong muốn Các ký tự tiếp theo sẽ là thông số thời gian mà bạn muốn thiết lập cho Timer.
- Cài đặt thông số thời gian thông qua biến nhớ:
Giá trị cài đặt cho timer thông qua một biến kiểu WORD 16 bits.
-Lệnh đếm lên xuống S_CUD:
Ngõ vào I0.2=1 : đưa giá trị đếm vào PV
Khi I0.0 chuyển trạng thái từ 0 lên 1, C0 đếm tăng lên 1
Khi I0.1 chuyển trạng thái từ 0 lên 1, C0 đếm giảm xuống 1
Khi cả I0.0 và I0.1 đều chuyển trạng thái thì C0 không thay đổi
Khi I0.3=1 thì C0 bị Reset về 0
Giá trị bộ đếm hiện thời nằm trong 2 ô nhớ MW100 và MW102 dưới dạng Integer và dạng BCD, giá trị này có tầm từ 0 – 999.
Ngõ ra Q0.0=1 khi giá trị đếm lớn hơn 0
Ngõ vào I0.1=1: đưa giá trị đếm vào PV
Khi I0.0 chuyển trạng thái từ 0 sang 1, C0 đếm tăng lên 1
Ngõ ra Q0.0=1 khi giá trị đếm lớn hơn 0
Giá trị bộ đếm hiện thời nằm trong 2 ô nhớ MW100 và MW102 dưới dạng Integer và dạng BCD, giá trị này có tầm từ 0 – 999.
Ngõ ra Q0.0=1 khi giá trị đếm lớn hơn 0
Ngõ vào I0.1=1 : đưa giá trị đếm vào PV
Khi I0.0 chuyển trạng thái từ 1 sang 0, C0 giảm đi 1
Ngõ ra Q0.0=1 khi giá trị đếm lớn hơn 0
Giá trị bộ đếm hiện thời nằm trong 2 ô nhớ MW100 và MW102 dưới dạng Integer và dạng BCD, giá trị này có tầm từ 0 – 999.
Ngõ ra Q0.0=1 khi giá trị đếm lớn hơn 0
-Lệnh so sánh số nguyên:
Lệnh EQ_I(Equal Integer): so sánh MW100 và MW102, nếu hai số nguyên này bằng nhau thì KT=KQ
- Lệnh NE_I ( Not Equal Integer): So sánh MW100 và MW102, nếu 2 số này khác nhau thì KQ=KT.
-Lệnh GT_I ( Greater than Integer): So sánh 2 số MW100 và MW102, nếu MW100 lớn hơn MW102 thì KQ=KT.
-Lệnh GE_I ( Greater than or equal Integer ): So sánh 2 số MW100 và MW102, nếu MW100 lớn hơn hoặc bằng MW102 thì KQ=KT.
-Lệnh LE_I ( Less than or equal Integer ): So sánh 2 số MW100 và
MW102, nếu MW100 bé hơn hoặc bằng MW102 thì KQ=KT.
Lệnh so sánh hai số Double Interger và hai số thực Real tương tự như trên
Phép toán trên số nguyên 16 bit:
Lệnh ADD_I thực hiện phép cộng hai số nguyên 16 Bit và lưu kết quả vào một số nguyên 16 Bit Nếu kết quả vượt quá kích thước 16 Bit, cờ OV sẽ được bật lên 1, trong khi cờ OS sẽ lưu trữ Bit bị tràn.
Lệnh SUB_I thực hiện phép trừ hai số nguyên 16 Bit và lưu kết quả vào một số nguyên 16 Bit Nếu kết quả vượt quá 16 Bit, cờ OV sẽ được bật lên 1, trong khi cờ OS sẽ lưu lại Bit bị tràn.
Lệnh MUL_I thực hiện phép nhân hai số nguyên 16 Bit và lưu kết quả vào một số nguyên 16 Bit Nếu kết quả vượt quá 16 Bit, cờ OV sẽ được bật lên 1, trong khi cờ OS sẽ lưu lại bit bị tràn.
Lệnh DIV_I thực hiện phép chia hai số nguyên 16 Bit và lưu kết quả vào một số nguyên 16 Bit Nếu kết quả vượt quá 16 Bit, cờ OV sẽ được bật lên 1, trong khi cờ OS sẽ ghi nhận bit bị tràn.
Phép Toán trên số nguyên 32 Bit và số thực 32 Bit tương tự.
1.1.6 Lệnh di chuyển và dịch bit
Lệnh MOV là lệnh dùng để chuyển giá trị từ một ô nhớ này sang ô nhớ khác, có thể áp dụng cho nhiều kiểu dữ liệu khác nhau như Int, Dint, Real, và Byte Ô nhớ được sử dụng trong lệnh này có kích thước 16 Bit và được định dạng theo kiểu Word, trong đó N là số Bit dịch.
-Lệnh SHL_W: Lệnh thực hiện việc dịch trái ô nhớ16Bit, kết quả cất vào ô nhớ 16 Bit, N là số Bit dịch Ô nhớ này được định dạng theo kiểu Word.
-Các lệnh dịch phải, dịch trái ô nhớ 32 Bit tương tự.
Giới thiệu về WINCC
Thông thường một hệ thống SCADA (Supervisory Control And Data
Aquisition yêu cầu sử dụng phần mềm chuyên dụng nhằm phát triển giao diện điều khiển HMI (Giao diện Người-Máy) và hỗ trợ việc xử lý cũng như lưu trữ dữ liệu hiệu quả.
Phần mềmWinCC của Siemens là một phần mềm chuyên dụng cho mục đích này.
WinCC là một phần mềm SCADA của Siemens, được sử dụng trong lĩnh vực dân dụng và công nghiệp để giám sát, điều khiển và thu thập dữ liệu trong quá trình sản xuất Tên gọi WinCC viết tắt từ Window Control Center, cung cấp công cụ hỗ trợ lập trình viên thiết kế giao diện Người và Máy (HMI) trong hệ thống SCADA Chương trình này có chức năng chính là thu thập dữ liệu, giám sát và điều khiển quy trình sản xuất, với các thành phần dễ sử dụng, giúp người dùng tích hợp ứng dụng mới hoặc có sẵn một cách thuận lợi.
Với phần mềm WinCC, người dùng có khả năng trao đổi dữ liệu trực tiếp với nhiều loại PLC từ các nhà sản xuất khác nhau như Mitsubishi, Allen Bradley, và Siemens Việc kết nối được thực hiện thông qua cổng COM, sử dụng chuẩn RS-232 của máy tính và chuẩn RS-485 của PLC.
Designer đồ họa: Thực hiện các chức năng mô phỏng và tương tác dễ dàng thông qua các đối tượng đồ họa của WinCC, Windows, OLE, I/O,… với nhiều thuộc tính động.
Alarm Logging là quá trình hiển thị thông báo và báo cáo trong khi hệ thống hoạt động Nó đảm nhận việc nhận, lưu trữ và hồi đáp các thông báo, đồng thời chuẩn bị và hiển thị chúng Hơn nữa, Alarm Logging còn hỗ trợ trong việc xác định nguyên nhân gây ra lỗi.
Tag Logging là quá trình thu thập, lưu trữ và nén các giá trị đo ở nhiều định dạng khác nhau Nó cho phép lấy dữ liệu từ các quá trình thực thi, chuẩn bị để hiển thị và lưu trữ thông tin Dữ liệu thu thập được cung cấp các tiêu chuẩn công nghệ và kỹ thuật quan trọng, liên quan đến trạng thái hoạt động của toàn hệ thống.
Report Designer: có nhiệm vụ tạo các thông báo, báo cáo và các kết quả này được lưu dưới dạng các trang nhật ký sự kiện.
WinCC cung cấp khả năng tạo giao diện Người – Máy (HMI) giúp người vận hành tương tác hiệu quả với hệ thống máy và thiết bị điều khiển như PLC và CNC Giao diện này sử dụng hình ảnh, sơ đồ và văn bản trực quan để theo dõi quá trình làm việc, điều chỉnh tham số, và hiển thị giá trị hiện tại Ngoài ra, HMI còn cho phép giám sát quy trình sản xuất và phát cảnh báo khi có sự cố xảy ra WinCC là công cụ thiết kế HMI, giúp giám sát và thu thập dữ liệu I/O chính xác, đồng thời hỗ trợ xử lý và tổ chức dữ liệu linh hoạt qua lập trình ngôn ngữ C.
Sự kết hợp giữa chương trình WinCC và các công cụ phát triển như Visual C++ hoặc Visual Basic tạo ra hệ thống đặc thù, tinh vi và phù hợp với cấu hình cụ thể.
WinCC V7.0 SP3 hỗ trợ các OS sau:
Windows XP embedded with SQL Server Express Edition
Windows 7 (Professional / Enterprise / Ultimate) 32-Bit
Các thành phần của winCC
Hình 2.1 - giao diện phần mềm wincc.
Tag Management is the area responsible for overseeing all channels, logical relationships, process tags, internal tags within a PLC, and organizing various tag groups.
- Loại dữ liệu (Data Types):Chứa các loại dữ liệu được gán cho các Tag và các kênh khác nhau.
Các trình soạn thảo trong khu vực này được sử dụng để biên soạn và quản lý toàn bộ dự án Chúng cung cấp các chức năng đa dạng, như được mô tả trong bảng dưới đây.
Hình 2.2 - Bộ soạn thảo trong wincc.
Tags WinCC là yếu tố quan trọng trong việc truy cập các giá trị quá trình trong một dự án Mỗi tag được gán một tên và kiểu dữ liệu riêng biệt, đồng thời thiết lập kết nối logic với WinCC Kết nối này quyết định kênh nào sẽ truyền tải giá trị quá trình đến các biến.
Tất cả các biến trong dự án được lưu trữ trong cơ sở dữ liệu toàn dự án Khi chế độ WinCC khởi động, mọi biến sẽ được nạp và cấu trúc Run-time sẽ được thiết lập tương ứng Mỗi biến được quản lý dữ liệu theo một kiểu dữ liệu chuẩn.
WinCC làm việc với 3 loại Tag:
Là Tag không được kết nối với quá trình dùng để quản lý dữ liệu bên trong 1 project.
Tag quá trình (Process Tag) là loại Tag được sử dụng để truyền tải dữ liệu giữa WinCC và hệ thống tự động Các thuộc tính của Tag này sẽ thay đổi tùy thuộc vào driver mà người dùng lựa chọn.
- Tag hệ thống (System Tag): Bắt đầu với ký tự @, dùng để quản lý Project, không thể xóa hay chỉnh sửa System Tag.
Ví dụ : @RM_MASTER, @RM_MASTER_NAME…
WinCC quản lý các tag này theo 2 kiểu:
Kiểu cấu trúc (Structure Type) là nhóm biến mà trong đó tất cả các biến có mối liên hệ logic với nhau Để cấu hình biến, mỗi biến phải được gán một trong các kiểu dữ liệu xác định.
Khi tạo biến mới trong WinCC, việc gán kiểu dữ liệu cho biến được thực hiện Kiểu dữ liệu của biến không phụ thuộc vào loại biến, cho dù là biến nội hay biến quá trình Đặc biệt, trong WinCC, các kiểu dữ liệu có thể được chuyển đổi sang kiểu khác thông qua việc điều chỉnh định dạng.
Unsigned 8 – Bit Value: kiểu 8 bit không dấu.
Signed 16 – Bit Value: kiểu 16 bit có dấu.
Unsigned 16 – Bit Value: kiểu 16 bit không dấu.
Signed 32 – Bit Value: kiểu 32 bit có dấu.
Unsigned 32 – Bit Value: kiểu 32 bit không dấu.
Floating Point Number 32 bit IEEE 754: kiểu số thực 32 bit theo tiêu chuẩn IEEE 754.
Floating Point Number 64 bit IEEE 754: kiểu số thực 64 bit theo tiêu chuẩn IEEE 754.
Text Tag 8 bit character set: kiểu ký tự 8 bit.
Text Tag 16 bit character set: kiểu ký tự 16 bit.
Raw Data type: kiểu dữ liệu thô.
Các thành phần chính của cửa sổ dự án
XÂY DỰNG HỆ THỐNG GIÁM SÁT VÀ ĐIỀU KHIỂN BỒN NƯỚC 3.1 Giới thiệu về yêu cầu công nghệ và thiết kế WINCC
Hình 3.1 – Hệ thống điều khiển giám sát bồn nước
3.1.1 Giao diện điều khiển ở chế độ tự động Ở chế độ tự động, người điều khiển cần nhập vào mức nước cao và mức nước thấp cho bồn nước, trên thực tế nếu mức nước đạt mức thấp thì bơm băt đầu bật và bơm nước vào bồn, còn nếu mức nước trong bồn đạt mức nước cao thì hệ thống tắt bơm và đóng van nước cấp vào, hệ thống cứ lặp lại trạng thái tự động cho đến khi chuyển sang chế độ bằng tay Van xả có thể bật tắt tùy người sử dụng.
Giới thiệu về yêu cầu công nghệ và thiết kế WINCC
Hình 3.1 – Hệ thống điều khiển giám sát bồn nước
3.1.1 Giao diện điều khiển ở chế độ tự động Ở chế độ tự động, người điều khiển cần nhập vào mức nước cao và mức nước thấp cho bồn nước, trên thực tế nếu mức nước đạt mức thấp thì bơm băt đầu bật và bơm nước vào bồn, còn nếu mức nước trong bồn đạt mức nước cao thì hệ thống tắt bơm và đóng van nước cấp vào, hệ thống cứ lặp lại trạng thái tự động cho đến khi chuyển sang chế độ bằng tay Van xả có thể bật tắt tùy người sử dụng. gồm van nước vào, van xả và động cơ bơm nước.
Bước 1: Vào View -> Toolbar -> Lybrary
Bước 3: Tìm đến Tank và kéo ra màn hình
3.1.3 Tạo thanh bar hiển thị mức nước
Bước 1: Tại Smart object tìm đến Bar và kéo ra màn hình
Bước 3: Đặt giá trị Max – min
3.1.4 Thiết lập thuộc tính cho động cơ
Bước 1: Ở library tìm đến PUMP và kéo ra màn hình
Bước 2: Thiết lập thuộc tính
3.1.5 Thiết lập thuộc tính cho vanvà đường ống
Bước 1: Ở library tìm đến Valve và kéo ra màn hình
3.1.6 Thiết lập thuộc tính cho nút ấn
Bước 1: Click chuột phải vào nút ấn và chọn C-action
3.1.7 Thiết lập thuộc tính cho giọt nước
Bước 1: Vào library và chọn Nature (rồi lấy giọt nước ra)
Bước 2: Chọn hiển thị cho giọt nước
(Ở mục Display chọn tag là van xả)