Want create site? Find Free WordPress Themes and plugins.

Các cấu trúc Data block đối với thông số DATA_PTR

 Các kiểu dữ liệu sau đây là hợp lệ đối với những việc đọc từ của các địa chỉ Modbus từ 30001 đến 39999, 40001 đến 49999, và 40001 đến 465536 và còn đối với những việc ghi từ đến các địa chỉ Modbus 40001 đến 49999 và 40001 đến 465536:
– Mảng tiêu chuẩn của các kiểu dữ liệu Word, UInt hay Int được thể hiện dưới đây.
– Cấu trúc Word, UInt hay Int được đặt tên, nơi mà mỗi phần tử có một tên đơn nhất và kiểu dữ liệu 16 bit.
– Các cấu trúc phức hợp được đặt tên, nơi mà mỗi phần tử có một tên đơn nhất và một kiểu dữ liệu 16 bit hay 32 bit.

 Đối với những việc đọc và ghi bit của các địa chỉ Modbus từ 00001 đến 09999 và từ 10001 đến 19999:
– Mảng tiêu chuẩn của các kiểu dữ liệu Boolean.

– Cấu trúc Boolean được đặt tên của các biến Boolean được đặt tên đơn nhất.

– Mặc dù không cần thiết, nhưng đề nghị rằng mỗi lệnh MB_MASTER cần có vùng cách ly riêng của nó trong một khối dữ liệu tổng thể. Nguyên nhân của đềnghị này là do khả năng sai lạc dữ liệu là lớn hơn nếu có nhiều lệnhMB_MASTER được đọc và ghi vào một vùng giống nhau của một khối dữ liệu tổng thể.

 Không yêu cầu rằng các vùng dữ liệu DATA_PTR phải nằm trong khối dữ liệutổng thể giống nhau. Ta có thể tạo ra một khối dữ liệu với nhiều vùng nhớ dànhcho các việc đọc Modbus, một khối dữ liệu dành cho việc ghi Modbus, hay mộtkhối dữ liệu dành cho mỗi trạm phụ thuộc.

 Tất cả các mảng trong ví dụ dưới đây được tạo ra như các mảng base 1 [1…#].Các mảng có thể vừa được tạo ra như mảng base 0 [0…#] hay một sự hòa trộngiữa base 0 và base 1.

Minh họa các lệnh MB_MASTER truy xuất các khối dữ liệu tổng thể DATA_PTRKhối dữ liệu tổng thể minh họa được thể hiện dưới đây sử dụng 4 mảng 6 wordđược đặt tên đơn nhất dành cho bộ nhớ dữ liệu truy vấn Modbus. Mặc dù các mảng dữliệu trong ví dụ này có kích thước giống nhau nhưng các mảng có thể có nhiều kíchthước và được thể hiện với kích thước giống nhau nhằm đơn giản hóa các ví dụ. Mỗimảng còn có thể được đặt với một cấu trúc dữ liệu chứa nhiều hơn các tên thẻ ghi nhãnmiêu tả và các kiểu dữ liệu được hòa trộn. Các ví dụ về các cấu trúc dữ liệu loại trừnhau được cung cấp trong phần miêu tả thông số HR_DB của lệnh MB_SLAVE.

Các ví dụ lệnh MB_MASTER dưới đây chỉ thể hiện thông số DATA_PTR vàkhông thể hiện các thông số cần thiết khác. Mục đích của ví dụ này là để chỉ ra lệnhMB_MASTER sử dụng khối dữ liệu DATA_PTR như thế nào.

Các mũi tên cho biết mỗi mảng được kết hợp với các lệnh MB_MASTER ra sao.

Phần tử đầu tiên của mỗi mảng hay cấu trúc luôn luôn là nguồn hay đích đầutiên của bất kỳ hoạt động đọc hay ghi Modbus nào. Tất cả các kịch bản dưới đây dựatrên sơ đồ trên.

Kịch bản 1: nếu lệnh MB_MASTER đầu tiên đọc 3 từ của dữ liệu từ địa chỉModbus 40001 trên bất kỳ phần phụ thuộc Modbus hợp lệ nào, khi đó các khả năngsau sẽ xảy ra:

Từ ở địa chỉ 40001 được lưu trữ trong “Data”.Array_1[1].
Từ ở địa chỉ 40002 được lưu trữ trong “Data”.Array_1[2].
Từ ở địa chỉ 40003 được lưu trữ trong “Data”.Array_1[3].

Kịch bản 2: nếu lệnh MB_MASTER đầu tiên đọc 4 từ của dữ liệu từ địa chỉModbus 40015 trên bất kỳ phần phụ thuộc Modbus hợp lệ nào, khi đó các khả năngsau sẽ xảy ra:

Từ ở địa chỉ 40015 được lưu trữ trong “Data”.Array_1[1].
Từ ở địa chỉ 40016 được lưu trữ trong “Data”.Array_1[2].
Từ ở địa chỉ 40017 được lưu trữ trong “Data”.Array_1[3].
Từ ở địa chỉ 40018 được lưu trữ trong “Data”.Array_1[4].

Kịch bản 3: nếu lệnh MB_MASTER thứ hai đọc 2 từ của dữ liệu từ địa chỉ Modbus 30033 trên bất kỳ phần phụ thuộc Modbus hợp lệ nào, khi đó các khả năng sau sẽ xảy ra:

Từ ở địa chỉ 30033 được lưu trữ trong “Data”.Array_2[1].
Từ ở địa chỉ 30034 được lưu trữ trong “Data”.Array_2[2].

Kịch bản 4: nếu lệnh MB_MASTER thứ ba ghi 4 từ của dữ liệu đến địa chỉModbus 40050 trên bất kỳ phần phụ thuộc Modbus hợp lệ nào, khi đó các khả năng sau sẽ xảy ra:

Từ ở “Data”.Array_3[1] được ghi đến địa chỉ Modbus 40050.
Từ ở “Data”.Array_3[2] được ghi đến địa chỉ Modbus 40051.
Từ ở “Data”.Array_3[3] được ghi đến địa chỉ Modbus 40052.
Từ ở “Data”.Array_3[4] được ghi đến địa chỉ Modbus 40053.

Kịch bản 5: nếu lệnh MB_MASTER thứ ba ghi 3 từ của dữ liệu đến địa chỉModbus 40001 trên bất kỳ phần phụ thuộc Modbus hợp lệ nào, khi đó các khả năng sau sẽ xảy ra:

Từ ở “Data”.Array_3[1] được ghi đến địa chỉ Modbus 40001.
Từ ở “Data”.Array_3[2] được ghi đến địa chỉ Modbus 40002.
Từ ở “Data”.Array_3[3] được ghi đến địa chỉ Modbus 40003.

Kịch bản 6: nếu lệnh MB_MASTER thứ tư sử dụng Mode 11 (tìm kiếm lần đếm thông điệp hợp lệ) từ bất kỳ phần phụ thuộc Modbus hợp lệ nào, khả năng sau đây sẽ xảy ra:

Từ đếm được lưu trữ trong “Data”.Array_4[1].
Ví dụ đọc và ghi bit sử dụng các vị trí lƣu từ nhƣ ngõ vào DATA_PTR

Kịch bản 7: đọc 4 bit ngõ ra bắt đầu từ địa chỉ Modbus 00001.

Kịch bản 8: đọc 12 bit ngõ ra bắt đầu từ địa chỉ Modbus 00003.

 

Kịch bản 9: ghi 5 bit ngõ ra bắt đầu từ địa chỉ Modbus 00001.

Kịch bản 10: đọc 22 bit ngõ ra bắt đầu từ địa chỉ Modbus 00003

Ví dụ đọc và ghi các bit sử dụng các vị trí BOOL nhƣ ngõ vào DATA_PTRMặc dù những việc đọc và ghi của Modbus đến các vị trí địa chỉ bit có thể đượcthực hiện thông qua việc sử dụng các vị trí từ, các vùng nhớ DATA_PTR còn có thểđược cấu hình như các kiểu dữ liệu Boolean, các cấu trúc hay các mảng để cung cấpmột giá trị 1 trực tiếp đến một sự tương quan đối với bit đầu tiên được đọc hay ghibằng cách sử dụng một lệnh MB_MASTER.

Nếu ta sử dụng các mảng hay các cấu trúc Boolean, đề nghị rằng nên làm chokích thước dữ liệu là một bội số của 8 bit (theo các giới hạn byte). Ví dụ, khi ta tạo ramột mảng Boolean gồm 10 bit, phần mềm STEP 7 Basic sẽ phân bổ 16 bit (2 byte)trong khối dữ liệu tổng thể dành cho 10 bit. Bên trong khối dữ liệu, các bit này sẽ đượclưu theo dạng byte1 [xxxx xxxx] byte [—- –xx] với “x” cho biết các vị trí dữ liệu cóthể truy xuất và “-” cho biết các vị trí không thể truy xuất được. Cho phép truy vấnModbus tối đa một độ dài là 16 bit, nhưng 6 bit cao sẽ được đặt vào trong các vùngnhớ byte 2 mà không được tham chiếu và không thể truy xuất bằng chương trình.

Các vùng dữ liệu Boolean có thể được tạo ra như một mảng của các giá trịBoolean hay như một cấu trúc các biến Boolean. Cả hai phương pháp đều hoạt độngtheo một cách giống nhau và chỉ khác ở cách mà chúng được tạo ra và được truy xuấttrong chương trình.

Trình soạn thảo khối dữ liệu tổng thể hiển thị dưới đây thể hiện một mảng đơnlẻ gồm 16 giá trị Boolean được tạo ra dựa trên 0. Mảng này còn có thể được tạo ra matrận đơn vị chuẩn. Mũi tên thể hiện cách mà mảng này được liên kết với một lệnh MB_MASTER.

Kịch bản 12: đọc 15 bit ngõ ra bắt đầu từ địa chỉ Modbus 00003

Các mã điều kiện

BÀI VIẾT LIÊN QUAN
Did you find apk for android? You can find new Free Android Games and apps.