1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

plc s7-300 vietnam pro1_09e_dbs

14 997 3
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Data Storage in Data Blocks
Trường học Siemens AG
Chuyên ngành Automation and Drives
Thể loại Giáo trình
Năm xuất bản 2008
Định dạng
Số trang 14
Dung lượng 1,15 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Overview Bên cạnh các khối chương trình program block thì một chương trình còn cócác dữ liệu chứa thông tin về tình trạng xử lý, tín hiệu .v.v...Sau đó những dữ liệu này sẽ được xử lý tù

Trang 1

Contents Page

Objectives 2

Storage Areas for Data ………… 3

Data Blocks (DBs) 4

Overview of Data Types in STEP 7 5

Elementary Data Types in STEP 7 6

Creating a New Data Block 7

Entering, Saving, Downloading and Monitoring a Data Block 8

Addressing Data Elements … 9

Accessing Data Elements 10

Exercise: Counting the Transported Parts (FC 18) ……… ……….… 11

Complex Data Types ………… 12

Example of an Array 13

Example of a Structure 14

Date: 25.07.2008 File: PRO1_09E.1

SIMATIC®S7

Siemens AG 2002 All rights reserved.

SITRAINTraining for Automation and Drives

Data Storage in Data Blocks

Trang 2

Date: 25.07.2008 File: PRO1_09E.2 SIMATIC®S7

Siemens AG 2002 All rights reserved.

SITRAINTraining for Automation and Drives

Objectives

Sau khi hoàn thành chương này người học sẽ:

hiểu được mục đích của khối dữ liệu toàn cục (global data

block) làm quen với kiểu dữ liệu sơ cấp, cơ bản và kiểu dữ liệu phức

tạp (elementary and complex data types) có khả năng chỉnh sửa, lưu và download một khối dữ liệu với

những biến sơ cấp vào CPU làm quen và có thể ứng dụng khả năng định địa chỉ cho các

biến của khối dữ liệu

Trang 3

Overview Bên cạnh các khối chương trình (program block) thì một chương trình còn có

các dữ liệu chứa thông tin về tình trạng xử lý, tín hiệu v.v Sau đó những dữ liệu này sẽ được xử lý tùy theo các câu lệnh trong chương trình

Dữ liệu được lưu trong các biến của chương trình Các biến này được nhận dạng bằng :

• Nơi lưu trữ (địa chỉ: ví dụ như P, PII, PIQ, bit nhớ, L stack, DB)

• Kiểu dữ liệu (kiểu sơ cấp hoặc phức tạp, loại thông số) Ngoài ra cũng có thể phân biệt dựa vào khả năng truy cập:

• Các biến toàn cục được khai báo trong bảng ký hiệu tượng trưng toàn cục hoặc trong các khối dữ liệu toàn cục (global symbol table or global data blocks)

• Biến cục bộ, được khai báo trong phần khai báo của OB, FB và FC

Các biến có thể lưu ở vùng nhớ cố định trong vùng đệm, vùng nhớ hoặc trong các khối dữ liệu Chúng cũng có thể được tạo ra một cách linh động trong ngăn xếp L khi một block được thực hiện

Local Data Stack Ngăn xếp dữ liệu cục bộ (L stack) là vùng lưu trữ:

• các biến tạm của một khối logic, bao gồm thông tin khởi động OB

• các địa chỉ thực sự khi gọi khối chức năng FC

• những kết quả logic trung gian trong LAD Những vấn đề này được đề cập đến trong chương "Functions and Function Blocks"

Data Blocks Các khối logic của chương trình dùng các khối dữ liệu (data block) để lưu trữ dữ

liệu Không giống như các dữ liệu tạm thời, dữ liệu trong những khối dữ liệu không bị ghi đè lên khi kết thúc việc thi hành khối logic hoặc khi đóng DB

Date: 25.07.2008 File: PRO1_09E.3

SIMATIC®S7

Siemens AG 2002 All rights reserved.

SITRAINTraining for Automation and Drives

Bit memories PIQ

PII

Storage Areas for Data

Data blocks

DBx DBy DBz

. I/O area

L stack

Trang 4

Overview Các khối dữ liệu được dùng để lưu trữ dữ liệu của người sử dụng Giống như

các khối logic, khối dữ liệu cũng chiếm dụng những vùng trong bộ nhớ Các khối dữ liệu chứa các biến dữ liệu (ví dụ như các giá trị số học) được dùng trong chương trình

Chương trình của người sử dụng có thể truy cập đến dữ liệu trong các khối dữ liệu bằng các thao tác về bit, byte, word hoặc doubleword Việc truy cập này

có thể sử dụng địa chỉ theo ký hiệu tượng trưng hoặc địa chỉ tuyệt đối

Uses Bạn có thể sử dụng các khối dữ liệu theo nhiều cách tùy thuộc nội dung của

chúng Bạn cần phân biệt giữa:

• Các khối dữ liệu toàn cục (global data block): Những khối này chứa thông tin mà tất cả các khối logic trong chương trình (bao gồm cả OB1) có thể truy xuất đến được

• Các khối dữ liệu cá biệt (instance data block): Những khối này luôn được gán cho một khối FB nhất định Dữ liệu trong mỗi DB chỉ được dùng bởi

FB được gán đó

Những khối dữ liệu cá biệt được đề cập chi tiết hơn trong chương Functions and Function Blocks"

Creating DBs Bạn có thể tạo ra các khối dữ liệu toàn cục - global DB bằng cách dùng công

cụ soạn thảo chương trình hoặc với một "user-defined data type" (UDT, kiểu

dữ liệu do người dùng định nghĩa) mà bạn đã tạo ra trước đó

Các khối dữ liệu cá biệt được tạo ra khi gọi khối FB

Registers CPU có 2 thanh ghi khối dữ liệu (data block register), thanh ghi DB và DI Vì

vậy bạn có thể mở hai khối dữ liệu cùng lúc

Vấn đề này được đề cập trong giáo trình lập trình nâng cao

Date: 25.07.2008 File: PRO1_09E.4

SIMATIC®S7

Siemens AG 2002 All rights reserved.

SITRAINTraining for Automation and Drives

Data Blocks (DBs)

Function FC10

Function FC20

Function block FB1

OB1

Global data DB20 Accessible to all blocks

Instance data DB5 Instance DB for FB1

Trang 5

Overview Kiểu dữ liệu xác định tính chất của dữ liệu, nghĩa là nội dung của một hay

nhiều địa chỉ kết hợp được thể hiện như thế nào và phạm vi cho phép của giá trị là gì

Kiểu dữ liệu cũng xác định loại thao tác nào có thể sử dụng với kiểu dữ liệu đó

Elementary Kiểu dữ liệu sơ cấp, cơ bản (elementary data type) được định nghĩa từ trước

Data Types theo tiêu chuẩn IEC 61131-3 Kiểu dữ liệu này xác định khoảng trống bộ nhớ

cần thiết VD dữ liệu dạng word chiếm 16 bit trong bộ nhớ

Kiểu dữ liệu sơ cấp không bao giờ dài quá 32 bit và có thể được nạp toàn bộ vào trong các accumulator của bộ xử lý S7 và được xử lý với các lệnh cơ bản của STEP 7

Complex Kiểu dữ liệu phức tạp chỉ có thể được sử dụng trong việc kết nối với các biến

Data Types khai báo trong các khối dữ liệu toàn cục Kiểu dữ liệu phức tạp không thể nạp

được hết vào trong accumulators bằng lệnh load Bạn dùng các khối chuẩn từ thư viện ("IEC" S7 Program) để xử lý các kiểu dữ liệu phức tạp

User-Defined Kiểu dữ liệu do người dùng định nghĩa được dùng cho các khối dữ liệu hoặc

Data Types dùng như là một kiểu dữ liệu trong bảng khai báo biến

Bạn dùng trình biên tập khối dữ liệu - Data Block Editor để tạo ra UDT

Cấu trúc của một UDT có thể chứa các nhóm dữ liệu dạng sơ cấp và/hoặc các kiểu dữ liệu phức tạp

Date: 25.07.2008 File: PRO1_09E.5

SIMATIC®S7

Siemens AG 2002 All rights reserved.

SITRAINTraining for Automation and Drives

Overview of Data Types in STEP 7

Elementary

data types

(up to 32 bits)

Complex

data types

(longer than 32 bits)

User-defined data types

(longer than 32 bits)

• Bit data types (BOOL, BYTE, WORD, DWORD, CHAR)

• Mathematical data types (INT, DINT, REAL)

• Time types (S5TIME, TIME, DATE, TIME_OF_DAY)

• Time (DATE_AND_TIME)

• Array (ARRAY)

• Structure (STRUCT)

• Character chain (STRING)

Data type UDT (User Defined Type)

Trang 6

BOOL, BYTE, WORD Các biến kiểu dữ liệu BOOL gồm 1 bit Các biến kiểu dữ liệu BYTE, WORD,

DWORD, CHAR và DWORD lần lượt là 8, 16 và 32 bit Các bit riêng lẻ không được xếp vào

những kiểu dữ liệu này

Những dạng đặc biệt của những kiểu dữ liệu này là số BCD và giá trị đếm dùng kết hợp với chức năng đếm Kiểu dữ liệu CHAR thể hiện một ký tự trong bảng mã ASCII

S5TIME Các biến thuộc kiểu dữ liệu S5TIME cần dùng để chỉ giá trị thời gian trong

chức năng định thời Định dạng này được biểu diễn bằng cụm S5T#, theo sau

là giá trị thời gian Bạn chỉ thời gian ở dạng đơn vị giờ, phút, giây, miligiây Bạn có thể nhập giá trị thời gian với một dấu gạch thấp (1h_4m) hoặc không

có dấu gạch thấp (1h4m)

FC 33 và FC40 (lấy từ thư viện) chuyển đổi dạng S5TIME thành dạng TIME và ngược lại, chuyển đổi dạng TIME thành dạng S5TIME

INT, DINT, REAL Các biến của những kiểu dữ liệu này biểu diễn các con số có thể dùng trong

các phép tính toán học

TIME Một biến kiểu dữ liệu TIME chiếm một doubleword Chẳng hạn biến này được

dùng để chỉ các giá trị thời gian trong chức năng timer IEC Nội dung của các biến được phiên dịch ra thành một số DINT tính bằng đơn vị milligiây và có thể

là số dương hay số âm (ví dụ : T#1s=L#1 000, T#24d20h31m23s647msw = L#214748647)

DATE Một biến kiểu dữ liệu DATE được lưu trong một word ở dạng số nguyên không

dấu - unsigned integer Nội dung của biến thể hiện số ngày tính từ ngày 01.01.1990 (ví dụ : D#2168-12-31 = W#16#FF62)

TIME_OF_DAY Một biến kiểu dữ liệu TIME_OF_DAY chiếm một doubleword Biến này chứa

số milligiây tính từ lúc bắt đầu 1 ngày (0:00 giờ) ở dạng một số nguyên không dấu (ví dụ : TOD#23:59:59.999 = DW#16#05265B77)

Date: 25.07.2008 File: PRO1_09E.6

SIMATIC®S7

Siemens AG 2002 All rights reserved.

SITRAINTraining for Automation and Drives

Elementary Data Types in STEP 7

Keyword Length (in bits) Example of a constant of this type

Trang 7

Creating a DB Bạn có thể chèn một khối dữ liệu mới - xem hình - trong SIMATIC®

Manager bằng cách chọn thư mục Blocks của chương trình S7 và theo các bước như hình

Bạn cũng có thể tạo một khối dữ liệu mới trong trình soạn thảo LAD/STL/FBD Editor bằng cách chọn như sau:

File -> New -> ch ọn Project and Project Name -> chọn thư mục Blocks của S7

program -> ch ọn tên Object : DB 99

Shared DB Các khối dữ liệu chia sẻ - shared data blocks được dùng để lưu các dữ liệu

toàn cục Nghĩa là lưu những dữ liệu chung mà mọi khối logic (OB, FC, FB) đều có thể truy cập đến được

Người sử dụng phải tự sửa đổi những khối dữ liệu toàn cục bằng cách khai báo các biến cần thiết để lưu dữ liệu trong khối dữ liệu

Instance DB Các khối dữ liệu cá biệt - Instance data blocks được dùng như là "vùng nhớ

riêng" hoặc "bộ nhớ" của một khối chức năng - function block (FB) Các thông

số và các biến tĩnh - static variables của một FB được quản lý trong khối dữ liệu cá biệt của FB đó

Thông thường các khối dữ liệu cá biệt không được sửa đổi bởi người sử dụng

mà chúng thường được tạo ra bởi trình biên tập - Editor (xem chương Functions and Function Blocks)

DB of Type Các khối dữ liệu có thể được trình biên tập tạo ra theo kiểu "do người sử dụng

định nghĩa" User defined Data Type (UDT) Ban đầu phải biên tập UDT giống như một khối dữ liệu và sau đó nó được dùng làm khuôn mẫu cho các khối dữ liệu kiểu này UDT có thể được dùng làm khuôn mẫu để tạo ra các khối dữ liệu phụ và/hoặc thông thường để khai báo các biến và thông số của block

Date: 25.07.2008 File: PRO1_09E.7

SIMATIC®S7

Siemens AG 2002 All rights reserved.

SITRAINTraining for Automation and Drives

Creating a New Data Block

Trang 8

Declaration View Các khối dữ liệu được biên tập, sửa đổi trong phần "declaration view", nghĩa là (Entering Variables) người sử dụng khai báo các biến cần thiết để lưu trữ dữ liệu Các biến này

được tổ chức tạo ra trong một bảng, tổ chức thành các dòng và cột

Columns Ý nghĩa của các cột như sau:

• Address - địa chỉ, được nhập bằng Program Editor Nó chiếm địa chỉ

byte địa chỉ đầu tiên của biến

• Name - tên, là tên ký hiệu tượng trưng của biến

• Type - kiểu dữ liệu (INT, REAL, , bạn chọn mục này bằng

cách dùng chuột phải)

• Initial value - giá trị ban đầu, dùng để thiết lập giá trị mặc định cho một

biến vào lần đầu tiên khối dữ liệu được tạo ra và/hoặc sửa đổi Nếu bạn không nhập giá trị vào mục này thì trình soạn thảo sẽ tự động nhập giá trị 0

• Comment - chú thích, để cung cấp thêm thông tin về biến (tùy chọn)

Save Bạn lưu khối dữ liệu vào đĩa cứng của thiết bị lập trình bằng cách bấm vào

biểu tượng "đĩa mềm"

Download Bạn phải download các khối dữ liệu vào CPU, giống như với các khối logic

Data View Bạn có thể giám sát trực tuyến giá trị hiện hành của các biến trong khối dữ liệu (Monitor DB) (giá trị thực tế của các biến trong CPU) Để làm vậy đầu tiên bạn phải vào

menu "View" và chọn "Data View" Bạn có thể kích hoạt chức năng này bằng cách dùng biểu tượng “mắt kính“

Initialize DB Khi bạn khởi chạy - initialize một khối dữ liệu thì bạn sẽ ghi các giá trị khởi

chạy (initial value, giá trị ban đầu) đè lên các giá trị hiện hành của các biến Việc này là cần thiết khi các giá trị khởi chạy, bị thay đổi sau đó, phải được chấp nhận như các giá trị thực tế

View -> Data View -> Edit -> Initialize Data Block

Date: 25.07.2008 File: PRO1_09E.8

SIMATIC®S7

Siemens AG 2002 All rights reserved.

SITRAINTraining for Automation and Drives

Entering, Saving, Downloading and Monitoring a Data Block

Declaration View

Data View

Trang 9

Date: 25.07.2008 File: PRO1_09E.9

SIMATIC®S7

Siemens AG 2002 All rights reserved.

SITRAINTraining for Automation and Drives

Addressing Data Elements

0 7

8 Bits

Data Byte 8191

DBD 8188 DBW 8190 DBB 8191

Data Byte 2

DBD 0

Data Byte 3

DBX 4.1

General Bạn định địa chỉ cho các phần tử của khối dữ liệu theo từng byte giống như

các bit nhớ

Bạn có thể nạp và truyền (load and transfer) dữ liệu dạng byte, word hoặc doubleword Khi sử dụng dữ liệu dạng word, bạn chỉ ra byte địa chỉ đầu tiên (ví

dụ như L DBW 2) và kết quả là 2 byte, bắt đầu bằng byte đầu tiên này, sẽ được nạp Với doubleword, 4 byte được nạp, bắt đầu bằng byte địa chỉ đầu tiên mà bạn nhập vào

Number, Length Số lượng các khối dữ liệu có thể dùng phụ thuộc vào CPU mà bạn sử dụng

Độ dài lớn nhất của một khối là 8KByte đối với S7-300™ và 64KByte đối với S7-400™

Note Nếu bạn truy cập đến một phần tử dữ liệu hoặc khối dữ liệu không tồn tại thì

một lỗi hệ thống: "Area Length error" sẽ xuất hiện CPU sẽ chuyển sang chế

độ Stop nếu bạn không lập trình một OB quản lý lỗi (error OB)

Trang 10

Traditional Access Theo kiểu truy cập truyền thống đến các khối dữ liệu (điển hình như trong S5),

các khối dữ liệu phải được mở rõ ràng trước khi có truy cập thật sự Việc này

có thể thực hiện bằng cách mở theo địa chỉ tuyệt đối hoặc địa chỉ ký hiệu tượng trưng với các lệnh như: OPN DB 99 hoặc OPN "Values" (xem ví dụ) Nếu có một khối dữ liệu khác được mở thì khối dữ liệu nào mở đầu tiên sẽ tự động đóng lại Các phần tử dữ liệu có thể được truy cập theo từng bit (DBX ), theo từng byte (DBB ), theo từng word (DBW ) hoặc theo từng doubleword (DBD ) mà không cần phải chỉ ra khối dữ liệu ở mỗi lần truy cập

Nhược điểm:

Khi truy cập các phần tử dữ liệu, bạn phải đảm bảo là mở đúng khối dữ liệu

• Chỉ có thể truy cập theo địa chỉ tuyệt đối Người lập trình phải chắc chắn là

đã truy cập đến đúng giá trị mình cần ở trong khối dữ liệu Trong ví dụ, nếu DBW3 được nạp thì đó không phải là giá trị của biến Number mà cũng không phải là giá trị của biến Weight[1] Đó là một giá trị không có hiệu lực

• Sự truy cập theo địa chỉ tuyệt đối gây khó khăn, làm cản trở khả năng sửa chữa chương trình và làm chương trình trở nên khó đọc

Fully-qualified Một sự truy cập với đầy đủ điều kiện (a fully-qualified access) là mở một khối

Access dữ liệu và đóng bất kỳ khối dữ liệu nào đã được mở trước đó sự truy cập với

đầy đủ điều kiện có thể là truy cập theo địa chỉ tuyệt đối hoặc địa chỉ tượng trưng

absolute Truy cập theo địa chỉ tuyệt đối là mở một khối dữ liệu và truy cập đến phần tử

dữ liệu bằng cách kết hợp trong một câu lệnh Nhược điểm của phương pháp này cũng giống như truy cập theo kiểu truyền thống

symbolic Truy cập theo địa chỉ ký hiệu tượng trưng đến một biến trong một khối dữ liệu

chỉ thực hiện được khi khối dữ liệu và các phần tử của nó đều được truy cập theo ký hiệu tượng trưng Trình soạn thảo cho phép dùng hỗn hợp cả địa chỉ tuyệt đối và địa chỉ tượng trưng trong quá trình biên tập Tuy nhiên nó sẽ chuyển đổi toàn bộ sang địa chỉ tượng trưng sau khi đã xác nhận xong mục

dữ liệu vừa nhập

Date: 25.07.2008 File: PRO1_09E.10

SIMATIC®S7

Siemens AG 2002 All rights reserved.

SITRAINTraining for Automation and Drives

Accessing Data Elements

DB 99 "Values" Traditional

Access

Fully-qualified Access

absolute symbolic

OPN "Values"

OPN "Values"

4.0 Weight[1] REAL

8.0 Weight[2] REAL

Ngày đăng: 02/03/2014, 22:44

HÌNH ẢNH LIÊN QUAN

• Các biến toàn cục được khai báo trong bảng ký hiệu tượng trưng toàn cục - plc s7-300 vietnam pro1_09e_dbs
c biến toàn cục được khai báo trong bảng ký hiệu tượng trưng toàn cục (Trang 3)
Data Types dùng như là một kiểu dữ liệu trong bảng khai báo biến. - plc s7-300 vietnam pro1_09e_dbs
ata Types dùng như là một kiểu dữ liệu trong bảng khai báo biến (Trang 5)
bảng mã ASCII. - plc s7-300 vietnam pro1_09e_dbs
bảng m ã ASCII (Trang 6)
Creatin ga DB Bạn có thể chèn một khối dữ liệu mới - xem hình - trong SIMATIC® - plc s7-300 vietnam pro1_09e_dbs
reatin ga DB Bạn có thể chèn một khối dữ liệu mới - xem hình - trong SIMATIC® (Trang 7)
được tổ chức tạo ra trong một bảng, tổ chức thành các dòng và cột. - plc s7-300 vietnam pro1_09e_dbs
c tổ chức tạo ra trong một bảng, tổ chức thành các dòng và cột (Trang 8)
Traditional Access Theo kiểu truy cập truyền thống đến các khối dữ liệu (điển hình như trong S5), - plc s7-300 vietnam pro1_09e_dbs
raditional Access Theo kiểu truy cập truyền thống đến các khối dữ liệu (điển hình như trong S5), (Trang 10)
parts được hiển thị trên màn hình hiển thị số ở dạng BCD. - plc s7-300 vietnam pro1_09e_dbs
parts được hiển thị trên màn hình hiển thị số ở dạng BCD (Trang 11)
Array Một mảng gồm nhiều phần tử cùng kiểu dữ liệu. Trong hình bạn có thể thấy - plc s7-300 vietnam pro1_09e_dbs
rray Một mảng gồm nhiều phần tử cùng kiểu dữ liệu. Trong hình bạn có thể thấy (Trang 13)
Example of an Array - plc s7-300 vietnam pro1_09e_dbs
xample of an Array (Trang 13)
Structure Hình trên cho thấy một ví dụ của một cấu trúc có tên là "Motor_data" - plc s7-300 vietnam pro1_09e_dbs
tructure Hình trên cho thấy một ví dụ của một cấu trúc có tên là "Motor_data" (Trang 14)

TỪ KHÓA LIÊN QUAN

w