Vùng nhớ dữ liệu, đối tượng và cách truy cập

Một phần của tài liệu Tài liệu lập trình PLC (Trang 42 - 49)

PLC thường yêu cầu bộ nhớ trong các trường hợp: Làm bộ định thời cho các kênh trạng thái I/O. Làm bộ đệm trạng thái các chức năng trong PLC như định thời, đếm, ghi các Relay.

Mỗi lệnh của chương trình có một vị trí riêng trong bộ nhớ, tất cả mọi vị trí trong bộ nhớ đều được đánh số, những số này chính là địa chỉ trong bộ nhớ. Địa chỉ của từng ô nhớ sẽ được trỏ đến bởi một bộ đếm địa chỉ ở bên trong bộ vi xử lý. Bộ vi xử lý sẽ giá trị trong bộ đếm này lên một trước khi xử lý lệnh tiếp theo. Với một địa chỉ mới, nội dung của ô nhớ tương ứng sẽ xuất hiện ở đầu ra, quá trình này được gọi là quá trình đọc.

Bộ nhớ bên trong PLC được tạo bởi các vi mạch bán dẫn, mỗi vi mạch này có khả năng chứa 2000 - 16000 dòng lệnh , tùy theo loại vi mạch. Trong PLC các bộ nhớ như RAM, EPROM đều được sử dụng.

+ EPROM (Electrically Programmable Read Only Memory) là bộ nhớ mà người sử dụng bình thường chỉ có thể đọc chứ không ghi nội dung vào được. Nội dung của EPROM không bị mất khi mất nguồn, nó được gắn sẵn trong máy, đã được nhà sản xuất nạp và chứa hệ điều hành sẵn. Nếu người sử dụng không muốn mở rộng bộ nhớ thì chỉ dùng thêm EPROM gắn bên trong PLC. Trên PG (Programer) có sẵn chỗ ghi và xóa EPROM.

+ EEPROM (Electrically Erasable Programmable Read Only Memory) liên kết với những truy xuất linh động của RAM và có tính ổn định. Nội dung của nó có thể được xóa và lập trình bằng điện, tuy nhiên số lần là có giới hạn. Môi trường ghi dữ liệu thứ tư là đĩa cứng hoặc đĩa mềm, được sử dụng trong máy lập trình. Đĩa cứng hoặc đĩa mềm có dung lượng lớn nên thường được dùng để lưu những chương trình lớn trong một thời gian dài.

* Kích thước bộ nhớ:

- Các PLC loại nhỏ có thể chứa từ 300 -1000 dòng lệnh tùy vào công nghệ chế tạo. - Các PLC loại lớn có kích thước từ 1K - 16K, có khả năng chứa từ 2000 -16000 dòng lệnh. Ngoài ra còn cho phép gắn thêm bộ nhớ mở rộng như RAM, EPROM.

Cấu trúc bộ nhớ:

Bộ nhớ gồm 48KB RAM, 48KB ROM, không có khả năng mở rộng và tốc độ xử lý gần 0.3ms trên 1000 lệnh nhị phân, bộ nhớ được chia trên các vùng:

+ Vùng chứa chương trình ứng dụng:

- OBx (Organisation block): Miền chứa chương trình tổ chức, trong đó:

- Khối OB1: Khối tổ chức chính, mặc định, thực thi lặp vòng. Nó được bắt đầu khi quá trình khởi động hoàn thành và bắt đầu trở lại khi nó kết thúc.

- Khối OB10 (Time of day interrupt): được thực hiện khi có tín hiệu ngắt thời gian. - Khối OB20 (Time delay interrupt): được thực hiện sau 1 khoảng thời gian đặt trước. - Khối OB35 (Cyclic Interrupt): khối ngắt theo chu kì định trước

- Khối OB40 (Hardware Interrupt): được thực hiện khi tín hiệu ngắt cứng xuất hiện ở ngõ vào I124.0 I124.3

- 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ó, được phân biệt bởi các số nguyên. Ví dụ:

FC1, FC7, FC30ngoài ra còn có các hàm SFC là các hàm đã được tích hợp sẵn trong hệ điều hành.

- FB (Function Block): tương tự như FC, FB còn phải xây dựng 1khối dữ liệu riêng gọi là DB (Data Block) và cũng có các hàm SFB là các hàm tích hợp sẵn trong hệ điều hành. + Vùng chứa các tham số hệ điều hành và chương trình ứng dụng:

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

- Q (Process image output): tương tự vùng I, miền Q là bộ đệm dữ liệu cổng ra số. Khi kết thúc chương trình, PLC sẽ chuyển giá trị logic của bộ đệm Q tới các cổng ra số. - M (Memory): Miền các biến cờ. Do vùng nhớ này không mất sau mỗi chu kỳ quét nên chương trìng ứng dụng sẽ sử dụng vùng nhớ này để lưu giữ các tham số cần thiết. Có thể truy nhập nó theo bit (M), byte (MB), theo từ (MW) hay từ kép (MD).

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

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

- PI: Miền địa chỉ cổng vào của các module tương tự (I/O External input). Các giá trị tương tự tại cổng vào của module tương tự sẽ được module đọc và chuyển tự động theo những địa chỉ. Chương trình ứng dụng có thể truy cậ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 của các module tương tự (I/O External output). Các giá trị tương tự tại cổng vào của module tương tự sẽ được module đọc và chuyển tự động theo những địa chỉ. Chương trình ứng dụng có thể truy cập miền nhớ PI theo từng byte (PQB), từng từ (PQW) hoặc theo từng từ kép (PQD).

• 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ụngcho các biến nhá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 đã gọi nó. Toàn bộ vùng nhớ sẽ bị xoá sau khi khối thực hiện xong. Có thể truy nhập theo từng bit (L), byte (LB), từ LW), hoặc từ kép (LD).

Kích thước các vùng nhớ tùy thuộc vào từng loại PLC

Phương pháp truy cập vùng nhớ:

Địa chỉ ô nhớ trong PLC S7-300 bao gồm hai thành phần: phần chữ và phần số. Ví dụ:

Truy nhập theo byte: Bao gồm các kiểu Byte (1 byte), Word (2 byte), Double word (4 byte)

Quy cách: Tên vùng nhớ, kích thước, địa chỉ byte đầu tiên

Vùng nhớ các đầu vào I:

- Tại thời điểm đầu tiên mỗi vòng quét PLC lấy tín hiệu từ các đầu vào và ghi các giá trị tương ứng vào vùng nhớ đầu vào. (adsbygoogle = window.adsbygoogle || []).push({});

- Truy nhập: Kiểu: Bit I[địa chỉ byte].[địa chỉ bit] I0.1

Byte, word, Double word I[kích thước][địa chỉ byte đầu tiên] Ví dụ: IB4, IW1, ID2

Vùng nhớ các đầu ra Q:

- Trong quá trình thực hiện các công việc trong một vòng quét (bao gồm cả chương trình điều khiển), PLC sẽ ghi các giá trị tơơng ứng của các vào vùng nhớ này, cuối vòng quét PLC sẽ gửi các giá trị này đến các đầu ra tương ứng.

- Truy nhập: Kiểu: Bit Q[địa chỉ byte].[địa chỉ bit] Q0.0 Byte, word, Double word Q[kích thước][địa chỉ byte đầu tiên] Ví dụ: QB2, QW1, QD4

Vùng nhớ M:

Ví dụ: MB20, MW8, MD6

Vùng nhớ thời gian T

- Mỗi bộ thời gian có hai giá trị được lưu trữ trong vùng nhớ T: Giá trị đếm thời gian hiện tại (16 bit), và giá trị bit timer (1 bit).

- Truy nhập: T [số thứ tự bộ timer] T3

Vùng nhớ bộ đếm C:

- Mỗi bộ đếm có hai giá trị được lơu trữ trong vùng nhớ C: Giá trị đếm hiện tại (kiểu BDC, 12 bit), và giá trị bit counter (1 bit).

- Truy nhập: C [số thứ tự bộ timer] C1

Vùng nhớ các đầu vào, đầu ra Analog AI, AQ:

- PLC chuyển đổi một giá trị điện áp (hoặc dòng điện) thành một số nhị phân (12 bit) lưu trữ trong vùng nhớ analog (hoặc ngược lại).

- Cách truy nhập với tín hiệu vào: PI[kích thước][địa chỉ byte đầu tiên] Ví dụ: Truy nhập: Kiểu: Byte, Word, Double word

PIB20, PIW8, PID6

- Cách truy nhập với tín hiệu ra: PQ[kích thước][địa chỉ byte đầu tiên] Ví dụ: Truy nhập: Kiểu: Byte, Word, Double word

PQB20, PQW8, PQD6

Vùng nhớ của các khối dữ liệu DB:

- Mở khối dữ liệu DB hoặc DI bằng lệnh OPN

Ví dụ: OPN DB 1 // Mở khối dữ liệu DB (Open data Block) Hoặc OPN DI 1 // Mở khối dữ liệu DI (Open instance data Block) - Mở một bít trong khối dữ liệu DBX

- Mở một Byte, một WORD hoặc một một DW trong khối dữ liệu DBx Ví dụ: L DB3. DBB2 // chỉ tới Byte 2 trong khối dữ liệu DB3

L DB3. DBW2 // chỉ tới WORD 2 trong khối dữ liệu DB3 L DB. DBD2 // chỉ tới DWORD 2 trong khối dữ liệu DB3

Vùng nhớ trong các khối chương trình OB, FBx và FCx

- Chỉ 1 bit

Ví dụ: A L0.2// chỉ bít số 2 của Byte 0 trong miền dữ liệu địa phương - Chỉ một Byte, Word hoặc DW

Ví dụ: L LB0 // chỉ byte 0 trong miền dữ liệu địa phương L LW0 // chỉ Word 0 trong miền dữ liệu địa phương L LD0 // chỉ DWord 0 trong miền dữ liệu địa phương

(adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu Tài liệu lập trình PLC (Trang 42 - 49)