Trong các hệ thống sử dụng nền tảng Logix 5000 như ControlLogix hoặc CompactLogix, có nhiều cách để trao đổi dữ liệu giữa các PLC. Một trong những cách phổ biến là sử dụng lệnh Message.

Lệnh Message là một lệnh có thể lập trình trong Ladder Diagram hoặc Structured Text để truyền dữ liệu giữa các bộ điều khiển (PLC).

Khác với các thẻ producedconsumed luôn truyền dữ liệu theo chu kỳ, lệnh Message chỉ truyền dữ liệu khi có điều kiện cụ thể xảy ra trong chương trình điều khiển.

Vì vậy, nếu dữ liệu không cần cập nhật liên tục, bạn có thể dùng lệnh Message để tiết kiệm băng thông và tài nguyên hệ thống.

1. Giới thiệu tổng quan về lệnh MSG

Tương tự như nhiều lệnh khác, lệnh MSG (Message) yêu cầu một tag hỗ trợ (backing tag) để lưu trữ cấu hình của lệnh, cũng như các giá trị đầu vào và đầu ra phục vụ cho logic bên trong.

Với lệnh MSG, tag hỗ trợ này phải được tạo ở cấp độ controller (controller scope). Tag sẽ được khai báo trong tham số Message Control của lệnh và có kiểu dữ liệu là MESSAGE.

Trong ví dụ sau, tag hỗ trợ được đặt tên là BackingTag:

2. Tìm hiểu các Tab quan trọng trong lệnh MSG

2.1 Tab Configuration

Chúng ta sẽ cùng nhau tìm hiểu một số tab cấu hình trong phần Message Configuration. Mỗi tab đóng vai trò thiết lập các thông số cần thiết để lệnh MSG hoạt động đúng — từ việc chọn loại truyền thông, xác định dữ liệu nguồn và đích, cho đến các tùy chọn nâng cao như điều kiện kích hoạt và xử lý lỗi. Việc nắm rõ cấu hình từng tab sẽ giúp bạn triển khai truyền thông giữa các bộ điều khiển một cách hiệu quả và ổn định.

Message Type: Có nhiều loại message khác nhau trong phần cấu hình của lệnh MSG. Nhiều loại trong số này được dùng để trao đổi dữ liệu giữa các bộ điều khiển Logix 5000 và các bộ điều khiển hoặc thiết bị đời cũ. Tuy nhiên, khi mục đích là truyền dữ liệu giữa các bộ điều khiển Logix 5000 với nhau, chúng ta thường sử dụng hai loại: CIP Data Table ReadCIP Data Table Write.

  • CIP Data Table Read dùng để đọc dữ liệu từ một bộ điều khiển khác và lưu vào bộ điều khiển đang thực hiện lệnh MSG.
  • CIP Data Table Write dùng để ghi dữ liệu từ bộ điều khiển đang thực hiện lệnh MSG sang bộ điều khiển khác.

Source Element: Là tag hoặc cấu trúc tag chứa dữ liệu cần truyền. Phần tử nguồn phải được khai báo ở cấp độ controller (controller scope). Nếu phần tử nguồn là một mảng và phần tử đầu tiên cần truyền không phải là phần tử thứ 0, thì ta phải chỉ định rõ phần tử bắt đầu mong muốn.

  • Với loại CIP Data Table Read, phần tử nguồn nằm trong bộ điều khiển khác.
  • Với loại CIP Data Table Write, phần tử nguồn nằm trong bộ điều khiển đang chứa lệnh MSG.

Number of Elements (Số lượng phần tử)

Đối với một mảng, đây là số lượng phần tử cần được truyền. Ví dụ, nếu phần tử nguồn là một mảng gồm 10 phần tử, thì để truyền toàn bộ mảng, Number of Elements sẽ là 10. Tuy nhiên, nếu chỉ muốn truyền 3 phần tử, thì ta đặt Number of Elements là 3.

Đối với một tag thuộc kiểu dữ liệu do người dùng định nghĩa (user-defined data type), Number of Elements bắt buộc phải đặt là 1. Trong trường hợp này, ta chỉ có thể truyền toàn bộ cấu trúc hoặc một phần tử đơn lẻ trong cấu trúc đó.

Destination Element (Phần tử đích)

Là tag hoặc cấu trúc tag nơi dữ liệu sẽ được ghi đến sau khi truyền. Phần tử đích phải được khai báo ở cấp độ controller (controller scope).

Nếu phần tử đích là một mảng và phần tử đầu tiên cần ghi không phải là phần tử thứ 0, thì ta phải chỉ định rõ phần tử bắt đầu mong muốn.

  • Với loại CIP Data Table Read, phần tử đích nằm trong bộ điều khiển đang chứa lệnh MSG.
  • Với loại CIP Data Table Write, phần tử đích nằm trong bộ điều khiển khác.

2.2 Tab Communication

Path: Là đường dẫn mạng giữa hai bộ điều khiển.

Nếu bộ điều khiển từ xa đã được thêm vào mục I/O Configuration của bộ điều khiển chứa lệnh MSG, thì có thể sử dụng nút Browse… để chọn bộ điều khiển từ xa từ danh sách cấu hình.

Nếu bộ điều khiển từ xa chưa được thêm vào I/O Configuration, thì đường dẫn cần được nhập thủ công, theo định dạng:
Port, Địa chỉ kế tiếp, Port, Địa chỉ kế tiếp, …

2.3 Tab Tag

Mục Tag này như đã nói ban đầu ở mục “1. Giới thiệu tổng quan về lệnh MSG” tag dùng để lưu trữ toàn bộ cấu hình và trạng thái của lệnh MSG. Tag này được gọi là backing tagphải được khai báo ở cấp độ controller (controller scope) với kiểu dữ liệu là MESSAGE.

Backing tag không chỉ lưu thông tin cấu hình (như loại message, đường dẫn, số lượng phần tử, phần tử nguồn và đích…) mà còn chứa các bit trạng thái như EN (Enable), DN (Done), ER (Error) và mã lỗi ERR giúp giám sát và xử lý trong quá trình truyền dữ liệu.

Nếu chưa có tag sẵn, bạn có thể tạo mới trực tiếp trong tab này bằng cách đặt tên và chọn kiểu MESSAGE. Sau khi khai báo, tag này sẽ được dùng xuyên suốt trong quá trình cấu hình và thực thi lệnh MSG.


Trên đây là phần giới thiệu tổng quan về lệnh MSG trong Studio 5000 – một công cụ quan trọng giúp trao đổi dữ liệu giữa các bộ điều khiển Logix 5000.

Trong bài viết tiếp theo, chúng ta sẽ cùng đi qua một ví dụ thực tế, từng bước cụ thể để cấu hình một lệnh MSG hoàn chỉnh.

Bạn có thể theo dõi chuỗi bài viết về Studio 5000 tại đây để nắm thêm nhiều nội dung liên quan. Ngoài ra, đừng bỏ lỡ khóa học lập trình Studio 5000, nơi tổng hợp các kiến thức thực tiễn, bài bản và dễ áp dụng, giúp bạn làm chủ phần mềm trong các dự án tự động hóa.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *