Tập Lệnh PUT

Tập lệnh PUT GET

Giới thiệu tập lệnh PUT

Giới thiệu tập lệnh GET


Mô tả câu lệnh PUT:

  • Bạn có thể ghi dữ liệu vào CPU từ xa bằng lệnh “PUT”.
  • Lệnh được bắt đầu trên cạnh dương tại đầu vào điều khiển REQ:
  • Các con trỏ tới các khu vực được ghi (ADDR_i) và dữ liệu (SD_i) sau đó được gửi tới CPU đối tác. CPU đối tác có thể ở chế độ RUN hoặc STOP.
  • Dữ liệu được gửi đi được sao chép từ các khu vực gửi được định cấu hình ((SD_i). CPU đối tác lưu dữ liệu đã gửi theo các địa chỉ được cung cấp cùng với dữ liệu và trả về một xác nhận thực thi.
  • Nếu không có lỗi xảy ra, điều này được chỉ định ở lần gọi lệnh tiếp theo với thông số trạng thái DONE = “1”. Quá trình viết chỉ có thể được kích hoạt lại sau khi công việc cuối cùng hoàn tất.
  • Lỗi và cảnh báo được xuất qua ERROR và STATUS nếu xảy ra sự cố truy cập trong khi dữ liệu đang được ghi hoặc nếu quá trình kiểm tra thực thi dẫn đến lỗi.

Hướng dẫn cấu hình:

  • Chức năng “Cho phép truy cập với giao tiếp PUT/GET từ đối tác từ xa” đã được kích hoạt trong các thuộc tính của CPU đối tác trong phần “Bảo vệ”.
  • Trong “Properties > Attributes“ của khối dữ liệu, hãy tắt quyền truy cập khối được tối ưu hóa (Optimized block access).
  • Đảm bảo rằng các khu vực được xác định bằng tham số ADDR_i và SD_i khớp nhau về số lượng, độ dài và loại dữ liệu.
  • Vùng được ghi (tham số ADDR_i) phải lớn bằng vùng gửi (tham số SD_i).

Hướng dẫn cấu hình khối hàm

Kết nối các PLC với nhau vào cùng 1 mạng LAN

Tập lệnh PUT GET
Kết nối PLC cùng mạng LAN

Chọn khối hàm ở mục S7-Communication trong bảng điều khiển

Tập lệnh PUT GET
Gọi tập lệnh PUT GET

Cấu hình tham số cho khối PUT

Tập lệnh PUT GET
Cấu hình thông số khối PUT
Tập lệnh PUT GET
Cấu hình thông số khối PUT
  • Cấu hình truyền 1 giây 1 lần với xung mặc định của PLC 1Hz
  • Cấu hình truyền 8 byte bắt đầu từ byte số 0 của khối hàm DB1 tại PLC PUT.
  • Địa chỉ nhận là 8 byte bắt đầu từ byte số 0 của khối hàm DB2 tại PLC GET.
Tập lệnh PUT GET
Cấu hình thông số khối PUT

Thông số:

Bảng sau đây hiển thị các tham số của lệnh “PUT”:

Thông sốKiểu dữ liệuMô tả
REQBOOLKiểm soát yêu cầu tham số, kích hoạt trao đổi dữ liệu trên một cạnh tích cực (xung sườn lên).
IDWORDCác tham số địa chỉ để chỉ định kết nối với CPU đối tác (khi kết nối CPU với nhau, tham số này sẽ tự động đặt (mặc định 100)).
DONEBOOLThông số trạng thái ĐÃ HOÀN THÀNH:
• 0: Công việc chưa bắt đầu hoặc vẫn đang thực hiện
• 1: Công việc được thực hiện không có lỗi.
ERRORBOOLThông số trạng thái ERROR và STATUS, mã lỗi:
• LỖI=0
TÌNH TRẠNG có giá trị:
o Hiện mã 0000H: Không có cảnh báo cũng không có lỗi
o Hiện khác mã 0000H: Cảnh báo, STATUS cung cấp thông tin chi tiết.
• LỖI=1 Đã xảy ra lỗi, STATUS cung cấp thông tin chi tiết về loại lỗi.
STATUSWORD
ADDR_1REMOTECon trỏ tới các khu vực trên CPU đối tác mà dữ liệu sẽ được ghi vào.
Khi con trỏ REMOTE truy cập một DB, DB phải luôn được chỉ định.
Ví dụ: P#DB10.DBX5.0 Byte 10 (Giải thích: Truyền 10 byte tính từ byte số 5 của khối dữ liệu DB10).
Khi truyền cấu trúc dữ liệu (ví dụ: Struct), loại dữ liệu CHAR phải được sử dụng tại các tham số ADDR_i.
ADDR_2REMOTE
ADDR_3REMOTE
ADDR_4REMOTE
SD_1VARIANTCon trỏ tới các khu vực trên CPU cục bộ chứa dữ liệu được gửi.
SD_2VARIANT
SD_3VARIANT
SD_4VARIANT

Thông số LỖI và TÌNH TRẠNG:

Bảng sau chứa tất cả thông tin lỗi cụ thể cho lệnh “PUT” có thể được xuất ra thông qua các tham số LỖI và TÌNH TRẠNG:

Mã lỗiMã trạng tháiMô tả chi tiết
011Cảnh báo: Công việc mới không hoạt động vì công việc trước đó vẫn đang bận xử lý.
025Truyền thông đã bắt đầu. Công việc đang được xử lý.
11Vấn đề giao tiếp, ví dụ:
• Mô tả kết nối không được tải (cục bộ hoặc từ xa).
• Kết nối bị gián đoạn (ví dụ: cáp, tắt CPU, CP ở chế độ STOP).
• Kết nối với đối tác chưa được thiết lập.
12• Xác nhận tiêu cực của CPU đối tác. Chức năng không thể được thực thi.
• Quyền truy cập trên CPU đối tác không được cấp. Kích hoạt quyền truy cập trong cài đặt CPU.
14Lỗi trong các con trỏ tới bộ lưu trữ dữ liệu:
• Kiểu dữ liệu của tham số SD_i và ADDR_i không tương thích với nhau.
• Độ dài của vùng SD_i lớn hơn độ dài của dữ liệu của tham số ADDR_i sẽ được ghi.
• Không thể truy cập SD_i.
• Đã vượt quá kích thước dữ liệu người dùng tối đa.
• Số tham số SD_i và ADDR_i không khớp.
18Lỗi truy cập với CPU đối tác (ví dụ: DB không được tải hoặc không được bảo vệ chống ghi).
110Không thể truy cập vào bộ nhớ người dùng cục bộ (ví dụ: truy cập vào một DB đã bị xóa).
120• Đã vượt quá số lượng công việc song song tối đa.
• Công việc hiện đang được xử lý trong lớp ưu tiên với mức độ ưu tiên thấp (cuộc gọi đầu tiên).
1W#16#80C3(chỉ với S7-1500)
• Đã vượt quá số lượng công việc song song tối đa.
• Công việc hiện đang được xử lý trong lớp ưu tiên với mức độ ưu tiên thấp (cuộc gọi đầu tiên).

Tải ví dụ về code mẫu tại đây: https://libcode.net/lib/truyen-thong-put-get-trong-plc-siemens/