ĐỒ ÁN TỐT NGHIỆP ĐIỆN TỬ ỨNG DỤNG HỆ SCADA VÀO HỆ THỐNG PHA TRỘN HÓA CHẤT
NỘI DUNG ĐỒ ÁN
ĐỒ ÁN TỐT NGHIỆP ĐIỆN TỬ Thiết Kế Hệ SCADA Dùng WinCC, thuyết minh ĐỒ ÁN TỐT NGHIỆP ĐIỆN TỬ SCADA, bộ điều khiển lập trình SCADA, Ngôn ngữ lập trình SCADA, Thực thi chương trình , LẬP TRÌNH
MỤC LỤC
Lời mở đầu.
PHẦN 1: PLCS7-300........................................................................... 1
Chương 1: Giới thiệu.............................................................................................. 2
-
Tổng quan về bộ điều khiển lập trình được...................................................... 2
- Bộ điều khiển lập trình được.............................................................................. 2
- Điều khiển nối cứng và điều khiển lập trình được ......................................... 2
-
Quét chương trình tuần hoàn và ảnh các quá trình........................................ 3
- Quét chương trình tuần hoàn........................................................................ 3
- Anh các quá trình .......................................................................................... 3
-
Cấu trúc và phân chia bộ nhớ............................................................................. 4
- Các module của PLC S7-300.............................................................................. 4
- Module CPU................................................................................................... 4
-
Module mở rộng............................................................................................. 5
-
Kiểu dữ liệu và phân chia bộ nhớ ..................................................................... 6
- Kiểu dữ liệu.................................................................................................... 6
- Phân chia bộ nhớ............................................................................................ 6
-
Tầm địa chỉ tối đa cho các vùng nhớ.......................................................... 7
-
Cấu trúc chương trình ......................................................................................... 8
- Lập trình tuyến tính ...................................................................................... 8
- Lập trình có cấu trúc .................................................................................... 8
-
Cấu trúc chương trình ......................................................................................... 8
-
Kiểu dữ liệu và phân chia bộ nhớ ..................................................................... 6
Chương 2: Ngôn ngữ lập trình S7-300 .......................................................... 11
-
Sử dụng các ô nhớ và cấu trúc thanh ghi trạng thái ...................................... 11
-
Địa chỉ ô nhớ........................................................................................................ 11
- Phần chữ ......................................................................................................... 11
- Phần số ........................................................................................................... 12
- Cấu trúc thanh ghi trạng thái ............................................................................. 12
-
Địa chỉ ô nhớ........................................................................................................ 11
-
Các lệnh và phép toán .......................................................................................... 16
- Lệnh nạp chuyển ................................................................................................. 16
- Các lệnh tác động vào RLO và ô nhớ ............................................................. 16
- Các lệnh tác động vào hai thanh ghi ACCU1 và ACCU2 ............................. 17
- Nhóm lệnh đảo vị trí bytes........................................................................... 17
- Nhóm lệnh tăng giảm .................................................................................... 17
- Nhóm lệnh dịch chuyển................................................................................ 18
- Nhóm lệnh chuyển đổi số BCD và số nguyên........................................... 20
- Nhóm lệnh chuyển đổi số dấu chấm động sang số nguyên .................... 20
- Nhóm lệnh so sánh ...................................................................................... 21
- Nhóm lệnh số học ........................................................................................ 22
- Các lệnh điều khiển logic và điều khiển chương trình .................................. 23
- Các lệnh điều khiển logic ............................................................................ 23
- Các lệnh điều khiển chương trình .............................................................. 25
- Bộ định thời Timer .............................................................................................. 29
- Chức năng Timer ........................................................................................... 29
- Các ví dụ bằng giản đồ cho từng loại Timer ............................................. 30
- Bộ đếm Counter ................................................................................................. 33
- Chức năng Counter ....................................................................................... 33
- Ví dụ minh họa .............................................................................................. 34
Chương 3: Thực thi chương trình...................................................... 35
-
Hoạt động của CPU .............................................................................................. 35
- Các vùng nhớ CPU .............................................................................................. 35
- Cất chương trình vào CPU ................................................................................. 36
-
Định nghĩa các vùng nhớ giữ ............................................................................. 36
- Sử dụng RAM không bốc hơi ...................................................................... 37
- Đặt cấu hình dữ liệu cất trong RAM .......................................................... 38
-
Sử dụng pin backup để giữ dữ liệu ............................................................. 38
-
Hoạt động của CPU ............................................................................................. 39
- Chu kỳ quét ................................................................................................... 39
- Các chế độ hoạt động ................................................................................... 39
- Các chế độ hoạt động khác .......................................................................... 41
-
Hoạt động của CPU ............................................................................................. 39
-
Các khối logic ....................................................................................................... 42
- Các khối tổ chức OB............................................................................................ 42
- Các hàm và các khối hàm .................................................................................. 48
- Các khối hệ thống................................................................................................ 48
- Các khối của các CPU của PLC S7-300 ........................................................... 49
-
Thực thi chương trình trong OB1 ...................................................................... 49
- Hoạt động của OB1........................................................................................ 49
- Dữ liệu cục bộ trong OB1 ............................................................................ 50
- Thông tin Start up ......................................................................................... 50
- Lớp ưu tiên và chương trình ngắt ................................................................ 51
PHẦN 2: LẬP TRÌNH WINCC.......................................... 54
Chương 1: Control Center .................................................................. 55
-
Nội dung của Control Center.............................................................................. 56
-
Chức năng ............................................................................................................ 56
- Nhiệm vụ của quản lý dữ liệu ..................................................................... 56
-
Nhiệm vụ của Control Center ..................................................................... 56
- Cấu trúc ................................................................................................................ 57
- Soạn thảo............................................................................................................... 58
-
Các thành phần của project trong Control Center ......................................... 58
- Máy tính ......................................................................................................... 59
- Quản lý tag ..................................................................................................... 59
- Các kiểu dữ liệu ............................................................................................ 63
- Soạn thảo ........................................................................................................ 65
-
Chức năng ............................................................................................................ 56
Chương 2: Các thành phần soạn thảo ............................................. 66
-
Alarm Logging ...................................................................................................... 66
-
Chức năng............................................................................................................. 66
- Nhiệm vụ của Alarm Logging CS ............................................................... 66
- Nhiệm vụ của Alarm Logging RT................................................................ 66
- Khái quát về Alarm Logging ............................................................................. 66
-
Chức năng............................................................................................................. 66
- Thông báo....................................................................................................... 66
- Thủ tục thông báo.......................................................................................... 67
- Cấu trúc một thông báo ................................................................................ 67
- Tổ chức các thông báo ................................................................................. 68
- Hiển thị các thông báo trong chế độ run timer ......................................... 68
-
Tag Logging ........................................................................................................... 69
- Chức năng............................................................................................................. 69
- Nhiệm vụ của Tag Logging CS..................................................................... 69
- Nhiệm vụ của Tag Logging RT..................................................................... 69
- Thực hiện Tag Logging.................................................................................. 70
- Các kiểu dữ liệu............................................................................................. 70
- Các phương pháp lưu trữ dữ liệu quá trình ............................................... 71
- Cấu trúc của Tag Logging CS ............................................................................ 75
- Timers ............................................................................................................. 75
- Achives ........................................................................................................... 75
- Trends ............................................................................................................. 77
- Tables.............................................................................................................. 77
-
Graphic Designer ................................................................................................. 77
- Chức năng ............................................................................................................ 77
- Cấu trúc................................................................................................................. 77
- Palette đối tượng............................................................................................ 78
- Tab “Property” .............................................................................................. 81
- Tab “Event” ................................................................................................... 81
-
Global Scripts ........................................................................................................ 82
- Giới thiệu ............................................................................................................. 82
- Các hàm dự án ..................................................................................................... 83
- Các hàm chuẩn .................................................................................................... 84
- Các hàm chuẩn có sẵn trong hệ thống........................................................ 84
- Các hàm chuẩn lựa chọn .............................................................................. 86
- Các hàm nội ......................................................................................................... 86
-
Report Designer..................................................................................................... 95
- Giới thiệu.............................................................................................................. 95
- Báo cáo.................................................................................................................. 96
- Báo cáo trong page layout............................................................................ 97
- Báo cáo trong line layout ............................................................................. 98
- Kết nối Report Layouts với các ứng dụng ....................................................... 98
- Chọn dữ liệu để phản hồi tài liệu ............................................................... 98
- Chọn dữ liệu cho cấu hình on-line ............................................................. 102
PHẦN 3: ỨNG DỤNG HỆ SCADA VÀO HỆ THỐNG PHA TRỘN HÓA CHẤT..................... 103
Chương 1: Hệ thống Scada................................................................. 104
I.Giới thiệu hệ Scada ............................................................................................... 104
II.Các đặc tính chính của hệ thống Scada hiện đại............................................. 107
Chương 2: Thực hiện chương trình .................................................... 110
I.Giới thiệu về hệ thống pha trộn.......................................................................... 110
- Giới thiệu tổng quát ............................................................................................ 110
- Hoạt động của hệ thống ..................................................................................... 110
II.Tạo các giao diện kết nối bằng WinCC ........................................................... 114
- Các tags và nhóm tag đã tạo trong chương trình ............................................ 114
- Các giao diện cho chương trình ........................................................................ 116
- Màn hình chính ............................................................................................. 116
- Màn hình “Giới thiệu” ................................................................................. 117
- Màn hình “Thông tin”................................................................................... 118
- Màn hình “Điều khiển” ................................................................................ 119
- Màn hình “Mô hình” .................................................................................... 120
- Màn hình “Xem dữ liệu”............................................................................... 121
- Màn hình “Thu thập” ................................................................................... 122
- Màn hình “Đồ thị”......................................................................................... 123
- Màn hình “Thông báo”................................................................................. 124
III.Lập trình cho hệ thống bằng Simatic S7-300 .................................................. 125
- Đặc tính thiết bị ................................................................................................... 125
- Cấu hình ......................................................................................................... 125
- Cáp kết nối MPI ............................................................................................. 126
- Giới thiệu chương trình ...................................................................................... 127
- Các khối sử dụng trong chương trình ......................................................... 127
- Phần lập trình................................................................................................. 127
Chương 3: Kết quả thực hiện và hướng phát triển đề tài .................. 128
- Kết quả thực hiện ................................................................................................ 128
- Hướng phát triển đề tài........................................................................................ 128
Lịch sử đã trải qua nhiều giai đoạn, và từng chứng kiến các cuộc Cách Mạng Khoa Học Kỹ Thuật. Nó không những giải phóng sức lao động, mà còn giúp việc sản xuất được tiến triển nhanh chóng, số lượng và chất lượng sản phẩm không ngừng tăng lên, phục vụ cho đời sống nhân loại.
Ngày nay, với sự trợ giúp của máy điện toán, con người đã làm được những việc tưởng chừng như không thể ở vài chục năm trước đây.
Hiện nay trong các ngành công nghiệp hiện đại, việc sử dụng máy tính đòi hỏi gần như là tất yếu; chúng giúp cho việc sản xuất hay kiểm tra sản phẩm được dễ dàng, thuận lợi, hạn chế sai số, thất thoát… Người ta có thể không cần phải xuống tận các phân xưởng để theo dõi hay điều chỉnh bằng tay, mà ta hoàn toàn có thể điều khiển và thu thập, quản lý dữ liệu ngay tại phòng Điều Khiển Trung Tâm cho các hệ thống Tự Động-hệ thống này gọi chung là hệ thống SCADA.
Đi theo một nhánh nhỏ của hệ thống SCADA, em thực hiện việc điều khiển cho bình trộn hoá chất dùng ngôn ngữ lập trình S7-300 và WinCC để thiết lập giao diện kết nối điều khiển đối tượng.
Chương 1 : Giới Thiệu
I.TỔNG QUAN VỀ BỘ ĐIỀU KHIỂN LẬP TRÌNH ĐƯỢC.
- Bộ điều khiển lập trình được.
Bộ điều khiển lập trình được (Programmable Logic Controller), gọi tắt là PLC, là bộ điều khiển cho phép thực hiện linh hoạt các thuật toán điều khiển số thông qua ngôn ngữ lập trình để trao đổi thông tin với các PLC khác hoặc với máy tính. Toàn bộ chương trình điều khiển được lưu trong bộ nhớ của PLC dưới dạng các khối chương trình (khối OB, FB hoặc FC) và được thực hiện lặp theo chu kỳ của vòng quét (scan).
PLC chủ yếu bao gồm module CPU, các bộ xử lý và bộ nhớ chương trình, các module xuất/nhập (I/O module), hệ thống bus và khối nguồn cấp điện.
Hệ thống tuyến (system bus): là tuyến để truyền các tín hiệu, gồm nhiều đường tín hiệu song song:
- Tuyến địa chỉ (address bus): chọn địa chỉ trên các khối khác nhau.
- Tuyến dữ liệu (data bus): mang dữ liệu (thí dụ từ IM tới OM).
- Tuyến điều khiển (control bus): chuyển, truyền các tín hiệu định thì và điều khiều để đồng bộ các hoạt động trong PLC.
- Điều khiển nối cứng và điều khiển lập trình được.
- Điều khiển nối cứng (Hard_wired control)
Trong các hệ thống điều khiển nối cứng, các tiếp điểm cảm biến, các đèn, các công tắc,...được nối vĩnh viễn với cái khác. Do đó khi muốn thay đổi lại hệ thống thì phải nối dây lại bộ điều khiển, với hệ thống phức tạp thì việc làm lại này không hiệu quả và tốn kém.
- Điều khiển lập trình được (Programmable control)
Tuy nhiên trong các hệ thống điều khiển lập trình được thì cấu trúc của bộ điều khiển và nối dây thì độc lập với chương trình. Điều này có nghĩa là các bộ điều khiển chuẩn có thể sử dụng. Thí dụ: các tiếp điểm cảm biến và các cuộn dây điều hành trên máy công cụ được nối trực tiếp vào các đầu nối của bộ điều khiển.
Chương trình định nghĩa hoạt động điều khiển được ghi trực tiếp vào bộ nhớ của bộ điều khiển (bộ nhớ chương trình) với sự trợ giúp của bộ lập trình hoặc một máy vi tính.
Ta có thể thay đổi chương trình điều khiển bằng cách thay đổi nội dung của bộ nhớ bộ điều khiển, nghĩa là bộ nhớ chương trình, còn phần nối dây bên ngoài thì không bị ảnh hưởng. Đây chính là một trong các điểm thuận lợi quan trọng nhất của bộ điều khiển lập trình được.
- Quét chương trình tuần hoàn và ảnh các quá trình.
- Quét chương trình tuần hoàn:
Thời gian để cho một lần quét qua tất cả các phát biểu được liệt kê trong chương trình được gọi là thời gian quét (scan timer).
Một chu kỳ quét gồm có 4 giai đoạn sau:
- Chuyển dữ liệu từ cổng vào tới I.
- Thực hiện chương trình.
- Chuyển dữ liệu từ Q tới cổng ra.
- Truyền thông và kiểm tra nội bộ.
Thời gian quét này tùy thuộc vào số lệnh trong chương trình và tùy theo từng loại PLC.
Nếu sử dụng các khối chương trình đặc biệt có chế độ ngắt, ví dụ như khối OB40, OB80,..., chương trình của các khối đó sẽ được thực hiện trong vòng quét khi xuất hiện tín hiệu báo ngắt cùng chủng loại. Các khối chương trình này có thể được thực hiện tại mọi thời điểm trong vòng quét chứ không bị gò ép là phải ở trong giai đoạn thực hiện chương trình.
- Anh các quá trình:
- Anh quá trình nhập PII (Process Input Image)
Sau khi bắt đầu thời gian theo dõi quét, các trạng thái tín hiệu của tất cả các ngõ vào số trong PLC được quét (dò) và được đưa vào bộ đệm ảnh quá trình nhập PII cho đến khi bắt đầu chu kỳ quét kế tiếp. Trong lúc quét chương trình kế tiếp (được bắt đầu bằng cách gọi OB1), các trạng thái tín hiệu của các ngõ vào được lấy từ ảnh quá trình PII này.
- Anh quá trình xuất PIQ (Process Output Image)
Nếu trong một chu kỳ quét, các trạng thái tín hiệu được thiết lập cho một hay nhiều ngõ ra, thì trước hết chúng phải được đệm trong quá trình xuất PIQ. Khi chương trình được quét đến phát biểu cuối (BE) của khối tổ chức OB1, nội dung của ảnh quá trình xuất PIQ được chuyển đến các module xuất.
Anh quá trình xuất/nhập là vùng RAM nội mà mỗi vị trí bộ nhớ được gán cho mỗi ngõ vào số và ngõ ra số.
Các thuận lợi:
Việc đệm các trạng thái nhập và xuất trong các ảnh quá trình bảo đảm là các tín hiệu vào mà thay đổi trong chu kỳ quét không thể có hiệu ứng trên chuỗi chức năng.
Hơn nữa, việc đệm các trạng thái tín hiệu của các ngõ vào và các ngõ ra giảm thời gian quét khi truy cập vào bộ nhớ dữ liệu hệ thống cần ít thời gian hơn nhiều truy cập trực tiếp vào các modules xuất/ nhập.
- CẤU TRÚC VÀ PHÂN CHIA BỘ NHỚ.
- Các module của PLC S7-300.
Để tăng tính mềm dẻo trong ứng dụng thực tế mà ở đó phần lớn các đối tượng điều khiển có số tín hiệu đầu vào, đầu ra cũng như chủng loại tín hiệu vào/ra khác nhau mà các bộ điều khiển PLC được thiết kế không bị cứng hóa về cấu hình. Chúng được chia nhỏ thành các module. Số các module được sử dụng nhiều hay ít tùy thuộc vào từng bài toán, song tối thiểu bao giờ cũng phải có một module chính là module CPU. Các module còn lại là những module nhận/truyền tín hiệu với đối tượng điều khiển, các module chuyên dụng như PID, điều khiển động cơ...Chúng được gọi chung là module mở rộng.
- Module CPU:
Module CPU là loại module có chứa bộ vi xử lý, hệ điều hành, bộ nhớ, các bộ định thời, bộ đếm, cổng truyền thông... và có thể có một vài cổng vào ra số. Các cổng vào ra số có trên module CPU được gọi là cổng vào ra onboard.
Trong họ PLC S7-300 có nhiều loại module CPU khác nhau. Chúng được đặt tên theo bộ vi xử lý có trong nó như module CPU312, module CPU314, module CPU315...
Những module cùng sử dụng một loại bộ vi xử lý, nhưng khác nhau về cổng vào/ra onboard cũng như các khối hàm đặc biệt được tích hợp sẵn trong thư viện của hệ điều hành phục vụ việc sử dụng các cổng vào ra onboard này sẽ được phân biệt với nhau trong tên gọi bằng thêm cụm từ IFM (Intergrated Function Module). Chẳng hạn module CPU312 IFM, module CPU314...Ngoài ra còn có loại module với hai cổng truyền thông như module CPU315-DP.
- Module mở rộng:
Module mở rộng có 5 loại chính:
- PS (Power Supply): Module nguồn nuôi. Có 3 loại: 2A, 5A, 10A.
- SM (Signal Module): Module mở rộng cổng tín hiệu vào/ra, bao gồm:
- DI (Digital Input): Module mở rộng các cổng vào số.
- DO (Digital Output): Module mở rộng các cổng ra số.
- DI/DO: Module mở rộng các cổng vào/ra số.
- AI (Analog Input): Module mở rộng các cổng vào tương tự.
- AO (Analog Output): Module mở rộng các cổng ra tương tự.
- AI/AO: Module mở rộng các cổng vào/ra tương tự.
- IM (Interface module): Module ghép nối. Đây là loại module chuyên dụng có nhiệm vụ nối từng nhóm các module mở rộng lại với nhau thành một khối và được quản lý chung bởi một module CPU. Các module mở rộng được gá trên một thanh rack. Trên mỗi rack có thể gá được tối đa 8 module mở rộng (không kể module CPU và module nguồn nuôi). Một module CPU S7-300 có thể làm việc trực tiếp được với nhiều nhất 4 racks và các racks này phải được nối với nhau bằng module IM.
- FM (Function Module): Module có chức năng điều khiển riêng, ví dụ như module điều khiển động cơ bước, module điều khiển động cơ servo, module PID, module điều khiển vòng kín,...
- CP (Communication Module): Module phục vụ truyền thông trong mạng giữa các PLC với nhau hoặc giữa PLC với máy tính.
- Kiểu dữ liệu và phân chia bộ nhớ.
- Kiểu dữ liệu:
Trong một chương trình có thể có các kiểu dữ liệu sau:
- BOOL: với dung lượng 1 bit và có giá trị là 0 hay 1.
- BYTE: gồm 8 bit, có giá trị nguyên dương từ 0 đến 255.
- WORD: gồm 2 byte, có giá trị nguyên dương từ 0 đến 65535.
- INT: có dung lượng 2 byte, dùng để biểu diễn số nguyên từ -32768 đến 32767.
- DINT: gồm 4 byte, biểu diễn số nguyên từ -2147463846 đến 2147483647.
- REAL: gồm 4 byte, biểu diễn số thực dấu phẩy động.
- S5T: khoảng thời gian, được tính theo giờ/phút/giây/miligiây.
- TOD: biểu diễn giá trị thời gian tính theo giờ/phút/giây.
- DATE : biểu diễn giá trị thời gian tính theo năm/tháng/ngày.
- CHAR: biểu diễn một hoặc nhiều ký tự (nhiều nhất là 4 ký tự).
- Phân chia bộ nhớ:
CPU S7-300 có 3 vùng nhớ cơ bản:
- Vùng nhớ hệ thống (system memory): (RAM trong CPU) lưu trữ dữ liệu hoạt động cho chương trình của ta:
- I (Process Input Image): Miền bộ đệm các dữ liệu cổng vào số. Trước khi bắt đầu thực hiện chương trình, PLC sẽ đọc giá trị logic của tất cả các cổng đầu vào và cất giữ chúng trong vùng nhớ I. Thông thường chương trình ứng dụng không đọc trực tiếp trạng thái logic của cổng vào số mà chỉ lấy dữ liệu của cổng vào từ bộ đệm I.
- Q (Process Output Image): Miền bộ đệm các dữ liệu cổng ra số. Kết thúc giai đoạn thực hiện chương trình, PLC sẽ chuyển giá trị logic của bộ đệm Q tới các cổng ra số. Thông thường chương trình không trực tiếp gán giá trị tới tận cổng ra mà chỉ chuyển chúng vào bộ đệm Q.
- M: Miền các biến cờ. Chương trình ứng dụng sử dụng vùng nhớ này để lưu trữ các tham số cần thiết và có thể truy nhập nó theo bit (M), byte (MB), từ (MW), từ kép (MD).
- T (Timer): Miền nhớ phục vụ bộ định thời bao gồm việc lưu trữ các giá trị thời gian đặt trước (PV-Preset Value), giá trị đếm thời gian tức thời (CV-Current Value) cũng như giá trị logic đầu ra của bộ thời gian.
- C (Counter): Miền nhớ phục vụ bộ đếm bao gồm việc lưu trữ giá trị đặt trước (PV-Preset Value), giá trị đếm tức thời (CV-Current Value) và giá trị logic của bộ đếm.
- PI (I/O External Input): Miền địa chỉ cổng vào của các module tương tự. Các giá trị tương tự tại cổng vào của module tương tự sẽ được module đọc và chuyển tự động theo những địa chỉ.
- PQ (I/O External Output): Miền địa chỉ cổng ra của các module tương tự. Các giá trị tương tự tại cổng ra của module tương tự sẽ được module đọc và chuyển tự động theo những địa chỉ.
- Vùng nhớ nạp (load memory): (RAM trong CPU, cộng thêm EEPROM có sẵn trong CPU hoặc thẻ EEPROM gắn thêm) là vùng nhớ chứa chương trình của ta bao gồm tất cả các khối chương trình ứng dụng OB, FB, FC, các khối chương trình trong thư viện hệ thống được sử dụng (SFB, SFC) và các khối dữ liệu DB. Toàn bộ các khối chương trình và các khối dữ liệu nằm trong RAM sẽ bị xóa khi tác động xóa bộ nhớ “CPU memory reset” (MRES).
- Vùng nhớ làm việc (word memory): (RAM trong CPU) chứa các bản sao của các phần tử chương trình đang được CPU thực thi. Như các khối DB đang được mở, khối chương trình (OB, FB, FC, SFB, SFB) đang được CPU thực hiện và phần bộ nhớ cấp phát cho những tham số hình thức để các khối chương trình này trao đổi tham trị với hệ điều hành và với các khối chương trình khác (local block). Tại một thời điểm nhất định vùng work memory chỉ chứa một khối chương trình duy nhất.
- Tầm địa chỉ tối đa cho các vùng nhớ:
- Với I, Q, PI, DB, DI và L:
Tầm địa chỉ tối đa cho bit: 0.0 đến 65535.7
Tầm địa chỉ tối đa cho byte: 0 đến 65535
Tầm địa chỉ tối đa cho word: 0 đến 65534
Tầm địa chỉ tối đa cho double word: 0 đến 65532
- Với bộ nhớ bit M:
Tầm địa chỉ tối đa cho bit: 0.0 đến 255.7
Tầm địa chỉ tối đa cho byte : 0 đến 255
Tầm địa chỉ tối đa cho word: 0 đến 254
Tầm địa chỉ tối đa cho double word: 0 đến 252
- Cấu trúc chương trình.
Ta phải luôn luôn lập trình khối OB 1 để cho PLC quét tuần hoàn chương trình để thực thi.
Có hai kiểu lập trình: lập trình tuyến tính và lập trình có cấu trúc.
- Lập trình tuyến tính (liner):
Toàn bộ chương trình điều khiển nằm trong một khối trong bộ nhớ. Loại hình cấu trúc tuyến tính này phù hợ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 OB 1, là khối mà CPU 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 từ lệnh đầu tiên.
- Lập trình có cấu trúc (structured) :
Trong PLC Siemens S7 tổ chức theo các khối mà có thể lập trình được với từng nhiệm vụ riêng. Loại hình cấu trúc này phù hợp với những bài toán điều khiển nhiều nhiệm vụ và phức tạp. PLC S7-300 có 4 loại khối cơ bản:
- Khối tổ chức OB (Oganization block) : Khối tổ chức và quản lý chương trình điều khiển.
- Khối hàm chức năng 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 với các khối chương trình khác. Các dữ liệu này phải được tổ chức thành khối dữ liệu riêng có tên gọi là Data block .
- Khối hàm (Function) : 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.
- Khối dữ liệu (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ố khối do ta tự đặt.
Ngoài ra còn có các khối hệ thống như : SFB, SFC, SDB.
Toàn bộ các khối chương trình con được quản lý một cách thống nhất bởi khối OB1. 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. Từng nhiệm vụ điều khiển con có thể được chia thành những nhiệm vụ nhỏ và cụ thể hơn nữa, do đó một khối chương trình con cũng có thể được gọi từ một khối chương trình con khác. Nhưng tránh không bao giờ một khối chương trình con lại gọi đến chính nó.
Khi thực hiện lệnh gọi một khối con, hệ điều hành sẽ:
- Chuyển khối con được gọi từ vùng load memory vào vùng word memory.
- Cấp phát cho khối con một phần bộ nhớ trong word memory để làm local block. Cấu trúc local block được quy định khi soạn thảo các khối.
- Truyền các tham trị từ khối mẹ cho biến hình thức IN, IN-OUT của local block.
- Sau khi khối con thực hiện xong nhiệm vụ và ghi kết quả dưới dạng tham trị đầu ra cho biến OUT, IN-OUT của local block, hệ điều hành sẽ chuyển các tham trị này cho khối mẹ và giải phóng khối con cùng local block ra khỏi word memory.
- ...........................................................................
Chương 2: Ngôn Ngữ Lập Trình S7-300
- SỬ DỤNG CÁC Ô NHỚ VÀ CẤU TRÚC THANH GHI TRẠNG THÁI.
- Địa chỉ ô nhớ.
Địa chỉ ô nhớ gồm phần chữ và phần số.
-
Phần chữ: chỉ vị trí và kích thước ô nhớ.
- M: chỉ ô nhớ trong miền các biến cờ có kích thước là 1 bit.
- MB: chỉ ô nhớ trong miền các biến cờ có kích thước là 1 byte.
- MW: chỉ ô nhớ trong miền các biến cờ có kích thước là 2 bytes.
- MD: chỉ ô nhớ trong miền các biến cờ có kích thước là 4 bytes.
- I: chỉ ô nhớ có kích thước là 1 bit trong miền bộ đệm cổng vào số.
- IB: chỉ ô nhớ có kích thước là 1 byte trong miền bộ đệm cổng vào số.
- IW: chỉ ô nhớ có kích thước là 1 từ trong miền bộ đệm cổng vào số.
- ID: chỉ ô nhớ có kích thước là 2 từ trong miền bộ đệm cổng vào số.
- Q: chỉ ô nhớ có kích thước là 1 bit trong miền bộ đệm cổng ra số.
- QB: chỉ ô nhớ có kích thước là 1 byte trong miền bộ đệm cổng ra số.
- QW: chỉ ô nhớ có kích thước là 1 từ trong miền bộ đệm cổng ra số.
- QD: chỉ ô nhớ có kích thước là 2 từ trong miền bộ đệm cổng ra số.
- T: chỉ ô nhớ trong miền nhớ của bộ thời gian Timer.
- C: chỉ ô nhớ trong miền nhớ của bộ đếm Counter.
- PIB: chỉ ô nhớ có kích thước 1 byte thuộc vùng peripheral input.
- PIW: chỉ ô nhớ có kích thước 1 từ thuộc vùng peripheral input.
- PID: chỉ ô nhớ có kích thước 2 từ thuộc vùng peripheral input.
- PQB: chỉ ô nhớ có kích thước 1 byte thuộc vùng peripheral output.
- PQW: chỉ ô nhớ có kích thước 1 từ thuộc vùng peripheral output.
- PQD: chỉ ô nhớ có kích thước 2 từ thuộc vùng peripheral output.
- DBX: chỉ ô nhớ có kích thước 1 bit trong khối dữ liệu DB.
- DBB: chỉ ô nhớ có kích thước 1 byte trong khối dữ liệu DB.
- DBW: chỉ ô nhớ có kích thước 1 từ trong khối dữ liệu DB.
- DBD: chỉ ô nhớ có kích thước 2 từ trong khối dữ liệu DB.
- Phần số:
Chỉ địa chỉ của byte hoặc bit trong miền nhớ đã xác định.
Nếu ô nhớ đã được xác định thông qua phần chữ là có kích thước 1 bit thì phần số sẽ gồm địa chỉ của byte và số thứ tự của bit trong byte đó được tách với nhau bằng dấu chấm.
Ví dụ: I 1.3
M 100.5
Q 124.7
Nếu ô nhớ đã được xác định là 1 byte, từ hoặc từ kép thì phần số sẽ là địa chỉ byte đầu tiên trong mảng byte của ô nhớ đó.
Ví dụ: DIB 15
MD 46
- Cấu trúc thanh ghi trạng thái.
Khi thực hiện lệnh , CPU sẽ ghi nhận lại trạng thái của phép tính trung gian cũng như của kết quả vào một thanh ghi đặc biệt gọi là thanh ghi trạng thái (status word). Cấu trúc của thanh ghi trạng thái:
215... ...29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
|
BR |
CC1 |
CC0 |
OV |
OS |
OR |
STA |
RLO |
/FC |
- Bit /FC (first check)
Bit 0 của thanh ghi trạng thái được gọi là bit kiểm tra đầu tiên (/FC). Mỗi lệnh kiểm tra trạng thái tín hiệu của /FC cũng như trạng thái tín hiệu của toán hạng. Nếu bit /FC =0, lệnh cất kết quả kiểm tra trạng thái tín hiệu vào bit RLO và đặt bit /FC lên 1. Quá trình này được gọi là kiểm tra đầu tiên (first check) hay quét lần thứ nhất (first scan).
Nếu bit /FC =1 thì lệnh kết hợp kết quả dò mức của toán hạng hiện tại với RLO trước đó để tạo ra RLO mới.
Chuỗi lệnh logic luôn luôn kết thúc bằng lệnh xuất (S,R hay =), lệnh nhảy liên hệ với RLO, hoặc một trong các lệnh lồng như A(, O(, X(, AN(, XN(; các lệnh này reset bit /FC về 0.
- RLO (Result of Logic Operation): kết quả của phép toán logic.
Bit 1 của STW được gọi là RLO, bit này chứa kết quả của lệnh logic trên bit hoặc so sánh số học.
Ta có thể đặt RLO không điều kiện lên 1 bằng lệnh SET và xóa RLO không điều kiện về 0 bằng lệnh CLR. Bit RLO cũng có liên quan đến các lệnh nhảy có điều kiện.
Bit cần có khi sử dụng lệnh O để thực hiện AND-trước -OR. Hàm AND chứa các lệnh sau: A, AN, A(, AN(, ) và NOT. Bit OR cho thấy các lệnh mà hàm AND được thực thi trước đó đã cho giá trị 1. Bất cứ lệnh xử lý bit khác reset bit OR.
- Bit OV (Overflow)
Bit OV có chức năng báo lỗi. Nó được đặt lên 1 bằng lệnh toán học hay lệnh so sánh dấu chấm động sau khi lỗi xảy ra (tràn, phép toán không hợp lệ, số dấu chấm động không hợp lệ). Bit này được đặt theo kết quả của lệnh toán học kế hay lệnh so sánh kế.
- Bit OS (stored overflow bit)
Bit OS được đặt cùng với bit OV khi có lỗi xảy ra. Bởi vì bit OS vẫn giữ là 1 sau khi đã khử lỗi, nó chứa trạng thái bit OV và cho thấy có lỗi hay không có lỗi xảy ra ở một trong các lệnh được thực thi trước đó. Các lệnh sau reset bit OS: JOS (jump after stored overflow), các lệnh gọi khối, và các lệnh kết thúc khối.
- Mã điều kiện CC1 và CC0
CC1 |
CC0 |
Giải thích |
0 |
0 |
Kết quả =0 |
0 |
1 |
Kết quả <0 |
1 |
0 |
Kết quả >0 |
Bảng 1.2: CC1 và CC0 sau lệnh toán học, không có tràn.
CC1 |
CC0 |
Giải thích |
0 |
0 |
Tràn dãi trị âm trong +I và +D |
0 |
1 |
Tràn dãi trị âm trong *I và *D Tràn dãi trị dương trong +I, -I, +D, -D, NEGI và NEGD |
1 |
0 |
Tràn dãi trị dương trong *I, *D, /I và /D Tràn dãi trị âm trong +I, -I, +D, -D |
1 |
1 |
Chia cho 0 trong /I, /D, và MOD |
Bảng 1.3: CC1 và CC0 sau lệnh toán học số nguyên, có tràn.
CC1 |
CC0 |
Giải thích |
0 |
0 |
Tràn dưới |
0 |
1 |
Tràn dãi trị âm |
1 |
0 |
Tràn dãi trị dương |
1 |
1 |
Số dấu chấm động không hợp lệ |
Bảng 1.4: CC1 và CC0 sau các lệnh toán học dấu chấm động, có tràn.
CC1 |
CC0 |
Giải thích |
0 |
0 |
ACCU 2 =ACCU 1 |
0 |
1 |
ACCU 2 <ACCU 1 |
1 |
0 |
ACCU 2 >ACCU 1 |
1 |
1 |
ACCU 1 hay ACCU 2 là số dấu chấm động không hợp lệ |
Bảng 1.5: CC1 và CC0 sau các lệnh so sánh.
CC1 |
CC0 |
Giải thích |
0 |
0 |
Bit vừa dịch ra là 0 |
1 |
0 |
Bit vừa dịch ra là 1 |
Bảng 1.6: CC1 và CC0 sau các lệnh dịch và xoay.
CC1 |
CC0 |
Giải thích |
0 |
0 |
Kết quả = 0 |
1 |
0 |
Kết quả <>0 |
Bảng 1.7: CC1 và CC0 sau các lệnh logic trên word.
- Bit BR (Binary Result)
Bit BR tạo liên kết giữa xử lý các bit và các word. Đây là phương tiện hữu hiệu để diễn dịch kết quả của phép toán trên word như kết quả nhị phân và đưa kết quả này vào chuỗi logic nhị phân. Với cách nhìn này, bit BR biễu diễn bit bộ nhớ bên trong máy mà RLO cất vào trước khi một phép toán word làm thay đổi RLO, để cho RLO khả dụng lần nữa sau khi phép toán tiếp tục chuỗi logic bit bị ngắt.
Bit BR tương ứng với ngõ ra cho phép (ENO = enable output) của hộp LAD. Ta nên sử dụng lệnh SAVE để cất RLO vào bit BR theo các tiêu chuẩn sau:
- Cất bit RLO =1 vào bit BR cho trường hợp mà FB hay FC được thực thi không có lỗi.
- Cất bit RLO =0 vào bit BR cho trường hợp mà FB hay FC được thực thi có lỗi.
Ta nên lập trình các lệnh này ở cuối FB hay FC để chúng là các lệnh cuối cùng được thực thi trong khối.
- CÁC LỆNH VÀ PHÉP TOÁN.
- Lệnh nạp chuyển.
Các lệnh này dùng để trao đổi thông tin bằng byte, word hay double word giữa các module nhập và xuất, PII và PIQ, bộ định thời, bộ đếm và cờ, các khối dữ liệu (DB).
Dữ liệu thường không được trao đổi trực tiếp mà luôn luôn thông qua thanh ghi tích lũy ACCU. Nó là thanh ghi trong bộ xử lý và được dùng như bộ đệm (buffer).
Dòng đi thông tin như sau:
- Nạp (LOAD) từ bộ nhớ nguồn vào ACCU.
- Chuyển (TRANSFER) từ ACCU đến bộ nhớ đích.
Trong PLC có 2 thanh ghi: ACCU1 và ACCU2, mỗi thanh ghi có chiều dài 2 word.
Chú ý:
- Load và Transfer trực tiếp không qua PII và PIQ:
L PIB
T PQW
Với P là viết tắt của Peripheral (ngoại vi).
- Các lệnh Load và Transfer trực tiếp chỉ có thể lập trình bằng dạng STL (ngoại trừ các toán hạng của Timer, Counter và các lệnh so sánh).
- Các lệnh tác động vào RLO và ô nhớ.
- SET: lệnh ghi logic 1 vào RLO.
- CLR: lệnh ghi logic 0 vào RLO.
- NOT: lệnh đảo giá trị của RLO.
- S: lệnh gán có điều kiện giá trị logic 1 vào ô nhớ.
- R: lệnh gán có điều kiện giá trị logic 0 vào ô nhớ.
- FP <toán hạng> : lệnh phát hiện sườn lên.
Toán hạng là địa chỉ bit I, Q, M, L, D và được sử dụng như một biến cờ để ghi nhận lại giá trị của RLO tại vị trí này trong chương trình, nhưng của vòng quét trước. Tại mỗi vòng quét lệnh sẽ kiểm tra: nếu toán hạng có giá trị 0 và RLO có giá trị 1 thì sẽ ghi 1 vào RLO, các trường hợp khác thì ghi 0, đồng thời chuyển nội dung của RLO vào lại biến cờ. Như vậy RLO sẽ có giá trị 1 trong một vòng quét khi có sườn lên trong RLO.
- FN <toán hạng> : lệnh phát hiện sườn xuống.
Toán hạng là địa chỉ bit I, Q, M, L, D và được sử dụng như một biến cờ để ghi nhận lại giá trị của RLO tại vị trí này trong chương trình, nhưng của vòng quét trước. Tại mỗi vòng quét lệnh sẽ kiểm tra: nếu toán hạng có giá trị 1 và RLO có giá trị 0 thì sẽ ghi 1 vào RLO, các trường hợp khác thì ghi 0, đồng thời chuyển nội dung của RLO vào lại biến cờ. Như vậy RLO sẽ có giá trị 1 trong một vòng quét khi có sườn lên trong RLO.
- SAVE : lệnh chuyển giá trị của RLO vào BR.
- Và một số phép tính cơ bản.
- Các lệnh tác động vào 2 thanh ghi ACCU1 và ACCU2.
- Nhóm lệnh đảo vị trí bytes:
- POP : lệnh chuyển nội dung của ACCU2 vào ACCU1.
- PUSH : lệnh chuyển nội dung của ACCU1 vào ACCU2.
- TAK : lệnh đảo nội dung của 2 thanh ghi ACCU1 và ACCU2.
- CAW : lệnh đảo nội dung 2 bytes của từ thấp trong ACCU1.
- CAD : lệnh đảo nội dung các bytes trong ACCU1.
- INVI : lệnh đảo giá trị các bits trong từ thấp của ACCU1
- INVD : lệnh đảo giá trị các bits của ACCU1.
- Nhóm lệnh tăng giảm :
- INC <toán hạng> : lệnh tăng nội dung thanh ghi ACCU1.
Toán hạng là số nguyên 8 bits. Lệnh thực hiện phép cộng giữa byte thấp của từ thấp trong ACCU1 với toán hạng. Kết quả được ghi lại vào byte thấp của từ thấp của ACCU1.
- DEC <toán hạng> : lệnh giảm nội dung thanh ghi ACCU1.
Toán hạng là số nguyên 8 bits. Lệnh thực hiện phép trừ byte thấp của từ thấp trong ACCU1 cho toán hạng. Kết quả được ghi lại vào byte thấp của từ thấp của ACCU1.
- Nhóm lệnh dịch chuyển:
- RLD [n] : lệnh xoay tròn các bits của ACCU1 theo chiều trái.
- RRD [n]: lệnh xoay tròn các bits của ACCU1 theo chiều phải.
Lệnh có thể có hoặc không có toán hạng. Nếu toán hạng bằng 0 thì lệnh tương đương với lệnh NOP.
- RLDA : lệnh xoay tròn ACCU1 theo chiều trái 1 bit.
- RRDA : lệnh xoay tròn ACCU1 theo chiều phải 1 bit.
- ........................................
- Các lệnh điều khiển logic và điều khiển chương trình.
- Các lệnh điều khiển logic:
Ta có thể sử dụng các lệnh jump (bắt đầu bằng J) và loop để điều khiển rẽ nhánh trong một khối chương trình. Địa chỉ cho lệnh jump và loop là nhãn nhảy đến trong chương trình (label).
Có các lệnh điều khiển logic sau:
- Lệnh nhảy không điều kiện: JU, JL.
- Lệnh nhảy có điều kiện theo RLO: JC, JCN, JCB, JNB.
- Lệnh nhảy có điều kiện theo BR hoặc OV/OS: JBI, JNBI, JO, JOS.
- Lệnh nhảy theo mã điều kiện CC0, CC1: JZ,JN, JP, JM, JMZ, JPZ, JUO.
- Lệnh điều khiển lặp vòng: LOOP.
Nhãn nhảy đến trong khối chương trình để đánh dấu nên chuyển điều khiển logic tới (nơi rẽ nhánh đến). Nó có chiều dài tối đa là 4 ký tự, và ký tự đầu phải là chữ, sau nó phải có dấu hai chấm.
-
Các lệnh nhảy không điều kiện:
- Lệnh nhảy không điều kiện JU: lệnh này ngắt luồng điều khiển bình thường và nhảy đến nhãn được chỉ sau JU. Lệnh này được thực hiện bất chấp điều kiện nào.
- Lệnh nhảy theo danh sách JL: (giống lệnh case hay switch trong các ngôn ngữ lập trình khác).
-
Các lệnh nhảy có điều kiện dựa vào RLO:
- JC nhãn: nhảy đến nhãn nếu RLO=1 còn ngược lại thì thực hiện lệnh kế.
- JCN nhãn: nhảy đến nhãn nếu RLO=0 còn ngược lại thì thực hiện lệnh kế.
- JCB nhãn: nếu RLO=1 thì gán trị RLO vào BR và nhảy đến nhãn, còn ngược lại thì thực hiện lệnh kế.
- JNB nhãn: nếu RLO=0 thì gán trị RLO vào BR và nhảy đến nhãn, còn ngược lại thì thực hiện lệnh kế.
- Các lệnh nhảy có điều kiện dựa theo BR hay OV/ OS:
Theo điều kiện của BR:
- JBI nhãn: nếu BR=1 thì nhảy đến nhãn, còn ngược lại thì thực hiện lệnh kế.
- JNBI nhãn: nếu BR=0 thì nhảy đến nhãn, còn ngược lại thì thực hiện lệnh kế.
Chú ý: các lệnh JBI và JNBI reset các bit OR và FC trong STW về 0 và set bit STA lên 1.
Theo điều kiện OV:
- JO nhãn: nếu OV=1 thì nhảy đến nhãn, còn ngược lại thì thực hiện lệnh kế.
Theo điều kiện OS:
- JOS nhãn: nếu OV=1 thì nhảy đến nhãn, còn ngược lại thì thực hiện lệnh kế.
Lệnh này reset bit OS về 0.
- Các lệnh nhảy có điều kiện dựa theo CC1 và CC0:
Dạng lệnh: J<điều-kiện> nhãn
Với các điều-kiện là :
- Z (zero): nếu kết quả là 0 thì nhảy đến nhãn, còn ngược lại thì thực hiện lệnh kế.
- N (not zero): nếu kết quả là khác 0 thì nhảy đến nhãn, còn ngược lại thì thực hiện lệnh kế.
- P (positive): nếu kết quả >0 thì nhảy đến nhãn, còn ngược lại thì thực hiện lệnh kế.
- M (minus = negative): nếu kết quả <0 thì nhảy đến nhãn, còn ngược lại thì thực hiện lệnh kế.
- MZ (minus hay zero): nếu kết quả là 0 hay <0 thì nhảy đến nhãn, còn ngược lại thì thực hiện lệnh kế.
- PZ (positive hay zero): nếu kết quả là 0 hay >0 thì nhảy đến nhãn, còn ngược lại thì thực hiện lệnh kế.
- UO (unordered): nếu 1 trong các số của phép toán dấu chấm động không phải là số chấm động hợp lệ thì nhảy đến nhãn, còn ngược lại thì thực hiện lệnh kế.
- Lệnh điều khiển vòng lặp:
Ta có thể sử dụng lệnh LOOP để thực hiện một đoạn chương trình nhiều lần. Lệnh LOOP giảm word thấp của ACCU1 bớt đi 1 và kiểm tra trị mới có được ở ACCU1. Nếu ACCU1 lúc này khác không thì nhảy đến nhãn chỉ ra kế LOOP, còn ngược lại thì thực hiện lệnh kế.
- Các lệnh điều khiển chương trình:
Ta có thể sử dụng các lệnh sau để điều khiển chương trình.
- Lệnh gọi CALL dùng để gọi FC, FB, SFC hay SFB mà bất chấp RLO hay bất cứ điều kiện nào khác.
- Lệnh gọi có điều kiện (CC) và không điều kiện (UC) dùng để gọi các FC không có tham số.
- Lệnh gọi không điều kiện (UC) dùng để gọi SFC không có tham số.
- Rờ-le điều khiển chính MCR (Master Control Relay).
- Các lệnh kết thúc khối không điều kiện (BEU) và kết thúc khối có điều kiện (BEC).
Gán tham số khi gọi hàm và khối hàm
Tham số hình thức (formal parameter): là tham số mà tên và kiểu dữ liệu của nó được gán và khai báo khi tạo khối. Sau đó khi viết chương trình thì STEP7 tự động liệt kê tất cả các tham số hình thức.
Khi đó ta phải gán các tham số thật (actual parameter) cho các tham số hình thức. Tham số thật là tham số là hàm và khối hàm sử dụng trong lúc chạy chương trình. Tham số thật phải có cùng kiểu dữ liệu với tham số hình thức tương ứng gán cho nó.
- Gọi hàm và khối hàm bằng CALL:
Ta có thể sử dụng lệnh CALL để gọi các hàm (FC) và khối hàm (FB), lệnh này gọi FC hay FB do ta chỉ ra và được thực thi bất chấp RLO hay bất kỳ điều kiện nào khác.
Khi ta gọi khối hàm FB thì ta phải cung cấp khối dữ liệu instance cục bộ. Khối dữ liệu instance chứa tất cả các biến tĩnh và các tham số thật của khối hàm.
Khi ta gọi khối hàm thì lệnh CALL chép lại một trong các mục sau vào khối dữ liệu instance của khối hàm, phụ thuộc vào kiểu dữ liệu của tham số thật và vào khai báo của tham số hình thức (IN, OUT, IN-OUT):
- Giá trị của tham số thật.
- Pointer chỉ đến địa chỉ của tham số thật.
- Pointer chỉ đến “L stack” của khối gọi mà ở đó giá trị của tham số thật đã được đệm.
Gọi FB với DB instance và các tham số khối:
Việc gọi có thể xảy ra một khi các chi tiết sau đã được đưa vào lúc CALL:
- Tên của khối hàm.
- Tên của khối dữ liệu instance và
- Các tham số.
Lệnh gọi sử dụng địa chỉ tuyệt đối hoặc địa chỉ ký hiệu.
Gọi tuyệt đối: CALL FBx, Dby (các tham số truyền);
Gọi bằng ký hiệu: CALL fbname, datablockname (pass parameters);
Với fbname= tên ký hiệu của khối
datablockname= tên ký hiệu của khối dữ liệu
- Gọi hàm và khối hàm bằng CC và UC:
Dạng lệnh: CC addr (conditional call: gọi khi RLO=1)
UC addr (unconditional call: gọi bất chấp RLO)
Chú ý: không được sử dụng DB “instance” với CC và UC.
Addr có thể là địa chỉ trực tiếp hay là địa chỉ gián tiếp bộ nhớ (memory indirect address).
- Làm việc với chức năng MCR:
MCR dùng để tạo hay ngắt luồng năng lượng (đường dẫn điện). Các lệnh sau bị ảnh hưởng bởi MCR là: lệnh gán (=), lệnh SET và RESET bit (S, R) và lệnh chuyển dữ liệu T (dùng byte, word, double word). Sự phụ thuộc của chúng theo MCR được cho theo bảng 1.12.
Trạng thái tín hiệu của MCR |
= |
S hay R |
T |
0 |
Ghi 0 |
Không ghi (nghĩa là toán hạng không đổi) |
Ghi 0 |
1 |
Thực thi bình thường |
Thực thi bình thường |
Thực thi bình thường |
Bảng 1.12: các lệnh phụ thuộc MCR.
- Các lệnh cài đặt MCR
- MCRA: kích hoạt vùng MRC (A= Activate)
- MCRD: bỏ kích hoạt vùng MCR (D= Deactivate)
- MCR( : cất RLO vào ngăn xếp MCR, bắt đầu vùng MCR
- )MCR : lấy lại RLO, kết thúc vùng MCR
Chú ý: không bao giờ sử dụng lệnh MCR cho thiết bị an toàn hay cấp cứu!
- Anh hưởng của MCRA và MCRD
Trong vùng MCR nếu gọi 1 hàm thì hàm đó không bị ảnh hưởng của vùng MCR, muốn hàm có vùng MCR thì ta phải tạo thêm. Hình 1.6 cho thấy ảnh hưởng của vùng MCR.
- Cài đặt MCR
Các lệnh sau bật hay tắt chức năng MCR:
- Cất RLO trong ngăn xếp MCR, bắt đầu MCR: MCR(
- Lấy lại RLO< kết thúc MCR: )MCR
Như vậy, ta phải luôn luôn có cặp MCR( và )MCR; hệ thống cho phép lồng các cặp MCR( và )MCR và tối đa là 8.
- Bộ định thời Timer.
- Chức năng Timer:
Cáccông việc cần điều khiển cần nhiều chức năng Timer khác nhau. PLC SIMATIC S7 cho người sử dụng một số timer với các chức năng khác nhau. Một word 16 bits (timer word) trong vùng dữ liệu hệ thống được gán cho một trong các timer.
Timer tạo nên một chức năng phức tạp với các ngõ vào và ngõ ra sau:
- Ngõ vào Start: timer được bắt đầu với sự thay đổi tín hiệu từ “0” lên “1” (RLO) ở ngõ vào Start của nó. Thời gian và hoạt động của timer phải được lập trình ngay sau hoạt động quét điều kiện bắt đầu.
- Ngõ vào Reset: tín hiệu ở ngõ vào Reset (RLO=”1”) làm dừng timer. Thời gian hiện hành được đặt về 0 và ngõ ra Q của timer bị xóa về “0”.
- Các ngõ ra số: giá trị thời gian thật sự có thể đọc được từ hai ngõ ra số BI (số nhị phân) và BCD (số thập phân).
- Ngõ ra nhị phân: trạng thái tín hiệu của ngõ ra nhị phân Q của timer phụ thuộc vào chức năng timer được lập trình.
Thời gian trễ được khai báo với timer bằng một giá trị 16 bits gồm 2 thành phần:
- Độ phân giải với đơn vị là ms.
- Một số nguyên (BCD) trong khoảng 0 đến 999, gọi là PV.
Vậy, thời gian trễ =độ phân giải* PV.
........................................................
- Cất chương trình vào CPU.
- Các phần tử của chương trình:
Chương trình gồm các phần tử sau:
- Các khối logic: chứa các lệnh, ký hiệu và chú thích.
- Các khối dữ liệu: chứa dữ liệu, ký hiệu và chú thích.
STEP7 lưu trữ các phần tử này trong các đối tượng khác nhau trong cấu trúc file trên đĩa cứng của thiết bị lập trình.
- Tải xuống (download) các thành phần chương trình:
Khi ta download chương trình, chỉ có các lệnh, dữ liệu và thông tin cần để quản lý và để biên dịch lại được chép vào vùng nhớ nạp trong CPU (xem hình 1.16).
CPU chép chương trình (lệnh và dữ liệu) từ bộ nhớ nạp vào bộ nhớ làm việc. Việc này được thực hiện khi ta tải chương trình xuống CPU và (trong trường hợp mà chương trình của ta được cất vào EEPROM của bộ nhớ nạp) sau khi reset bộ nhớ (MRES). Các phần tử của chương trình mà không cần để chạy chương trình vẫn giữ ở trong bộ nhớ nạp; các DB được tạo bởi chương trình (bằng cách dùng SFC) được cất vào chỉ ở bộ nhớ làm việc. Từ bộ nhớ làm việc, chương trình của ta truy cập các vùng nhớ khác.
- Định nghĩa các vùng nhớ “giữ” (retentive).
Khi mất nguồn điện hoặc reset bộ nhớ (MRES), bộ nhớ CPU (bộ nhớ nạp, bộ nhớ làm việc và bộ nhớ hệ thống động), tất cả dữ liệu cất trong vùng này bị mất. Các CPU S7 cho phép sử dụng các cách sau để giữ chương trình và dữ liệu của nó:
- Ta có thể giữ chương trình bằng cách dùng EEPROM (dùng thẻ bộ nhớ hoặc có sẵn trong CPU [tùy CPU]).
- Ta có thể giữ dữ liệu cụ thể trong vùng RAM không bốc hơi (non-volatile).
- Ta có thể giữ tất cả các dữ liệu được cất trong bộ nhớ nạp, bộ nhớ làm việc và các phần của bộ nhớ hệ thống bằng cách sử dụng pin backup.
- Thông tin Start up:
STEP7 cho OB100 để đưa vào đặc tính start-up cho CPU. Hệ điều hành gọi OB100 mỗi khi CPU đi từ STOP sang RUN.
Ta có thể cất chương trình trong OB100 để cho cấu hình theo ý muốn hoặc các tham số làm việc khi start up.
Bảng 1.28 mô tả các biến tạm được khai báo trong bảng khai báo biến của OB. Ta có thể dùng công cụ “S7 Configuration” để đặt cấu hình đặc tính của CPU.
Người ta thường sử dụng OB100 để thiết lập các tham số ban đầu cho chương trình như: tạo các trạng thái ban đầu, các dữ liệu khởi động, cho phép timer,...v.v.
Tên hình thức |
Kiểu |
Giá trị và ý nghĩa |
OB100_EV_CLASS |
Byte |
B#16#13 |
OB100_STRTUP |
Byte |
Chế độ gọi OB100:
|
OB100_PRIORITY |
Byte |
27 (thứ tự ưu tiên) |
OB100_OB_NUMBR |
Byte |
100 :là chỉ số của khối OB100. |
OB100_RESERVED_1 |
Byte |
Dự trữ |
OB100_RESERVED_2 |
Byte |
Dự trữ |
OB100_STOP |
Byte |
Mã hiệu nga71t làm cho CPU chuyển về trạng thái STOP. |
OB100_STRT_INFO |
Dword |
Thông tin về việc thực hiện chế độ khởi động. |
OB100_DATE_TIME |
Date_And_Time |
Thời điểm OB100 bắt đầu được thực hiện. |
Bảng 1.28: các biến tạm trong OB100.
- Lớp ưu tiên và chương trình ngắt:
- Các lớp ưu tiên (pripority classes)
CPU S7 cho các lớp ưu tiên cho mỗi OB liên hệ. Các OB này cho phép ta tạo ra các chương trình (hoàn tất với các lệnh gọi FB và FC) mà thực thi ở những thời điểm cụ thể hoặc đáp ứng với những sự kiện đặc biệt như phát hiện lỗi. Dựa vào lớp ưu tiên của OB, các chương trình này có thể ngắt xử lý các khối trong chương trình. Lớp ưu tiên với độ ưu tiên cao nhất chạy đầu tiên; nếu có nhiều hơn một OB được gọi bởi hệ điều hành thì trước hết OB với lớp ưu tiên cao nhất được thực thi, còn các OB khác theo sau theo thứ tự ưu tiên.
Loại OB |
Mô tả |
Lớp ưu tiên |
OB1 Chương trình chính |
Bắt đầu chạy khi kết thúc chu kỳ trước |
1 (thấp nhất) |
OB10 đến OB17 Ngắt TOD |
Bắt đầu chạy ở ngày tháng và thời gian đã được lập trình |
2 |
OB20 đến OB23 Ngắt trễ |
Sử dụng cùng với SFC32 (bắt đầu ngắt trễ) chạy sau thời gian trì hoãn đặt trước (theo ms) |
Tương ứng 3 đến 6 |
OB30 đến OB38 Ngắt tuần hoàn |
Chạy theo chu lỳ lập trình trước (từ 1ms đến 1 phút) |
Tương ứng 7 đến 15 |
OB40 đến OB47 Ngắt cứng |
Bắt đầu chạy khi phát hiện báo động quá trình từ module ngoại vi |
Tương ứng 16 đến 23 |
OB80 đến OB87 Các lỗi không đồng bộ |
Bắt đầu chạy khi phát hiện lỗi chẩn đoán module hoặc có lỗi time-out |
Ưu tiên cao nhất 26 (hoặc 28 trong khi start up) |
OB100 OB start up |
Bắt đầu chạy khi CPU chuyển từ STOP sang RUN |
27 |
OB121, OB122 Các lỗi đồng bộ |
Bắt đầu chạy khi phát hiện lỗi lập trình (OB121) hoặc lỗi truy cập (OB122) |
Cùng ưu tiên với OB bị ngắt |
Bảng 1.29: các OB và lớp ưu tiên của nó.
- Ngắt (interrupt) thực thi chương trình
Bởi vì OB1 cần cho tất cả các chương trình, OB1 nằm trong lớp ưu tiên thấp nhất. Điều này làm cho bất kỳ OB nào khác được phép ngắt việc xử lý chương trình chính. Khi tất cả các ngắt đã được xử lý xong, OB1 tiếp tục thực thi ở điểm bị ngắt.
Khi CPU phát hiện sự kiện bắt đầu với OB có lớp ưu tiên cao hơn OB đang được thực thi thì việc ngắt xảy ra ở cuối lệnh đang được xử lý. Hệ điều hành cất toàn bộ ngăn xếp thanh ghi cho khối ngắt. Thông tin này được lấy trở lại khi hệ điều hành thực thi tiếp khối bị ngắt.
OB ngắt thực thi khối có lớp ưu tiên khác có thể gọi các hàm (FC) và các khối hàm (FB) khi cần. Số lần gọi lồng nhau phụ thuộc vào CU. Thí dụ CPU có thể lồng đến 8 lệnh gọi mỗi lần.
- Cất dữ liệu cho chương trình bị ngắt
Khi hệ điều hành phát hiện một sự kiện bắt đầu cho chạy đối với OB có ưu tiên cao hơn lớp ưu tiên đang được thực thi thì nó cất thông tin hiện hành trong các thanh ghi tích lũy và các thanh ghi vào ngăn xếp ngắt (I stack).
Nếu OB mới gọi FB hay FC, dữ liệu xử lý cho mỗi khối được cất vào trong ngăn xếp khối (B stack). Có thể có đến 8 chỗ/ lớp ưu tiên trong “B stack”.
Khi OB mới đã hoàn tất thực thi thì hệ điều hành nạp lại thông tin từ “I stack” và cho thực thi tiếp tục khối bị ngắt từ chỗ ngắt đã xảy ra.
Khi CPU chuyển sang chế độ STOP, ta có thể sử dụng công cụ “S7 Information” để xem B stack và I stack. Điều này giúp cho ta xác định được vấn đề làm cho CPU đổi chế độ hoạt động.
........................................................
PHẦN 2
LẬP TRÌNH WINCC
Chương 1: Control Center
Vị trí của Control Center trong hệ thống WinCC :
Control Center đặc trưng cho lớp cao nhất trong hệ thống Win CC. Tất cả các moduls của toàn bộ hệ thống WinCC đều được bắt đầu từ đây.
Nội dung của Control Center gồm có:
- Chức năng
- Cấu trúc
- Các editor chuẩn
WinCC –là giao diện giữa người và máy móc trong thiết kế tự động :
WinCC là hệ thống trung tâm về công nghệ và kỹ thuật được dùng để điều hành các nhiệm vụ của màn hình hiển thị và hệ thống điều khiển trong tự động hóa sản xuất và quá trình. Hệ thống này cung cấp các modul chức năng thích ứng trong công nghiệp về: hiển thị hình ảnh, thông điệp, lưu trữ và báo cáo. Giao diện điều khiển mạnh, việc truy cập hình ảnh nhanh chóng, và chức năng lưu trữ an toàn của nó đảm bảo tính hữu dụng cao.
Ngoài các chức năng hệ thống, WinCC còn mở ra các giao diện cho các giải pháp của người sử dụng, những giao diện này khiến chúng có thể tích hợp WinCC vào các giải pháp tự động hóa phức tạp và toàn công ty. Việc xử lý dữ liệu lưu trữ được tích hợp bằng các giao diện chuẩn ODBC và SQL. Việc thêm vào các đối tượng và các tài liệu cũng được tích hợp bằng OLE2.0 và OLE Custom Controls (OCX). Các cơ chế này làm cho WinCC trở thành một bộ phận am hiểu và dễ truyền tải trong môi trường Windows.
WinCC dựa vào hệ điều hành 32 bit MS-Windows 95 hay MS-Windows NT. Cả hai đều có khả năng về thực hiện đa nhiệm vụ, đảm bảo phản ứng nhanh chóng với việc xử lý ngắt và độ an toàn chống lại sự mất dữ liệu bên trong ở mức độ cao. Windows NT còn cung cấp các chức năng để tạo ra sự an toàn và phục vụ như một nền tảng cho hoạt động của các servers trong hệ thống WinCC nhiều người sử dụng. Chính phần mềm WinCC cũng là ứng dụng 32 bit được phát triển với công nghệ phần mềm hướng đối tượng và hiện đại nhất.
- NỘI DUNG CỦA CONTROL CENTER.
- Chức năng.
Control Center chứa tất cả các chức năng quản lý cho toàn hệ thống WinCC. Trong Control Center, ta có thể đặt cấu hình và khởi động module run-time.
- Nhiệm vụ của quản lý dữ liệu:
Quản lý dữ liệu cung cấp ảnh quá trình với các giá trị của tag. Tất cả các hoạt động của quản lý dữ liệu đều chạy trên một background (nền).
- Nhiệm vụ của Control Center
Cac nhiệm vụ chính của Control Center:
- Lập cấu hình hoàn chỉnh.
- Hướng dẫn giới thiệu việc lập cấu hình.
- Thích ứng việc ấn định, gọi, và lưu trữ các projects.
- Quản lý các projects.
- Có khả năng nối mạng các chức năng soạn thảo cho nhiều người sử dụng trong một project.
- Quản lý phiên bản.
- Diễn tả bằng đồ thị của dữ liệu cấu hình.
- Điều khiển và đặt cấu hình cho các hình vẽ/ cấu trúc hệ thống.
- Thiết lập việc cài đặt toàn cục.
- Đặt cấu hình cho các chức năng định vị đặc biệt.
- Tạo và soạn thảo các tham khảo đan chéo.
- Phản hồi tài liệu.
- Báo cáo trạng thái hệ thống.
- Thiết lập hệ thống đích.
- Chuyển giữa run-timer và cấu hình.
- Kiểm tra chế độ/ mô phỏng/ trợ giúp thao tác để đặt cấu hình dữ liệu, bao gồm dịch hình vẽ, mô phỏng tag, hiển thị trạng thái, và tạo thông điệp.
- Cấu trúc.
Control Cener có các cấu trúc như sau:
- Control Center
- Tìm hiểu WinCC trong Control Center.
Giao diện đồ họa cho cấu hình dưới môi trường Windows 95 và Windows NT.
- Quản lý dữ liệu.
Cung cấp ảnh quá trình với các giá trị của tag.
Truyền dữ liệu mà quản lý dữ liệu đã nhận từ các hệ thống tự động.
- Các module chức năng
- Hệ thống đồ họa (Graphic Designer)
Hiển thị và kết nối quá trình bằng đồ thị.
- Viết chương trình cho các thao tác (Global Scrips)
Tạo một dự án động cho các yêu cầu đặc biệt.
- Hệ thống thông báo (Alarm Logging)
Xuất các thông báo và hồi đáp.
- Lưu trữ và soạn thảo các giá trị đo lường (Tag Logging)
Soạn thảo các giá trị đo lường và lưu giữ chúng trong thời gian dài.
Soạn thảo dữ liệu hướng người sử dụng và lưu giữ chúng trong thời gian dài.
- Hệ thống báo cáo (Report Designer)
Báo cáo trạng thái hệ thống.
- Phản hồi tài liệu:
Đối với Control Center, việc in ra một hệ thống định sẵn có trong Report Designer để phản hồi tài liệu. Tất cả các máy tính , tags, và các kết nối đã được định hình đều được in ra bằng “print job” hay hiển thị trên màn hình.
-
Các kiểu dữ liệu dự án được xuất ra bằng cách phản hồi tài liệu:
- Máy tính: tên và kiểu máy tính (Server hay Client).
- Tag management: tên tag, kiểu dữ liệu, kết nối , kênh.
-
Kết nối: kết nối, đơn vị và tham số.
- Soạn thảo.
Editor dùng để soạn thảo và điều khiển một project hoàn chỉnh. Các bộ soạn thảo trong Control Center:
Chương trình soạn thảo |
Giải thích |
Alarm Logging (Báo động) |
Nhận các thông báo từ các quá trình để chuẩn bị, hiển thị, hồi đáp, và lưu trữ các thông báo này. |
User Administrator (Quản lý người dùng) |
Việc điều khiển truy nhập sự cho phép cho các nhóm và người sử dụng. |
Text Library (Thư viện văn bản) |
Chứa các văn bản tuỳ thuộc ngôn ngữ do ta tạo ra. |
Report Designer (Báo cáo) |
Cung cấp hệ thống báo cáo được tích hợp mà ta có thể sử dụng để báo cáo dữ liệu, các giá trị quá trình hiện hành và đã lưu trữ, các thông báo hiện hành và đã lưu trữ, hệ thống tài liệu của chính người sử dụng. |
Global Scripts (Viết chương trình) |
Cho phép ta tạo các dự án động tùy thuộc vào từng yêu cầu đặc biệt. Bộ soạn thảo này cho phép ta tạo các hàm C và các thao tác có thể được sử dụng trong một hay nhiều projects tùy theo kiểu của chúng. |
Tag Logging |
Xử lý các giá trị đo lường và lưu trữ chúng trong thời gian dài. |
Graphics Designer (Thiết kế đồ họa) |
Cung cấp các màn hình hiển thị và kết nối đến các quá trình. |
- Các thành phần của project trong Control Center.
Một project gồm các thành phần sau:
- Máy tính.
- Quản lý tag.
- Kiểu dữ liệu.
- Soạn thảo.
- Máy tính.
Thành phần “Computer” dùng để quản lý tất cả các máy tính có thể truy nhập một project hiện thời. Ta có thể đặt cấu hình cho mỗi máy tính riêng biệt.
Các thuộc tính của một máy tính:
- Tên má tính.
- Kiểu máy tính:
- Server : Máy tính trung tâm để lưu trữ dữ liệu và quản lý toàn cục trong hệ thống WinCC.
- Client : Cũng được định nghĩa như một workstation. Control Center được tải cục bộ trong từng máy tính loại này.
Chương 2: Các Thành Phần Soạn Thảo
- ALARM LOGGING.
- Chức năng.
Soạn thảo Alarm Logging đảm trách về các thông báo nhận được và lưu trữ. Nó chứa các chức năng để nhận các thông báo từ các quá trình, để chuẩn bị, hiển thị, hồi đáp và lưu trữ chúng. Với đặc tính này, Alarm Logging giúp ta tìm ra nguyên nhân của lỗi.
Hệ thống Alarm Logging có các đặc tính sau:
- Cung cấp các thông tin về lỗi và trạng thái hoạt động toàn diện.
- Cho phép sớm nhận ra các tình trạng nguy cấp.
- Tránh và giảm thiểu thời báo.
- Chất lượng sản phẩm ngày càng tăng.
- Cung cấp tài liệu.
Alarm Logging chia làm 2 thành phần: hệ thống cấu hình (Alarm Logging CS) và hệ thống run-time (Alarm Logging RT).
- Nhiệm vụ của Alarm Logging CS:
Sử dụng Alarm Logging CS để đặt cấu hình cho các thông báo để chúng được hiển thị theo cách mà ta muốn. Ta có thể thực hiện điều này trước khi hệ thống run-time khởi động. Hệ thống cấu hình Alarm Logging của WinCC cung cấp một giao diện đặc biệt mà ta tạo lập sẵn.
- Nhiệm vụ của Alarm Logging RT:
Alarm Logging có nhiệm vụ thu thập các thông báo và hồi đáp. Nó chuẩn bị các thông báo để hiển thị và lưu trữ.
- Khái quát về Alarm Logging.
- Thông báo:
Các thông báo được xuất ra từ các biến cố và được hiển thị bởi Alarm Logging theo trình tự thời gian. Hệ thống phân biệt giữa các kiểu sự cố sau:
- Binary events.
- Các dạng thông báo.
- Theo dõi các sự cố.
- Binary events: là những thay đổi trạng thái trong các tags (tag nội và tag ngoài).
-
Các dạng thông báo: chứa các mục và chức năng sau:
- Quá trình.
- Theo dõi hệ thống điều khiển.
- Các ứng dụng.
- Theo dõi các sự cố: hệ thống Alarm Logging chưa hỗ trợ việc theo dõi sự cố. Tuy nhiên, ta vẫn có thể liệt kê các sự cố:
- Tràn bộ phận lưu trữ và ROM.
- Thông báo về máy in.
- Lỗi do server.
- Sự cố truyền thông quá trình.
- Thông báo nhóm.
- Điều khiển quá trình và lưu trữ.
- Thủ tục thông báo:
WinCC hỗ trợ 2 thủ tục thông báo: thủ tục thông báo bit và thông báo đúng trình tự thời gian.
- Thủ tục thông báo bit: là thủ tục phổ biến cho phép nhận các thông báo từ PLC. Alarm Logging sẽ thu thập các giá trị thực sự từ việc quản lý tag của quản lý dữ liệu. Alarm Logging sẽ gán ngày, giờ trong thủ tục này.
- Thông báo đúng trình tự thời gian: thủ tục này giả sử rằng chính các PLCs tạo ra thông báo sự cố, tự ấn định ngày/ giờ và các giá trị quá trình cho nó. Tất cả các thông báo của PLC được nhóm lại bởi một dạng thông báo tạo sẵn cho toàn bộ project.
- Cấu trúc một thông báo:
Một thông báo chứa các thông tin hệ thống và các tham số khác, được hiển thị theo hình thức của các cột. Nếu các cột này chứa các tên đồng nhất, các giá trị và các khối giống nhau, thì chúng được gọi là các khối thông báo.
Các khối thông báo được chia thành 3 vùng sau:
- Các khối hệ thống: các khối này chứa dữ liệu hệ thống được gán bởi Alarm Logging. Các dữ liệu bao gồm: ngày, giờ, báo cáo ID.
- Các khối giá trị quy trình: các khối này chứa các giá trị truyền từ quá trình, ví dụ như vượt mức và nhiệt độ nguy cấp.
- Các khối văn bản cho người dùng: là những khối văn bản cho các thông tin tổng quát và dễ hiểu như : giải thích các thông báo, nơi lỗi xảy ra, và nguồn gốc thông báo.
- Tổ chức các thông báo:
WinCC cung cấp 16 lớp thông báo với 16 kiểu thông báo. Ta có thể đặt cấu hình cho các lớp thông báo. Mỗi một thông báo được gán với một kiểu thông báo. Các kiểu thông báo cũng được nhóm trong các lớp thông báo.
- Hiển thị các thông báo trong chế độ run time:
-
Báo cáo thông báo: một hình thức khác của việc chuyển thông báo là hiển thị bằng báo cáo. Hệ thống phân biệt giữa các kiểu sau:
- Báo cáo thông báo theo trình tự: cung cấp liên tục các thủ tục về thông báo.
- Báo cáo lưu trữ: chứa các thông tin vào nơi lưu trữ.
- Thông báo đơn và theo nhóm: nếu các thông báo được định hình riêng biệt (thông báo đơn) nhóm lại với nhau thì chúng được gọi là các thông báo theo nhóm. Một thông báo theo nhóm có thể được tạo cho mỗi lớp và kiểu thông báo. Ngoài ra ta có thể kết hợp các thông báo theo nhóm. Nếu một thông báo theo nhóm được hiển thị, nghĩa là có ít nhất một thông báo đơn được thực thi. Ta không thể nhận ra các thông báo đơn trong kiểu hiển thị này.
- Khóa và cho phép thông báo: những thông báo cá biệt, những lớp và kiểu thông báo có thể ẩn và hiện lại trong việc thu thập ở chế độ run time.
-
Ghi nhận: Alarm Logging có thể sử dụng lưu trữ trong thời gian ngắn và lưu trữ tuần tự.
- Lưu trữ trong thời gian ngắn: có thể lưu trữ trong thời gian ngắn đến 10.000 thông báo trong danh sách các thông báo.
Ta có thể tải nơi lưu trữ vào một trong hai vùng sau: bộ đệm vòng của bộ nhớ chính và trong đĩa cứng.
- Lưu trữ tuần tự: toàn bộ đĩa cứng có thể được sử dụng. Ta có thể dùng các vùng lưu trữ như: lưu trữ trong thời gian ngắn, và lưu trữ liên tục trên đĩa cứng.
- TAG LOGGING.
- Chức năng.
Tag Logging có các chức năng 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ữ các dữ liệu đó. Dữ liệu có thể cung cấp các tiêu chuẩn về công nghệ và kỹ thuật quan trọng liên quan đến trạng thái hoạt động của hệ thống.
Tag Logging chia làm 2 phần như sau:
- Hệ thống cấu hình (Tag Logging CS ).
- Hệ thống run-time (Tag Logging RT).
- Nhiệm vụ của Tag Logging CS:
Ta có thể gán tất cả các đặc tính cần thiết để lưu trữ và hiển thị cho dữ liệu bằng Tag Logging CS. Các đặc tính này phải được tạo và chuẩn bị trước khi hệ thống run-time khởi động. Tag Logging CS của WinCC cung cấp một giao diện đặc biệt cho mục đích này.
- Nhiệm vụ của Tag Logging RT:
Hệ thống Tag Logging RT nhận các giá trị dữ liệu và liên kết chúng với các đặc tính đã ấn định. Các dữ liệu định hình theo kiểu này đều được thực hiện trước để hiển thị và lưu trữ.
- Thực hiện Tag Logging:
Tag Logging được thực hiện cho các mục đích sau:
- Tối ưu hóa hệ thống.
- Cung cấp các thủ tục vận hành rõ ràng, dễ hiểu.
- Tăng năng suất.
- Tăng chất lượng sản phẩm.
- Tối ưu hóa chu kỳ delay.
- Cung cấp tài liệu.
- Các kiểu dữ liệu:
Dữ liệu được chia thành các nhóm sau:
- Dữ liệu điều hành: dữ liệu điều hành được xem là cơ sở của việc chuyển trạng thái hiện tại, khối công việc cần làm, và hướng phát triển của hệ điều hành.
- Dữ liệu đảm nhận: gồm các thông báo, dữ liệu quá trình và các giá trị đặt cho mỗi công đoạn sản xuất.
- Dữ liệu làm việc: bao gồm tất cả các dữ liệu đầu vào.
- Dữ liệu về máy: cho các phát biểu về trạng thái của máy.
- Dữ liệu quá trình: cho các phát biểu về phiên bản hiện hành và trước đó của một quá trình liên tục.
- Dữ liệu về chất lượng: định ra các phát biểu về đặc tính của một sản phẩm cần được bảo quản.
Có thể có ột vài dữ liệu xuất hiện trong nhiều lớp cùng lúc hoặc cùng một dữ liệu được gán nhiều kiểu dữ liệu khác nhau.
Tag Logging có thể thu thập và bổ túc dữ liệu quá trình. Nó cũng cung cấp các cơ chế cơ bản để thu thập và bổ túc kiểu dữ liệu nữa.
- Các phương pháp lưu trữ dữ liệu quá trình:
Dữ liệu quá trình là các giá trị đo lường được thu thập bởi các sensors đặc biệt. Để xử lý chúng trong WinCC, các dữ liệu này phải được gán vào những vùng lưu trữ hay tags.
Việc lưu trữ dữ liệu được điều khiển thông qua sự kết hợp giữa các sự kiện và các chu trình. Người đặt cấu hình cho hệ thống xác định loại dữ liệu nào cần được cất trong mỗi nơi lưu trữ. Ta có thể chọn một trong các phương pháp lưu trữ như sau:
- Việc lưu trữ liên tục tuần hoàn sẽ giám sát các giá trị đo lường/ tags.
- Việc lưu trữ tuần hoàn nhận giá trị hiện thời khi ngắt đã được đặt cấu hình tương ứng xảy ra.
- Việc lưu trữ tuần hoàn có chọn lọc sẽ liên kết điều khiển ngắt với điều khiển việc lưu trữ thông qua các chu trình.
- Việc lưu trữ điều khiển quá trình nhận sự thực thi của hệ thống thông báo.
- Tags:
Tags được tạo trong WinCC và được phân loại bởi quản lý dữ liệu trong suốt hệ thống. Các tags này tượng trưng cho các phép tính toán bên trong, các giá trị giới hạn, kết quả liên kết, hoặc các sự kiện của hệ thống đơn giản như thời gian, sử dụng chuột, bàn phím, hay các giá trị đo lường.
Tag gồm có: tag ngoài, tag nội, tag dạng thông báo.
- Tags ngoài/nội:
Tags ngoài thu thập các biến của quá trình. Tags nội thu thập các giá trị và các trạng thái của hệ thống bên trong.
- Các tags nhị phân và analog là những thành phần Tag Logging có chứa các đặc tính lưu trữ của các giá trị quá trình (tags ngoài) và tags nội.
- Các tags lưu trữ nén hỗ trợ việc lưu trữ trong thời gian dài cho tất cả các kiểu tag Tag Logging khác. Ta có thể thêm các chức năng chọn lựa như giá trị cao/thấp hoặc thực thi các hàm user-defined thông qua phần viết chương trình.
- Các tags dạng thông báo: một hay nhiều điểm đo lường từ quá trình có thể được nhóm vào tag dạng thông báo. Kiểu truyền này được đặc biệt sử dụng khi ghi nhận sự thực thi quá trình nhanh hoặc khi có sự thu thập dữ liệu trong các khối của PLC. Các giá trị nhị phân hay analog nói chung cũng được sử dụng. Một số dạng cũng được đặt cấu hình để thích ứng với việc thiết lập trong quản lý dữ liệu của WinCC. Chúng cũng được thu nhận bởi hệ thống với hình thức các tags dữ liệu thô.
- Các giá trị đo lường:
Các giá trị đo lường là dữ liệu được chuyển từ quá trình thực tế bằng cách liên kết các kênh giao tiếp với hệ thống lưu trữ WinCC. Các giá trị đo lường này đặc trưng cho quá trình thực tế. Chúng bao gồm : nhiệt độ, áp suất, tốc độ, thông báo ngắt, và công tắc giới hạn.
- Các ngắt:
Ngắt có thể xảy ra dưới nhiều hình thức. Có các dạng ngắt sau:
- Các ngắt nhị phân.
- Ngắt giá trị giới hạn.
- Ngắt điều khiển thời gian.
Các ngắt và sự liên kết các ngắt được lập trình trong modul Global Scripts sử dụng các hàm viết chương trình. Chúng có thể được gán với tag thích hợp trong Tag Logging CS với sự trợ giúp của bộ duyệt tìm hàm (browser). Các hàm này sẽ kích hoạt khi chế độ RunTime khởi động.
- Ngắt nhị phân:
Các ngắt nhị phân có phản ứng với sự thay đổi của tag nhị phân (tag nội và tag ngoài).
- Ngắt giá trị giới hạn:
Các ngắt giá trị giới hạn có phản ứng với hiện tượng trễ sau:
- Vượt mức giá trị giới hạn cao.
- Vượt mức giá trị giới hạn thấp.
- Đạt đến giá trị giới hạn.
- Ngắt thời gian:
Ngắt thời gian cóphản ứng với:
- Đặt thời gian nghỉ.
- Dịch chuyển sự thay đổi.
- Khoảng thời gian sau khởi động.
- Các chu trình:
Các chu kỳ thời gian khác nhau được tạo lập để thu thập và lưu trữ. Chúng tạo cơ sở để thu thập dữ liệu trong các hệ thống digital. Khi chúng là đầu vào, chúng cũng được cung cấp độ dài thời gian (thời gian giữa hai lần quét). Khoảng thời gian tối thiểu là 500 ms.
Tag Logging có sự khác nhau giữa các chu kỳ thu thập và lưu trữ. Khoảng thời gian của các chu kỳ là một số nguyên gồm nhiều đoạn thời gian của chu kỳ thu thập tương ứng.
- Chu kỳ thu thập:
Chu kỳ thu thập giúp Tag Logging RT thu thập tag quản lý dữ liệu. Quản lý dữ liệu thực thi ảnh quá trình của nó một cách liên tục. Tag Logging RT thu nhận nội dung dữ liệu tại lúc bắt đầu chu kỳ thu thập.
Khi xác định các chu kỳ thu thập với khoảng thời gian nhỏ, phải đảm bảo rằng khoảng thời gian này lớn hơn hẳn so với khoảng thời gian thu thập phần cứng. Với khoảng thời gian nhỏ, nó càng có khả năng lưu trữ dữ liệu tạm thời trong PLC và gởi đến WinCC bằng một dạng thông báo.
- Chu kỳ lưu trữ:
Chu kỳ lưu trữ chuyển các tags quản lý dữ liệu đã được thu thập và xử lý đến nơi sẵn sàng lưu trữ chúng.
Tại những thời điểm xác định trước, chu kỳ lưu trữ sẽ phát các tags ra một cách đều đặn cho mục đích hiển thị và lưu trữ. Mối quan hệ giữa chu kỳ lưu trữ và chu kỳ thu thập xác định số lượng dữ liệu quá trình được xử lý tại cùng thời điểm. Chu kỳ thu thập sẽ cung cấp các dữ liệu quá trình này.
- Lưu trữ tuần hoàn liên tục:
Việc thu thập dữ liệu bắt đầu khi hệ thống khởi động (chế độ Run Time) và tiếp diễn trong suốt chu kỳ cho đến khi dừng hệ thống.
Ta có thể định chu kỳ thu thập và chu kỳ lưu trữ độc lập với nhau trong hệ thống lưu trữ của WinCC. Một chu kỳ có thể được định từ 1 giây đến 1 năm. Về mặt cấu hình, các chu kỳ thời gian được tạo cho mỗi giá trị đo lường/ tag hay cho một nhóm các giá trị này và do vậy chúng là hard-coded tĩnh trong modul run time. Với mỗi chức năng lưu trữ, ta có thể chọn để lưu trữ các giá trị trung bình, min, max hay giá trị thực.
- Lưu trữ tuần hoàn có chọn lọc:
Việc lưu trữ bắt đầu khi ngắt xảy ra và được thực hiện với chu kỳ thời gian không đổi cho đến khi một ngắt thứ hai xảy ra. Khi có tín hiệu dừng, giá trị thu thập mới nhất sẽ được lưu trữ.
Sau đây là các ví dụ về các ngắt khởi động và dừng:
- Trạng thái chuyển đổi giá trị đo lường/ tag logic.
- Đạt đến giá trị giới hạn của giá trị đo lường/ tag.
- Ngày, giờ.
- Sử dụng chuột hay nhấn phím trong WinCC.
- Ra lệnh từ các hệ thống cấp cao hơn bằng quản lý dữ liệu hay ứng dụng ngoài.
- Kết hợp các ý trên.
Các ngắt được xử lý với sự trợ giúp của việc lập trình thao tác.
Về mặt lập trình, việc ấn định các ngắt, các chu kỳ lưu trữ và thu thập được xác định cho mỗi tag hoặc nhóm tag.
- Lưu trữ tuần hoàn:
Trong lưu trữ tuần hoàn, một giá trị đo lường/ tag nhị phân hay analog chỉ được lưu trữ một lần khi có ngắt xảy ra.
Các ví dụ về các ngắt khởi động và dừng:
- Trạng thái chuyển đổi giá trị đo lường/ tag (kích bằng cạnh).
- Đạt đến giá trị giới hạn của giá trị đo lường/ tag analog.
- Kết hợp hai ý trên.
- Các ngắt được tạo ra tuỳ thuộc vào ngày, giờ.
- Các dạng thông báo.
- Lưu trữ điều khiển quá trình:
Các giá trị quá trình lưu trữ được nhóm vào các khối trong PLC và được gởi dưới dạng các tags dữ liệu thô đến Tag Logging bằng quản lý dữ liệu. Sau đó các dữ liệu sẽ được chuẩn bị sẵn trong Tag Logging sử dụng chương trình quy định, dạng DLL, và được cất vào nơi lưu trữ. Dạng DLL này là một kênh phụ thuộc, do đó nó phải tuân thủ theo nhà sản xuất về kênh hay về PLC.
- Ghi nhận:
Mỗi vị trí đo lường có thể được ghi bởi Tag Logging bằng 3 cách khác nhau:
- Bộ đệm vòng của vùng nhớ chính.
- Bộ đệm vòng trong đĩa cứng.
- Lưu trữ tuần tự trong đĩa cứng.
- Cấu trúc của Tag Logging CS.
Tag LoggingCS có các phần chính sau:
- Timers: tạo các chu kỳ thu thập và lưu trữ.
- Archives: tạo các vùng lưu trữ và các tags.
- Trend Window Templates: hiển thị giá trị đo lường bằng đường cong.
- Table Window Templates: hiển thị giá trị đo lường theo dạng bảng.
- Timers:
Tag Logging phân biệt 2 hệ thống thời gian khác nhau: thời gian thu thập và thời gian lưu trữ.
- Thời gian thu thập: là những khoảng thời gian mà các giá trị trong đó được copy từ ảnh quá trình của quản lý dữ liệu bởi Tag Logging.
- Thời gian lưu trữ: là những khoảng thời gian mà dữ liệu trong đó được nạp vào vùng lưu trữ. Thời gian lưu trữ luôn là một số nguyên gồm nhiều khoảng thời gian thu thập. Giá trị mới nhất được nạp vào vùng lưu trữ.
- Thời gian nén: được sử dụng để tạo tầm thời gian giới hạn trong đó dữ liệu được nén.
- Arcives:
Ta có thể lưu trữ bằng 1 trong 3 cách:
- Lưu trữ giá trị quá trình: nhận nội dung của các tags quản lý dữ liệu.
- Lưu trữ nén: nén dữ liệu và liên kết các giá trị rất hiệu quả. Bằng cách này, các giá trị đo lường được bổ túc trực tiếp và ghi nhận ngay lập tức.
Lưu trữ nén cho phép lưu trữ trong thời gian dài cho tất cả các kiểu tags khác trong Tag Logging.
- Lưu trữ theo người dùng: một số tags user-defined được nạp vào vùng lưu trữ cho người sử dụng. Vùng lưu trữ này dùng để thu thập dữ liệu quan trọng, ấn định tham số sản xuất, điều khiển dữ liệu liệt kê.
Giao tiếp giữa PLC và WinCC được thực hiện bởi các dạng thông báo tuân thủ theo các quy ước đặc biệt về cấu trúc.
.............................................
PHẦN 3
ỨNG DỤNG HỆ SCADA VÀO HỆ THỐNG PHA TRỘN HÓA CHẤT
Chương 1: Hệ Thống SCADA
I. GIỚI THIỆU HỆ SCADA.
SCADA (Supervisory Control And Data Acquisition = hệ thống giám sát, điều khiển và thu thập dữ liệu) là hệ thống cho phép người điều hành giám sát và điều khiển các quá trình mà chúng được phân bố trong các nơi ở xa.
Có nhiều quá trình sử dụng hệ thống SCADA như: thủy điện, các khâu xử lý và phân phối nước , khí tự nhiên, v.v…Các hệ thống SCADA cho phép các nơi xa liên lạc với phương tiện điều khiển và cung cấp dữ liệu điều khiển cần thiết cho các quá trình điều khiển. Khi khoảng cách đến các nơi xa tăng thì càng khó truy cập hơn, khi đó SCADA trở thành sự chọn tốt nhất cho người điều hành để điều chỉnh và quan sát. Khoảng cách và sự ở xa là hai yếu tố chính để cài đặt các hệ thống SCADA .
Các hệ thống SCADA hiện đại có nhiều đặc tính tiên tiến như: kiến trúc phân bố, cơ sở dữ liệu phân bố, giao tiếp đồ họa với người sử dụng (GUI = Graphic User Interface), các đơn vị đo lường từ xa thông minh v.v…
Hệ SCADA thường được dùng để chỉ tất cả các hệ thống máy tính được thiết kế để thực hiện các chức năng sau:
· Thu thập dữ liệu từ các thiết bị công nghiệp hoặc các cảm biến/ chuyển đổi năng lượng.
· Xử lý và thực hiện các phép tính trên dữ liệu thu thập được.
· Hiển thị dữ liệu thu thập và dữ liệu được suy ra.
· Nhận lệnh từ người điều hành và thực hiện gởi các lệnh điều khiển đến các thiết bị của nhà máy.
· Xử lý các lệnh điều khiển tự động hoặc bằng tay đúng lúc và tin cậy.
Các hệ thống như vậy có thể được gọi bằng các tên khác trong các tình huống và các kỹ nghệ khác, như: DAC (Data Acquition and Control = Điều khiển và thu thập dữ liệu), DCS (Distributed Control Systems = Các hệ thống điều khiển phân bố), v.v…Tất cả các hệ thống này về cơ bản thực hiện cùng các chức năng. Xuất phát từ các công việc ứng dụng cụ thể mà có sự khác biệt giữa chúng ở các đặc điểm sau:
· Vị trí và sự phân bố các nguồn dữ liệu công nghiệp (các thiết bị nhà máy).
· Lượng dữ liệu được thu thập.
· Tốc độ thu thập dữ liệu.
· Các lệnh điều khiển có thể được tạo ra một cách tự động bởi các hệ thống này ở mức độ nào.
· Kiểu tính toán và vị trí mà các tính toán và các tác động điều khiển sẽ được thực hiện.
Hệ thống SCADA có 4 phần tử chính: người điều hành (operator), phần tử thiết bị đầu cuối chính MTU (Master Terminal Unit), truyền thông liên lạc và phần tử thiết bị đầu cuối ở xa RTU (Remote Terminal Unit). Người điều hành thực hiện điều khiển qua thông tin được mô tả trong khối hiển thị hình ảnh VDU (Video Display Unit). Phần nhập của hệ thông thường xuất phát từ người điều hành qua bàn phím của MTU. Thông tin từ các nơi ở xa được MTU giám sát và hiển thị các thông tin này cho người điều hành . Quan hệ giữa MTU và RTU tương tự như giữa chủ và tớ.
v MTU (Master Terminal Unit)
ĐỒ ÁN TỐT NGHIỆP ĐIỆN TỬ Thiết Kế Hệ SCADA Dùng WinCC, thuyết minh ĐỒ ÁN TỐT NGHIỆP ĐIỆN TỬ SCADA, bộ điều khiển lập trình SCADA, Ngôn ngữ lập trình SCADA, Thực thi chương trình , LẬP TRÌNH