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

Đồ án thiết kế hệ SCADA dùng WinCC

54 638 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đ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 54
Dung lượng 12,97 MB

Nội dung

Trang 1

Luận Văn Tốt Nghiệp Phan 1

`

A 1

Trang 2

Chuong 1: Giới Thiệu

I TỔNG QUAN VỀ BỘ ĐIỀU KHIỂN LẬP TRÌNH

DUOC

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

Bộ điều khiển lập trình được (Programmable Logie 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 tố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ới

máy tính Toàn bộ chương trình điều khiển được lưu trong bộ nhớ của PLC dưới dạng các khối chương trình (khối OB, FB hoặc FC) và được thực hiện lặp theo

chu 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ương trình, các module xudt/nhdp (I/O module), hé thống bus và khối nguôn cấp

điện

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

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

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

* Tuyén dif liéu (data bus): mang dif liéu (thi du tiv IM téi OM)

* Tuyén dié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ốn thay đổi lại hệ thống thì phải nối dây lại bộ điều khiển, với hệ thống

Trang 3

Luận Văn Tốt Nghiệp Phan 1 Tuy nhiên trong các hệ thống điều khiển lập trình được thì cấu trúc

củ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ểm

cả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ực tiế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ào bộ 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ội dung của bộ nhớ bộ điểu khiển, nghĩa là bộ nhớ chương trình, còn phần

nố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 fimer) Một chu kỳ quét gồm có 4 giai đoạn sau:

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

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

e_ Chuyển dữ liệu từ Q tới cổng ra e_ 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 theo ting loai 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 trong

vò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ương trì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 Ảnh các quá trình:

s% Ảnh quá trình nhập PHI (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ệu

Trang 4

tiếp Trong lúc quét chương trình kế tiếp (được bắt đầu bằng cách

gọi OB1), các trạng thái tín hiệu của các ngõ vào được lấy từ ảnh quá trình PHI này

s* Ảnh quá trình xuất PIQ (Process Output Image)

Nếu trong một chu kỳ quét, các trạng thái tín hiệu được thiết lập

cho một hay nhiều ngõ ra, thì trước hết chúng phải được đệm trong

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 OBI, nội dung của ảnh quá trình xuất PIQ

được chuyển đến các module xuất

Ả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 đảm

là các tín hiệu vào mà thay đổi trong chu kỳ quét không thể có hiệu ứng trên

chuỗ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õ ra

giả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 gian

hơn nhiễu truy cập trực tiếp vào các modules xuất/ nhập

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 đối tượ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ệu vào/ra khác nhau mà các bộ điều khiển PLC được thiết kế không bị cứng hóa

về 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ải

có một module chính là module CPU Các module còn lại là những module

nhận/truyền tín hiệu với đối tượng điều khiển, các module chuyên dụng như

Trang 5

Luận Văn Tốt Nghiệp Phan 1

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 ra

số Các cổng vào ra số có trên module CPU được gọi là cổng vào ra onboard

Trong ho 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 CPU3 15

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 trong

thư 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ừ [EM (nergrafed

Function Module) Chang han module CPU312 IFM, module CPU314 Ngoai 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:

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

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

gơm:

© DI (Digital Input): Module mé rong cdc cong vao sé © DO (Digital Output): Module mé rong céc cong ra số ¢ DI/DO: Module mé réng cc céng vao/ra số

e AI (Analog Input): Module mé réng cdc cong vao tudng tu ¢ AO (Analog Output): Module mở rộng các cổng ra tương tự e AƯAO: Module mở rộng các cổng vào/ra tương tự

° % 5 IM (Interface module): Module ghép néi Day 1a loai module

chuyên dụng có nhiệm vụ nối từng nhóm các module mở rộng lại

vớ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 røck Trên

mỗi rack có thể gá được tối đa § module mở rộng (không kể

module CPU và module nguồn nuôi) Một module CPU S7-300 có

Trang 6

“ FM (Function Module): Module có chức năng điều khiển riêng, vi

dụ như module điều khiển động cơ bước, module điều khiển động

co servo, module PID, module diéu khién vòng kín,

oe

“ CP (Communication Module): Module phuc vu truyén thông trong mang giữa các PLC với nhau hoặc giữa PLC với máy tính

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 bít 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é thuc 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) luu trit

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 trong

Trang 7

Luận Văn Tốt Nghiệp Phan 1

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 Oufput 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ô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 trữ các tham số cần thiết và có thể truy nhập

nó theo bit (M), byte (MB), từ (MW), từ kép (MD)

e 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) cing nhu gid tri

logic đầu ra của bộ thời gian

e C (Counier): 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

e PI (/O External Input): Mién dia chi céng vao ctia các module tương tự 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ỉ

¢ PQ (/O External Output): Mién dia chi 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 module

tươ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, cong thêm EEPROM có sẵn trong CPU hodc thé EEPROM gan thêm) là

vùng nhớ chứa chương trình của ta bao gồm tất cả các khối

chương trình ứng dụng OB, FB, FC, các khối chương trình trong

thư viện hệ thống được sử dụng (SEB, 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ằm

trong RAM sẽ bị xóa khi tác động xóa bộ nhớ “CPU memory

reset” (MRES)

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

Trang 8

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) Tai m6t théi điểm nhất định vùng work memory

chỉ chứa một khối chương trình duy nhất

c Tâm địa chỉ tối đa cho các vùng nhớ: « VớiI,Q,PL DB, DI và L:

Tâm địa chỉ tối đa cho bit: 0.0 đến 65535.7

Tầm địa chỉ tối đa cho byte: 0 đến 65535

Tâm địa chỉ tối đa cho word: 0 đến 65534

Tâm địa chỉ tối đa cho double word: 0 đến 65532

e_ Với bộ nhớ bit M:

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

Tầ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àn chươ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ại hì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ông phứ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ực hiệ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

OB

Trang 9

Luận Văn Tốt Nghiệp Phan 1

b Lép trinh c6 cdu tric (structured) :

Trong PLC Siemens S7 tổ chức theo các khối mà có thể lập trình được

vớ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:

s* 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

s* Khối hàm chức năng FB (Function block) : Là loại khối EC

đặc biệt có khả năng trao đổi một lượng dữ liệu với các khối

chương trình khác Các dữ liệu này phải được tổ chức thành khối dữ liệu riêng có tên gọi là Data block

s* Khối ham (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ởi

khối OB1 Chương trình trong các khối được liên kết với nhau bằng các lệnh gọi khối, chuyển khối Từng nhiệm vụ điều khiển con có thể được chia thành

những nhiệm vụ nhỏ và cụ thể hơn nữa, do đó một khối chương trình con cũng

có 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ẽ:

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

¢ Cap phat cho khdi con mét phan b6 nhé trong word memory dé

làm local block Cấu trúc local block được quy định khi soạn thảo

các khối

e Truyén cdc tham tri từ khối mẹ cho biến hình thức IN, IN-OUT

của local block

e_ Sau khi khối con thực hiện xong nhiệm vụ và ghi kết quả dưới

dang tham tri dau ra cho bién OUT, IN-OUT cia local block, hé

điều hành sẽ chuyển các tham trị này cho khối mẹ và giải phóng

Trang 10

OB FB FC SFB FB FB SFC FB sử dụng cùng với DB (instance)

Số các lệnh gọi lồng nhau phụ thuộc vào từng chủng loại module CPU

mà 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 cho phép, PLC sẽ tự chuyển sang chế độ STOP và set cờ báo lỗi

Trang 11

Luận Văn Tốt Nghiệp Phan 1 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

Trang 12

b ID: chi 6 nhé co kich thuéc 14 2 tit trong mién b6 đệm cổng vào số Q: chỉ ô nhớ có kích thước là 1 bit trong miền bộ đệm cổng ra SỐ QB: chỉ ô nhớ có kích thước là 1 byte trong 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 I byte thuộc vùng peripheral input

PIW: chỉ ô nhớ có kích thước 1 từ thuộc ving 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 Output PQM: chỉ ô nhớ có kích thước 1 từ thuộc vùng peripheral output PQD: chi 6 nhớ có kích thước 2 từ thudc ving peripheral output

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

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 thi

phần số sẽ gồm địa chỉ của byte và số thứ tự của bit trong byte đó được tách với

nhau bằng dấu chấm

Vidu:I 13

M 100.5 Q 124.7

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ớ đó

Trang 13

Luận Văn Tốt Nghiệp Phan 1

MD 46

2 Cấu trúc thanh ghỉ 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 trung

gian cũng như của kết quả vào một thanh ghi đặc biệt gọi là thanh ghi trạng

thái (status word) Cấu trúc của thanh ghi trạng thái: 23 2 |2 |2 |2 J2* |2 |2 12! 29 2? BR |CCI |CC0 |OV |OS |OR |STA |RLO |/ŒC

a 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ủa toán

hạng Nếu bit /EC =0, lệnh cất kết quả kiểm tra trạng thái tín hiệu vào bit RLO

và đặt bit /C lên 1 Quá trình này được gọi là kiểm tra dau tién (first check)

hay quét lần thứ nhất (first scan)

Nếu bit /C =l thì lệnh kết hợp kết quả dò mức của toán hạng hiện tại

vớ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ệnh

nhảy liên hệ với RLO, hoặc một trong các lệnh lồng nhu A(, O(, X(, AN(, XN(;

cdc lénh nay reset bit /FC vé 0

a RLO (Result of Logic Operation): két qua cia phép todn 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ên

bit hoặc so sánh số học

Ta có thể đặt RLO không điều kiện lên I bằng lệnh SET và xóa RLO

không điều kiện về 0 bằng lệnh CLR Bit RLO cũng có liên quan đến các lệnh

Trang 14

Statement Signal State | Resultof | RLO | FC Explanation List Program of Input (1) Check Bit Bit

or Output (Q)

0 FT bit = 0 indicates that next

““ instruction begins logic string

Al1.0 1 1 1 Result of first check is stored in RLO bit FT bit is set to 1 ANI 1.1 0 1 1 Result of check is combined with

previous RLO according to AND

truth table FT bit remains 1 =Q40 1 0 RLO Is assigned to output

coil FT bit is reset to 0

Hinh1.1: hiéu ứng của trạng thái tín hiệu bịt “FC trên các lệnh logic s» 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ệnh

bit mà truy cập đọc bộ nhớ (A, AN, O, ON, X, XN) luôn luôn bằng giá trị của bit 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ằng

giá 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

~ BitOR

Bit cần có khi sử dụng lệnh O để thực hiện AND-trước -OR Hàm AND chứ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ác reset bit OR

s» 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 hay

lệnh so sánh dấu chấm động sau khi lỗi xảy ra (tràn, phép tố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án học kế hay lệnh so sánh kế

Trang 15

Luận Văn Tốt Nghiệp Phan 1

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ông

có lỗi xẩy ra ở một trong các lệnh được thực thi trước đó Các lệnh sau reset bit

OS: JOS đump after stored overflow), các lệnh gọi khối, và các lệnh kết thúc khối * Mã điều kiện CCI và CC0 CCl cc0 Giải thích 0 0 Kết quả =0 0 1 Kết quá <0 1 0 Két qua >0 Bang 1.2: CCI va CCO sau lénh todn hoc, khéng cé tran

CCI cco Giải thích

0 0 Tran dai tri 4m trong +I va +D 0 1 Tran dãi trị âm trong *I va *D

Tran dãi trị dương trong +I, -I, +D, -D, NEGI va NEGD 1 0 Tràn dãi trị dương trong *I, *D, /I va /D

Tran dai tri 4m trong +I, -I, +D, -D

1 1 Chia cho 0 trong /I, /D, vi MOD Bang 1.3: CCI và CC0 sau lệnh toán học số nguyên, có tràn CCI cco Giải thích 0 0 Tràn dưới

0 1 Tran dai tri dm

Trang 16

0 1 ACCU 2 <ACCU 1 1 0 ACCU 2 >ACCU I 1 1 ACCU 1 hay ACCU 2 là số dấu chấm động không hợp lệ Bảng 1.5: CCI và CC0 sau các lệnh so sánh CCI cœ0 Giải thích 0 0 Bit vita dich ra là 0 1 0 Bit vừa dịch ra là I Bảng 1.6: CC1 và CC0 sau các lệnh dịch và xoay CCI cœ0 Giải thích 0 0 Kết quả =0 1 0 Két qua <>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ện

hữ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ễn

bit bộ nhớ bên trong máy mà RLO cất vào trước khi một phép toán word làm

thay đổi RLO, để cho RLO khả dụng lần nữa sau khi phép toán tiếp tục chuỗi logic bit bị ngắt

Bit BR tương ứng với ngõ ra cho phép (ENO = enable output) của hộp

LAD Ta nên sử dụng lệnh SAVE để cất RLO vào bit BR theo các tiêu chuẩn

sau:

e_ Cất bit RLO =l vào bit BR cho trường hợp mà FB hay FC được

thực thi không có lỗi

e_ Cất bit RLO =0 vào bit BR cho trường hợp mà FB hay FC được

thực thi có lỗi

Ta nên lập trình các lệnh này 6 cuéi FB hay FC để chúng là các lệnh

cuối cùng được thực thi trong khối

Trang 17

Luận Văn Tốt Nghiệp Phan 1

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 double

word 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 qua thanh 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:

âô - Np (LOAD) từ bộ nhớ nguồn vào ACCU

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

Trong PLC có 2 thanh ghi: ACCU1 và ACCU2, mỗi thanh ghi có chiều đài 2 word Chú ý: s* Load và Transfer trực tiếp không qua PII va PIQ: L PIB T PQW

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

s* Các lệnh Load và Transfer trực tiếp chỉ có thể lập trình bằng dạng

STL (ngoại trừ các toán hạng của Timer, Counter và các lệnh so

sánh)

2 Các lệnh tác động vào RLO và ô nhớ e SET: lénh ghi logic I vào RLO

e _ CLR: lệnh ghi logic 0 vào RLO e NOT: lénh đảo giá trị của RLO

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

e FP <todn hang>: 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òng qué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 thi sẽ ghi 1 vào RLO, các trường hợp khác thì ghi 0, đồng thời chuyển nội dung của RLO vào lại biến cờ Như vậy RLO sẽ có giá trị 1 trong một vòng quét khi có sườn lên trong RLO

Trang 18

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òng

qué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ị l và

RLO có giá trị 0 thì sẽ ghi 1 vào RLO, các trường hợp khác thì ghi 0, đổng thời chuyển nội dung của RLO vào lại biến cờ Như vậy RLO sẽ có giá trị 1 trong một vòng quét khi có sườn lên trong RLO

e SAVE : lénh chuyén giá trị của RLO vào BR

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

3 Các lệnh tác động vào 2 thanh ghỉ ACCUI và ACCU2

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

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

e _ PUSH:: lệnh chuyển nội dung của ACCUI1 vào ACCU2 e _ TAK: lệnh đảo nội dung của 2 thanh ghi ACCUI và ACCU2 e CAW: lệnh đảo nội dung 2 bytes của từ thấp trong ACCUI e CAD: lệnh đảo nội dung các bytes trong ACCUI

e _INVI: lệnh đảo giá trị các bits trong từ thấp của ACCUI e INVD:: lệnh đảo giá trị các bits của ACCUI

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

e INC_ <toán hạng>: lệnh tăng nội dung thanh ghi ACCUI Toán hạng là số nguyên 8 bits Lệnh thực hiện phép cộng giữa byte thấp

của từ thấp trong ACCUI với toán hạng Kết quả được ghi lại vào byte thấp của

từ thấp của ACCUI

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

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 ACCUI cho toán hạng Kết quả được ghi lại vào byte thấp của từ

thấp của ACCUI

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

Trang 19

Luận Văn Tốt Nghiệp Phan 1

« RRD_ [n]: lệnh xoay tròn các bits của ACCUI 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ệnh

tương đương với lệnh NOP

e _ RLDA : lệnh xoay tròn ACCUI theo chiều trái 1 bit e RRDA : lệnh xoay tròn ACCUI theo chiểu phải 1 bit Instruction Rotate via CC 12 Direction Indication of Number of Places to Shift | Shift Range

RLDoa No Lett In the instruction statement n=() to 32 RLD No Lett In the low byte of the low word of 0 to 255

accumulator 2

RRD No Right In the instruction statement 01032 RRD No Right In the low byte of the low word of 0 t0 255

accumulator 2

RLDA Yes Left 1 (fixed) RRDA Yes Right 1 (fixed) Bảng 1.8: tóm tắt các lệnh xoay bùi 31 mn 0 111110000|1010|1010Ì0000|1111Ì0000|1111 ~— 8places I111]1000Ì0101|0101]0000|0111|1000[0111]1111] OS pes ld —¬ â 2

The three bits that are shited_ ——————————— ‡ out are inserted in the vacated The last bit shifted is places also stored in CC 1

Hình 1.2: xoay ACCỦI qua trái 3 bù Thí dụ: xoay phải word kép

L 43

Trang 20

31 „16 15 0 1010|1010]0000Ì1111Ì0000Ì1111Ì0101]0101 3 places——* [1011]0101]0100]0001]1110]0001]1110] 1010] 1011 ĐÔ 7 7 ae | The three bits that are -—” The last bit shifted is shifted out are inserted

also stored in CC 1 in the vacated places Hinh 1.3: xoay ACCU] phai 3 bit CC1 31 16 15 gal {x}e{1010]1010]0000]1111[o000]1111[ 0101/0101 -—— iplace "| [1] [1010]0100]0001]1110[0001]1110]1010|101x| { |

The last bit shifted is The signal state of the

also stored in CC 1 CC 1 bit is loaded into the vacated bit place

Hinh 1.4: xoay trai 1 bit qua CC]

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

ACCUI Bit 0 được ghi 0, bit 15 đẩy vào CCI

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

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

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

ACCUI Bit 0 được ghi 0, bit 15 đẩy vào CCI

e SRD [<toán hạng>]: dịch phải các bits của ACCUI Bit 0 được ghi 0, bit 31 đẩy vào CCI

e SSL [<toán hạng>]: dịch phải các bits trong từ thấp của ACCUI Bit0 đẩy vào CCI, bit 15 ghi lại giá trị cũ

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

Trang 21

Luận Văn Tốt Nghiệp Phần 1

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ố | Đổi số BCD trong word thấp của ACCUI sang số

nguyên nguyên 16 bits

BTD |BCD sang số | Đổi số BCD trong ACCUI sang sé nguyén kép

nguyên kép 32 bits

ITB | Số nguyên sang | Đổi số nguyên 16 bits trong word thấp của

BCD ACCUI sang số BCD

ITD_ |Số nguyên sang | Đổi số nguyên 16 bits trong word thấp của

số nguyên kép | ACCUI sang số nguyên kép 32 bits

DTB |Số nguyên kép | Đổi số nguyên kép 32 bits trong ACCUI sang số

sang BCD BCD

DTR |Số nguyên kép | Đổi số nguyên kép 32 bits trong ACCUI sang số

sang số thực 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 so

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ấu

chấm động IEEE 32 bits trong thanh ghi ACCUI thành số nguyên kép (các lệnh

khác nhau về cách làm tròn) và kết quả được cất ở ACCUI Lệnh Ý nghĩa Chức năng

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

Trang 22

Bảng 1.10: chuyển đổi số dấu chấm động 32 bits sang số nguyên 32 bits BCD BTI Integer Floating DTB RND, RND+, RND-, TRUNC Hình 1.5: tóm tắt các lệnh chuyển đổi và làm tròn 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ố ở ACCUI, nếu kết quả đúng nó sẽ trả về

RLO=I, 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ới

word thấp của ACCUI Dạng lệnh so sánh như sau: op datatype với øp (operator = toán tử) có thể là: So sánh op Bằng nhau == Không bằng <> Lớn hơn > Nhỏ hơn < Lớn hơn hoặc bằng >= Nhỏ hơn hoặc bằng <=

Trang 23

Luận Văn Tốt Nghiệp Phan 1 ACCU2>ACCUI 1 0 JN, JP ACCU2<ACCUI 0 1 JN, JM ACCU2=ACCUI 0 0 JZ ACCU2<>ACCUI 0/1 1/0 JN ACCU2>=ACCU1 1/0 0/0 JPZ ACCU2<=ACCUI 0/0 1/0 JMZ 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 (+l), trừ (-

1), nhân (*D, chia (/I) Lấy word thấp của ACCU2 +,-,*,/ với

word thấp của ACCUI, kết quả lại vào word thấp của

ACCUI

> 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 ACCUI,

kết quả lại vào ACCUI

> 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 ACCUI, kết quả lại vào ACCUI

> 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 ở ACCUI và kết quả cất ở ACCUI

e ABS: lay trị tuyệt đối

e SQRT: tinh can bac hai (square root) xl

¢ SQR: tinh binh phuong (square) x?

e LN: tinh logarithm ty nhiên In(x)

e EXP: tinh ham mii e*

e SIN: tinh sin(x) e COS: tinh cos(x) e TAN: tinh tg(x)

e ASIN: tinh arcsin(x)

e ACOS: tinh arccos(x) e ATAN: tinh atctg(x)

2

Trang 24

a Các lệnh điều khiển logic:

Ta có thể sử dụng các lệnh jump (bắt đầu bằng J) và loop để điểu khiển

rẽ nhánh trong một khối chương trình Địa chỉ cho lệnh jump và loop là nhãn

nhảy đến trong chương trình (label)

Có các lệnh điều khiển logic sau:

e _ Lệnh nhảy không điều kiện: JU, JL

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

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

JOS

e _ Lệnh nhảy theo mã diéu kién CCO, CC1: JZ,JN, JP, JM, JMZ, JPZ, JUO

e 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ều

khiể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:

e _ 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

e Lệnh nhảy theo danh sách JL: (giống lệnh case hay switch trong cdc 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:

e 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ế

e 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ế

se JCB nhãn: nếu RLO=l 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ế

e 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:

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

Trang 25

Luận Văn Tốt Nghiệp Phan 1

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 va FC trong

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

Theo điều kiện OV:

JO nhãn: nếu OV=I 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=l 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 CCI 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 qua 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 qua 14 0 hay >0 thi nhay đế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ều

lần Lệnh LOOP giảm word thấp của ACCUI bớt đi 1 và kiểm tra trị mới có được ở ACCUI Nếu ACCUI! 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ế

Trang 26

Ta có thể sử dụng các lệnh sau để điều khiển chương trình

= Lénh goi CALL ding dé goi FC, FB, SFC hay SFB ma bat

chấp RLO hay bất cứ điều kiện nào khác

" Lệnh gọi có điều kiện (CC) và không điều kiện (UC) dùng để gọi các FC không có tham số

"Lệnh gọi không điều kiện (UC) dùng để gọi SFC không có

tham số

" 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úc

khố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úc

chạy chương trình Tham số thật phải có cùng kiểu dữ liệu với tham số hình thứ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 ŒC) và khối ham (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ối hà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ào

khố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):

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

e Pointer chi dén dia chỉ của tham số thật

e Pointer chi dén “L stack” cia khối gọi mà ở đó giá trị của tham số thật đã được đệm

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

Trang 27

Luận Văn Tốt Nghiệp Phan 1

e Téncta khéi ham

e_ Tên của khối dữ liệu instance và e_ 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=I)

UC_ addr (unconditional call: gọi bất chấp RLO) Chú ý: không được sử dụng DB “instance” với CC va UC

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

indirect address)

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

MCR ding để tạo hay ngắt luồng năng lượng (đường dẫn điện) Các

lệ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ủa

chúng theo MCR được cho theo bảng 1.12 Trạng thái tín|= ShayR T hiệu của MCR 0 Ghi 0 Không ghi (nghĩa | Ghi 0 là toán hạng không đổi) 1 Thực thí bình |Thực thí bình |Thực thí bình thường thường thường Bảng 1.12: các lệnh phụ thuộc MCR s* Các lệnh cài đặt MCR

= MCRA: kich hoat ving MRC (A= Activate) = MCRD: bé kich hoat ving MCR (D= Deactivate)

= MCR(: c&t RLO vào ngăn xếp MCR, bat dau ving MCR = )MCR : lay lai RLO, két thtic ving MCR

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

Trang 28

* Anh hudng cia MCRA va MCRD

Trong vùng MCR nếu gọi 1 hàm thì hàm đó không bị ảnh hưởng của

vùng MCR, muốn hàm có vùng MCR thì ta phải tạo thêm Hình 1.6 cho thấy

ảnh hưởng của vùng MCR Cài đặt MCR

Các lệnh sau bật hay tắt chức năng MCR:

e_ Cất RLO trong ngăn xếp MCR, bắt đầu MCR: MCR(

e Lay lai RLO< két thtic MCR: )MCR

Nhu vậy, ta phải luôn luôn có cặp MCR( và )MCR; hệ thống cho phép lồng cdc cip MCR( va )MCR va toi da 1a 8 OB1 FBx FCy MCRA MCRA MCRA MCRD CALL FCy CALL FBx MCRD BEU MCRA BEU

| Instructions do not depend on the MCR bit

II Instructions depend on the MCR bit

Trang 29

Luận Văn Tốt Nghiệp Phan 1

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

> Cac 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=l1 thì khối hiện hành được kết thúc và quét chương trình được tiếp tục ở lệnh ngay sau lệnh gọi khối

Khi RLO=0 thi không thực hiện kết thúc khối và cho RLO=I sau đó 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 Chitc nang 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ác

nhau Một word 16 bits (timer word) trong vùng dữ liệu hệ thống được gán cho

mộ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:

a_ 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 dau

a 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 Q

của timer bị xóa về “0”

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

Trang 30

a Ngo ra nhi phan: trang thai tin 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

Thời gian trễ được khai báo với timer bằng một giá trị 16 bits gồm 2

thành phần:

e D6 phân giải với đơn vị là ms

e_ Một số nguyên (BCD) trong khoảng 0 đến 999, gọi là PV

Vậy, thời gian trễ =độ phân giải* PV Giá trị PV dưới dạng mã BCD Độ phân giải 0 0 10ms 0 1 100ms 1 0 1s 1 1 10s Không sử dụng Một số lệnh dành cho timer e« FR Tx : lệnh cho phép timer se R Tx :chủ động xóa timer

e L Tx : lấy giá tri timer dang nhi phan

e L Tx : lấy giá tri timer dang BCD

Với x từ 0 đến 255

Start timer (SP, SE, SD, SS, SF)

Enable timer (FR) + Teer ort yo —$§ Reset timer (R)

Check signal state of timer (A, O, X, AN, ON, XN) Loadtimer (L,LC)

Trang 31

Luận Văn Tốt Nghiệp Phan 1

Hình 1.7: các lệnh cho phép sử dụng timer word nhv dia chi

b Các ví dụ bằng giản đồ cho từng loại timer: s s* Timer SD (On delay timer): trễ theo sườn lên không nhớ Enable Input l2l Start Input 124 ` Reset Input 122 / Á Đ 1¬ OY SLIME i = "À Load Timer: L, LC " Ầ N | t=programmed time interval =

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

Trang 32

Enable input Start input _T tí KL Resetinput 4 i Output RASS n n_ Tả x

Load timer: L, LC err NN ~

t= programmed time interval

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

«+ Timer SP (Pulse timer): timer tao xung không có nhớ Enable input Start input ‡ & L Reset input Timer Output q40 Load timer: L, LE t= programmed time interval

Hinh 1.10: gidn dé xung cho timer SP

“+ Timer SE (Extended pulse timer): timer tao xung có nhớ

Trang 33

Luận Văn Tốt Nghiệp Phan 1 Enable input 120 Start input 124 Reset input 122 A Al ANN | Timer { em Output q40

Load timer: L, LC IN| |

t= programmed time interval

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

s* Timer SF (Off delay): timer trễ theo sườn xuống Enable input 12.0 Start input Reset input Timer Output 4 Ed Load timer: L, LC | À | t= programmed time interval Hinh 1.12: gidn dé xung cho timer SF 6 Bộ đếm Counter a Chức năng Counfer:

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ườn

Trang 35

Luận Văn Tốt Nghiệp Phan 1 12.0 Enable 12.1 Count Up 12.2 Count Down m 12.3 Set j 7 12.4 Reset C ( ( if £ Counter : 0 Response SO Check signal 8 State of counte; output Q 4.0 MW10 Load MW12 SERA) : Hình 1.15: ví dụ về các lệnh Counter

Chương3: Thực Thi Chương Trình

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: = Ving nhớ hệ thống = Ving nhé nap " 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ục bộ 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 vi vao DB hay bộ nhớ bit) Dữ liệu này chỉ hợp lệ khi

khối đó đang tích cực; khi một khối mới được gọi thì “L stack” được cấp phát

Trang 36

Distribution of the Memory Areas CPU

Dynamic load memory (RAM, integrated or on a memory card): contains the user program

Work memory (RAM)

contains the executable user program (for example logic and data blocks)

Retentive load memory (FEPROM, on memory card or integrated in S7-

300 CPUs):

contains the user program

System memory (RAM) contains:

Process-image inpuVoutput tables,

bit memory, timers, counters Local data stack Block stack Interrupt stack Diagnostic buffer

Hình I.I6: 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:

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

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

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

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

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

Hai thanh ghi tích lũy 32 bits (ACCUI1 và ACCU2) dùng để làm cá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 (ARI 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àm khối dữ liệu DB và một làm khối dữ liệu DI

Ty trang thdi 16 bits (STW) chứa trạng thái của các lệnh khi thực thi trong chương trình như RLO,OV (overflow), OS (overflow stored), CC1 va CCO (CC=condition code) va BR (binary result)

STEP?7 lưu trữ các phần tử này trong các đối tượng khác nhau trong cấu

Trang 37

Luận Văn Tốt Nghiệp Phan 1 %% 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 (xem hì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àm việc Việc này được thực hiện khi ta tải chương trình xuống CPU và (trong

trường hợp mà chương trình của ta được cất vào EEPROM của bộ nhớ nạp) sau

khi reset bộ nhớ (MRES) Các phần tử của chương trình mà không cần để chạy

chươ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 SEC) đượ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ùng

nà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ó:

e© Ta có thể giữ chương trình bằng cách ding EEPROM (dùng thé

bộ nhớ hoặc có sẵn trong CPU [tùy CPU])

e Ta có thể giữ dữ liệu cụ thể trong vùng RAM không bốc hơi

(non-volatile)

e_ 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 pin

Trang 38

' $7-400 Programming device $7-300 R ay E + em if Load memory Work memory Logic blocks

Entire logic Parts of logic and

blocks data blocks

Data blocks relevant to Entire data program execution blocks Comments | Symbols Sf Saved on the hard disk

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) Non-Volatile Memory Area on S7-300 CPUs ee 1

Dynamic load Configurable

memory Work memory System (RAM) memory (NVRAM) memory

Static load ail memo: (FEPROM) Plug-in FEPROM- CPU cartridge (optional) 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ố đữ liệu (khi mất nguồn hoặc khi CPU từ STOP sang RUN) bằng

cách đặt cấu hình lượng dữ liệu sau sẽ được cất trong vùng RAM không bốc

hơi:

a Thông tin được cất vào DB (chỉ hữu dụng nếu ta cũng đã cất

chương trình vào EEPROM của bộ nhớ nạp)

Trang 39

Luận Văn Tốt Nghiệp Phần 1 a Cac gid trị của timer và counter

a_ 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ùng

RAM 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đến64 |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ữ: e Word 1: DB sé may (I đến 127) e Word 2: dia chi offset cia DB (0 dén 8191) e Word 3: chiều đài vùng trong DB cụ thể được giữ (0 đến 65535 bytes)

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

c Sit dung pin backup dé giit dit ligu:

V6i pin backup, bộ nhớ nạp và bộ nhớ làm việc được giữ khi bị mất

nguồn Nó cất các chương trình của ta (các OB, EB, FC và DB) Nếu ta đặt cấu hình bất cứ timer nào, counter nào hoặc bộ nhớ bit trong RAM không bốc hơi

thì thông tin này cũng được giữ 4 Hoạt động của CPU

a Chu ky quét (scan cycle):

Trang 40

e CPU quét trang thái của các module nhập và cập nhật vùng

nhớ đệm PII

e = Thuc thi chương trình và thực hiện các tác vụ mà chương trình

yêu cầu

e Ghi các giá trị từ vùng đệm PIQ ra các module xuất

Sau khi ghi ra các ngõ xuất thì CPU tiếp tục lặp lại từ đầu và đọc các

trạng thái của các module nhập Scan cycle on existing CPUs Scan cycle on new CPUs Startup program Startup program

Read the inputs from the modules

and update the data in the process-

image input table

Transfer the values of the process-

image output table to the modules

Execute the user program (OB1

and all the blocks called in it) Read the inputs from the modules

and update the data in the process-

image input table

Execute the user program (OB1 Transfer the values of the process- she

and all the blocks called in it) image output table to the modules Free scan cycle Free scan cycle

Hinh 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ểm nà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 động

trong PLC S7-300: STOP, START UP, RUN, va HOLD (RUN va STOP lién

quan 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

Ngày đăng: 29/07/2014, 19:03

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w