fbpx

Tóm lược Optimized blocks- Little-Endian và Big Endian- S7 300/400 S7 1200/1500 lưu trữ và truy vấn Data

Việc lưu trữ dữ liệu vào bộ nhớ có 2 cách sắp xếp ngược nhau là: Little-Endian và Big Endian, tạm hiểu là như này

  • Little Endian: dữ liệu được sắp xếp vào vùng nhớ từ Byte nhỏ nhất (Least Significant Byte (LSB)) trong vùng nhớ. Việc này giúp tiết kiệm và tối ưu vùng nhớ, hỗ trợ Processor truy vấn nhanh data, tuy nhiên với người lập trình thì nó khó debug hơn Big Endian.
  • Big Endian: thì ngược lại, dữ liệu được sắp xếp từ Byte lớn nhất (Most Significant Byte (MSB) trong vùng nhớ. TCP, UPD, IPv4 và IPv6 và nhiều giao thức đóng gói kiểu dữ liệu truyển nhận theo Big Endian do dễ debug và truy xuất theo Address vùng nhớ dễ hơn, việc sắp xếp từ lớn tới nhỏ cũng tương thích với kiểu sắp xếp trong truyền thông là đi từ địa chỉ lớn tới nhỏ. Mình thì hiểu đơn giản vậy, chứ kỳ thực cũng phức tạp, bạn nào hiểu rõ chia sẻ thêm với nhé.

Siemen S7300/400 dùng lưu trữ kiểu Big Endian, sau này S7 1200/1500 phát triển sử dụng Little Endian để tối ưu lưu trữ và tối ưu việc truy vấn data của Prossesor, tuy nhiên vẫn không thể không dùng Big Endian để hỗ trợ cho các dòng S7300/400 đang lơ lửng trên thị trường và nhiều ứng dụng cần tới như truyền thông….

Căn cứ theo đó mà sinh ra : Optimized blocks và Non-Optimized blocks

optimize block

  • Optimized blocks:  sử dụng Little-Endian và Processor có thể truy vấn trực tiếp do khớp nhau và được Siemens khuyến khích sử dụng, do tính năng vượt trội trong việc lưu trữ và tối ưu truy vấn từ Processor, còn người dùng thì truy vấn chỉ qua Symbolic (theo biến user đặt) chứ không gọi được các địa chỉ (theo kiểu: %DB1.DBD0). Quan sát hình bạn cũng thấy Optimized block lưu trữ rất tối ưu. Vùng nhớ Retain được tách riêng ra hẵn nên khi khai báo là Optimized block, bạn có thể tùy chọn Biến nào mún Retain.
  • Non-Optimized blocks: sử dụng Big-Endian và cần thêm bước chuyển đổi qua Little-Endian khi Processor truy vấn, ngốn tài nguyên nên Siemen không khuyên dùng, được cái dễ dùng nên khi bạn mún truy vấn bằng Symbolic hay địa chỉ (kiểu %DB1.DBX0.0) cũng vô tư, trong block sẻ hiện kèm giá trị Offset chính là địa chỉ truy vấn, cài mà Optimized Block không có được. Với kiểu này thì bạn chọn Retain là phải Retain hết lun cả block, do đó lạm dụng quá là không tốt cho CPU nhé.

optimize block3

Còn Set Optimized hay Non thì vào Properties của Block mà set nhé:

optimize block2

Leave a Reply

Your email address will not be published. Required fields are marked *

0378029298