Tóm tắt : Chúng ta đã biết các thế mạnh của dòng PAC CompactLogix, một dòng
PLC chất lượng cao của Rockwell tuy nhỏ gọn nhưng rất mạnh mẽ, tin cậy, linh
hoạt, dễ dàng trong việc lắp đặt và bảo trì . Trong bài này chúng ta sẽ tiếp tục tìm
hiểu phương pháp lập trình, debug chương trình cho dòng PLC này.
16 trang |
Chia sẻ: tranhoai21 | Lượt xem: 1250 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Phương pháp lập trình cho dòng pac compactlogix của rockwell, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Phương pháp lập trình cho dòng PAC
COMPACTLOGIX của ROCKWELL
Tóm tắt : Chúng ta đã biết các thế mạnh của dòng PAC CompactLogix, một dòng
PLC chất lượng cao của Rockwell tuy nhỏ gọn nhưng rất mạnh mẽ, tin cậy, linh
hoạt, dễ dàng trong việc lắp đặt và bảo trì ... Trong bài này chúng ta sẽ tiếp tục tìm
hiểu phương pháp lập trình, debug chương trình cho dòng PLC này.
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
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
Hình 6 : Giao diện quản lý dự án
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í Who
Active đểPROG. Vào phần mềm RSLogix5000, chọn thẻ Communication 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