Phòng thí nghi ệ m Rockwell Automation
Phòng thí nghiệm Rockwell Automation tại ĐHBK Hà Nội, được tài trợ bởi tập đoàn Rockwell Automation (Hoa Kỳ), là một cơ sở hiện đại trong lĩnh vực tự động hóa Đây là minh chứng cho sự hỗ trợ quý báu từ cộng đồng quốc tế trong việc phát triển kinh tế kỹ thuật của Việt Nam, đồng thời phản ánh sự hợp tác hiệu quả giữa ĐHBK Hà Nội và các đối tác quốc tế Tự động hóa đóng vai trò then chốt trong các ngành kinh tế toàn cầu, và sự hiện diện của phòng thí nghiệm này trong khuôn viên ĐHBK Hà Nội – một trong những trường hàng đầu Việt Nam về khoa học công nghệ – sẽ thúc đẩy nghiên cứu khoa học và đào tạo, nâng cao hiệu quả khai thác thiết bị.
Phòng thí nghiệm tại ĐHBK Hà Nội cung cấp cho sinh viên cơ hội tiếp cận công nghệ và thiết bị tiên tiến nhất trong lĩnh vực tự động hóa công nghiệp và giải pháp mạng truyền thông công nghiệp Điều này giúp sinh viên phát triển kỹ năng và kiến thức, từ đó trở thành những kỹ sư hàng đầu về tự động hóa công nghiệp tại Việt Nam và khu vực.
CÁC THIẾT BỊ PHẦN CỨNG
H ệ ControlLogix
Hệ ControlLogix cung cấp khả năng điều khiển hiệu quả cao với thiết kế mô-đun, phù hợp cho nhiều ứng dụng như điều khiển tuần tự, điều khiển quá trình, biến tần và điều khiển chuyển động Nó cho phép kết hợp linh hoạt nhiều bộ xử lý, mạng lưới và I/O mà không gặp phải giới hạn Khi cần mở rộng hệ thống, mạng ControlNet có thể được sử dụng để thực hiện điều khiển phân tán một cách hiệu quả.
Hệ thống ControlLogix có thể hoạt động như một bộ điều khiển độc lập kết hợp với module I/O trong một khung duy nhất, hoặc mở rộng thành một hệ thống phân tán với nhiều bộ điều khiển và mạng lưới hoạt động đồng bộ.
Bộ điều khiển ControlLogix cung cấp một giải pháp điều khiển phân cấp, cho phép xác định một lượng lớn các đầu vào ra
Bộ điều khiển ControlLogix có thể được lắp đặt vào bất kỳ khe cắm nào trong khung ControlLogix I/O, cho phép nhiều bộ điều khiển hoạt động trên cùng một khung Mặc dù các bộ điều khiển này giao tiếp với nhau qua mạch nền (backplane), nhưng chúng vẫn hoạt động độc lập.
Bộ điều khiển ControlLogix có khả năng giám sát và điều khiển các đầu vào ra I/O thông qua mạch nền hoặc liên kết I/O Nó hỗ trợ giao tiếp qua các mạng như EtherNet/IP, ControlNet, DeviceNet, DH+, Remote I/O và RS-232-C (giao thức DF1/DH-485) Để đảm bảo khả năng giao tiếp, cần cài đặt các module giao diện tương ứng vào trong khung của bộ điều khiển ControlLogix.
Bộ điều khiển ControlLogix L61 sử dụng Module CPU ControlLogix 5561
Module CPU được trang bị 1 cổng RS-232 cho truyền thông nối tiếp, hỗ trợ nhiều loại kết nối mạng như EtherNet/IP, ControlNet và DeviceNet Bộ điều khiển có khả năng xử lý đồng thời tối đa 32 tác vụ và 100 chương trình.
This controller fully supports redundancy modes and various programming languages, including Relay Ladder, Function Block Diagram, Structured Text, and Sequential Function Block (SFC).
• Bộ nhớ dữ liệu và chương trình logic: 2MB, bộ nhớ I/O: 478KB
Hình 2-2 C ấ u trúc b ộ nh ớ b ộ điề u khi ể n ControlLogix1756
• Bộ nhớ dữ liệu và chương trình logic bao gồm:
- Vùng nhớ chứa các chương trình ứng dụng (Program soure code)
- Vùng nhớ các tham số và biến thông thường (tag data), dữ liệu các base tag được người lập trình định nghĩa trong chương trình
- Vùng nhớ Rslinx tag group lists, là dữ liệu các tag phục vụ giao tiếp giữa bộ điều khiển với phần mềm RSLogix 5000 qua phần mềm Rslinx
• Bộ nhớ vào ra I/O bao gồm:
Vùng nhớ dữ liệu I/O (I/O data) là khu vực lưu trữ thông tin của các tag vào-ra, được tự động thiết lập bởi chương trình dựa trên các khai báo của các module vào-ra Trạng thái của các tag này thay đổi ngay lập tức khi có sự thay đổi ở các đầu vào và đầu ra, và nó không hoạt động như một miền bộ đệm vào ra.
- Vùng nhớ dữ liệu Force I/O: chứa dữ liệu trạng thái của các module vào ra được người lập trình ép trạng thái
- Vùng bộ đệm truyền tin (Message buffers): miền chứa các bộ đệm phục vụ cho việc giao tiếp giữa các bộ điều khiển với nhau
Vùng bộ nhớ chứa các tag được định nghĩa bởi lập trình viên, gọi là Produced/Consumed tags, có vai trò quan trọng trong việc giao tiếp giữa các bộ điều khiển Những tag này giúp truyền tải dữ liệu một cách hiệu quả, đảm bảo sự tương tác và phối hợp giữa các hệ thống.
• Hỗ trợ thẻ nhớ: 64MB (1784-CF64) hoặc 128MB (1784-CF128)
• Số kết nối vào ra số tối đa: 128.000
• Số kết nối vào ra tương tự tối đa: 4.000
• Tổng số vào ra tối đa: 128.000
• Nguồn: 1756-PA72/C, 1756-PA75/B, 1756-PB72/C, 1756-PB75/B, 1756-PC75/B, 1756-PH75/B, 1756-PA75R, 1756-PB75R, 1756-PSCA2
• Pin: Series A: 1756-BA1, 1756-BATM, 1756-BATA; Series B: 1756- BA2
Tính toán sử dụng bộ nhớ bộđiều khiển:
B ả ng 2-1 Ước lượng đượ c b ộ nh ớ c ầ n thi ế t cho b ộ điề u khi ể n
(minimum 1 task) Digital I/O points _ * 400 = _ bytes
(per alarm) FactoryTalk subscriber _ * 10000 = _ bytes
Sử dụng bộ điều khiển dự phòng với bộ nhớ lớn gấp đôi so với lượng tính toán hiện tại là rất quan trọng Để đảm bảo khả năng mở rộng cho dự án trong tương lai, nên để trống từ 20-30% bộ nhớ của bộ điều khiển.
Hệ thống ControlLogix là một hệ thống module dựa trên khung 1756 I/O, cho phép lắp đặt các module ở bất kỳ khe nào trên mạch nền Mạch nền này cung cấp khả năng giao tiếp tốc độ cao giữa các module, với nhiều loại khung khác nhau, bao gồm 4, 7, 10, 13 và 17 khe cắm Trong phòng thí nghiệm, loại khung được sử dụng là 1756-A10, có 10 khe cắm và công suất tiêu thụ 1,8 W.
Bộ điều khiển ControlLogix L61 tại PTN sử dụng nguồn 1756-PA75/B, được thiết kế để cung cấp điện áp 1,2V, 3,3V, 5V và 24V DC cho mạch nền của khung 1756.
- Dải điện áp vào: 85…265V AC
- Điện áp vào chuẩn: 120V/220V AC
- Dải tần số điện áp vào: 47…63 Hz
- Công suất vào cực đại: 100VA/ 100W
- Công suất ra cực đại: 75W
- Công suất tiêu thụ: 25W khi nhiệt độ từ 0 đến 60 o C
Giao thức Ethernet Công nghiệp (EtherNet/IP) là một chuẩn mở của mạng công nghiệp, hỗ trợ thông điệp I/O thời gian thực
Module để nối mạng EtherNet cho Bộ ĐIềU KHIểN ở PTN là module 1756- ENBT Module này hỗ trợ:
- Điều khiển các module I/O và drive thông qua mạng EtherNet/IP
Hoạt động như 1 adapter cho các I/O phân tán trên các liên kết EtherNet/IP từ xa
- Dẫn thông điệp tới các thiết bị mạng khác
- Tốc độ truyền thông: 10/100Mbps
- Cổng kết nối: 1 cổng Ethernet RJ45 Category 5
Mạng ControlNet là một mạng mở, điều khiển mạng theo thời gian thực, cho những ứng dụng tốc độ cao Mạng ControlNet sử dụng giao thức công nghiệp
(Common Industrial Protocol - CIP) để tích hợp chức năng của 1 mạng I/O và 1 mạng peer to peer cho phép hoạt động ở tốc độ cao tất cả các chức năng
Module ControlNet ở phòng thí nghiệm là 1756-CNBR, hỗ trợ tạo cầu liên kết, chế độ dự phòng
- Tốc độ truyền thông: 5 Mbps
- Số node kết nối tối đa: 99
- Cổng kết nối: 2 cổng ControlNet BNC, 1 cổng ControlNet RJ45
Mạng DeviceNet là mạng mở, cấp thấp, tạo kết nối giữa các thiết bị công nghiệp cấp trường và các thiết bị cấp cao
Hiện tại chỉ có một loại module DeviceNet là 1756-DNB
- Tốc độ truyền thông: 125Kbps với khoảng cách tối đa 500m, 250Kbps với khoảng cách tối đa 250m, 500Kbps với khoảng cách tối đa 100m
- Số node kết nối tối đa: 64
- Cổng kết nối: 1 kết nối Devicenet 5 chân, 1 cổng USB1.1
2.1.7 Module vào/ra s ố (Digital Input/Output Module)
Hệ ControlLogix có các module vào/ra số sau:
• Module vào/ra số sử dụng điện áp xoay chiều (Digital AC Input/Output Modules)
• Module vào/ra số sử dụng điện áp một chiều (Digital DC Input/Output Modules)
Các module này bao gồm nhiều loại khác nhau như module chẩn đoán (Diagnostic) giúp phát hiện kết nối ở đầu vào, tải ở đầu ra và sự thay đổi trạng thái ở module ra Ngoài ra, còn có module với cầu chì điện tử (Electronic fusing) và module có cách ly (Individually isolated) Trong đồ án này, chúng em sẽ giới thiệu hai loại module cụ thể.
DI có ở PTN là module 1756-IB16D và module 1756-IA16, và 2 loại module ra số
DO là 1756-OB16D và 1756-OA16
2.1.7.1 Module vào số một chiều có tính năng chẩn đoán
The 1756-IB16D module is equipped with advanced features such as Open Wire Detection for connection error identification, Field Power Loss Detection to monitor energy loss in field devices, and Diagnostic Change of State for effective status diagnosis.
- Công suất tiêu thụ tối đa: 5,8W
- Dải điện áp trạng thái On: 10-30V
- Điện áp vào chuẩn: 24V DC
- Dòng trạng thái On: 2mA đối với 10V DC, 13mA đối với 30V DC
- Điện áp trạng thái Off: 5V
2.1.7.2 Module vào số sử dụng điện áp xoay chiều
- Công suất tiêu thụ cực đại: 5,8W
- Dải điện áp trạng thái On: 74-132V AC, tần số 47-63Hz
- Điện áp vào chuẩn: 120V AC
- Dòng trạng thái On: 5mA đối với 74V AC, 13mA đối với 132V AC
- Điện áp trạng thái Off: 20V
- Dòng lớn nhất trạng thái Off: 2,5mA
2.1.7.3 Module ra số một chiều có tính năng chẩn đoán
Tên module: 1756-OB16D Module này có khả năng phát hiện không tải (No Load Detection), kiểm tra đầu ra (Output Verify Detection)
- Công suất tiêu thụ tối đa: 3,3W
- Dải điện áp ra: 19,2-30V DC
- Dòng tối đa mỗi điểm: 2 A ở 30 °C, 1 A ở 60 °C
- Dòng tối đa mỗi module:8 A ở 30 °C, 4 A ở 60 °C
2.1.7.4 Module ra số sử dụng điện áp xoay chiều
Công suát tiêu thụ cực đại: 6,5W ở 60
- Dải điện áp ra: 74-265V AC, tần số 47-63Hz
- Dòng tối đa mỗi điểm:0.5 A ở 60 °C
- Dòng tối đa mỗi module: 4 A ở 60 °C
- Dòng tải tối thiểu: 10mA trên 1 điểm
- Sụt áp lớn nhất ở trạng thái On: 1,5V đối với dòng tải 0,5A; 5,7V đối với dòng tải < 50mA
- Dòng rò lớn nhất ở trạng thái Off: 3mA trên 1 điểm
2.1.8 Module vào/ra tương tự ( Analog I/O Modules )
Hệ ControlLogix có các module vào/ra tương tự sau:
• Module vào tương tự (Analog Input Module - AI): Số cổng vào ra có thể là 2, 4, 6, 8, 16 tùy thuộc từng loại module, độ phân giải từ 16-21 bit
• Module ra tương tự (Analog Output Module - AO): Số cổng vào ra có thể là 4, 6, 8 tùy thuộc từng loại module, độ phân giải từ 13-16 bit
• Module vào/ra tương tự (Analog Combination Input and Output Module):
4 cổng vào, 2 cổng ra (1756-IF4FXOF2F) , độ phân giải từ 13-14 bit.
H ệ CompactLogix
Dòng sản phẩm CompactLogix với tính năng nổi bật, khả năng mở rộng linh hoạt và kích thước nhỏ gọn, là lựa chọn lý tưởng cho việc điều khiển thiết bị, thu thập và xử lý dữ liệu, cũng như các ứng dụng khác yêu cầu ít đầu vào ra.
Module CPU Logix 5332E Processor tích hợp sẵn 1 cổng RS-232, 1 cổng EtherNet/IP và 1 khe cắm thẻ nhớ, bộ nhớ trong 750KB
- Cổng RS-232 dùng để kết nối bộ điều khiển với máy tính
- Cổng EtherNet/IP dùng để kết nối bộ điều khiển với máy tính hoặc nối mạng với các thiết bị trên mạng EtherNet
- Khe cắm thẻ nhớ hỗ trợ việc lưu trữ project và dữ liệu, hỗ trợ 2 loại thẻ nhớ là thẻ 64MB (1784-CF64) và thẻ 128MB (1784-CF128)
Compact L32E có khả năng mở rộng tối đa 16 module vào ra và hỗ trợ đầy đủ các kết nối như EtherNet, ControlNet, và DeviceNet Trong phòng thí nghiệm, chúng tôi sử dụng kết nối EtherNet để liên kết các bộ điều khiển với máy tính.
L32E có 1 bộ nhớ dùng để lưu trữ dữ liệu, các phép toán logic và giá trị vào ra I/O:
Hình 2-10 C ấ u trúc b ộ nh ớ b ộ điề u khi ể n CompactLogix 1769
CompactLogix L32E sở hữu một CPU duy nhất để thực hiện toàn bộ các nhiệm vụ, bao gồm xử lý mã chương trình và quản lý truyền thông vào-ra Mặc dù vậy, các tác vụ liên quan đến vào-ra và truyền thông được phân chia rõ ràng, mô phỏng cấu trúc Backplane CPU của dòng ControlLogix.
Tên module : 1769-PA2 seri A rev 3
- Điện áp vận hành: 85-265V AC, 47-63 Hz
- Công suất tiêu thụ: 100 VA ở 120V AC, 130 VA ở 240V AC
Tên module : DeviceNet Scanner 1769-SDN/B seri B rev 2.2
- Tốc độ truyền thông: 125Kbps với khoảng cách tối đa 500m, 250Kbps với khoảng cách tối đa 250m, 500Kbps với khoảng cách tối đa 100m
- Dòng yêu cầu tối đa: 90 mA ở 11V DC, 110 mA ở 25V DC
- Số node kết nối tối đa: 64
- Công suất tiêu thụ: 2,2W tại 5V
Hình 2-12 Ví d ụ v ề c ấ u hình m ạ ng DeviceNet
Tên module : Module 1769-IQ32 seri A rev 1
- Dải điện áp hoạt động: 10 đến 30V DC ở 30 o C; 10 đến 26,4V DC ở 60 o C
- Điện áp trạng thái Off lớn nhất: 5V DC
- Dòng trạng thái Off lớn nhất: 1,5mA
- Điện áp trạng thái On nhỏ nhất: 10V DC
- Dòng trạng thái On nhỏ nhất: 2,0mA
Tên module : Module 1769-OB32 seri A rev 1
- Dải điện áp hoạt động: 20,4V DC đến 26,4V DC
- Dòng rò trạng thái Off: 1,0mA ở 26,4V DC
- Dòng trạng thái On nhỏ nhất: 1,0 mA
- Sụt áp lớn nhất trạng thái On: 1,0V DC ở 1,0A
Tên module : Module 1769-IF4 seri A rev2
• Dải tín hiệu analog hoạt động bình thường
- Điện áp: ±10V DC, 0 đến 10V DC, 0 đến 5V DC, 1 đến 5V DC
- Dòng: 0 đến 20mA, 4 đến 20mA
• Dải tín hiệu analog có thể chấp nhận được
- Điện áp: ±10,5VDC; -0,5 đến 10,5V DC; -0,5 đến 5,25V DC; 0,5 đến 5,25V DC
- Dòng: 0 đến 21mA; 3,2 đến 21mA
Tên module : Module 1769-OF2 seri A rev2
• Dải tín hiệu analog hoạt động bình thường
- Điện áp: ±10V DC, 0 đến 10V DC, 0 đến 5V DC, 1 đến 5V DC
- Dòng: 0 đến 20mA, 4 đến 20mA
• Dải tín hiệu analog rộng nhất đưa ra được
- Điện áp: ±10,5VDC; -0,5 đến 10,5V DC; -0,5 đến 5,25V DC; 0,5 đến 5,25V DC
- Dòng: 0 đến 21mA; 3,2 đến 21mA
• Dòng tải tối đa: 10mA
• Bảo vệ ngắn mạch tối đa: 21mA
CÁC PHẦN MỀM ỨNG DUNG
Ph ầ n m ề m qu ả n lí k ế t n ố i RSLinx
Phần mềm RSLinx là giải pháp truyền thông toàn diện kết nối giữa mạng và các thiết bị của Allen-Bradley với các hệ thống của Microsoft Windows như
Windows XP, Windows Server, Windows 2000
Phần mềm này kết nối các bộ điều khiển khả trình của Allen-Bradley với nhiều phần mềm của Rockwell và các ứng dụng của Allen-Bradley, giúp tối ưu hóa quy trình tự động hóa.
RSLinx includes drivers that enable connectivity between Microsoft Windows systems and Allen-Bradley networks and devices Additionally, RSLinx functions as an OPC server (OLE for Process Control) and DDE server (Dynamic Data Exchange), providing data access for OPC clients across various application programs.
3.1.2 Các ch ức năng cơ bả n
RSLinx có 2 chức năng cơ bản là quản lý kết nối và tạo OPC/DDE server
Mở cửa sổ Configure Drivers trong Communications:
Trong Available Driver Types chọn loại Driver của thiết bị mà ta cần quan tâm, kích Add New, đặt tên rồi kích Close để đóng cửa sổ Configure Drivers
Next, open the RSWho window in Communications The RSWho window displays all devices connected to Windows based on the selected drivers.
Dữ liệu của OPC server được cấu hình trong các Topic Để tạo một Topic, mở cửa sổ Topic Configuration trong OPC/DDE :
Hình 3-3 C ử a s ổ c ấ u hình OPC/DDE server
Chọn thẻ "Data Source" và xác định thiết bị chứa nguồn dữ liệu cần thiết, thường là các modul điều khiển Sau đó, nhấn "New" để đặt tên và cập nhật dữ liệu vào topic vừa tạo.
Done để đóng cửa sổ DDE/OPC Topic Configuration
Ph ầ n m ề m l ậ p trình b ộ điề u khi ể n RSLogix5000
RSLogix5000 là phần mềm chuyên dụng cho lập trình điều khiển quá trình và điều khiển chuyển động Phần mềm này mang đến một môi trường thân thiện với người dùng, với giao diện tuân thủ tiêu chuẩn IEC61131-3.
RSLogix5000 được thiết kế lập trình cho dòng bộ điều khiển Logix5000 của hãng Rockwell Automation Phần mềm RSLogix5000 có các tính năng sau đây:
• Dễ dàng cấu hình và lập trình cho bộ điều khiển: nhờ có giao diện đồ hoạ (graphical controller organizer) rất trực quan và dễ sử dụng:
Hình 3-4 Giao diện đồ hoạ quản lí bộ điều khiển
Dữ liệu có cấu trúc bao gồm các cấu trúc thông dụng đã được định nghĩa sẵn và các cấu trúc do người dùng tự định nghĩa, mang lại sự linh hoạt cho các ứng dụng.
• Hỗ trợ cả 4 ngôn ngữ lập trình: relay ladder, function block diagram, sequential function chart, và structured text
Hệ thống hỗ trợ thu thập và lưu trữ số liệu, cho phép vẽ đồ thị thời gian thực hoặc từ bảng dữ liệu quá khứ cho các biến, mang lại sự thuận tiện trong việc phân tích và điều khiển.
• Cho phép đặt giá trị tới từng bit, tag trong chế độ runtime, giúp dễ dàng trong việc thử nghiệm chương trình
• Giúp bảo mật chương trình với nhiều cấp password
Cấu trúc của một Project gồm 7 phần: Controller test, Tasks, Motion Groups, Add-On Instructions, Data Types, Trends, I/O Configuration
- Controller tags: Bảng quản lý các tag của bộ điều khiển
- Controller Fault Handler: Chứa chương trình được sử dụng khi bộ điều khiển có sự cố
- Power-Up Handler: Chứa chương trình được sử dụng khi cấp nguồn cho bộ điều khiển
• Tasks: Các tác vụ của bộ điều khiển Một task chứa các Program và các Equipment Phase
- Equipment Phase cung cấp các mô hình trạng thái cho các thiết bị hoạt động theo mẻ Equipment Phase bao gồm:
Phase: bảng quản lý các phase của thiết bị
Phase State routine: chứa code lập trình cho các hoạt động của một mẻ
Program Tags: Bảng quản lý các tag của Program
Các routine: chứa code lập trình cho bộ điều khiển
• Motion Groups: phần thiết lập điều khiển chuyển động
• Add-On Instructions: là những đoạn mã đóng kín, được người lập trình tạo ra như những functions chuẩn được sử dụng thường xuyên Nó được
Add-On Instructions cho phép gọi 24 chức năng trong các chương trình thông qua giao diện do lập trình viên xác định Chúng hoạt động tương tự như các Function Block trong các bộ điều khiển PLC của Siemens và Omron, và được ứng dụng trong lập trình có cấu trúc.
• Data Types: chứa các cấu trúc dữ liệu được định nghĩa sẵn và các cấu trúc dữ liệu do người sử dụng tự định nghĩa
• Trends: Phần cấu hình cho việc thu thập, lưu trữ và vẽ đồ thị các biến của bộ điều khiển
• I/O Configuration: Phần cấu hình cho các module của bộ điều khiển
3.2.2.2 Các tác vụ của bộ điều khiển (tasks) a Phân loại các task
Một bộ điều khiển Logix5000 hỗ trợ nhiều task Ví dụ: Compact Logix hỗ trợ 8 task, Control Logix hỗ trợ 32 task Các Task được chia làm 3 loại:
Tác vụ liên tục là một loại tác vụ nền, được CPU thực hiện trong thời gian không có hai tác vụ khác đang hoạt động Trong quá trình này, CPU thực hiện các hoạt động như truyền thông và cập nhật dữ liệu Sau khi hoàn thành một vòng quét, tác vụ liên tục sẽ ngay lập tức bắt đầu quét lại Mỗi project chỉ có thể có tối đa một tác vụ liên tục.
Tác vụ tuần hoàn là một loại tác vụ được thực hiện theo chu kỳ định sẵn, với chu kỳ hỗ trợ từ 0.1ms đến 2000s Khi kết thúc mỗi chu kỳ, tác vụ tuần hoàn sẽ ngắt các tác vụ có mức ưu tiên thấp hơn, thực hiện một vòng quét và sau đó trả lại quyền sử dụng bộ điều khiển cho tác vụ trước đó.
Tác vụ sự kiện (Event task) được kích hoạt khi các điều kiện kích thích (triggers) được thỏa mãn Khi điều kiện này xảy ra, tác vụ sự kiện sẽ ngắt các tác vụ có mức ưu tiên thấp hơn, thực hiện một vòng quét và sau đó trả lại quyền kiểm soát cho tác vụ trước đó Các điều kiện kích thích của tác vụ sự kiện có thể bao gồm nhiều trường hợp khác nhau.
- Module input data state change: Sự thay đổi giá trị của một đầu vào số hoặc kết thúc mỗi chu kì trích mẫu dữ liệu của một module analog.
- Comsumed tag: Bộ điều khiển nhận dữ liệu mới từ bộ điều khiển khác qua consumed tag
- Axis registration 1 or 2, motion group execution, axis watch: Các ngắt liên quan đến chuyển động
- Event intruction: Sử dụng lệnh EVENT trong chương trình
In ControlLogix and CompactLogix systems, both Periodic tasks and Event tasks are assigned a priority level ranging from 1 to 15, where a lower number indicates a higher priority Properly configuring these tasks is essential for optimal system performance.
Khi một project được tạo mới, nó có sẵn một Continuous Task với tên Main Task Với các Periodic Task và Event Task ta thiết lập như sau:
• Kích chuột phải vào thư mục Tasks trong graphical controller organizer và chọn New Task, hộp thoại New Task sẽ hiện ra
• Tạo một Periodic Task: Trong Type của hộp thoại New Task ta chọn Periodic
Hình 3-5 Cấu hình Periodic Task
- Chọn chu kì của Periodic Task trong Period Chu kì của Periodic Task trong khoảng từ 0.1ms đến 2000s
- Chọn cấp ưu tiên của Task trong Priority Cấp ưu tiên được đánh số từ
- Chọn thời gian cho Watchdog timer trong Watchdog
- Chọn loại trigger của Event Task trong Trigger
- Chọn cấp độ ưu tiên của Task trong Priority
- Chọn thời gian cho Watchdog timer trong Watchdog
Các điều kiện kích thích của Event Task đã được trình bày, tuy nhiên cần lưu ý cấu hình cho các module khi loại trigger là Module input data state change Trong phần I/O Configuration, hãy nhấp chuột phải vào module đã chọn để kích thích, sau đó chọn Properties và vào thẻ Configuration.
Trong module vào số, trong phần Enable Change of State, chúng ta cần chọn các đầu vào kích thích và xác định điều kiện kích thích là sự thay đổi trạng thái từ on sang off hoặc từ off sang on.
Hình 3-7 Cấu hình cho module vào số khi sử dụng để kích event task
• Đối với module vào tương tự: Chọn chu kì trích mẫu trong mục RTS
Hình 3-8 C ấu hình cho module vào tương tự khi s ử d ụng để kích event task
Add-on Instruction là các đoạn mã đóng kín, được lập trình viên tạo ra như những hàm chuẩn thường xuyên sử dụng Chúng được gọi trong các chương trình thông qua một giao diện mà lập trình viên đã xác định.
Thiết lập một Add-on Instructions: kích chuột phải vào Add-on Intruction trong Graphical Controller organizer, chọn New Add-on Intructions
To create an Add-on Instruction, begin by naming it and selecting the programming language in the Name and Type fields, then click OK This action will open the Add-on Instruction Definition dialog In the Parameters tab, you will define the interface of the Add-on Instruction.
Hình 3-10 Khai báo tham s ố c ủ a Add-On Instruction
Trong hộp thoại trên có các cột:
• Usage: Mục đích sử dụng của Parameters Có 3 mục đích:
Đầu vào (input) là giá trị được chuyển vào Add-on Instruction, do đó giá trị của biến được khai báo input không thay đổi khi thực hiện Add-on Instruction Các loại dữ liệu có thể chuyển vào Add-on Instruction bao gồm: SINT, DINT, INT, REAL và BOOL.
Output refers to the result generated after executing the Add-on Instruction The data types that can be outputted from the Add-on Instruction include SINT, DINT, INT, REAL, and BOOL.
Biến InOut trong giao diện của Add-on Instruction đóng vai trò là biến vào và biến ra, có khả năng thay đổi sau khi Add-on Instruction hoàn tất Tất cả các loại dữ liệu, bao gồm dữ liệu cấu trúc và mảng, đều có thể được chuyển vào và ra từ Add-on Instruction.
• Data Type: loại dữ liệu của Parameters
• Default: giá trị ban đầu của của Parameters khi được khai báo
• Style: kiểu hiển thị các giá trị của Parameters
XÂY DỰNG CÁC BÀI THÍ NGHIỆM TRÊN NỀN
Điề u khi ể n bình tr ộ n
Trạm trộn là một ứng dụng quan trọng trong ngành công nghiệp, sử dụng hệ thống điều khiển logic theo mẻ Việc nghiên cứu bài toán này giúp sinh viên nắm vững các lệnh logic cơ bản và hiểu rõ cách lập trình cho hệ thống điều khiển mẻ Do đó, tôi đã chọn bài toán này làm thí nghiệm đầu tiên để trình bày.
4.1.1 Mô t ả bài toán và yêu c ầ u công ngh ệ
Bài toán mô tả một bình trộn chứa hai chất lỏng A và B, được bơm vào bằng hai bơm A và B có công suất tương đương, mỗi bơm đạt 10% thể tích bình trong 1 giây Sau khi quá trình trộn hoàn tất, hỗn hợp sẽ được xả ra ngoài qua van xả, đánh dấu sự kết thúc của một chu trình trộn.
- Trộn 2 chất lỏng A và B theo một tỉ lệ thể tích và số mẻ đặt trước
- Quá trình được thực hiện khi có tín hiệu lệnh
Chất lỏng trong bình được quấy trộn bởi một động cơ, bắt đầu khi mức chất lỏng đạt 20 Khi bình đầy, hỗn hợp sẽ được trộn trong 10 giây trước khi xả ra ngoài Động cơ ngừng hoạt động khi mức chất lỏng xuống dưới 20.
- Nếu trong quá trình trộn mà tín hiệu lệnh không còn thì vẫn thực hiện quá trình cho tới cuối chu kỳ trộn rồi mới dừng máy.
4.1.2 K ế t n ố i gi ữ a b ộ điề u khi ể n và tr ạ m tr ộ n
Các kết nối giữa bộ điều khiển và trạm trộn được trình bày trong bảng dưới:
B ả ng 4-1 Các tag k ế t n ố i gi ữ a b ộ điề u khi ể n và tr ạ m tr ộ n
Th ứ t ự Tên tag Lo ạ i d ữ li ệ u Miêu t ả
1 bom_A Bool Động cơ bơm chấ t l ỏ ng A Giá trị 1: mở bơm
2 bom_B Bool Động cơ bơm chất lỏng B Giá tr ị 1: m ở bơm
3 dc_tron Bool Động cơ trộn chất lỏng trong bình Giá trị 1: động cơ trộn hoạt động Giá tr ị 0: động cơ trộ n không ho ạt độ ng
Van xả chất lỏng ra khỏi bình Giá trị 1: mở van
5 low Bool Khi mức chất lỏng khác 0 : low =1
Khi mức chất lỏng bằng 0 : low =0
6 medium Bool Khi mức chất lỏng >= 20 : medium = 1
7 High Bool Khi mức chất lỏng = 100 : High = 1
Khi mức chất lỏng < 100 : High =0
4.1.3 Các gi ả i pháp công ngh ệ Ở bài toán này, ta cần giải quyết vấn đề: làm thế nào để bơm 2 chất A và B theo đúng tỷ lệđặt trước Sau đây em xin đưa ra 2 giải pháp:
Giải pháp đầu tiên là điều chỉnh 2 van A và B theo tỷ lệ thể tích đã được đặt trước cho 2 chất Vì cả 2 bơm đều có cùng công suất, chúng sẽ bơm đồng thời 2 chất cho đến khi bình được đầy.
Giải pháp 2: Mở hoàn toàn 2 van A và B, với công suất bơm của cả hai bơm là 10% thể tích bình mỗi giây Sử dụng một timer để đếm thời gian bơm của bơm A theo tỷ lệ thể tích của chất A, sau đó tiếp tục bơm chất B cho đến khi bình đầy.
Sau đây là quy trình thực hiện cho 2 giải pháp trên
4.1.3.1 Quy trình thực hiện của giải pháp 1
1 Nhập số mẻ, tỷ lệ trộn vào
2 Quá trình trộn thực hiện khi có tín hiệu lệnh (th_lenh =1) và số mẻ, tỷ lệ đã được nhập
3 Chất lỏng A và B được bơm vào đồng thời (bom_A =1 và bom_B=1)
4 Khi medium=1(mức chất lỏng = 20) động cơ trộn được đóng (dc_tron=1)
5 Khi high =1 (đầy bình) cắt 2 bơm A và B (bom_A =0 và bom_B=0), sau đó timer bắt đầu đếm
6 Timer đếm hết 10s thì chất lỏng được tháo ra khỏi bình nhờ van xả (van_xa =1)
7 Medium =0 (mức chất lỏng xuống dưới 20) thì cắt động cơ trộn (dc_tron= 0)
8 Low=0 (đã xả hết chất lỏng trong bình) thì đóng van xả (van_xa =0)
9 Sau khi xả xong, tín hiệu lệnh vẫn còn và số mẻ vẫn còn thì quay lại bước 3.Khi đã trộn đủ số mẻ thì quá trình trộn kết thúc.(ép tín hiệu lệnh về 0)
10 Nếu trong quá trình trộn (từ bước 3 đến 8) mà tín hiệu lệnh không còn (th_lenh=0) thì vẫn thực hiện tiếp cho tới cuối chu kỳ trộn, tức là xong bước 6 rồi mới dừng máy.
4.1.3.2 Quy trình thực hiện của giải pháp 2
1 Nhập số mẻ, tỷ lệ trộn vào
2 Quá trình trộn thực hiện khi có tín hiệu lệnh (th_lenh =1) và số mẻ, tỷ lệ đã được nhập
3 Chất lỏng A được bơm vào trước (bom_A =1) và timer bắt đầu đếm Thời gian đặt của timer tỷ lệ với tỷ lệ thể tích chất A
4 Chất lỏng B được bơm vào (bom_B =1) cho tới khi đầy bình
5 Khi medium=1(mức chất lỏng = 20) động cơ trộn được đóng (dc_tron 1)
6 Khi high =1 (đầy bình) cắt 2 bơm A và B (bom_A =0 và bom_B=0), sau đó timer bắt đầu đếm
7 Timer đếm hết 10s thì chất lỏng được tháo ra khỏi bình nhờ van xả (van_xa =1)
8 Medium =0 (mức chất lỏng xuống dưới 20) thì cắt động cơ trộn (dc_tron
9 Low=0 (đã xả hết chất lỏng trong bình) thì đóng van xả (van_xa =0)
10 Sau khi xả xong, tín hiệu lệnh vẫn còn và số mẻ vẫn còn thì quay lại bước
3 Khi đã trộn đủ số mẻ thì quá trình trộn kết thúc (ép tín hiệu lệnh về 0)
11 Nếu trong quá trình trộn (từ bước 3 đến 9) mà tín hiệu lệnh không còn (th_lenh=0) thì vẫn thực hiện tiếp cho tới cuối chu kỳ trộn, tức là xong bước 6 rồi mới dừng máy
4.1.4.1 Lập trình theo giải pháp 1
4.1.4.2 Lập trình theo giải pháp 2
4.1.5 Giao di ệ n HMI c ủ a bài thí nghi ệ m bình tr ộ n
Hình 4-1 Giao di ệ n HMI c ủa bài toán điề u khi ể n bình tr ộ n
Nhập tỉ lệ chất A và số mẻ vào ô tương ứng, nhớ nhấn phím Enter sau khi nhập giá trị Sau đó, nhấn nút Start để khởi động chu trình.
Kết luận: Cả hai phương pháp điều khiển đều mang lại kết quả ổn định cho quá trình bình trộn, đồng thời đáp ứng đầy đủ các tiêu chí chất lượng theo yêu cầu của bài toán.
Truy ề n thông gi ữ a các b ộ điề u khi ể n Logix5000
Trong hệ thống công nghiệp, các bộ điều khiển thực hiện nhiều nhiệm vụ khác nhau nhưng cần thiết phải trao đổi dữ liệu để đảm bảo hoạt động đồng bộ và chính xác Vì vậy, truyền thông giữa các bộ điều khiển đóng vai trò quan trọng, và tôi đã chọn bài toán truyền thông giữa hai bộ điều khiển để trình bày trong bài viết này.
4.2.1 Mô t ả bài toán và yêu c ầ u công ngh ệ
Trong thí nghiệm "Điều khiển bình trộn", chúng ta đã sử dụng một bộ điều khiển duy nhất cho các tác vụ nhỏ, nhưng khi mở rộng quy mô điều khiển cho toàn bộ quy trình công nghệ của nhà máy, cần nhiều bộ điều khiển tương tác qua dữ liệu Trong thí nghiệm này, chúng ta sẽ tiếp tục điều khiển bình trộn, nhưng phân chia nhiệm vụ: bộ điều khiển A sẽ thực hiện điều khiển bình trộn, trong khi bộ điều khiển B sẽ đảm nhiệm việc trao đổi dữ liệu với HMI.
Hình 4-2 Cấu trúc mạng bài thí nghiệm số 2
Các kết nối cũng như tên các biến sẽ được giữ nguyên như trong bài toán thí nghiệm số một “Điều khiển bình trộn”
4.2.2 Các phương pháp trao đổ i d ữ li ệ u gi ữ a các b ộ điề u khi ể n
Có 2 cách được sử dụng để thực hiện trao đổi dữ liệu trong RSLogix5000: sử dụng lệnh trao đổi dữ liệu MSG và khai báo các biến cần trao đổi dữ liệu dưới dạng Produced tag và consumed tag Sau đây ta sẽ đi vào tìm hiểu chi tiết 2 phương pháp này
4.2.2.1 Sử dụng lệnh trao đổi dữ liệu MSG (message)
• Tác dụng: trao đổi (gồm cả gửi và nhận) dữ liệu giữa các bộ điều khiển Logix5000 và giữa Logix5000 với các thiết bị khác
• Phạm vi sử dụng: tất cả các bộ điều khiển Logix5000 và tất cả các mạng đều hỗ trợ lệnh MSG
• Các kiểu dữ liệu được phép trao đổi: tất cả các kiểu dữ liệu định sẵn và các kiểu dữ liệu do người sử dụng tự định nghĩa
• Dữ liệu được gửi đi chỉ khi cần thiết (khi có lệnh MSG)
4.2.2.2 Produced tag và Consumed tag
Khi cần gửi dữ liệu từ một tag đến các bộ điều khiển khác, ta khai báo tag đó là Produced tag; ngược lại, khi nhận dữ liệu từ một bộ điều khiển khác, tag đó được khai báo là Consumed tag Một tag không thể đồng thời là Produced tag và Consumed tag, do đó, việc sử dụng Produced tag và Consumed tag chỉ cho phép trao đổi dữ liệu theo chiều một chiều từ Produced tag đến Consumed tag.
CompactLogix có thể được sử dụng qua mạng ControlNet và EtherNet/IP, trong khi dòng ControlLogix có khả năng mở rộng thêm thông qua giao tiếp trên Backplane.
• Các kiểu dữ liệu cho phép trao đổi: DINT, REAL, mảng của DINT, REAL và kiểu dữ liệu do người sử dụng tự định nghĩa
• Dữ liệu được gửi đi tựđộng theo chu kì requested packet interval (RPI)
• Một Produced tag có thể gửi dữ liệu đồng thời cho nhiều Consumed tag
4.2.3 Gi ải pháp trao đổ i d ữ li ệu trong bài toán đ i ề u khi ể n bình tr ộ n
Trong phần 4.2.2, chúng ta đã phân tích các đặc điểm của hai phương pháp trao đổi dữ liệu giữa các bộ điều khiển Tiếp theo, bài viết sẽ đi sâu vào việc phân tích bài toán điều khiển bình trộn nhằm lựa chọn phương pháp trao đổi dữ liệu phù hợp cho các tag Để thuận tiện cho việc theo dõi và phân tích, bảng liệt kê các tag liên quan đến bài toán điều khiển bình trộn sẽ được trình bày dưới đây.
Bảng 4-2 Các tag sử dụng trong bài toán điều khiển bình trộn
Thứ tự Tên tag Loại dữ liệu Miêu tả
1 bom_A Bool Động cơ bơm chất lỏng A Giá trị 1: mởbơm
2 bom_B Bool Động cơ bơm chất lỏng B Giá trị 1: mởbơm
3 dc_tron Bool Động cơ trộn chất lỏng trong bình Giá trị1: động cơ trộn hoạt động Giá trị0: động cơ trộn không hoạt động
Van xả chất lỏng ra khỏi bình Giá trị 1: mở van
5 low Bool Khi mức chất lỏng khác 0 : low =1
Khi mức chất lỏng bằng 0 : low =0
6 medium Bool Khi mức chất lỏng >= 20 : medium = 1
Khi mức chất lỏng < 20 : medium =0
7 high Bool Khi mức chất lỏng = 100 : High = 1
Khi mức chất lỏng < 100 : High =0
8 muc Dint Mức chất lỏng
9 so_me_da_tron Dint Số mẻ đã trộn
10 so_me Dint Số mẻđặt
11 ti_le_A Dint Tỉ lệ chất A
12 th_lenh Bool Tín hiệu lệnh cho phép trộn
Trong bài toán thí nghiệm “Điều khiển bình trộn”, ta nhận thấy rằng:
Ba tag cuối cùng: so_me, ti_le_A, th_lenh, chịu ảnh hưởng từ cả giao diện HMI và bộ điều khiển thực hiện quá trình điều khiển bình trộn.
Tức là các tag này sẽ được trao đổi giữa các bộ điều khiển theo cả hai chiều từ A đến B và từ B đến A
Các tag còn lại chỉ chịu ảnh hưởng từ bộ điều khiển bình trộn (bộ điều khiển A) Dữ liệu từ các tag này được chuyển lên HMI chỉ nhằm mục đích hiển thị mà không làm thay đổi giá trị.
Dựa trên các phân tích và nhận xét, cần thực hiện việc trao đổi dữ liệu của ba tag cuối cùng bằng cách sử dụng lệnh MSG, trong khi các tag còn lại sẽ được trao đổi theo phương pháp tag Produced-Consumed.
Trong bài toán điều khiển bình trộn, bảng tóm tắt các tag cho thấy rằng hầu hết các tag trao đổi theo phương pháp Produced-Consumed đều có kiểu dữ liệu là Bool, loại dữ liệu mà phương pháp này không hỗ trợ Để khắc phục vấn đề này, chúng tôi đã phát triển một kiểu dữ liệu mới mang tên bt_Pro_Con, bao gồm các thành phần tương ứng với các tag cần truyền Ngoài ra, để thuận tiện cho việc theo dõi, chúng tôi cũng tạo ra kiểu dữ liệu mới có tên bt_mes, với các thành phần tương ứng cho các tag được trao đổi theo phương pháp này.
Tóm lại, giải pháp trao đổi dữ liệu giữa 2 bộ điều khiển A và B là:
Data exchange for three tags: so_me, ti_le_A, and th_lenh is conducted using the MSG command method, while the remaining tags utilize the Produced-Consumed tag approach.
Tạo kiểu dữ liệu mới có tên bt_Pro_Con với các thành phần tương ứng với các thẻ cần truyền theo phương pháp Produced-Consumed tag.
Để tạo ra một kiểu dữ liệu mới có tên là bt_mes, bạn cần xác định các thành phần tương ứng với các tag được trao đổi thông qua lệnh MSG.
• Code lập trình cho bộ điều khiển A:
• Code lập trình cho bộ điều khiển B:
4.2.5 Giao di ệ n HMI ch o bài toán trao đổ i d ữ li ệ u gi ữ a các b ộ điề u khi ể n
Giao diện của bài toán trao đổi dữ liệu giữa các bộ điều khiển giống với giao diện của bài toán bình trộn đã trình bày
K ế t qu ả : Hai bộ điều khiển đã truyền được dữ liệu cho nhau và thực hiện được các nhiệm vụ theo yêu cầu bài toán
Đèn giao thông
Hệ thống giao thông hiện đại thường áp dụng bộ điều khiển khả trình PLC Một ví dụ điển hình là việc sử dụng PLC để điều khiển đèn giao thông, trong đó áp dụng các nguyên tắc điều khiển logic và timer Bài toán này sẽ được trình bày chi tiết trong nội dung sau đây.
4.3.1 Mô t ả công ngh ệ và yêu c ầ u công ngh ệ
Hình 4-3 Sơ đồ đèn giao thông tại ngã tư
Thiết kế hệ thống đèn giao thông ở ngã tư hoạt động theo các chế độ sau:
• Chế độ Giờ cao điểm: (khoảng thời gian từ 7h-9h, 11h-12h, 13h-14h, 17h-19h)
• Chế độ Giờ rỗi: (khoảng thời gian từ 0h-6h, 22h-24h) : đèn vàng nhấp nháy
• Chế độ Giờ thấp điểm: (khoảng thời gian còn lại trong ngày)
Chu kỳ hoạt động của đèn có thể được điều chỉnh trên màn hình điều khiển, cho phép không chỉ tự động thay đổi chế độ làm việc theo thời gian trong ngày mà còn có thể điều chỉnh bằng tay.
4.3.2 K ế t n ố i gi ữ a PLC và đèn giao thông
Trong mô hình thực tế, đèn có thể được kết nối với các I/O của PLC Tuy nhiên, trong bài viết này, chúng ta chỉ mô phỏng hệ thống đèn giao thông trên máy tính, vì vậy các Tag sẽ được sử dụng để đại diện cho các đèn.
Thứ tự Tên Tag Loại dữ liệu Miêu tả
Bài toán yêu cầu những kiến thức cơ bản về timer và đồng hồ thời gian thực
Đồng hồ thời gian thực, hay Wallclocktimer, là thiết bị quan trọng trong bộ điều khiển, giúp thiết lập và theo dõi thời gian thực Nó hoạt động như một bộ đếm 64 bit, tăng lên mỗi micro giây Các lệnh SSV và GSV cho phép người dùng thiết lập và đọc thông tin thời gian thực từ Wallclocktime, cung cấp dữ liệu chính xác cho bộ điều khiển.
B ả ng 4-3 Thu ộ c tính DateTime c ủa đối tượ ng Wallclocktime
Thuộc tính Kiểu dữ liệu Lệnh Mô tả
Ngày và giờđược định dạng:
DINT[0] năm DINT[1] tháng (1 - 12) DINT[2] ngày (1 - 31) DINT[3] giờ (0 - 23) DINT[4] phút (0 - 59) DINT[5] giây (0 - 59) DINT[6] micro giây (0 - 999,999)
Hướng giải quyết bài toán:
Xây dựng 3 hàm con như sau:
• Hàm xử lý đèn ở chế độ giờ cao điểm: Hệ đèn hoạt động đảm bảo sự thống nhất về khung thời gian giữa 2 làn đường:
- Thời gian Đèn xanh 1 sáng + Thời gian Đèn vàng 1 sáng = Thời gian đèn đỏ 2 sáng
- Thời gian Đèn xanh 2 sáng + Thời gian Đèn vàng 2 sáng = Thời gian đèn đỏ 1 sáng
• Hàm xử lý đèn ở chế độ giờ thấp điểm: Tương tự như giờ cao điểm, chỉ khác về chu kỳ đèn sáng
• Hàm xử lý đèn ở chế độ giờ rỗi: 2 đèn vàng nhấp nháy so le nhau theo chu kỳ 2s
Chương trình chính có chức năng theo dõi thời gian thực từ đồng hồ, so sánh với các khung giờ cao điểm, giờ thấp điểm và giờ rỗi để xác định chế độ hoạt động phù hợp cho đèn.
Phần code sẽ được trình bày ở phụ lục 3.
Hình 4-4 T ạ o Node TrafficLight trong RSView32
Hình 4-5 Tag database trong RsView32
Bước 3: Thiết kế Giao diện RsView32
Hình 4-6 Sơ đồ h ệ th ống đèn giao thông tại ngã tư và bảng điề u khi ể n giám sát
Hệ thống hoạt động tự động, tự động xác định khung giờ và chế độ Khi có sự cố, kỹ sư có thể chuyển sang chế độ điều khiển bằng tay Bảng điều khiển cho phép thay đổi chu kỳ đèn sáng theo các chế độ khác nhau Ví dụ, trong giờ cao điểm, đèn 1 hoạt động như sau: từ 0-30 giây đèn xanh bật, từ 30-32 giây đèn vàng bật, và từ 32-60 giây đèn đỏ bật.
Kết quả: Hệ thống đèn giao thông hoạt động tốt, thực hiện được các yêu cầu của bài toán