Kiểu dữ liệu và phân chia bộ nhớ

Một phần của tài liệu Giáo trình kỹ thuật điều khiển lập trình (Trang 38 - 43)

a) Kiểu dữ liệu

Một chương trình trong S7-300 cĩ thể sử dụng các kiểu dữ liệu sau:

* BOOL: Với dung lượng 1 bít và cĩ giá trị là 0 hoặc 1 (đúng hoặc sai). Đây là kiểu dữ liệu cho biến hai trị.

* BYTE: Gồm 8 bít, thường được dùng để biểu diễn một số nguyên dương trong khoảng từ 0 đến 225 hoặc mã ASCH của một kí tự.

Ví dụ : L B # 16 #14

Lệnh nạp số nguyên14 viết theo hệ cơ số 16 độ dài 1 byte vào ACCU1. * WORD: Gồm 2 bytes, để biểu diễn một số nguyên dương từ 0 đến 65535. Ví dụ: L 930

L W#16#3A2

* INT: Cũng cĩ dung lượng là 2 bytes, dùng để biểu diễn một số nguyên trong khoảng (–32768  32767).

Ví dụ: L 930

L W#16#3A2

* DINT: Gồm 4 bytes, dùng để biểu diễn một số nguyên từ –2147483648 đến 2147483647.

Ví dụ: L 930

L W#16#3A2

* REAL: Gồm 4 bytes, dùng để biểu diễn một số thực dấu phẩy động. Ví dụ: L 1 . 234567e + 13

L 930 . 0

* S5T (hay S5TIME): Khoảng thời gian, được tính theo giờ/phút/giây/mili giây. Ví dụ: L S5T#2h – 1m- 0s- 5ms

Lệnh tạo khoảng thời gian là hai tiếng một phút và 5 mili giây. * TOD: Biểu diẽn giá ttrị thời giantính theo giờ/phút/giây.

Ví dụ: L TOD#5: 45: 00.

Lệnh khai báo giá trị hthời gian trong ngày là 6 giờ kém 15. * DATE: Biểu diễn giá trị thời gian tính theo năm/tháng/ngày.

Ví dụ: L DATE# 1999- 12- 8

Lệnh khai báo ngày mùng 8 tháng 12 năm 1999. * CHAR: Biểu diễn một hoặc nhiều kí tự (nhiều nhất là 4 kí tự).

Ví dụ: L `ABCD´

b) Cấu trúc bộ nhớ của CPU

Bộ nhớ của S7- 300 được chia làm ba vùng chính: * Vùng chứa chương trình ứng dụng (Load memory):

Vùng nhớ chương trình (do người sử dụng viết) bao gồm tất cả các khối chương trình ứng dụng OB, FC, FB, các khối chương trình trong thư viện của hệ thống được sử dụng ( SFC, SFB) và các khối dư liệu DB. Vùng nhớ chương trình ứng dụng được chia làm 3 miền:

- OB (Organisation block): Miền chứa chương trình tổ chức.

- FC (Function): Miền chứa chương trình con được tổ chức thành hàm cĩ biến hình thức để trao đổi dữ liệu với chương trình đã gọi nĩ.

- FB (Function block): Miền chứa chương trình con, được tổ chức thành hàm và cĩ khả năng trao đổi dữ liệu với bất cứ một khối chương trình nào khác. Các dữ liệu này phải được xây dựng thành một khối dữ liệu riêng (gọi là BD – Data block).

Vùng nhớ này được tạo bởi một phần bộ nhớ RAM của CPU và EEPRROM (nếu cĩ EEPROM). Khi thực hiện xố bộ nhớ (MRES) tồn bộ khối chương trình dữ liệu nằm trong RAM sẽ bị xố. Cũng như vậy khi chương trình hay khối dữ liệu được đổ (Download), từ thiết bị lập trình (Máy tính) vào mơ đun CPU chúng sẽ được ghi lên RAM của vùng nhớ Load memory.

* Vùng chứa tham số của hệ điều hành và chương trình ứng dụng (system memory):

Được phân chia thành 7 miền khác nhau, bao gồm:

- I (Process image input): Miền bộ đệm các dữ liệu cổng vào số. Trước khi bắt đầu thực hiện chương trình, PLC sẽ đọc giá trị logic của tất cả các cổng đầu vào và cất giữ chúng trong vùng nhớ 1. Thơng thường chương trình ứng dụng khơng đọc trực tiếp trạng thái logic của cổng vào số mà chỉ lấy dữ liệu của cổng vào từ bộ đệm I.

- Q (Process image output): miền bộ đệm các dữ liệu cổng ra số. Kết thúc giai đoạn thực hiện chương trình, PLC sẽ chuyển giá trị logic của bộ đệm Q tới các cổng ra số. Thơng thường chương trình khơng trực tiếp gán giá trị tới tận cổng ra mà chỉ chuyển chúng vào bộ đệm Q.

- M: Miền các biến cờ. Chương trình ứng dụng sử dụng vùng nhớ này để lưu giữ những tham số cần thiết và cĩ thể truy cập nĩ theo bit (M), byte ( MB), từ (MW) hay từ kép ( MD).

- T: Miền nhớ phục vụ bộ thời gian (Timer) bao gồm việc lưu giữ giá trị thời gian đặt trước (PV – Preset value), giá trị đếm thời gian tức thời (CV – Current value) cũng như giá trị logic đầu ra của bộ thời gian.

- C: Miền nhớ phục vụ bộ đếm (Counter) bao gồm việc lưu giữ giá trị đặt trước (PV – Preset value), giá trị đếm tức thời (CV – Current value) và giá trị logic đầu ra của bộ đếm.

- PI: Miền địa chỉ cổng vào của các mơ đun tương tự (I/ O External input). Các giá trị tương tự tại cổng vào của mơ đun tương tự sẽ được mơ đun đọc và chuyển tự động theo những địa chỉ. Chương trình ứng dụng cĩ thể truy nhập miền nhớ PI theo từng byte (PIB), từng từ (PIW) hoặc theo từng từ kép (PID).

- PQ: Miền địa chỉ cổng ra cho các mơ đun tương tự (I/ O External output). Các giá trị theo những địa chỉ này sẽ được mơ đun tương tự chuyển tới các cổng ra tương tự. Chương trình ứng dụng cĩ thể truy nhập miền nhớ PQ theo từng byte (PQB), từng từ (PQW) hoặc theo từng từ kép (PQD).

Việc truy cập, sửa đổi dữ liệu các ơ nhớ thuộc vùng nhớ này được phân chia hoặc bởi hệ điều hành của CPU hoặc do chương trình ứng dụng.

Cĩ thể thấy rằng các vùng nhớ đượ trình bày trên khơng cĩ vùng nhớ nào được dùng làm bộ đêm cho các cổng vào ra tương tụ. Nĩi cách khác các cổng vào ra tương tự khơng cĩ bộ đệm và như vậy mỗi lệnh truy nhập mơ đun tương tự (Đọc hay gửi giá trị) đều cĩ tác động tới cổng vật lý của Mơ đun.

* Vùng chứa các khối dữ liệu (Work memory):

Là vùng nhớ chứa các khối DB đang được mở, khối chương trình (OB,FC,FB,SFC hoặc SFB) đang được CPU thực hiện và phần bộ nhớ cấp phát cho những tham số hình thức để các khối chương trình này trao đổi tham trị với hệ đièu hành và với các khối chương trình khác (Local Block). Vùng nhớ này được chia thành hai loại:

- DB (Data block):

Miền chứa các dữ liệu được tổ chức thành khối. Kích thước cũng như số lượng khối do người sử dụng quy định, phù hợp với từng bài tốn điều khiển. Chương trình cĩ thể truy cập miền này theo từng bit (DBX), byte (DBB), từ (DBW) hoặc từ kép (DBD).

- L (Local data block) :

Miền dữ liệu địa phương, được các khối chương trình OB, FC, FB tổ chức và sử dụng cho các biến pháp tức thời và trao đổi dữ liệu của biến hình thức với những khối chương trình đã gọi nĩ. Nội dung của một số dữ liệu trong miền nhớ này sẽ bị xố khi kết thúc chương trình tương ứng trong OB, FC, FB. Miền này cĩ thể được truy nhập từ chương trình theo bit (L), byte (LB) từ (LW) hoặc từ kép (LD).

Tại một thời điểm nhất định vùng word memory chỉ chứa một khối chưong trình. Sau khi chương trình đĩ được thực hiện xong thì hệ điều hành sẽ xố nĩ khỏi Word memory và nạp vào đĩ khối chương trình kế tiếp đến lượt thực hiện.

Trừ phần bộ nhớ EEPROM thuộc vùng Load memory và một phần RAM tự nuơi đặc biệt (Non-Volatile) (khơng cĩ thể biến đổi) dùng để lưu giữ tham số cấu hình trạm PLC như địa chỉ trạm (MPI address), tên các Mơ đun mở rộng, tất cả các phần bộ nhớ cịn lại ở chế độ mặc định sẽ khơng cĩ khả năng tự nhớ (Non – Retentive). Khi mất nguồn nuơi hoặc khi thực hiện cơng việc xố bộ nhớ (MRES) tồn bộ nội dung trong phần bộ nhớ (Non – Retentive) sẽ bị mất. Tuy nhiên ta cĩ thể sử dụng phần mềm STEP 7 để chuyển những khối DB chứa những dữ liệu quan trọng, cũng như các dữ liệu của Timer, Counter vào phần bộ nhớ Ram tự nuơi khi mất điện (gọi là phần Non – volatile hay retentive).

Để chi tiết hơn về ý nghĩa các vùng nhớ (kích thước phụ thuộc vào chủng loại CPU) ta xem bảng 2-1 dưới đây.

c) Phương pháp truy nhập bộ nhớ

PLC lưu giữ thơng tin trong bộ nhớ. Bộ nhớ của PLC được chia thành nhiều vùng (I, Q, M, V, T, C, ...), mỗi vùng nhớ đều cĩ địa chỉ xác định. Ta cĩ thể truy nhập (ghi hoặc đọc thơng tin) vào các ơ nhớ trong các vùng bằng địa chỉ của chúng. Cĩ 2 cách truy nhập: truy nhập theo từng bit và truy nhập theo byte.

* Truy cập địa chỉ vùng nhớ các đầu vào Digital (DI):

Truy nhập theo từng bit: Để truy nhập theo từng Bit, ta phải đánh địa chỉ bao gồm: địa chỉ vùng nhớ, địa chỉ byte, địa chỉ bit (ngăn cách giữa địa chỉ byte và địa chỉ bit là dấu ''.'').

Như vậy thơng tin của đầu vào I3.4 sẽ được lưu giữ trong ơ nhớ cĩ địa chỉ I3.4 Truy nhập vào ơ nhớ này ta sẽ biết được thơng tin đầu vào I3.4

Truy nhập theo byte: Ta cĩ thể truy nhập vào các vùng nhớ theo Byte, Word (2byte), Double Word (4byte). Để truy nhập theo các phương pháp này ta phải đánh địa chỉ bao gồm: Địa chỉ vùng nhớ (V, I, Q, M, SM, T, C, HC...), địa chỉ byte đầu tiên.

MSB LSB

7 6 5 4 3 2 1 0 V í dụ: I 3 . 4

Số thứ tự Bit trong byte: Bit thứ 5 (0 đến 7) Ngăn cách giữa địa chỉ byte và địa chỉ bit

Địa chỉ byte: byte 3 (byte thứ 4)

Tên vùng nhớ: I = vùng nhớ vào I0 I1 I2 I3 I4 I5 I6 I7

MSB: most significant bit LSB: least significant bit

* Địa chỉ vùng nhớ các đầu vào Analog (PI ):

CPU S7-300 cĩ thể chuyển đổi một giá trị analog (điện áp, dịng điện, nhiệt độ) ở đầu vào Analog thành giá trị digital 816bit (phụ thuộc vào loại Mơ đun sử dụng) lưu trong các ơ nhớ của vùng nhớ địa chỉ các đầu vào Analog. Ta cĩ thể truy nhập lấy các giá trị này theo kiểu Byte, word, Double word:

PI [kích thước][địa chỉ byte đầu tiên] PIB20,PIW8,PID6.

Vì các giá trị ở đầu vào Analog được chuyển đổi và lưu trong 2 byte do đĩ các địa chỉ byte đầu tiên luơn là một số chẵn (0,2,4,6....)

Địa chỉ vùng nhớ các đầu ra Analog ( PQ ):

PLC S7-300 chuyển một giá trị kiểu Digital 816bit lưu trong vùng nhớ PQ thành dịng điện hoặc điện áp đưa ra các đầu ra Analog. Ta cĩ thể ghi các giá trị vào vùng nhớ này bằng cách sử dụng địa chỉ như sau:

PQ[kích thước][địa chỉ byte đầu tiên] PQB20,PQW8,PQD6 Hình 1-32: Truy cập theo byte

1.2.2.3. Cấu trúc lệnh và trạng thái kết quả

Như đã nĩi cấu trúc của một lệnh STL cĩ dạng “tên lệnh + tốn hạng” Trong đĩ tốn hạng cĩ thể là dữ liệu hay một địa chỉ

Một phần của tài liệu Giáo trình kỹ thuật điều khiển lập trình (Trang 38 - 43)

Tải bản đầy đủ (PDF)

(177 trang)