1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Giáo trình : Lập Trình Với SPS S7-300 part 2 pot

10 194 0
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 340,39 KB

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

Nội dung

Mỗi vòng quét được bắt đàu bằng việc chuyển dữ liệu từ các cổng vào số tới vùng bộ đệm ảo I, tiếp theo là giai đoạn thực hiện chương trình.. Có vòng quét được thực hiện lâu, có vòng quét

Trang 1

3/ IM (Interface module): Modul ghép nối Đây là loại modul chuyên dụng

có nhiệm vụ nối từng nhóm các modul mở rộng lại với nhau thành một khối

và được quản lý chung bới một modul CPU Thông thường các modul mở rộng được gá liền với nhau trên một thanh đỡ gọi là Rack Trên mỗi một Rack chỉ có thể gá được nhiều nhất 8 modul mở rộng (không kể modul CPU, Modul nguồn nuôi) Một modul PU S7-300 có thể làm việc trực tiếp được với nhiều nhất 4 RACKS và các Racks này phải được nối với nhau bằng modul

IM

4/ FM (Function modul): modul có chức năng điều khiển riêng , ví dụ Modul

chức năng điều khiển động cơ bước , modul điều khiển động cơ Servo, modul PID, modul điều khiển vòng kín

5/ CP (communication modul): Modul phục vụ truyền thông trong mạng giữa

các PLC với nhau hoặc giữa PLC với máy tính

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

1-Phân loại:

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

1/ BOOL: với dung lượng là 1 bit và có giá trị là 0 hoặc 1 (đúng hoặc sai)

Đây là kiểu dữ liệu biến có hai giá trị

2/ BYTE: gồm 8 bits, thường được dùng để biểu diễn một số nguyên dương trong khoảng từ 0 đến 255 hoặc mã ASCII của một ý tự

Ví dụ: B#16#14 nghĩa là số nguyên 14 viết theo hệ đếm cơ số 16 có độ dài 1 byte

3/ WORD: gồm 2 byte, để biểu diễn số nguyên dương từ 0 đến 65535 (216 - 1)

4/DWORD: Là từ kép có giá trị là: 0 đến 232-1

5/ INT: cũng có dung lượng là 2 bytes, dùng để biểu diễn một số nguyên trong khoảng -32768 đến 32767 hay ( 2-15 215-1)

6/ DINT: gồm 4 bytes, dùng để biểu diễn số nguyên từ -2147483648 đến

2147483647 hay: (2-31 231-1)

7/ REAL: gồm 4 bytes, dùng để biểu diễn một số thực dấu phảy động có giá trị là: -3,4E38 3,4E38

Ví dụ: 1.234567e+13

8/ S5t (hay S5Time): khoảng thời gian, được tính theo giờ/phút/giây: (-2-31+

231-1 ms)

Trang 2

Ví dụ: S5t#2h_3m_0s_5ms

Đây là lệnh tạo khoảng thời gian la 2 tiếng ba phút và 5 mili giây

9/TOD: Biểu diễn giá trị tức thời tính theo Giờ/phút/giây

Ví dụ: TOD#5:30:00 là lệnh khai báo giá trị thời gian trong ngày là 5 giờ

30 phút

10/ DATE: Biểu diễn thời gian tính theo năm / ngày / tháng

Ví dụ: DATE#2003-6-12

Là lệnh khai báo ngày12 tháng 6 năm 2003

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

Ví dụ: ABCD

2-Sử dụng và khai báo các dạng tín hiệu:

Trong quá trình thực hiện cấu trúc của tín hiệu số được biểu diễn dưới dạng:

1/ Bit : (ví dụ I0.0) dùng để biểu diễn số nhị phân (có 2 giá trị 1 hoặc 0)

1 2/ Byte : (ví dụ MB0) Một Byte gồm có 8 bits Ví dụ giá trị của 8 cổng vào (IB0) hoặc 8 cổng ra (QB1), được gọi là một byte:

3/ Word: (ví dụ MW0= MB0 + MB1) Một Word gồm có 2 Byte như vậy một Word có độ dài 16 bits

0 0 1 0 1 1 1 0 0 0 1 0 1 1 1 0

4/ Doppelword: (ví dụ MD0 = MW0 + MW2): có độ dài 2 từ hoặc 4 Byte tức là

32 bits

Trang 3

1.2.3.Cấu trúc bộ nhớ của CPU của S7-300:

Được chia ra làm 3 vùng chính:

1) Vùng chứa chương trình ứng dụng: vùng nhớ chương trình được chia làm

3 miền:

a/ OB: Miền chứa chương trình tổ chức (các chương trình này sẽ được giới thiệu ở mục 1.2.5)

b/ FC: (Funktion): miền chứa chương trình con được tổ chức thành hàm

có biến hình thức để trao đổi dữ liệu với chương trình đã gọi nó

c/ FB: (Funktion Block): Miền chứa chương trình con, được tổ chức thành

hàm và có khả năng trao đổi dữ liệu với bất cứ một khối chương trình nào khác Các dữ liệu này phải được xây dựng thành một khối dữ liệu riêng

(gọi là DB-Data block)

2) Vùng chứa các tham số của hệ điều hành và chương trình ứng dụng, được phân chia thành 7 miền khác nhau, bao gồm:

a I (Procees image input): miền bộ đệm các dữ liệu cổng vào số Trước khi

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

b Q (Process image output): miền bộ đệm các cổng ra số Kết thúc giai đoạn

thực hiện chương trình sẽ chuyển giá trị logic của bộ đệm tới các cổng ra

số Thông thường 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

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

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

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

f PI: Miền địa chỉ cổng vào của các modul tương tự Các giá trị tương tự tại cổng vào của modul tương tự sẽ được đọc và chuyển tự động theo những

địa chỉ Chương trình ứng dụng có thể truy nhập miền nhớ PI theo từng byte (PIB), từng từ (PIW) hoặc theo từ kép (PID)

Trang 4

g PQ: miền địa chỉ cổng ra cho các modul tương tự Các gía trị theo những

địa chỉ này được modul tương tự chuyển tới các cổng ra tương tự Chương trình ứng dụng có thể truy cập miền nhớ PQ theo từng byte (PQB), từng từ (PQW) hay từng từ kép (PQD)

3) Vùng chứa các khối dữ liệu: được chia làm hai loại:

a DB (Data block): miền chứa các dữ liệu được tổ chức thành khối Kích

thước cũng như số lượng do người sử dụng qui định, phù hợp với từng bài toán điều khiển Chương trình có thể truy cập miền này theo từng bit (DBX), byte (DBB), từ (DBW) hoặc từ kép (DBD)

b L (Local data block) : miền giữ liệu địa phương, được các khối chương

trình OB, FB, FC tổ chức và sử dụng cho các biến nháp tức thời và trao

đổi giữ liệu của biến hình thức của chương trình với những khối chương trình đã gọi nó Nội dung của một số dữ liệu trong miền nhớ này sẽ bị xoá khi kết thúc chương trình tương ứng trong OB, FB, FC Miền này có thể

truy cập từ chương trình theo bit (L), byte (LB), từ (LW) hay từ kép (LD) 1.2.4.Vòng quét của chương trình:

SPS (PLC) thực hiện các công việc (bao gồm cả chương trình điều khiển) theo chu trình lặp Mỗi vòng lặp được gọi là một vòng quét (scancycle) Mỗi vòng quét được bắt đàu bằng việc chuyển dữ liệu từ các cổng vào số tới vùng bộ

đệm ảo I, tiếp theo là giai đoạn thực hiện chương trình Trong từng vòng quét , chương trình được thực hiện từ lệnh đầu tiên đến lệnh kết thúc của khối OB1 Sau giai đoạn thực hiện chương trình là giai đoạn chuyển các nội dung của bộ

đệm ảo Q tới các cổng ra số Vòng quét được kết thúc bằng giai đoạn xử lý các yêu cầu truyền thông (nếu có) và kiểm tra trạng thái của CPU Mỗi vòng quét có thể mô tả như sau:

Hình1-8: Quá trình hoạt động của một vòng quét

Chú ý : Bộ đệm I và Q không liên quan tới các cổng vào/ra tương tự nên các lệnh

truy nhập cổng tương tự được thực hiện trực tiếp với cổng vật lý chứ không thông qua bộ đệm

Vòng quét

Truyền dữ liệu từ cổng vào tới I

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

Chyển dữ liệu

từ Q tới cổng

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

Trang 5

Thời gian cần thiết để cho PLC thực hiện được một vòng quét được gọi là thời gian vòng quét (Scan time) Thời gian vòng quét không cố định, tức là không phải vòng quét nào cũng được thực hiện trong một khoảng thời gian như nhau Có vòng quét được thực hiện lâu, có vòng quét được thực hiện nhanh tuỳ thuộc vào số lệnh trong chương trình được thực hiện, vào khối lượng dữ liệu truyền thông Trong vòng quét đó

Như vậy giữa việc đọc dữ liệu từ đối tượng để xử lý, tính toán và việc gửi tín hiệu điều khiển đến đối tượng có một khoảng thời gian trễ đúng bằng thời gian vòng quét Nói cách khác, thời gian vòng quét quyết định tính thời gian thực của chương trình điều khiển trong PLC Thời gian vòng quét càng ngắn, tính thời gian thực của chương trình càng cao

Nếu sử dụng các khối chương trình đặc biệt có chế độ ngắt, ví dụ 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ể thực hiện tại mọi vòng quét chứ không phải bị gò ép là phải ở trong giai đoạn thực hiện chương trình Chẳng hạn một tín hiệu báo ngẵt xuất hiện khi PLC đang

ở giai đoạn truyền thông và kiểm tra nội bộ, PLC sẽ tạm dừng công việc truyền thông, kiểm tra, để thực hiện ngắt như vậy, thời gian vòng quét sẽ càng lớn khi càng có nhiều tín hiệu ngắt xuất hiện trong vòng quét Do đó để nâng cao tính thời gian thực cho chương trình điều khiển, tuyệt đối không nên viết chương trình xử lý ngắt quá dài hoặc quá lạm dụng việc sử dụng chế độ ngắt trong chương trình điều khiển

Tại thời điểm thực hiện lệnh vào/ra, thông thường lệnh không làm việc trực tiếp với cổng vào/ra mà chỉ thông qua bộ nhớ đệm của cổng trong vùng nhớ tham số Việc truyền thông giữa bộ đêm ảo với ngoại vi trong giai đoạn 1 và 3

do hệ điều hành CPU quản lý ở một số modul CPU, khi gặp lệnh vào/ra ngay lập tức hệ thống sẽ cho dừng mọi công việc khác, ngay cả chương trình xử lý ngắt, để thực hiện với cổng vào/ra

1.2.5 Những khối OB đặc biệt:

Khối OB1 có chức năng quản lý chính trong toàn bộ chương trình, có nghĩa

là nó sẽ thực hiện một cách đều đặn ở từng vòng quét trong khi thực hiện chương trình Ngoài ra Step7 còn có rất nhiều các khối OB đặc biệt khác và mỗi khối OB đó có một nhiệm vụ khác nhau, ví dụ các khối OB chứa các chương

Trang 6

trình ngắt của các chương trình báo lỗi , Tuỳ thuộc vào từng loại CPU khác nhau mà có các khối OB khác nhau Ví dụ các khối OB đặc biệt

1 OB10: (Time of Day Interrupt): Chương trình trong khối OB10 sẽ được thực

hiện khi giá trị của đồng hồ thời gian thực nằm trong một khoảng thời gian

đã qui định OB10 có thể được gọi một lần, nhiều lần cách đều nhau từng phút, từng giờ, từng ngày, Việc qui định thời gian hay số lần gọi OB10

được thực hiện bằng chương trình hệ thống SFC28 hoặc trong bảng tham số modul CPU nhờ phần mềm Step7

2 OB20: (Time Delay Interrupt): chương trình trong khối OB20 sẽ được thực

hiện sau một khoảng thời gian trễ đặt trước kể từ khi gọi chương trình hệ thống SFC32 để đăt thời gian trễ

3 OB35: (Cyclic Interrupt): Chương trình OB35 sẽ được thực hiện cách đều

nhau một khoảng thời gian cố định Mặc định khoảng thời gian này là 100ms, xong ta có thể thay đổi trong bảng đặt tham số cho CPU nhờ phần mềm Step7

4 OB40 ( Hardware Interrupt): Chương trình trong khối OB40 sẽ được thực

hiện khi xuất hiện một tín hiệu báo ngắt từ ngoại vi đưa vào CPU thông qua các cổng vào/ra số onboard đặc biệt, hoặc thông qua các modul SM, CP, FM

5 OB80: (cycle Time Fault): Chương trình sẽ được thực hiện khi thời gian vòng

quét (scan time) vượt qua khoảng thời gian cực đại đã qui định hoặc khi có một tín hiệu ngắt gọi một khối OB nào đó mà khối OB này chưa kết thúc ở lần gọi trước Mặc định, scan time cực đại là 150ms, nhưng có thể thay đổi tham số nhờ phần mềm Step7

6 OB81( Power Supply Fault): nếu có lỗi về phần nguồn cung cấp thì sẽ gọi

chương trình trong khối OB81

7 OB82: (Diagnostic Interrupt) chương trình trong khối này sẽ được gọi khi

CPU phát hiện có lỗi từ các modul vào/ra mở rộng Với điều kiện các modul vào/ra này phải có chức năng tự kiểm tra mình

8 OB85 (Not Load Fault): CPU sẽ gọi khối OB85 khi phát hiện chương trình

ứng dụng có sử dụng chế độ ngắt nhưng chương trình xử lý tín hiệu ngắt lại không có trong khối OB tương ứng

9 OB87 (Communication Fault): Chương trình trong khối này sẽ được gọi khi

CPU phát hiện thấy lỗi trong truyền thông

10 OB100 (Start Up Information): Khối này sẽ được thực hiện một lần khi CPU

chuyển trạng thái từ STOP sang trạng thái RUN

Trang 7

11 OB121: (Synchronouns error): Khối này sẽ được gọi khi CPU phát hiện thấy

lỗi logic trong chương trình như đổi sai kiểu dữ liệu hoặc lỗi truy nhập khối

DB, FC, FB không có trong bộ nhớ của CPU

12 OB122 (Synchronouns error): Khối này sẽ được thực hiện khi CPU phát

hiện thấy lỗi truy nhập Modul trong chương trình, ví dụ trong chương trình

có lệnh truy nhập modul mở rộng nhưng lại không có modul này

Để thực hiện thay đổi các chức năng của các khối OB trong CPU ta chỉ cần kích đúp chuột trái vào vị tí CPU trong bảng cấu hình cứng của Project khi đó trên màn hình sẽ xuất hiện một cửa sổ như sau:

Hình 1-9

Chú ý không phải tất cả các CPU đều có các khối OBs như đã giới thiệu Số lượng và chủng loại khối OB tuỳ thuộc vào từng loại CPU

Trang 8

Chương 2: Kỹ thuật lập trình:

2.1.Giới thiệuchung:

2.1.1.Lập trình tuyến tính và lập trình có cấu trúc:

Phần bộ nhớ của CPU dành cho chương trình ứng dụng có tên gọi là logic Block Như vậy logic block là tên chung để gọi tất cả các khối bao gồm những khối chương trình tổ chức OB, khối chương trình FC, khối hàm FB Trong các loại khối chương trình đó thì chỉ có khối duy nhất khối OB1 được thực hiện trực tiếp theo vòng quét Nó được hệ điều hành gọi theo chu kỳ lặp với khảng thời gian không cách đều nhau mà phụ thuộc vào độ dài của chương trình Các loại khối chương trình khác không tham gia vào vòng quét

Với tổ chức chương trình như vậy thì phần chương trình trong khối OB1 có

đầy đủ điều kiện của một chương trình điều khiển thời gian thực và toàn bộ chương trình ứng dụng có thể chỉ cần viết trong OB1 là đủ như hình vẽ sau Cách tổ chức chương trình với chỉ một khối OB1 duy nhất như vậy được gọi là lập trình tuyến tính

Hình 2-1: Sơ đồ khối kiểu lập trình tuyến tính

Khối OB1 được hệ thống gọi xoay vòng liên tục theo vòng quét

Các khối OB khác không tham gia vào vòng quét được gọi bằng những tín hiệu báo ngắt S7-300 có nhiều tín hiệu báo ngắt như tín hiệu báo ngắt khi có sự

cố nguồn nuôi, có sự cố chập mạch ở các modul mở rộng, tín hiệu báo ngắt theo chu kỳ thời gian, và mỗi loại tín hiệu báo ngắt như vậy cũng chỉ có khả năng gọi

OB1 thực hiện theo vòng quét

OB82 Modul

chuẩn đoán lỗi

OB10 Nghắt ở thời điểm định trước

Trang 9

một khối OB nhất định Ví dụ tín hiệu báo ngắt sự cố nguồn nuôi chỉ gọi khối OB81, tín hiệu báo ngắt truyền thông chỉ gọi khối OB87

Mỗi khi xuất hiện tín hiệu báo ngắt hệ thống sẽ dừng công việc đang thực hiện lại, chẳng hạn như tạm dừng việc thực hiện chương trình trong OB1, và chuyển sang thực hiện chương trình xử lý ngắt tong các khối OB tương ứng Ví

dụ khi đang thực hiện chương trình trong khối OB1 mà xuất hiện ngắt báo sự cố truyền thông, hệ thống sẽ tạm dừng việc thực hiện chương trình trong OB1 lại để gọi chương trình trong khối truyền thông OB87 Chỉ sau khi đã thực hiện xong chương trình trong khối OB87 thì hệ thống mới quay trở về hực hiện tiếp tục phần chương trình còn lại trong OB1

Với kiểu lập trình có cấu trúc thì khác vì toàn bộ chương trình điều khiển

được chia nhỏ thành các khối FC và FB mang một nhiệm vụ cụ thể riêng và

được quản lý chung bởi những khối OB Kiểu lập trình này rất phù hợp cho những bài toán phức tạp, nhiều nhiệm vụ và lại rất thuận lợi cho việc sửa chữa sau này

Hình 2-2: Sơ đồ kiểu lập trình có cấu trúc

OB: Organization Block

FB: Function Block

FC: Function

SFB: System Function block

SFC: System function

SDB: System Data Block

DB: Data block

Chú ý: Bao giờ FB cũng sử dụng chung với DB

OB

FB

FB

SFB

SFC

DB

DB

Trang 10

2.1.2.Qui trình thiết kế chương trình điều khiển dùng PLC:

Qui trình thiết kế hệ thống điều khiển dùng PLC bao gồm các bước sau:

1.Xác định qui trình điều khiển:

Điều đầu tiên cần biết là đối tượng điều khiển của hệ thống, mục đích cính của PLC là phải điều khiển được các thiết bị ngoại vi Các chuyển động của đối tượng điều khiển được kiểm tra thường xuyên bởi các thiết bị vào, các thiết bị nạy gửi tín hiệu đến PLC và tiếp theo đó PLC sẽ đưa tín hiêu điều khiển đến các thiết bị để điều khiển chuyển động của đối tượng Để đơn giản, qui trình điều khiển có thể mô tả theo lưu đồ (hình vẽ 2-3)

2.xác định tín hiệu vào ra:

Bước thứ hai là phải xác định vị trí kết nối giữa các thiết bị vào ra với PLC Thiết bị vào có thể là tiếp điểm, cảm biến, Thiết bị ra có thể là Rơle điện từ, Motor, đèn, Mỗi vị trí kết nối được đánh số tương tự ứng với PLC sử dụng

3.Soạn thảo chương trình:

Chương trình điều khiển được soạn thảo dưới dạng lưu đồ hình thang như đã trình bày ở bước 1

4.Nạp chương trình vào bộ nhớ:

Cấp nguồn cho PLC, cài đặt cấu hình khối giao tiếp I/O nếu cần (Phụ thuộc vao từng loại PLC) Sau đó nạp chương trình soạn thảo trên màn hình vào bộ nhớ của PLC Sau khi hoàn tất nên kiểm tra lỗi bằng chức năng tự chuẩn đoán và nếu

có thể thì chạy chương trình mô phỏng hoạt động của hệ thống (Ví dụ chương trình S7-SIM, S7- VISU, )

5.Chạy chương trình:

Trước khi khởi động hệ thống cần phải chắc chắn dây nối từ PLC đến các thiết bị ngoại vi là đúng, trong quá trình chạy kiểm tra có thể cần thiết phải thực hiện các bước tinh chỉnh hệ thống nhằm đảm bảo an toàn khi đưa vào hoạt động thực tế

Ngày đăng: 27/07/2014, 16:21

HÌNH ẢNH LIÊN QUAN

Hình 2-1: Sơ đồ khối kiểu lập trình tuyến tính - Giáo trình : Lập Trình Với SPS S7-300 part 2 pot
Hình 2 1: Sơ đồ khối kiểu lập trình tuyến tính (Trang 8)
Hình 2-2: Sơ đồ kiểu lập trình có cấu trúc. - Giáo trình : Lập Trình Với SPS S7-300 part 2 pot
Hình 2 2: Sơ đồ kiểu lập trình có cấu trúc (Trang 9)

TỪ KHÓA LIÊN QUAN

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm