1. Trang chủ
  2. » Luận Văn - Báo Cáo

THIẾT kế hệ SCADA sử DỤNG WINCC

138 275 0

Đ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

Định dạng
Số trang 138
Dung lượng 3,23 MB

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

Nội dung

Bộ điều khiển lập trình được Programmable Logic Controller, gọi tắt làPLC, là bộ điều khiển cho phép thực hiện linh hoạt các thuật toán điều khiển sốthông qua ngôn ngữ lập trình để trao

Trang 1

PHAÀN 1

PLC S7-300

Trang 2

ĐƯỢC

1 Bộ điều khiển lập trình được

Bộ điều khiển lập trình được (Programmable Logic Controller), gọi tắt làPLC, là bộ điều khiển cho phép thực hiện linh hoạt các thuật toán điều khiển sốthông qua ngôn ngữ lập trình để trao đổi thông tin với các PLC khác hoặc vớimáy tính Toàn bộ chương trình điều khiển được lưu trong bộ nhớ của PLC dướidạng các khối chương trình (khối OB, FB hoặc FC) và được thực hiện lặp theochu kỳ của vòng quét (scan)

PLC chủ yếu bao gồm module CPU, các bộ xử lý và bộ nhớ chươngtrình, các module xuất/nhập (I/O module), hệ thống bus và khối nguồn cấpđiện

Hệ thống tuyến (system bus): là tuyến để truyền các tín hiệu, gồm nhiều

đường tín hiệu song song:

Tuyến địa chỉ (address bus): chọn địa chỉ trên các khối khác nhau.

Tuyến dữ liệu (data bus): mang dữ liệu (thí dụ từ IM tới OM).

Tuyến điều khiển (control bus): chuyển, truyền các tín hiệu định

thì và điều khiều để đồng bộ các hoạt động trong PLC

2 Điều khiển nối cứng và điều khiển lập trình được.

Điều khiển nối cứng (Hard_wired control)

Trong các hệ thống điều khiển nối cứng, các tiếp điểm cảm biến, cácđèn, các công tắc, được nối vĩnh viễn với cái khác Do đó khi muốnthay đổi lại hệ thống thì phải nối dây lại bộ điều khiển, với hệ thốngphức tạp thì việc làm lại này không hiệu quả và tốn kém

Điều khiển lập trình được (Programmable control)

Trang 3

Tuy nhiên trong các hệ thống điều khiển lập trình được thì cấu trúccủa bộ điều khiển và nối dây thì độc lập với chương trình Điều này cónghĩa là các bộ điều khiển chuẩn có thể sử dụng Thí dụ: các tiếp điểmcảm biến và các cuộn dây điều hành trên máy công cụ được nối trựctiếp vào các đầu nối của bộ điều khiển.

Chương trình định nghĩa hoạt động điều khiển được ghi trực tiếp vàobộ nhớ của bộ điều khiển (bộ nhớ chương trình) với sự trợ giúp của bộlập trình hoặc một máy vi tính

Ta có thể thay đổi chương trình điều khiển bằng cách thay đổi nộidung của bộ nhớ bộ điều khiển, nghĩa là bộ nhớ chương trình, còn phầnnối dây bên ngoài thì không bị ảnh hưởng Đây chính là một trong cácđiểm thuận lợi quan trọng nhất của bộ điều khiển lập trình được

3 Quét chương trình tuần hoàn và ảnh các quá trình.

a Quét chương trình tuần hoàn:

Thời gian để cho một lần quét qua tất cả các phát biểu được liệt kê

trong chương trình được gọi là thời gian quét (scan timer).

Một chu kỳ quét gồm có 4 giai đoạn sau:

• Chuyển dữ liệu từ cổng vào tới I

• Thực hiện chương trình

• Chuyển dữ liệu từ Q tới cổng ra

• Truyền thông và kiểm tra nội bộ

Thời gian quét này tùy thuộc vào số lệnh trong chương trình và tùy theotừng loại PLC

Nếu sử dụng các khối chương trình đặc biệt có chế độ ngắt, ví dụ nhưkhối OB40, OB80, , chương trình của các khối đó sẽ được thực hiện trongvòng quét khi xuất hiện tín hiệu báo ngắt cùng chủng loại Các khối chươngtrình này có thể được thực hiện tại mọi thời điểm trong vòng quét chứ không bịgò ép là phải ở trong giai đoạn thực hiện chương trình

b Aûnh các quá trình:

Aûnh quá trình nhập PII (Process Input Image)

Sau khi bắt đầu thời gian theo dõi quét, các trạng thái tín hiệucủa tất cả các ngõ vào số trong PLC được quét (dò) và được đưa vàobộ đệm ảnh quá trình nhập PII cho đến khi bắt đầu chu kỳ quét kế

Trang 4

quá trình xuất PIQ Khi chương trình được quét đến phát biểu cuối(BE) của khối tổ chức OB1, nội dung của ảnh quá trình xuất PIQđược chuyển đến các module xuất.

Aûnh quá trình xuất/nhập là vùng RAM nội mà mỗi vị trí bộ nhớđược gán cho mỗi ngõ vào số và ngõ ra số

Các thuận lợi:

Việc đệm các trạng thái nhập và xuất trong các ảnh quá trình bảo đảmlà các tín hiệu vào mà thay đổi trong chu kỳ quét không thể có hiệu ứng trênchuỗi chức năng

Hơn nữa, việc đệm các trạng thái tín hiệu của các ngõ vào và các ngõ ragiảm thời gian quét khi truy cập vào bộ nhớ dữ liệu hệ thống cần ít thời gianhơn nhiều truy cập trực tiếp vào các modules xuất/ nhập

II CẤU TRÚC VÀ PHÂN CHIA BỘ NHỚ.

1 Các module của PLC S7-300.

Để tăng tính mềm dẻo trong ứng dụng thực tế mà ở đó phần lớn các đốitượng điều khiển có số tín hiệu đầu vào, đầu ra cũng như chủng loại tín hiệuvào/ra khác nhau mà các bộ điều khiển PLC được thiết kế không bị cứng hóavề cấu hình Chúng được chia nhỏ thành các module Số các module được sửdụng nhiều hay ít tùy thuộc vào từng bài toán, song tối thiểu bao giờ cũng phảicó một module chính là module CPU Các module còn lại là những modulenhận/truyền tín hiệu với đối tượng điều khiển, các module chuyên dụng nhưPID, điều khiển động cơ Chúng được gọi chung là module mở rộng

a Module CPU:

Trang 5

Module CPU là loại module có chứa bộ vi xử lý, hệ điều hành, bộ nhớ,các bộ định thời, bộ đếm, cổng truyền thông và có thể có một vài cổng vào rasố Các cổng vào ra số có trên module CPU được gọi là cổng vào ra onboard.

Trong họ PLC S7-300 có nhiều loại module CPU khác nhau Chúng đượcđặt tên theo bộ vi xử lý có trong nó như module CPU312, module CPU314,module CPU315

Những module cùng sử dụng một loại bộ vi xử lý, nhưng khác nhau vềcổng vào/ra onboard cũng như các khối hàm đặc biệt được tích hợp sẵn trongthư viện của hệ điều hành phục vụ việc sử dụng các cổng vào ra onboard này

sẽ được phân biệt với nhau trong tên gọi bằng thêm cụm từ IFM (Intergrated

Function Module) Chẳng hạn module CPU312 IFM, module CPU314 Ngoài ra

còn có loại module với hai cổng truyền thông như module CPU315-DP

b Module mở rộng:

Module mở rộng có 5 loại chính:

PS (Power Supply): Module nguồn nuôi Có 3 loại: 2A, 5A, 10A.

SM (Signal Module): Module mở rộng cổng tín hiệu vào/ra, bao

gồm:

DI (Digital Input): Module mở rộng các cổng vào số.

DO (Digital Output): Module mở rộng các cổng ra số.

DI/DO: Module mở rộng các cổng vào/ra số.

AI (Analog Input): Module mở rộng các cổng vào tương tự.

AO (Analog Output): Module mở rộng các cổng ra tương tự.

AI/AO: Module mở rộng các cổng vào/ra tương tự.

IM (Interface module): Module ghép nối Đây là loại module

chuyên dụng có nhiệm vụ nối từng nhóm các module mở rộng lạivới nhau thành một khối và được quản lý chung bởi một module

CPU Các module mở rộng được gá trên một thanh rack Trên mỗi rack có thể gá được tối đa 8 module mở rộng (không kể

module CPU và module nguồn nuôi) Một module CPU S7-300 cóthể làm việc trực tiếp được với nhiều nhất 4 racks và các racksnày phải được nối với nhau bằng module IM

Trang 6

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

a Kiểu dữ liệu:

Trong một chương trình có thể có các kiểu dữ liệu sau:

BOOL: với dung lượng 1 bit và có giá trị là 0 hay 1.

BYTE: gồm 8 bit, có giá trị nguyên dương từ 0 đến 255.

WORD: gồm 2 byte, có giá trị nguyên dương từ 0 đến 65535.

INT: có dung lượng 2 byte, dùng để biểu diễn số nguyên từ

-32768 đến 32767

DINT: gồm 4 byte, biểu diễn số nguyên từ -2147463846 đến

2147483647

REAL: gồm 4 byte, biểu diễn số thực dấu phẩy động.

S5T: khoảng thời gian, được tính theo giờ/phút/giây/miligiây.

TOD: biểu diễn giá trị thời gian tính theo giờ/phút/giây.

DATE : biểu diễn giá trị thời gian tính theo năm/tháng/ngày.

CHAR: biểu diễn một hoặc nhiều ký tự (nhiều nhất là 4 ký

tự)

b Phân chia bộ nhớ:

CPU S7-300 có 3 vùng nhớ cơ bản:

Vùng nhớ hệ thống (system memory): (RAM trong CPU) lưu trữ

dữ liệu hoạt động cho chương trình của ta:

I (Process Input Image): 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 trongvùng nhớ I Thông thường chương trình ứng dụng không đọc

Trang 7

trực tiếp trạng thái logic của cổng vào số mà chỉ lấy dữ liệucủa cổng vào từ bộ đệm I.

Q (Process Output Image): 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ôngthườ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 trữ các tham số cần thiết và có thể truy nhậpnó theo bit (M), byte (MB), từ (MW), từ kép (MD)

T (Timer): Miền nhớ phục vụ bộ định thời bao gồm việc lưu

trữ các 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 (Counter): Miền nhớ phục vụ bộ đếm bao gồm việc lưu

trữ giá trị đặt trước (PV-Preset Value), giá trị đếm tức thời (CV-Current Value) và giá trị logic của bộ đếm.

PI (I/O External Input): Miền địa chỉ cổng vào của các

module tương tự Các giá trị tương tự tại cổng vào củamodule tương tự sẽ được module đọc và chuyển tự động theonhững địa chỉ

PQ (I/O External Output): Miền địa chỉ cổng ra của các

module tương tự Các giá trị tương tự tại cổng ra của moduletương tự sẽ được module đọc và chuyển tự động theo nhữngđịa chỉ

Vùng nhớ nạp (load memory): (RAM trong CPU, cộng thêm

EEPROM có sẵn trong CPU hoặc thẻ EEPROM gắn thêm) làvùng nhớ chứa chương trình của ta bao gồm tất cả các khốichương trình ứng dụng OB, FB, FC, các khối chương trình trongthư viện hệ thống được sử dụng (SFB, SFC) và các khối dữ liệu

DB Toàn bộ các khối chương trình và các khối dữ liệu nằmtrong RAM sẽ bị xóa khi tác động xóa bộ nhớ “CPU memoryreset” (MRES)

Vùng nhớ làm việc (word memory): (RAM trong CPU) chứa các

bản sao của các phần tử chương trình đang được CPU thực thi.Như các khối DB đang được mở, khối chương trình (OB, FB, FC,SFB, SFB) đang được CPU thực hiện và phần bộ nhớ cấp phát

Trang 8

Tầm địa chỉ tối đa cho bit: 0.0 đến 65535.7Tầm địa chỉ tối đa cho byte: 0 đến 65535Tầm địa chỉ tối đa cho word: 0 đến 65534Tầm địa chỉ tối đa cho double word: 0 đến 65532

Với bộ nhớ bit M:

Tầm địa chỉ tối đa cho bit: 0.0 đến 255.7Tầm địa chỉ tối đa cho byte : 0 đến 255Tầm địa chỉ tối đa cho word: 0 đến 254Tầm địa chỉ tối đa cho double word: 0 đến 252

3 Cấu trúc chương trình.

Ta phải luôn luôn lập trình khối OB 1 để cho PLC quét tuần hoànchương trình để thực thi

Có hai kiểu lập trình: lập trình tuyến tính và lập trình có cấu trúc

a Lập trình tuyến tính (liner):

Toàn bộ chương trình điều khiển nằm trong một khối trong bộ nhớ Loạihình cấu trúc tuyến tính này phù hợp với những bài toán tự động nhỏ, khôngphức tạp Khối được chọn phải là khối OB 1, là khối mà CPU luôn quét và thựchiện các lệnh trong nó thường xuyên, từ lệnh đầu tiên đến lệnh cuối cùng vàquay lại từ lệnh đầu tiên

OB1

Trang 9

b Lập trình có cấu trúc (structured) :

Trong PLC Siemens S7 tổ chức theo các khối mà có thể lập trình đượcvới từng nhiệm vụ riêng Loại hình cấu trúc này phù hợp với những bài toánđiều khiển nhiều nhiệm vụ và phức tạp PLC S7-300 có 4 loại khối cơ bản:

Khối tổ chức OB (Oganization block) : Khối tổ chức và quản lý

chương trình điều khiển

Khối hàm chức năng FB (Function block) : Là loại khối FC đặc

biệt có khả năng trao đổi một lượng dữ liệu với các khối chươngtrình khác Các dữ liệu này phải được tổ chức thành khối dữ liệuriêng có tên gọi là Data block

Khối hàm (Function) : Khối chương trình với những chức năng

riêng giống như một chương trình con hoặc một hàm

Khối dữ liệu (Data block) : Khối chứa các dữ liệu cần thiết để

thực hiện chương trình Các tham số khối do ta tự đặt

Ngoài ra còn có các khối hệ thống như : SFB, SFC, SDB

Toàn bộ các khối chương trình con được quản lý một cách thống nhất bởikhối OB1 Chương trình trong các khối được liên kết với nhau bằng các lệnhgọi khối, chuyển khối Từng nhiệm vụ điều khiển con có thể được chia thànhnhững nhiệm vụ nhỏ và cụ thể hơn nữa, do đó một khối chương trình con cũngcó thể được gọi từ một khối chương trình con khác Nhưng tránh không bao giờmột khối chương trình con lại gọi đến chính nó

Khi thực hiện lệnh gọi một khối con, hệ điều hành sẽ:

• Chuyển khối con được gọi từ vùng load memory vào vùng wordmemory

• Cấp phát cho khối con một phần bộ nhớ trong word memory đểlàm local block Cấu trúc local block được quy định khi soạn thảocác khối

• Truyền các tham trị từ khối mẹ cho biến hình thức IN, IN-OUTcủa local block

• Sau khi khối con thực hiện xong nhiệm vụ và ghi kết quả dướidạng tham trị đầu ra cho biến OUT, IN-OUT của local block, hệđiều hành sẽ chuyển các tham trị này cho khối mẹ và giải phóngkhối con cùng local block ra khỏi word memory

Trang 10

Số các lệnh gọi lồng nhau phụ thuộc vào từng chủng loại module CPUmà ta sử dụng Nếu số lần gọi khối lồng nhau mà vượt quá con số giới hạn chophép, PLC sẽ tự chuyển sang chế độ STOP và set cờ báo lỗi.

Ta có bảng so sánh khả năng lập trình của các PLC SIMATIC S7-300như sau: ( CPU 312 IFM CPU 315-2 DP)

(instance)

Trang 11

Chương 2 : Ngôn Ngữ Lập Trình S7-300

I SỬ DỤNG CÁC Ô NHỚ VÀ CẤU TRÚC THANH GHI TRẠNG THÁI.

1 Địa chỉ ô nhớ.

Địa chỉ ô nhớ gồm phần chữ và phần số

a Phần chữ: chỉ vị trí và kích thước ô nhớ

M: chỉ ô nhớ trong miền các biến cờ có kích

thước là 1 bit

MB: chỉ ô nhớ trong miền các biến cờ có kích

thước là 1 byte

MW: chỉ ô nhớ trong miền các biến cờ có kích

thước là 2 bytes

MD: chỉ ô nhớ trong miền các biến cờ có kích

thước là 4 bytes

I: chỉ ô nhớ có kích thước là 1 bit trong miền bộ

đệm cổng vào số

IB: chỉ ô nhớ có kích thước là 1 byte trong miền

bộ đệm cổng vào số

Trang 12

miền bộ đệm cổng ra số.

QW: chỉ ô nhớ có kích thước là 1 từ trong miền bộ đệm cổng

ra số

QD: chỉ ô nhớ có kích thước là 2 từ trong miền bộ đệm cổng

ra số

T: chỉ ô nhớ trong miền nhớ của bộ thời gian Timer.

C: chỉ ô nhớ trong miền nhớ của bộ đếm Counter.

PIB: chỉ ô nhớ có kích thước 1 byte thuộc vùng peripheral

input

PIW: chỉ ô nhớ có kích thước 1 từ thuộc vùng peripheral input.

PID: chỉ ô nhớ có kích thước 2 từ thuộc vùng peripheral input.

PQB: chỉ ô nhớ có kích thước 1 byte thuộc vùng peripheral

DBX: chỉ ô nhớ có kích thước 1 bit trong khối dữ liệu DB.

DBB: chỉ ô nhớ có kích thước 1 byte trong khối dữ liệu DB.

DBW: chỉ ô nhớ có kích thước 1 từ trong khối dữ liệu DB.

DBD: chỉ ô nhớ có kích thước 2 từ trong khối dữ liệu DB.

b Phần số:

Chỉ địa chỉ của byte hoặc bit trong miền nhớ đã xác định

Nếu ô nhớ đã được xác định thông qua phần chữ là có kích thước 1 bit thìphần số sẽ gồm địa chỉ của byte và số thứ tự của bit trong byte đó được tách vớinhau bằng dấu chấm

Ví dụ: I 1.3

M 100.5

Q 124.7

Trang 13

Nếu ô nhớ đã được xác định là 1 byte, từ hoặc từ kép thì phần số sẽ làđịa chỉ byte đầu tiên trong mảng byte của ô nhớ đó.

Ví dụ: DIB 15

MD 46

2 Cấu trúc thanh ghi trạng thái.

Khi thực hiện lệnh , CPU sẽ ghi nhận lại trạng thái của phép tính trunggian cũng như của kết quả vào một thanh ghi đặc biệt gọi là thanh ghi trạngthái (status word) Cấu trúc của thanh ghi trạng thái:

215 .29 28 27 26 25 24 23 22 21 20

BR CC1 CC0 OV OS OR STA RLO /FC

Bit /FC (first check)

Bit 0 của thanh ghi trạng thái được gọi là bit kiểm tra đầu tiên (/FC).Mỗi lệnh kiểm tra trạng thái tín hiệu của /FC cũng như trạng thái tín hiệu củatoán hạng Nếu bit /FC =0, lệnh cất kết quả kiểm tra trạng thái tín hiệu vào bitRLO và đặt bit /FC lên 1 Quá trình này được gọi là kiểm tra đầu tiên (firstcheck) hay quét lần thứ nhất (first scan)

Nếu bit /FC =1 thì lệnh kết hợp kết quả dò mức của toán hạng hiện tạivới RLO trước đó để tạo ra RLO mới

Chuỗi lệnh logic luôn luôn kết thúc bằng lệnh xuất (S,R hay =), lệnhnhảy liên hệ với RLO, hoặc một trong các lệnh lồng như A(, O(, X(, AN(, XN(;các lệnh này reset bit /FC về 0

RLO (Result of Logic Operation): kết quả của phép toán logic.

Bit 1 của STW được gọi là RLO, bit này chứa kết quả của lệnh logic trênbit hoặc so sánh số học

Ta có thể đặt RLO không điều kiện lên 1 bằng lệnh SET và xóa RLOkhông điều kiện về 0 bằng lệnh CLR Bit RLO cũng có liên quan đến các lệnhnhảy có điều kiện

Trang 14

Hình1.1: hiệu ứng của trạng thái tín hiệu bit /FC trên các lệnh logic.

Bit STA (status)

Bit STA chứa giá trị của bit mà ta đang tham chiếu Trạng thái của lệnhbit mà truy cập đọc bộ nhớ (A, AN, O, ON, X, XN) luôn luôn bằng giá trị củabit mà lệnh này kiểm tra (dò mức) Trạng thái của lệnh bit ghi vào bộ nhớ (S,

R, =) bằng giá trị của bit mà lệnh ghi vào; nếu không có xảy ra ghi thì nó bằnggiá trị của bit nó tham chiếu Bit STA không có ý nghĩa với các lệnh bit màkhông truy cập bộ nhớ, các lệnh như vậy đặt bit STA lên 1 Bit này không bịkiểm tra bởi lệnh, nó chỉ được diễn dịch khi thử chương trình

Bit OR

Bit cần có khi sử dụng lệnh O để thực hiện AND-trước -OR Hàm ANDchứa các lệnh sau: A, AN, A(, AN(, ) và NOT Bit OR cho thấy các lệnh màhàm AND được thực thi trước đó đã cho giá trị 1 Bất cứ lệnh xử lý bit khácreset bit OR

Bit OV (Overflow)

Bit OV có chức năng báo lỗi Nó được đặt lên 1 bằng lệnh toán học haylệnh so sánh dấu chấm động sau khi lỗi xảy ra (tràn, phép toán không hợp lệ,số dấu chấm động không hợp lệ) Bit này được đặt theo kết quả của lệnh toánhọc kế hay lệnh so sánh kế

Bit OS (stored overflow bit)

Trang 15

Bit OS được đặt cùng với bit OV khi có lỗi xảy ra Bởi vì bit OS vẫn giữlà 1 sau khi đã khử lỗi, nó chứa trạng thái bit OV và cho thấy có lỗi hay khôngcó lỗi xảy ra ở một trong các lệnh được thực thi trước đó Các lệnh sau reset bitOS: JOS (jump after stored overflow), các lệnh gọi khối, và các lệnh kết thúckhối.

Mã điều kiện CC1 và CC0

0 0 Tràn dãi trị âm trong +I và +D

0 1 Tràn dãi trị âm trong *I và *D

Tràn dãi trị dương trong +I, -I, +D, -D, NEGI và NEGD

1 0 Tràn dãi trị dương trong *I, *D, /I và /D

Tràn dãi trị âm trong +I, -I, +D, -D

1 1 Chia cho 0 trong /I, /D, và MOD

Bảng 1.3: CC1 và CC0 sau lệnh toán học số nguyên, có tràn.

CC1 CC0 Giải thích

0 0 Tràn dưới

0 1 Tràn dãi trị âm

1 0 Tràn dãi trị dương

1 1 Số dấu chấm động không hợp lệ

Bảng 1.4: CC1 và CC0 sau các lệnh toán học dấu chấm động, có tràn CC1 CC0 Giải thích

0 0 ACCU 2 =ACCU 1

Trang 16

0 0 Bit vừa dịch ra là 0

1 0 Bit vừa dịch ra là 1

Bảng 1.6: CC1 và CC0 sau các lệnh dịch và xoay.

CC1 CC0 Giải thích

0 0 Kết quả = 0

1 0 Kết quả <>0

Bảng 1.7: CC1 và CC0 sau các lệnh logic trên word.

Bit BR (Binary Result)

Bit BR tạo liên kết giữa xử lý các bit và các word Đây là phương tiệnhữu hiệu để diễn dịch kết quả của phép toán trên word như kết quả nhị phân vàđưa kết quả này vào chuỗi logic nhị phân Với cách nhìn này, bit BR biễu diễnbit bộ nhớ bên trong máy mà RLO cất vào trước khi một phép toán word làmthay đổi RLO, để cho RLO khả dụng lần nữa sau khi phép toán tiếp tục chuỗilogic bit bị ngắt

Bit BR tương ứng với ngõ ra cho phép (ENO = enable output) của hộpLAD Ta nên sử dụng lệnh SAVE để cất RLO vào bit BR theo các tiêu chuẩnsau:

• Cất bit RLO =1 vào bit BR cho trường hợp mà FB hay FC đượcthực thi không có lỗi

• Cất bit RLO =0 vào bit BR cho trường hợp mà FB hay FC đượcthực thi có lỗi

Ta nên lập trình các lệnh này ở cuối FB hay FC để chúng là các lệnhcuối cùng được thực thi trong khối

II CÁC LỆNH VÀ PHÉP TOÁN.

Trang 17

1 Lệnh nạp chuyển.

Các lệnh này dùng để trao đổi thông tin bằng byte, word hay doubleword giữa các module nhập và xuất, PII và PIQ, bộ định thời, bộ đếm và cờ,các khối dữ liệu (DB)

Dữ liệu thường không được trao đổi trực tiếp mà luôn luôn thông quathanh ghi tích lũy ACCU Nó là thanh ghi trong bộ xử lý và được dùng như bộđệm (buffer)

Dòng đi thông tin như sau:

Nạp (LOAD) từ bộ nhớ nguồn vào ACCU.

Chuyển (TRANSFER) từ ACCU đến bộ nhớ đích.

Trong PLC có 2 thanh ghi: ACCU1 và ACCU2, mỗi thanh ghi có chiềudài 2 word

Chú ý :

 Load và Transfer trực tiếp không qua PII và PIQ:

L PIB

T PQW

Với P là viết tắt của Peripheral (ngoại vi)

 Các lệnh Load và Transfer trực tiếp chỉ có thể lập trình bằng dạngSTL (ngoại trừ các toán hạng của Timer, Counter và các lệnh sosánh)

2 Các lệnh tác động vào RLO và ô nhớ.

SET: lệnh ghi logic 1 vào RLO.

CLR: lệnh ghi logic 0 vào RLO.

NOT: lệnh đảo giá trị của RLO.

S: lệnh gán có điều kiện giá trị logic 1 vào ô nhớ.

R: lệnh gán có điều kiện giá trị logic 0 vào ô nhớ.

FP <toán hạng> : lệnh phát hiện sườn lên.

Toán hạng là địa chỉ bit I, Q, M, L, D và được sử dụng như một biến cờđể ghi nhận lại giá trị của RLO tại vị trí này trong chương trình, nhưng của vòngquét trước Tại mỗi vòng quét lệnh sẽ kiểm tra: nếu toán hạng có giá trị 0 vàRLO có giá trị 1 thì sẽ ghi 1 vào RLO, các trường hợp khác thì ghi 0, đồng thờichuyển nội dung của RLO vào lại biến cờ Như vậy RLO sẽ có giá trị 1 trongmột vòng quét khi có sườn lên trong RLO

FN <toán hạng> : lệnh phát hiện sườn xuống.

Trang 18

• Và một số phép tính cơ bản.

3 Các lệnh tác động vào 2 thanh ghi ACCU1 và ACCU2.

a Nhóm lệnh đảo vị trí bytes:

POP : lệnh chuyển nội dung của ACCU2 vào ACCU1.

PUSH : lệnh chuyển nội dung của ACCU1 vào ACCU2.

TAK : lệnh đảo nội dung của 2 thanh ghi ACCU1 và ACCU2.

CAW : lệnh đảo nội dung 2 bytes của từ thấp trong ACCU1.

CAD : lệnh đảo nội dung các bytes trong ACCU1.

INVI : lệnh đảo giá trị các bits trong từ thấp của ACCU1

INVD : lệnh đảo giá trị các bits của ACCU1.

b Nhóm lệnh tăng giảm :

INC <toán hạng> : lệnh tăng nội dung thanh ghi ACCU1.

Toán hạng là số nguyên 8 bits Lệnh thực hiện phép cộng giữa byte thấpcủa từ thấp trong ACCU1 với toán hạng Kết quả được ghi lại vào byte thấp củatừ thấp của ACCU1

DEC <toán hạng> : lệnh giảm nội dung thanh ghi ACCU1.

Toán hạng là số nguyên 8 bits Lệnh thực hiện phép trừ byte thấp của từthấp trong ACCU1 cho toán hạng Kết quả được ghi lại vào byte thấp của từthấp của ACCU1

c Nhóm lệnh dịch chuyển:

RLD [n] : lệnh xoay tròn các bits của ACCU1 theo chiều

trái

Trang 19

RRD [n]: lệnh xoay tròn các bits của ACCU1 theo chiều

phải

Lệnh có thể có hoặc không có toán hạng Nếu toán hạng bằng 0 thì lệnhtương đương với lệnh NOP

RLDA : lệnh xoay tròn ACCU1 theo chiều trái 1 bit.

RRDA : lệnh xoay tròn ACCU1 theo chiều phải 1 bit.

Bảng 1.8: tóm tắt các lệnh xoay bit.

Hình 1.2: xoay ACCU1 qua trái 3 bit.

Thí dụ: xoay phải word kép.

L +3

L MD10RRD

T MD20

Trang 20

Hình 1.3: xoay ACCU1 phải 3 bit.

Hình 1.4: xoay trái 1 bit qua CC1.

SLW [<toán hạng>]: dịch trái các bits trong từ thấp của

ACCU1 Bit 0 được ghi 0, bit 15 đẩy vào CC1

SLD [<toán hạng>]: dịch trái các bits của ACCU1 Bit 0

được ghi 0, bit 31 đẩy vào CC1

SRW [<toán hạng>]: dịch phải các bits trong từ thấp của

ACCU1 Bit 0 được ghi 0, bit 15 đẩy vào CC1

SRD [<toán hạng>]: dịch phải các bits của ACCU1 Bit 0

được ghi 0, bit 31 đẩy vào CC1

SSI [<toán hạng>]: dịch phải các bits trong từ thấp của

ACCU1 Bit 0 đẩy vào CC1, bit 15 ghi lại giá trị cũ

Trang 21

SSD [<toán hạng>]: dịch phải các bits của ACCU1 Bit 0

đẩy vào CC1, bit 31 ghi lại giá trị cũ

d Nhóm lệnh chuyển đổi số BCD và số nguyên:

Bảng sau tóm tắt các lệnh chuyển đổi BCD và số nguyên (dạng STL):

Lệnh Ý nghĩa Chức năng

BTI BCD sang số

số nguyên kép

Đổi số nguyên 16 bits trong word thấp củaACCU1 sang số nguyên kép 32 bits

DTB Số nguyên kép

sang BCD

Đổi số nguyên kép 32 bits trong ACCU1 sang sốBCD

DTR Số nguyên kép

sang số thực Đổi số nguyên kép 32 bits trong ACCU1 sang sốdấu chấm động IEEE 32 bits (số thực)

Bảng 1.9: chuyển đổi số BCD và số nguyên.

e Nhóm lệnh chuyển đổi số dấu chấm động 32 bits sang số nguyên 32 bits:

Ta có thể sử dụng bất kỳ một trong các lệnh sau để chuyển đổi số dấuchấm động IEEE 32 bits trong thanh ghi ACCU1 thành số nguyên kép (các lệnhkhác nhau về cách làm tròn) và kết quả được cất ở ACCU1

Lệnh Ý nghĩa Chức năng

RND Làm tròn Làm tròn số được chuyển đổi đến số nguyên

gần nhất Nếu phần phân số ở giữa kết quảchẵn và lẻ thì sẽ chọn kết quả chẵn

RND+ Làm tròn thành số

nguyên kép lớn hơn Làm tròn thành số nguyên nhỏ nhất mà lớnhơn hay bằng số chấm độngRND- Làm tròn thành số

nguyên kép nhỏ hơn Làm tròn thành số nguyên lớn nhất mà nhỏhơn hay bằng số chấm độngTRUNC Bỏ phần lẻ Chỉ lấy phần nguyên của số chấm động

Trang 22

Hình 1.5: tóm tắt các lệnh chuyển đổi và làm tròn.

f Nhóm lệnh so sánh:

Dùng để so sánh các cặp giá trị số sau:

 Hai số nguyên 16 bits

 Hai số nguyên kép (32 bits)

 Hai số thực (dấu chấm động IEEE 32 bits)

CPU sẽ so sánh giá trị số ở ACCU1, nếu kết quả đúng nó sẽ trả vềRLO=1, nếu sai thì RLO=0

Với số nguyên 16 bits thì nó dựa trên so sánh word thấp của ACCU2 vớiword thấp của ACCU1

Dạng lệnh so sánh như sau:

Lớn hơn hoặc bằng >=

Nhỏ hơn hoặc bằng <=

datatype có thể là I (số nguyên 16 bits), D (số nguyên kép 32 bits), R (số thực).

Aûnh hưởng của việc thực thi lệnh so sánh lên mã điều kiện CC1 và CC0

Điều kiện so sánh CC1 CC0 Các lệnh nhảy có điều

Trang 23

kiện có thể sử dụng

Bảng 1.11: ảnh hưởng của các lệnh so sánh lên CC1 và CC0.

g Nhóm lệnh số học:

Với số nguyên 16 bits: có các lệnh thực hiện cộng (+I), trừ

(-I), nhân (*(-I), chia (/I) Lấy word thấp của ACCU2 +,-,*,/ vớiword thấp của ACCU1, kết quả lại vào word thấp củaACCU1

Với số nguyên kép 32 bits: có các lệnh thực hiện cộng (+D),

trừ (-D), nhân (*D), chia (/D) Lấy ACCU2 +,-,*,/ với ACCU1,kết quả lại vào ACCU1

Với số thực: có các lệnh thực hiện cộng (+R), trừ (-R), nhân

(*R), chia (/R) Lấy ACCU2 +,-,*,/ với ACCU1, kết quả lạivào ACCU1

Các lệnh toán học mở rộng trên số thực:

Tất cả các lệnh sau đều thực hiện phép toán với đối số vào ở ACCU1 vàkết quả cất ở ACCU1

ABS: lấy trị tuyệt đối.

SQRT: tính căn bậc hai (square root) x1/2

Trang 24

• Lệnh nhảy có điều kiện theo RLO: JC, JCN, JCB, JNB.

• Lệnh nhảy có điều kiện theo BR hoặc OV/OS: JBI, JNBI, JO,JOS

• Lệnh nhảy theo mã điều kiện CC0, CC1: JZ,JN, JP, JM, JMZ,JPZ, JUO

• Lệnh điều khiển lặp vòng: LOOP

Nhãn nhảy đến trong khối chương trình để đánh dấu nên chuyển điềukhiển logic tới (nơi rẽ nhánh đến) Nó có chiều dài tối đa là 4 ký tự, và ký tựđầu phải là chữ, sau nó phải có dấu hai chấm

Các lệnh nhảy không điều kiện:

Lệnh nhảy không điều kiện JU: lệnh này ngắt luồng điều

khiển bình thường và nhảy đến nhãn được chỉ sau JU.Lệnh này được thực hiện bất chấp điều kiện nào

Lệnh nhảy theo danh sách JL: (giống lệnh case hay

switch trong các ngôn ngữ lập trình khác).

Các lệnh nhảy có điều kiện dựa vào RLO:

JC nhãn: nhảy đến nhãn nếu RLO=1 còn ngược lại thì

thực hiện lệnh kế

JCN nhãn: nhảy đến nhãn nếu RLO=0 còn ngược lại thì

thực hiện lệnh kế

JCB nhãn: nếu RLO=1 thì gán trị RLO vào BR và nhảy

đến nhãn, còn ngược lại thì thực hiện lệnh kế

JNB nhãn: nếu RLO=0 thì gán trị RLO vào BR và nhảy

đến nhãn, còn ngược lại thì thực hiện lệnh kế

Các lệnh nhảy có điều kiện dựa theo BR hay OV/ OS:

Theo điều kiện của BR:

JBI nhãn: nếu BR=1 thì nhảy đến nhãn, còn ngược lại thì

thực hiện lệnh kế

Trang 25

JNBI nhãn: nếu BR=0 thì nhảy đến nhãn, còn ngược lại

thì thực hiện lệnh kế

Chú ý: các lệnh JBI và JNBI reset các bit OR và FC trong

STW về 0 và set bit STA lên 1

Theo điều kiện OV:

JO nhãn: nếu OV=1 thì nhảy đến nhãn, còn ngược lại thì

thực hiện lệnh kế

Theo điều kiện OS:

JOS nhãn: nếu OV=1 thì nhảy đến nhãn, còn ngược lại thì

thực hiện lệnh kế

Lệnh này reset bit OS về 0

Các lệnh nhảy có điều kiện dựa theo CC1 và CC0:

Dạng lệnh: J<điều-kiện> nhãn

Với các điều-kiện là :

Z (zero): nếu kết quả là 0 thì nhảy đến nhãn, còn ngược lại

thì thực hiện lệnh kế

N (not zero): nếu kết quả là khác 0 thì nhảy đến nhãn, còn

ngược lại thì thực hiện lệnh kế

P (positive): nếu kết quả >0 thì nhảy đến nhãn, còn ngược

lại thì thực hiện lệnh kế

M (minus = negative): nếu kết quả <0 thì nhảy đến nhãn,

còn ngược lại thì thực hiện lệnh kế

MZ (minus hay zero): nếu kết quả là 0 hay <0 thì nhảy đến

nhãn, còn ngược lại thì thực hiện lệnh kế

PZ (positive hay zero): nếu kết quả là 0 hay >0 thì nhảy

đến nhãn, còn ngược lại thì thực hiện lệnh kế

UO (unordered): nếu 1 trong các số của phép toán dấu

chấm động không phải là số chấm động hợp lệ thì nhảyđến nhãn, còn ngược lại thì thực hiện lệnh kế

Lệnh điều khiển vòng lặp:

Ta có thể sử dụng lệnh LOOP để thực hiện một đoạn chương trình nhiềulần Lệnh LOOP giảm word thấp của ACCU1 bớt đi 1 và kiểm tra trị mới cóđược ở ACCU1 Nếu ACCU1 lúc này khác không thì nhảy đến nhãn chỉ ra kếLOOP, còn ngược lại thì thực hiện lệnh kế

b Các lệnh điều khiển chương trình:

Trang 26

 Rờ-le điều khiển chính MCR (Master Control Relay).

 Các lệnh kết thúc khối không điều kiện (BEU) và kết thúckhối có điều kiện (BEC)

Gán tham số khi gọi hàm và khối hàm

Tham số hình thức (formal parameter): là tham số mà tên và kiểu dữ

liệu của nó được gán và khai báo khi tạo khối Sau đó khi viết chương trình thìSTEP7 tự động liệt kê tất cả các tham số hình thức

Khi đó ta phải gán các tham số thật (actual parameter) cho các tham

số hình thức Tham số thật là tham số là hàm và khối hàm sử dụng trong lúcchạy chương trình Tham số thật phải có cùng kiểu dữ liệu với tham số hìnhthức tương ứng gán cho nó

Gọi hàm và khối hàm bằng CALL:

Ta có thể sử dụng lệnh CALL để gọi các hàm (FC) và khối hàm (FB),lệnh này gọi FC hay FB do ta chỉ ra và được thực thi bất chấp RLO hay bất kỳđiều kiện nào khác

Khi ta gọi khối hàm FB thì ta phải cung cấp khối dữ liệu instance cục bộ.Khối dữ liệu instance chứa tất cả các biến tĩnh và các tham số thật của khốihàm

Khi ta gọi khối hàm thì lệnh CALL chép lại một trong các mục sau vàokhối dữ liệu instance của khối hàm, phụ thuộc vào kiểu dữ liệu của tham sốthật và vào khai báo của tham số hình thức (IN, OUT, IN-OUT):

• Giá trị của tham số thật

• Pointer chỉ đến địa chỉ của tham số thật

• Pointer chỉ đến “L stack” của khối gọi mà ở đó giá trị củatham số thật đã được đệm

Gọi FB với DB instance và các tham số khối:

Việc gọi có thể xảy ra một khi các chi tiết sau đã được đưa vào lúcCALL:

Trang 27

• Tên của khối hàm.

• Tên của khối dữ liệu instance và

• Các tham số

Lệnh gọi sử dụng địa chỉ tuyệt đối hoặc địa chỉ ký hiệu

Gọi tuyệt đối: CALL FBx, Dby (các tham số truyền);

Gọi bằng ký hiệu: CALL fbname, datablockname (pass parameters);Với fbname= tên ký hiệu của khối

datablockname= tên ký hiệu của khối dữ liệu

Gọi hàm và khối hàm bằng CC và UC:

Dạng lệnh: CC addr (conditional call: gọi khi RLO=1)

UC addr (unconditional call: gọi bất chấp RLO)

Chú ý: không được sử dụng DB “instance” với CC và UC.

Addr có thể là địa chỉ trực tiếp hay là địa chỉ gián tiếp bộ nhớ (memoryindirect address)

Làm việc với chức năng MCR:

MCR dùng để tạo hay ngắt luồng năng lượng (đường dẫn điện) Cáclệnh sau bị ảnh hưởng bởi MCR là: lệnh gán (=), lệnh SET và RESET bit (S, R)và lệnh chuyển dữ liệu T (dùng byte, word, double word) Sự phụ thuộc củachúng theo MCR được cho theo bảng 1.12

Trạng thái tín

là toán hạngkhông đổi)

Ghi 0

thường Thực thi bìnhthường Thực thi bìnhthường

Bảng 1.12: các lệnh phụ thuộc MCR.

Các lệnh cài đặt MCR

MCRA: kích hoạt vùng MRC (A= Activate)

MCRD: bỏ kích hoạt vùng MCR (D= Deactivate)

MCR( : cất RLO vào ngăn xếp MCR, bắt đầu vùng MCR

)MCR : lấy lại RLO, kết thúc vùng MCR

Chú ý: không bao giờ sử dụng lệnh MCR cho thiết bị an toàn hay cấp

cứu!

Trang 28

• Lấy lại RLO< kết thúc MCR: )MCRNhư vậy, ta phải luôn luôn có cặp MCR( và )MCR; hệ thống cho phéplồng các cặp MCR( và )MCR và tối đa là 8.

Trang 29

Hình 1.6: kích hoạt và bỏ kích hoạt vùng MCR.

Các lệnh kết thúc khối BEU và BEC

Lệnh Ý nghĩa

BE Kết thúc khối (block end)

Khối hiện hành được kết thúc bất chấp RLO

Quét chương trình được tiếp tục ở lệnh ngay sau lệnh gọi khối

BE luôn luôn là phát biểu cuối cùng trong khối

BEU Kết thúc khối không điều kiện (unconditional)

Khối hiện hành được kết thúc bất chấp RLO

Quét chương trình được tiếp tục ở lệnh ngay sau lệnh gọi khối.BEC Kết thúc khối có điều kiện conditional)

Khi RLO=1 thì khối hiện hành được kết thúc và quét chươngtrình được tiếp tục ở lệnh ngay sau lệnh gọi khối

Khi RLO=0 thì không thực hiện kết thúc khối và cho RLO=1sau đó thực hiện lệnh kế lệnh này

Bảng 1.13: tóm tắt các lệnh kết thúc khối.

5 Bộ định thời Timer.

a Chức năng Timer:

Các công việc cần điều khiển cần nhiều chức năng Timer khác nhau.PLC SIMATIC S7 cho người sử dụng một số timer với các chức năng khácnhau Một word 16 bits (timer word) trong vùng dữ liệu hệ thống được gán chomột trong các timer

Timer tạo nên một chức năng phức tạp với các ngõ vào và ngõ ra sau:

Ngõ vào Start: timer được bắt đầu với sự thay đổi tín hiệu từ

“0” lên “1” (RLO) ở ngõ vào Start của nó Thời gian và hoạtđộng của timer phải được lập trình ngay sau hoạt động quétđiều kiện bắt đầu

Ngõ vào Reset: tín hiệu ở ngõ vào Reset (RLO=”1”) làm

dừng timer Thời gian hiện hành được đặt về 0 và ngõ ra Qcủa timer bị xóa về “0”

Các ngõ ra số: giá trị thời gian thật sự có thể đọc được từ hai

ngõ ra số BI (số nhị phân) và BCD (số thập phân)

Ngõ ra nhị phân: trạng thái tín hiệu của ngõ ra nhị phân Q

của timer phụ thuộc vào chức năng timer được lập trình

Trang 30

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Giá trị PV dưới dạng mã BCD

Độ phân giải

Một số lệnh dành cho timer

FR Tx : lệnh cho phép timer.

R Tx : chủ động xóa timer.

L Tx : lấy giá trị timer dạng nhị phân.

L Tx : lấy giá trị timer dạng BCD.

Với x từ 0 đến 255

Hình 1.7: các lệnh cho phép sử dụng timer word như øđịa chỉ.

Trang 31

b Các ví dụ bằng giản đồ cho từng loại timer:

Timer SD (On delay timer): trễ theo sườn lên không nhớ.

Hình 1.8: giản đồ xung cho timer SD.

Timer SS ( Retentive on delay timer): trễ theo sườn lên có

nhớ

Hình1.9: giản đồ xung cho timer SS.

Trang 32

Hình 1.10: giản đồ xung cho timer SP.

Timer SE (Extended pulse timer): timer tạo xung có nhớ.

Hình 1.11: giản đồ xung cho timer SE.

Trang 33

Timer SF (Off delay): timer trễ theo sườn xuống.

Hình 1.12: giản đồ xung cho timer SF.

6 Bộ đếm Counter.

a Chức năng Counter:

Counter là bộ đếm thực hiện chức năng đếm sườn xung của các tín hiệuđầu vào S7-300 có tối đa 256 Counter, ký hiệu Cx Counter đếm tiến theo sườnlên của một tín hiệu vào thứ nhất, ký hiệu là CU (count up) và đếm lùi theosườn lên của một tín hiệu vào thứ hai, ký hiệu là CD (count down)

Các lệnh dùng cho Counter.

FR Cx : lệnh cho phép counter.

R Cx : lệnh xóa counter.

L Cx : đọc số đếm tức thời dạng nhị phân.

LC Cx : đọc số đếm tức thời dạng BCD.

Trang 34

Hình 1.13: nạp giá trị counter vào ACCU1 dùng lệnh L.

Hình 1.14: nạp giá trị counter vào ACCU1 dùng lệnh LC.

b Ví dụ minh họa:

Trang 35

Hình 1.15: ví dụ về các lệnh Counter.

I HOẠT ĐỘNG CỦA CPU.

1 Các vùng nhớ CPU.

CPU S7-300 có 3 vùng nhớ cơ bản:

 Vùng nhớ hệ thống

 Vùng nhớ nạp

 Vùng nhớ làm việc

Bộ nhớ làm việc của CPU cũng cung cấp bộ nhớ tạm (bộ nhớ dữ liệu cụcbộ hoặc L stack) mà được cấp phát cho chương trình khi một khối con được gọi.Khi khối đó còn tích cực, thì bộ nhớ cục bộ còn được duy trì, ta có thể ghi dữliệu vào “L stack” (thay vì vào DB hay bộ nhớ bit) Dữ liệu này chỉ hợp lệ khikhối đó đang tích cực; khi một khối mới được gọi thì “L stack” được cấp phátlại

Trang 36

Hình 1.16: các vùng nhớ trong các CPU của PLC S7-300.

Ngoài ra, CPU còn sử dụng các thành phần sau để xử lý chương trình:

 Hai thanh ghi tích lũy 32 bits (ACCU1 và ACCU2) dùng để làmcác toán hạng trong các lệnh nạp, chuyển, số học và dịch

 Hai thanh ghi địa chỉ 32 bits (AR1 và AR2) được dùng làm pointerđể định địa chỉ gián tiếp thanh ghi

 Hai thanh ghi khối dữ liệu 32 bits (DB và DI) chứa địa chỉ của DBđang được mở (tích cực) Mỗi lần ta có thể mở 2 DB: một làmkhối dữ liệu DB và một làm khối dữ liệu DI

 Từ trạng thái 16 bits (STW) chứa trạng thái của các lệnh khi thựcthi trong chương trình như RLO,OV (overflow), OS (overflowstored), CC1 và CC0 (CC=condition code) và BR (binary result)

2 Cất chương trình vào CPU.

Các phần tử của chương trình:

Chương trình gồm các phần tử sau:

• Các khối logic: chứa các lệnh, ký hiệu và chú thích

• Các khối dữ liệu: chứa dữ liệu, ký hiệu và chú thích

STEP7 lưu trữ các phần tử này trong các đối tượng khác nhau trong cấutrúc file trên đĩa cứng của thiết bị lập trình

Trang 37

Tải xuống (download) các thành phần chương trình:

Khi ta download chương trình, chỉ có các lệnh, dữ liệu và thông tin cầnđể quản lý và để biên dịch lại được chép vào vùng nhớ nạp trong CPU (xemhình 1.16)

CPU chép chương trình (lệnh và dữ liệu) từ bộ nhớ nạp vào bộ nhớ làmviệc Việc này được thực hiện khi ta tải chương trình xuống CPU và (trongtrường hợp mà chương trình của ta được cất vào EEPROM của bộ nhớ nạp) saukhi reset bộ nhớ (MRES) Các phần tử của chương trình mà không cần để chạychương trình vẫn giữ ở trong bộ nhớ nạp; các DB được tạo bởi chương trình(bằng cách dùng SFC) được cất vào chỉ ở bộ nhớ làm việc Từ bộ nhớ làm việc,chương trình của ta truy cập các vùng nhớ khác

3 Định nghĩa các vùng nhớ “giữ” (retentive).

Khi mất nguồn điện hoặc reset bộ nhớ (MRES), bộ nhớ CPU (bộ nhớnạp, bộ nhớ làm việc và bộ nhớ hệ thống động), tất cả dữ liệu cất trong vùngnày bị mất Các CPU S7 cho phép sử dụng các cách sau để giữ chương trình vàdữ liệu của nó:

• Ta có thể giữ chương trình bằng cách dùng EEPROM (dùng thẻbộ nhớ hoặc có sẵn trong CPU [tùy CPU])

• Ta có thể giữ dữ liệu cụ thể trong vùng RAM không bốc hơi(non-volatile)

• Ta có thể giữ tất cả các dữ liệu được cất trong bộ nhớ nạp, bộ nhớlàm việc và các phần của bộ nhớ hệ thống bằng cách sử dụng pinbackup

Trang 38

Hình 1.17: nạp chương trình vào bộ nhớ CPU.

a Sử dụng RAM không bốc hơi:

CPU S7 cung cấp vùng RAM không bốc hơi (xem hình 1.18)

Hình 1.18: vùng nhớ không bốc hơi.

Nếu ta đã cất chương trình trong EEPROM cho bộ nhớ nạp, ta cũng cóthể giữ một số dữ liệu (khi mất nguồn hoặc khi CPU từ STOP sang RUN) bằngcách đặt cấu hình lượng dữ liệu sau sẽ được cất trong vùng RAM không bốchơi:

 Thông tin được cất vào DB (chỉ hữu dụng nếu ta cũng đã cấtchương trình vào EEPROM của bộ nhớ nạp)

Trang 39

 Các giá trị của timer và counter.

 Thông tin được cất ở bộ nhớ bit

b Đặt cấu hình dữ liệu cất trong RAM:

Ta chỉ ra các vùng nhớ giữ “retentive” khi ta đặt cấu hình CPU và I/O(dùng ứng dụng “S7 Configuration” trong phần mềm STEP7)

Bảng sau cho thấy lượng bộ nhớ mà có thể được đặt cấu hình trong vùngRAM không bốc hơi Ta không thể giữ nhiều hơn lượng dữ liệu cho CPU cụ thể

Vùng nhớ Số lượng Mặc nhiên Mô tả

Bộ nhớ bit 0 đến 256 16 Số byte của nhớ bit được giữ

Timer 0 đến 128 0 Số timer được giữ

Counter 0 đến 64 8 Số counter được giữ

Số DB 0 đến 127 1 Ta xác định số lượng vùng DB (mà có

thể một phần của DB) được giữ vàcung cấp 3 word sau (byte) cho mỗi

DB được giữ:

• Word 1: DB số mấy (1 đến 127)

• Word 2: địa chỉ offset của DB (0đến 8191)

• Word 3: chiều dài vùng trong

DB cụ thể được giữ (0 đến

65535 bytes)

Bảng 1.14: các vùng nhớ giữ (với CPU 314).

c Sử dụng pin backup để giữ dữ liệu:

Với pin backup, bộ nhớ nạp và bộ nhớ làm việc được giữ khi bị mấtnguồn Nó cất các chương trình của ta (các OB, FB, FC và DB) Nếu ta đặt cấuhình bất cứ timer nào, counter nào hoặc bộ nhớ bit trong RAM không bốc hơithì thông tin này cũng được giữ

4 Hoạt động của CPU.

a Chu kỳ quét (scan cycle):

Hình 1.19 cho thấy các giai đoạn của chu kỳ quét CPU S7:

Trang 40

Hình 1.19: chu kỳ quét CPU.

b Các chế độ hoạt động (còn gọi là chế độ làm việc):

Các chế độ hoạt động mô tả thao tác của CPU S7 ở bất cứ thời điểmnào Khi biết chế độ hoạt động thì hữu ích cho việc lập trình khởi động, gỡ rối(debugging) chương trình điều khiển và để sửa chữa Có 4 chế độ hoạt độngtrong PLC S7-300: STOP, START UP, RUN, và HOLD (RUN và STOP liênquan với công tắc trên CPU)

Ở chế độ STOP, CPU nạp cấu hình, đặt I/O vật lý vào trạng

thái ban đầu được định nghĩa trước, và không thực thi chươngtrình người sử dụng

Ở chế độ START UP, CPU thực hiện các tác vụ sau:

Ngày đăng: 21/08/2015, 23:26

HÌNH ẢNH LIÊN QUAN

Bảng 1.1: so sánh khả năng lập trình của các PLC SIMATIC S7-300. - THIẾT kế hệ SCADA sử DỤNG WINCC
Bảng 1.1 so sánh khả năng lập trình của các PLC SIMATIC S7-300 (Trang 10)
Bảng sau tóm tắt các lệnh chuyển đổi BCD và số nguyên (dạng STL): - THIẾT kế hệ SCADA sử DỤNG WINCC
Bảng sau tóm tắt các lệnh chuyển đổi BCD và số nguyên (dạng STL): (Trang 21)
Bảng sau cho thấy lượng bộ nhớ mà có thể được đặt cấu hình trong vùng RAM không bốc hơi - THIẾT kế hệ SCADA sử DỤNG WINCC
Bảng sau cho thấy lượng bộ nhớ mà có thể được đặt cấu hình trong vùng RAM không bốc hơi (Trang 39)
Hình 1.20: thay đổi chế độ hoạt động của CPU. - THIẾT kế hệ SCADA sử DỤNG WINCC
Hình 1.20 thay đổi chế độ hoạt động của CPU (Trang 41)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w