I. Kết nối PLC với máy tính
Dòng CompactLogix của Rockwell có 2 cổng giao tiếp để kết nối với máy tính cũng như kết nối với mạng điều khiển: Một cổng RS232 được cách ly hoàn toàn và có thể nối trực tiếp vào mạng (Ngoại trừ bộ điều khiển L35 có 2 cổng RS232), và một cổng RJ45 để kết nối mạng Erthernet. Với hai cổng truyền thông này, người dùng có thể tích hợp PLC vào hầu hết các mạng điều khiển. Với bộ phần mềm mạnh mẽ đi kèm, chúng ta có thể dễ dàng kết nối PLC với máy tính để lập trình, debug, điều khiển PLC hay thu thập số liệu từ PLC lên máy tính.
Để kết nối máy tính với cổng RS232, trước tiên ta cần nối dây từ cổng RS232 của máy tính tới cổng RS232 của PLC bằng cáp 1747-CP3 hoặc 1756-CP3. Nếu là cáp tự nối thì phải nối cáp chéo theo sơ đồ hình 1:
|
Hình 1 : Sơ đồ nối dây cho cáp RS232 |
Dùng phần mềm RSLinx để cài driver cho cổng RS232. Mở phần mềm RSLinx Classic Gateway. Vào thẻ CommunicationConfigure Drivers, hộp thoại cấu hình driver hiện lên: Trong ô Available Driver Devices, kéo combo box xuống và chọn RS-232 DF1 devives. Sau đó nhấn Add NewOK. Các bạn nhập các thông số về cổng truyền thông, tốc độ baud … như mong muốn và nhấn OK. Sau đó, các bạn sẽ thấy trong mục Configure Drivers hiện lên dòng thông báo Driver cho cổng RS232 đang chạy.
Việc kết nối PLC với máy tính qua cổng mạng RJ45 có thể làm trực tiếp qua cáp mạng được đấu thẳng hoặc thông qua hub. Khi kết nối đã được xác lập đúng, quan sát đèn Link(LNK) bên cạnh cổng RJ45 sẽ chuyển sang màu xanh ổn định. Để máy tính có thể giao tiếp với PLC thông qua cổng mạng, trước tiên ta phải thiết lập một IP cho PLC. Trước tiên, đặt IP tĩnh cho máy tính (ví dụ là 192.167.1.117). Ghi nhớ Subnet Mask của máy tính (thường là 255.255.255.0). Mở phần mềm BOOTP-DHCP Server có trong bộ phần mềm Rockwell Software. Vào mục ToolNetwork Setting. Nhập Subnet Mask và nhấn OK. Trong hộp Request History sẽ hiện lên các thiết bị được liên kết mà chưa có IP. Chú ý thiết bị có địa chỉ MAC trùng với địa chỉ MAC của controller (Được ghi trên mặt Controller). Click đúp vào thiết bị đó và chỉ định một địa chỉ IP cho thiết bị (Không trùng với các thiết bị khác trong mạng). Khi đó trong hộp Relation List sẽ xuất hiện các mục địa chỉ MAC, tương ứng với các địa chỉ IP. Chọn mục đó, click vào nút Disable BOOTP/DHCP để kết thúc quá trình cài đặt IP. Khi mục Status hiển thị [Disable BOOTP/DHCP] Command successful là quá trình cài đặt IP thành công.
|
Hình 2 : Giao diện cấu hình Driver cho PLC bằng RSLinx |
Khi bộ điều khiển đã được cấp IP mà ta muốn thay đổi IP cho nó, trước tiên ta phải xóa IP cũ rồi thiết đặt lại IP mới. Để xóa IP cũ, mở phần mềm BOOTP-DHCP Server. Trong mục Relation List nhấn nút New, nhập vào hộp thoại Properties địa chỉ MAC và IP cũ của bộ điều khiển rồi nhấn OK. Chọn Controller trong hộp Relation List và nhấn Delete. Đóng phần mềm BOOTP-DHCP Server lại, tắt nguồn PLC để hoàn tất quá trình xóa IP.
|
Hình 3 : Đặt IP tĩnh cho cổng Ethernet của PLC bằng BOOTP-DHCP Server |
Khi PLC đã có IP, ta tiến hành cài đặt Driver cho cổng RJ45 bằng phần mềm RSLinx, tương tự như cài Driver cho cổng RS232. Chỉ khác là trong combo box Available Driver Devices ta chọn Ethernet/IP Driver và trong hộp thoại Configure Driver : AB-ETHIP-1, ta chọn Browse Local Sub. Kiểm tra trong hộp thoại Configure Drivers thấy có thông báo AB_ETHIP-1 AB-Ethernet Running là đã hoàn thành.
Sau khi cài đặt Driver cho cổng PLC thích hợp (bạn dùng cổng giao tiếp nào thì chỉ cần cài driver cho cổng đó), chúng ta cần cập nhật firmware cho PLC. Nếu PLC đã được cập nhật phiên bản firmware 17.x thì chúng ta có thể bỏ qua bước này. Vào thư mục ProgramFlash Programming Tool mở phần mềm ControlFlash. Trong Catalog Number, chọn đúng tên của bộ PLC, sau đó chọn đường liên kết tới thiết bị cần cập nhật, chọn phiên bản firmware cần cập nhật, chuyển khóa chế độ trên PLC sang vị trí PROG, nhấn Next FinishYes và chờ cho việc cập nhật hoàn thành.
Chú ý : - Cần chạy phần mềm RSLinx trong quá trình cập nhật Firmware
- Không được ngắt quãng trong quá trình cập nhất nếu không bộ điều khiển có thể không hoạt động được.
|
Hình 4 : Cập nhật Firmware cho bộ điều khiển bằng Control Flash |
Chúng ta đã xong phần chuẩn bị kết nối PLC với máy tính. Bây giờ, chúng ta có thể dùng phần mềm RSLogix5000 của hãng để lập trình, debug, tải phần mềm xuống PLC cũng như lấy phần mềm từ PLC lên máy tính.
II. Lập trình cho PLC bằng phần mềm RSLogix5000.
RSLogix5000 là phần mềm chuyên dụng để lập trình cho các dòng PLC của Rockwell. Đây là một phần mềm mạnh, tích hợp cả 3 ngôn ngữ lập trình là: lập trình hình thang (ladder), lập trình hình khối (Block) và lập trình bằng mã nguồn (Source Code). Chúng ta sẽ tiếp cận việc lập trình bằng ngôn ngữ thông dụng nhất là ngôn ngữ ladder.
|
Hình 5 : Tạo dự án mới |
|
Hình 6 : Giao diện quản lý dự án |
1. Cấu hình các module cho hệ thống điều khiển
Mở phần mềm RSLogix5000. Tạo một dự án mới bằng cách vào FileNew.
Chọn đúng loại bộ điều khiển, đặt tên cho bộ điều khiển cũng là tên của dự án, chọn thư mục chứa dự án.
Dự án được mở ra, giao diện phần mềm như sau:
Trong phần I/O Configuration, chúng ta thấy tên bộ điều khiển mà ta đã chọn. Với dòng CompactLogix, ngoài module CPU còn có các module I/O tích hợp sẵn. Ta có thể thấy chúng trong phần Embedded I/O. Nếu chúng ta gắn thêm các module mở rộng khác vào hệ thống thì chúng ta phải khai báo trong phần Expansion I/O. Nếu không khai báo hoặc khai báo sai, các module sẽ không thể điều khiển được.
Khi các module đã được khai báo đầy đủ, chúng ta có thể cấu hình cho từng module riêng lẻ bằng cách click đúp chuột trái vào tên từng module. Mỗi module sẽ có một giao diện cấu hình riêng tùy thuộc vào chức năng của module đó. Nói chung, ta có thể cho phép/cấm các kênh I/O trên module, đặt các tùy chọn để báo lỗi, debug chương trình … Một thông số mà ta cần quan tâm trong khi cấu hình là RPI (Requested Packet Interval). PLC của Rockwell có cơ chế nhận dữ liệu từ các đầu vào bằng vòng quét độc lập với chương trình logic chính. Cứ mỗi khoảng thời gian được chỉ định bằng thông số RPI, PLC lại cập nhật các đầu vào và đưa vào các vùng đệm tương ứng. Chương trình logic chính sẽ lấy số liệu từ các vùng đệm để thực hiện việc điều khiển. Việc thiết lập 2 vòng quét song song như vậy rất tiện lợi. Người lập trình không phải quan tâm tới việc xử lý ngắt trong quá trình lấy dữ liệu cũng như trong truyền thông giữa CPU và các thiết bị khác. RPI có thể được thiết lập trong khoảng 0.2 - 750ms.
Sau khi cấu hình cho các module trong hệ thống, chúng ta sẽ viết chương trình cho PLC dùng ngôn ngữ ladder.
2. Lập trình cho PLC
Trước khi lập trình, hãy tìm hiểu một số thuật ngữ dùng trong phần mềm RSLogix5000.
- Tag: Tags là một tên bằng chữ dùng để chỉ định một vùng nhớ nơi mà dữ liệu được cất giữ. Tags là một cơ cấu cơ sở dùng để chỉ định bộ nhớ, tham chiếu các dữ liệu và giám sát dữ liệu. Mỗi tag được chỉ định ít nhất 4 byte trong bộ nhớ.
Tag được chia làm 4 loại là : Base, Alias, Produced và Consumed. Kiểu Base là kiểu cơ bản dựa trên các kiểu dữ liệu. Kiểu Alias là kiểu bí danh, dùng để đặt tên gợi nhớ cho các Tag kiểu cơ bản. Kiểu Produced và Consumed tương ứng là Tag truyền và Tag nhận, chỉ dùng khi cần trao đổi dữ liệu giữa các bộ điều khiển khác nhau.
Kiểu dữ liệu cho Tag rất phong phú gồm các kiểu cơ bản như : BOOL, INT, REAL … và các kiểu dữ liệu có cấu trúc. Các kiểu dữ liệu cấu trúc có thể do người lập trình tự định nghĩa. Bản thân RSLogix5000 cũng đã định nghĩa sắn rất nhiều kiểu dữ liệu cấu trúc rất tiện lợi cho việc lập trình các ứng dụng khác nhau.
Tag có 2 mức phạm vi tác dụng là phạm vi bộ điều khiển, có tác dụng trong toàn bộ ứng dụng, được quản lý trong thẻ Controller Tags và phạm vi chương trình con, chỉ có tác dụng trong mỗi tác vụ, được quản lý trong thẻ Program Tags. Vì bộ nhớ chương trình của PLC có giới hạn nên hạn chế sử dụng Tag phạm vi bộ điều khiển khi không cần thiết.
- Rung :
|
Hình 7 : Giao diện lập trình cho bộ điều khiển PLC |
Mở thẻ MainRountine như hình 7 sẽ hiện lên giao diện lập trình cho PLC, mặc định là bằng ngôn ngữ Ladder. Ngôn ngữ Ladder thực hiện các lệnh logic dựa theo cấu trúc các bậc thang, mỗi bậc gọi là 1 RUNG được đánh số từ 0. Trên mỗi RUNG ta có thể thêm vào các phần tử lập trình như đầu I/O của PLC, các phần tử so sánh, tính toán, di chuyển số liệu, timer, counter … Bộ điều khiển sẽ kiểm tra phần tử bên trái, thường là các phần tử có điều kiện như kiểm tra đầu vào, bộ so sánh … và thực hiện các phần tử bên phải, là các phần tử điều khiển, thực hiện tác vụ.
- Vòng quét: Để thực hiện chương trình lập trình cho PLC theo ngôn ngữ Ladder, PLC sẽ thực hiện vòng quét tuần tự từ trên xuống các RUNG cho tới RUNG cuối cùng là RUNG “End” thì quay lại thực hiện vòng quét từ RUNG 0. Vòng quét này gọi là vòng quét logic chính, hoàn toàn độc lập với vòng quét nhận dữ liệu đầu vào. Người lập trình cần chú ý tính toán thời gian cho một vòng quét cho phù hợp với tốc độ cập nhật dữ liệu mà ứng dụng mong muốn.
Sau khi đã tìm hiểu các khái niệm cơ bản cho việc lập trình ngôn ngữ hình thang, chúng ta sẽ bắt tay vào tìm hiểu cách lập trình và nạp chương trình cho PLC. Mở giao diện lập trình lên, chúng ta sẽ thấy thanh công cụ ngay trên giao diện lập trình. Thanh công cụ này chứa tất cả các phần tử cần để lập trình. Các phần tử này được bố trí vào các nhóm nhỏ như Favourites, Add-On, Alarms, Bit… Để đưa phần tử này vào các RUNG ta có thể click vào các phần tử hoặc kéo/thả phần tử vào vị trí mong muốn. Việc sử dụng các phần tử này như thế nào không thể nói chi tiết trong một bài báo. Tuy nhiên, có thể tìm hiểu logic của từng phần tử bằng cách chuột phải vào phần tử, chọn Instruction Help (hoặc nhấn F1).
|
Khi đã đưa các phần tử vào RUNG, cần phải gán phần tử cho 1 Tag. Click chuột phải vào dấu “?” chỉ tên phần tử và chọn New Tag. Chọn kiểu của Tag là Base nếu Tag dựa trên các kiểu dữ liệu. Chọn Alias nếu muốn Tag này đại diện cho một Tag nào đó đã có. Chú ý, các vùng đệm chứa giá trị các kênh I/O của các module PLC đã được mặc định gán cho các Tag có phạm vi bộ điều khiển và có thể dùng để gán cho các Tag Alias. Trong hộp thoại Select Data Type, có thể tạo Tag kiểu mảng 1, 2 hay 3 chiều bằng cách điền vào các ô trong mục Array Dimensions.
|
Hình 8 : Gán Tag cho các phần tử Logic |
Đó là cách tạo Tag thông qua các phần tử logic. Bạn cũng có thể tạo ra một Tag bất kỳ nhằm mục đích làm bộ đệm cho việc thu thập số liệu hoặc tính toán bằng cách chuột phải vào thẻ Controller Tags hoặc Program Tags (ứng với phạm vi Tag khác nhau), chọn New Tag và làm như trên.
Để thêm RUNG hoặc nhánh của RUNG, click chuột vào hai phần tử đầu tiên trên thanh công cụ. Các phần tử điều kiện đặt nối tiếp nhau trên cùng nhánh sẽ đại diện cho phép AND còn các phần tử điều kiện đặt trên những nhánh song song sẽ đại diện cho phép OR.
|
Hình 9 : Logic các phần tử trên RUNG |
Như hình vẽ 9, ta có 4 Tag điều kiện a, b, c, d là Tag kiểm tra mức logic ON (mức 1) với kiểu dữ liệu BOOL. Trong đó, Tag a có kiểu Alias, đại diện cho bit dữ liệu 0 của module cắm trên khe cắm số 1 (một đầu vào DI). Với RUNG này, PLC sẽ kiểm tra logic của tổ hợp (a AND (b OR d) AND c). Nếu tổ hợp này có giá trị logic là 1 thì sẽ thực hiện việc bật Tag Q lên giá trị logic 1.
Sau khi viết xong chương trình cho PLC, ta cần tải phần mềm này xuống PLC. Kết nối PLC với máy tính, bật PLC và chuyển khóa chế độ trên PLC sang vị trí PROG. Vào phần mềm RSLogix5000, chọn thẻ Communication Who Active để chọn kết nối tới bộ điều khiển (CPU) cần lập trình. Chú ý, chỉ bộ điều khiển nào đang kết nối về mặt tín hiệu điện với máy tính (không có dấu gạch chéo đỏ như hình 10)
|
Hình 10 : Chọn bộ điều khiển để tải chương trình xuống |
Sau khi chọn được bộ điều khiển, click vào nút Set Project Path rồi click vào nút Download. Khi việc tải chương trình xuống PLC hoàn thành, chuyển khóa chế độ sang vị trí RUN để PLC thực hiện chạy chương trình. Giao diện lập trình sẽ tự động chuyển sang chế độ Online, các phần tử logic sẽ được hiển thị giá trị đồng bộ với bộ điều khiển. Chúng ta có thể quan sát màn hình giao diện lập trình để debug chương trình điều khiển. Khi muốn chỉnh sửa lại chương trình, cần chuyển chế độ lập trình về trạng thái Offline bằng thanh công cụ Online Toolbar nằm góc trên, bên trái của giao diện lập trình.
|
Hình 11: Thanh công cụ Online Toolbar |
Một công cụ mạnh để Debug chương trình nữa là khả năng ép giá trị (Force). Dùng thanh Online Toolbar để bật/tắt chế độ này. Khi chế độ này được bật, các Tag có kiểu dữ liệu BOOL, SINT, INT, DINT, REAL hoặc các thành phần của Tag ưcấu trúc có kiểu dữ liệu BOOL, SINT, INT, DINT, REAL đề có thể được ép tới giá trị mong muốn tới từng bit (kể cả Tag I/O và Tag Alias). Chương trình Logic sẽ sử dụng các giá trị được ép bất kể giá trị vật lý thực của nó bằng bao nhiêu. Tuy nhiên, đây chỉ là giá trị tạm để Debug, không nên dùng ép giá trị làm thành phần cố định trong một chương trình điều khiển.
III. Kết luận
Bộ phần mềm Rockwell Software là bộ phần mềm mạnh mẽ, linh hoạt. Ngoài việc lập trình cơ bản như đã trình bày trong bài này, bộ phần mềm của Rockwell còn rất mềm dẻo, tiện dụng trong việc truyền thông giữa các bộ điều khiển với nhau, cũng như việc lấy dữ liệu, truyền dữ liệu qua lại giữa PLC và máy tính, thuận tiện cho việc giám sát cũng như điều khiển hệ thống. Chúng ta sẽ bàn về vấn đề này trong những phần sau.q
IV. Tài liệu tham khảo
1. Allen Bradley: Logix5000 Controllers Quick Start
2. Allen Bradley: CompactLogix Packaged Controllers Installation Instructions
3. Allen Bradley: Logix5000 Controllers I/O and Tag Data
4. Allen Bradley: Logix5000 Controllers Tasks, Programs, and Routines
5. Allen Bradley: Logix5000 Controllers Ladder Diagram
6. Allen Bradley: Logix5000 Controllers IEC 61131-3 Compliance