1. Trang chủ
  2. » Giáo án - Bài giảng

Điều khiển lập trình Phạm Minh Quân

154 44 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 154
Dung lượng 6,58 MB

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

Nội dung

Trong chương trình ứng dụng có nhiều lệnh đọc ngõ vào số thì cho dù giá trị thực có của cổng này đã bị thay đổi trong quá trình thực hiện vòng quét, chương trình sẽ vẫn luôn đọc được cùn

Trang 2

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 3

3.2.5 Tham số hoá và chuẩn đoán hệ thống 55

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 4

4.5.2 Hệ thống truyền dữ liệu AS-I 109

5.3.5 Biểu diễn giá trị của quá trình Logging Editor 136

5.4.4 Thiết lập giao diện trên WinCC và thiết lập giao tiếp với S&-300 146

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 5

TÀI LIỆU THAM KHẢO

[1] Nguyễn Doãn Phước, tự động hóa với Simatic S7-300, NXB KHKT, 2006 [2] Hoàng Minh Sơn, Mạng truyền thông công nghiệp , NXB KHKT, 2001

[3] Trần Thu Hà, Tự động hoá trong công nghiệp với WinCC, NXB Hồng

Đức, 2007

[4] TT Việt Đức - ĐH Sư phạm Kỹ thuật Tp.HCM, SIMATIC S7-300 Điều

khiển hệ thống

[5] TT Việt_Đức - Trường ĐH Sư phạm Kỹ thuật Tp.HCM, Tài liệu huấn

luyện PROFIBUS - DP&FMS

[6] Siemens, AS-Interface – Introdution and Basic information, 2000

[7] Siemens, S7-300 Programmable Controller Hardware and installation

[8] Internet

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 6

CHƯƠNG 1: PLC S7-300

1.1 GIỚI THIỆU VỀ PLC S7-300:

PLC S7-300 là thiết bị điều khiển lo g i c k h ả t r ì n h c ỡ t r u n g b ì n h do hãng

S iemens sản xuất với kích thước nhỏ, gọn

Chúng có kết cấu theo kiểu các Module được sắp xếp trên các thanh rack Trên mỗi rack cho phép đặt được nhiều nhất 8 Module mở rộng (không kể CPU, Module nguồi nuôi) Một CPU S7-300 có thể làm việc trực tiếp với nhiều nhất 4 rack

S7-300 được thiết kế dựa trên tính chất của PLC S7-200 (đã được trình bày trong môn học ĐKLT 1) và bổ sung những tính năng mới, đặc biệt trong điều khiển liên kết cả

hệ thống nhiều PLC, gọi là mạng PLC – sẽ được trình bày trong các chương sau

Cấu hình của một trạm PLC S7-300 như sau:

Hình 1.1: Các khối trên một thanh rack của trạm PLC S7-300

CPU

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 7

- Module CPU: chứa bộ vi xử lý, hệ điều hành, bộ nhớ, các bộ định thời gian,

bộ đếm, cổng truyền thông (RS485)… và có thể có vài cổng vào/ra số onboard PLC S7-300 có nhiều loại CPU khác nhau, chúng được đặt tên theo bộ vi xử lý có trong CPU như CPU312, CPU314, CPU315, CPU316, CPU318…

Những Module cùng có chung bộ vi xử lý nhưng khác nhau về cổng vào/ra onboard, khác nhau về các khối hàm đặc biệt có sẵn trong thư viện của hệ điều hành được phân biệt với nhau trong tên gọi bằng cách thêm cụm từ IFM (Intergrated Function Module) Ví dụ Module CPU314 IFM

Ngoài ra còn có các loại Module CPU với hai cổng truyền thông, trong đó cổng truyền thông thứ hai có chức năng chính là phục vụ việc nối mạng phân tán có kèm theo những phần mềm tiện dụng được cài đặt sẵn trong hệ điều hành Các loại CPU này được phân biệt với các CPU khác bằng tên gọi thêm cụm từ DP (Distributted Port) trong tên gọi Ví dụ Module CPU 314C-2DP…

Hình vẽ sau minh họa một số CPU của PLC S7-300:

Hình 1.2: Các Module tích hợp CPU của PLC S7-300

- Module mở rộng: chia làm 5 loại

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

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

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

mở rộng có thể là 8, 16, hoặc 32 tuỳ thuộc vào từng loại Module

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

mở rộng có thể là 8, 16 hoặc 32 tuỳ thuộc vào từng loại Module

o DI/DO (Digital input/Digital output): Module mở rộng các cổng vào/ra

số Số các cổng vào/ra số có thể là 8 vào/8 ra hoặc 16 vào/16 ra tùy thuộc từng loại Module

o AI (Analog input): Module mở rộng cổng vào tương tự Chúng là bộ chuyển đổi tương tự số 12 bits (AD) Số các cổng vào tương tự có thể là

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 8

o AO (Analog output): Module mở rộng các cổng ra tương tự Chúng là những bộ chuyển đổi số tương tự (DA) Số các cổng ra tương tự có thể

là 2, 4 hoặc 8 tùy thuộc từng loại

o AI/AO (Analog input/Analog output): Module mở rộng vào/ra tương tự

Số cổng vào/ra tương tự có thể là 4 vào/2 ra hoặc 4 vào/4 ra tùy từng loại Module

o IM (Interface Module): Module ghép nối Đây là loại Module chuyên dụng có chức năng nối các nhóm 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 CPU Một CPU có thể làm việc trực tiếp nhiều nhất 4 rack, mỗi rack tối đa 8 Module mở rộng và các rack được nối với nhau bằng Module IM

o FM (Function Module): Module có chức năng điều khiển riêng, ví dụ như Module điều khiển động động cơ bước, Module điều khiển động cơ servo, Module PID, điều khiển đếm tốc độ cao…

o CP (Communication Module): Module phục vụ truyền thông trong mạng giữa các bộ PLC với nhau hoặc giữa PLC với máy tính

Hình sau minh họa một số Module mở rộng của PLC S7-300:

a) Module nguồn (PS) b) Module vào số (DI) c) Module ra analog (AO)

d) Module ra số (DO) e) Module chức năng (FM) f) Module truyền thông

Hình 1.3: Module mở rộng của PLC S7-300

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 9

1.3 CÁC MODE HOẠT ĐỘNG:

- PLC S7-300 có 4 mode hoạt động, gồm:

o RUN_P: Xử lý chương trình, có thể đọc và ghi được từ PG

o RUN: Xử lý chương trình, không thể đọc từ PG

o STOP: Dừng, chương trình không được xử lý

o MRES: Chức năng reset hệ thống (Module Reset Các mode này được chọn dựa vào công tắc chọn ở mặt trước CPU như hình 1.4 Trong đó:

o SF: báo lỗi trong nhóm, trong CPU hay trong các Module

o BATF: lỗi pin, hết pin hoặc không có pin

o DC5V: báo có nguồn 5V

o FRCE: báo ít nhất có một ngỏ vào/ra đang bị cưỡng bức hoạt động

o RUN: nhấp nháy khi CPU khởi động và sáng khi CPU làm việc

o STOP: sáng khi PLC dừng, chớp chậm khi có yêu cấu reset bộ nhớ, chớp nhanh khi đang reset bộ nhớ

o Đầu nối điện 24V: cung cấp nguồn cho CPU

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 10

1.4 CÁC KIỂU DỮ LIỆU:

Tương tự như PLC S7-200, các kiểu dữ liệu sử dụng trong chương trình của PLC S7-300 gồm có:

- BOOL: có dung lượng 1 bit, giá trị là 0 hoặc 1, sử dụng cho biến có 2 giá trị

- BYTE: dung lượng 8 bit, thường dùng biểu diễn số nguyên dương từ 0 đến 255,

mã BCD của số thập phân 2 chữ số, mã ASCII của ký tự,…

- WORD: dung lượng 2 byte, biểu diễn số nguyên dương từ 0 đến 65535

- INT: dung lượng 2 byte, biểu diễn số nguyên từ -32768 đến 32767

- DINT: dung lượng 4 byte, biểu diễn số nguyên từ -2147483648 đến 2147483647

- REAL: dung lượng 4 byte, biểu diễn số thực có dấu phẩy

Ngoài ra còn có các kiểu dữ liệu khác:

- S5T (S5TIME): biểu diễn khoảng thời gian, tính theo giờ/phút/giây/mgiây

- TOD: biểu diễn khoảng thời gian tính theo giờ/phút/giây

- DATE: biểu diễn thời gian theo năm/tháng/ngày

- CHAR: biểu diễn ký tự (tối đa 4 ký tự)

Trang 11

- Load memory:

Là vùng nhớ chứa chương trình ứng dụng do người sử dụng viết và được chứa trong các OB, FC, FB hoặc trong các khối chương trình trong thư viện hệ thống được sử dụng (SFB, SFC) và các khối dữ liệu DB Vùng nhớ này tạo ra từ một phần RAM của CPU và EEPROM Khi thực hiện lệnh xóa bộ nhớ (MRES) thì toàn bộ các khối chương trình trong RAM bị xóa hết Tương tự, khi chương trình được Download từ máy tính vào CPU, chúng sẽ được ghi lên phần RAM của vùng nhớ này Vùng nhớ chương trình được chia làm 3 miền:

o OB (Organization Block): miền chứa chương trình tổ chức

o FC (Function): miền chứa chương trình con được tổ chức thành hàm, có biến hình thức để trao đổi dữ liệu với chương trình đã gọi

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

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

Là vùng nhớ chứa các khối dữ liệu DB đang mở, khối chương trình (OB, FB, FC, SFC, SFB) đang được CPU thực hiện Tại một thời điểm nhất định vùng nhớ này chỉ chứa một khối chương trình Sau khi thực hiện khối chương trình này xong thì nó sẽ bị CPU xóa khỏi work memory và nạp vào khối chương trình kế tiếp đến lượt thực hiện

Vùng nhớ này chia thành 2 miền:

o DB (Data Block): Miền chứa các dữ liệu tổ chức thành khối, kích thước và

số lượng do người sử dụng quy định Chương trình có thể truy cập miền này theo bit (DBX), byte (DBB), Word (DBW), Double word (DBD)

o L (Local data block): Miền dữ liệu cục bộ được các khối chương trình OB,

FC, FB sử dụng cho các biến tạm thời và trao đổi các biến hình thức với các khối đã gọi nó Nội dung dữ liệu trong khối này sẽ bị xoá khi kết thúc chương trình tương ứng trong OB, FC, FB Miền này có thể truy cập theo bit (L), byte (LB), word (LW) hoặc duoble word (LD) Tùy theo các khối chương trình khác nhau mà bảng khai báo chứa các biến khác nhau nhằm phục vụ cho yêu cầu của khối đó

Chứa các tham số của hệ điều hành và chương trình ứng dụng, chia làm 7 miền

o Miền I: (Process image input): miền bộ đệm các cổng vào số Trước khi thực hiện chương trình, PLC đọc tất cả dữ liệu đầu vào và cất vào miền nhớ này PLC không đọc trực tiếp cổng vào mà đọc từ bộ đệm I

o Miền Q: (Process image output): miền bộ đệm các cổng ra số Khi kết thúc chương trình, PLC chuyển giá trị logic từ bộ đệm Q đến các cổng ra số Thông thường chương trình không gán trực tiếp giá trị tới cổng ra mà chỉ chuyển chúng vào bộ đệm Q

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 12

o Miền M: miền nhớ các bit cờ Chương trình ứng dụng sử dụng vùng nhớ này để lưu các tham số cần thiết và có thể truy nhập theo bit, byte, word, double word

o Miền T: miền nhớ phục vụ bộ thời gian Bao gồm việc lưu trữ giá trị thời gian thời gian định trước, thời gian tức thời và giá trị logic đầu ra của timer

o Miền C: miền phục vụ bộ đếm Bao gồm việc lưu trữ giá trị đặt trước, giá trị tức thời và giá trị logic đầu ra

o Miền PI: miền địa chỉ cổng vào các Module tương tự Các giá trị tương tự tại các cổng vào sẽ được chuyển tự động theo những địa chỉ Chương trình ứng dụng có thể truy cập miền PI theo bit (PI), theo byte (PIB), theo từ (PIW), hoặc theo từ kép (PID)

o Miền PQ: miền địa chỉ cổng ra các Module tương tự Giá trị theo những địa chỉ này sẽ được Module 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 bit (PQ), theo byte (PQB), theo từ (PQW) hoặc theo từ kép Trong các vùng nhớ trình bày trên không có vùng nhớ làm bộ đệm cho cổng vào/ra tương tự, như vậy mỗi lệnh truy nhập Module tương tự (đọc hoặc gửi giá trị) đều có tác dụng trực tiếp tới cổng vật lý

1.6 CHU KỲ QUÉT CỦA PLC S7-300:

Tương tự PLC S7-200, PLC S7-300 thực hiện chương trình theo chu trình lặp Mỗi vòng lặp được gọi là vòng quét

- Vòng quét được bắt đầu bằng giai đoạn truyền thông nội bộ và kiểm tra lỗi

- Bước tiếp theo là giai đoạn chuyển dữ liệu từ các cổng vào số tới bộ đệm ảo I

- Sau đó là giai đoạn thực hiện chương trình 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 Kết quả được lưu trong bộ đệm Q

- Sau cùng 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ố

Hình 1.6: Vòng quét chương trình

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 13

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ý mà không thông qua bộ đệm

Thời gian cần thiết để PLC thực hiện được một vòng quét gọi là thời gian vòng quét 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 thực hiện lâu, có vòng quét thực hiện nhanh tùy thuộc vào số lệnh trong chương trình được thực hiện, tùy thuộc vào khối lượng dữ liệu được truyền thông trong vòng quét

Việc đọc dữ liệu từ đối tượng để xử lý, tính toán và gửi tín hiệu tới đối tượng cần một khoảng thời gian trễ đúng bằng thời gian vòng quét 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

Việc đọc dữ liệu từ đối tượng để xử lý, tính toán và gửi tín hiệu tới đối tượng cần một khoảng thời gian trễ đúng bằng thời gian vòng quét 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

Nếu sử dụng các khối OB đặc biệt có chế độ ngắt như OB40, OB80, OB35 thì chương trình của khối đó được thực hiện khi xuất hiện tín hiệu báo ngắt cùng loại Thời gian vòng quét càng lớn khi có nhiều tín hiệu ngắt xuất hiện trong vòng quét

1.7 TRAO ĐỔI DỮ LIỆU GIỮA CPU VÀ MODULE MỞ RỘNG:

Sự trao đổi dữ liệu giữa CPU với các Module mở rộng trong một trạm PLC thông qua bus nội bộ

- Ngay đầu vòng quét các dữ liệu tại cổng vào của Module số (DI) được CPU chuyển đến bộ đệm vào I Đến cuối vòng quét, nội dung bộ đệm số ngõ ra được CPU chuyển tới cổng ra của các Module số (DO)

Việc thay đổi nội dung hai bộ đệm này được thực hiện bởi chương trình ứng dụng Trong chương trình ứng dụng có nhiều lệnh đọc ngõ vào số thì cho dù giá trị thực có của cổng này đã bị thay đổi trong quá trình thực hiện vòng quét, chương trình sẽ vẫn luôn đọc được cùng một giá trị từ I và đó là giá trị của cổng vào có tại thời điểm đầu vòng quét Nếu chương trình có nhiều lần thay đổi giá trị cổng ra số thì do nó chỉ thay đổi nội dung bit nhớ tương ứng trong Q nên chỉ có giá trị ở lần thay đổi cuối cùng được đưa tới cổng ra vật lý của Module DO

- Khác với việc đọc/ghi cổng số, việc truy nhập cổng vào/ra tương tự lại được CPU thực hiện trực tiếp trên Module tương tự (AI/AO) Như vậy lệnh đọc giá trị từ địa chỉ thuộc vùng PI sẽ thu được giá trị đúng bằng giá trị thực có ở cổng tại thời điểm thực hiện lệnh, khi thực hiện lệnh gửi một giá trị tới địa chỉ vùng PQ, giá trị

đó được gửi trực tiếp đến cổng ra tương tự của Module

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 14

Hình 1.7: Trao đổi dữ liệu giữa CPU và Module mở rộng

1.8 CẤU TRÚC CHƯƠNG TRÌNH PLC S7-300:

Chương trình do người dùng viết cho S7-300 được lưu trong vùng nhớ chương trình,

có 2 dạng với cấu trúc khác nhau:

… Lệnh n

OB1

Vòng quét

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 15

PLC S7-300 có 4 loại khối cơ bản:

o Khối OB (Organization Block): là khối tổ chức và quản lý chương trình điều khiển Có nhiều loại OB với các chức năng khác nhau, chúng được phân biệt dựa vào số nguyên gán thêm phía sau OB1, OB35, OB40…

OB1 là khối luôn được CPU quét và thực hiện lặp lại các lệnh theo thứ tự từ trên xuống dưới

o Khối FC (Program Block): là khối chương trình với các chức năng riêng, giống như 1 chương trình con Một chương trình có thể có nhiều khối FC, chúng được phân biệt dựa theo số nguyên gán thêm phía sau, FC1, FC2, …

o Khối FB (Function Block): là 1 khối FC đặc biệt có khả năng trao đổi lượng

dữ liệu lớn với các khối chương trình khác Một chương trình có thể có nhiều khối FB, chúng được phân biệt dựa theo số nguyên gán thêm phía sau, FB1, FB2, …

o Khối DB (Data Block): là 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ố của khối này do người sử dụng tự đặt Một chương trình có thể có nhiều khối DB, chúng được phân biệt dựa theo số nguyên gán thêm phía sau, DB1, DB2,

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

1.9 CÁC KHỐI OB ĐẶC BIỆT:

Nếu OB1 là khối được thực hiện liên tục trong từng vòng quét thì các khối OB khác chỉ được thực hiện khi có tín hiệu báo ngắt tương ứng Chương trình viết cho các khối này chính là các chương trình xử lý tín hiệu ngắt, bao gồm:

- OB10 (Time of date interrupt): chương trình trong khối OB10 sẽ được thực khi giá trị của đồng hồ thời gian thực nằm trong một khoảng thời gian đã quy định OB10 có thể gọi một lần hay nhiều lần cách đều nhau từng phút, từng giờ, từng ngày…

- OB20 (Time delay interrupt): chương trình trong khối OB20 sẽ được thực hiện sau một koả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ễ

- OB35 (Cyclic interrupt): chương trình trong OB35 sẽ được thực hiện cách đều nhau một khoảng thời gian nhất định Mặc định thời gian này là 100ms, song ta

có thể thay đổi nó trong bảng tham số của CPU nhờ phần mềm STEP7

- OB40 (Hardware interrupt): OB40 sẽ được thực hiện khi có tín hiệu ngắt từ ngoại

vi đưa vào CPU thông qua cổng vào ra số onboard đặc biệt, hoặc thông qua Module SM, CP, FM

- OB80 (Cycle time fault): được thực hiện khi thời gian vòng quét vượt quá thời gian cực đại đã quy định (mặc định là 150ms) hoặc có tín hiệu ngắt gọi OB nào

đó mà OB này chưa kết thúc ở lần gọi trước

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 16

- OB81 (Power supply fault): khi có lỗi về nguồn nuôi thì CPU sẽ gọi OB81

- OB82 (Diagnostic interrupt): được gọi khi có phát hiện có sự cố từ các Module vào/ra mở rộng Các Module mở rộng này phải có khả năng tự kiểm tra

- OB85 (Not load fault): được gọi khi chương trình có sử dụng chế độ ngắt nhưng

- chương trình ngắt lại không có trong OB tương ứng

- OB87 (Communication Fault): được gọi khi CPU thấy có lỗi truyền thông

- OB100 (Start up information): được thực hiện một lần khi CPU chuyển trạng thái

từ STOP sang RUN

- OB121 (Synchronous error): được thực hiện khi CPU thấy lỗi logic trong chương trình như sai kiểu dữ liệu hoặc lỗi truy cập các khối DB, FC, FB không có trong CPU

- OB122 (Synchronous error): được thực hiện khi CPU phát hiện có, lỗi truy nhập Module trong chương trình, ví dụ chương trình có lệnh truy nhập Module vào/ra nhưng lại không tìm thấy Module này

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 17

CHƯƠNG 2 : TẬP LỆNH CỦA PLC S7-300

1.1 CẤU TRÚC LỆNH VÀ TRẠNG THÁI KẾT QUẢ:

Trong tài liệu ĐKLT 1 đã trình bày về các phương pháp lập trình cho PLC, gồm có ngôn ngữ lập trình dạng STL, LAD và FBD Phần này sẽ trình bày chủ yếu về cấu trúc

và kết quả của lệnh dạng STL

Một lệnh STL của PLC S7-300 gồm có: “Tên lệnh” + “Toán hạng”

Ví dụ: A I0.0 là lệnh nạp giá trị ngõ vào có địa chỉ I0.0

o Số nguyên kiểu INT (2 byte)

o Số nguyên kiểu DINT (4 byte)

o Số thực kiểu REAL

o Dữ liệu về thời gian

o Dữ liệu của bộ đếm, định thời

o Phần số: chỉ địa chỉ của vùng nhớ trong miền đã được xác định

- Thanh ghi trạng thái:

Khi thực hiện lệnh, CPU sẽ ghi lại trạng thái của phép tính trung gian cũng như ghi lại kết quả vào 1 thanh ghi đặc biệt 16 bit, gọi là thanh ghi trạng thái

Tuy nhiên chỉ có 9 bit thấp của thanh ghi này được sử dụng, có cấu trúc như sau:

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 18

Trong đó:

o FC (Fisrt Check): khi thực hiện các lệnh logic liên tiếp nhau gồm các phép

tính ^ (VÀ), V (HOẶC), ĐẢO thì bit FC=1 Khi kết thúc các lệnh thì FC=0

o OS (Overflow Store bit): ghi giá trị bit bị tràn

o OV (Overflow bit): bit báo kết quả phép tính bị tràn

o CCO và CC1 (Condition Code): hai bit báo trạng thái của kết quả phép tính với số nguyên, số thực, dịch chuyển hoặc phép tính logic trong ACCU

o BR (Binary Result bit): bit trạng thái cho phép liên kết giữa hai ngôn ngữ STL và LAD Cho phép người lập trình viết một khối chương trình FB hoặc

FC bằng STL, nhưng có thể gọi và sử dụng chúng trong chương trình khác viết bằng LAD Để có mối liên kết này, cần phải kết thúc trong chương trình trong FB, FC bằng lệnh ghi giá trị vào BR:

1 nếu chương trình không có lỗi,

0 nếu chương trình có lỗi

Trang 19

nhận giá trị 0, chỉ sau khi thực hiện lệnh đầu tiên của network các bit trạng thái mới thay đổi theo phép tính

1.2 NHÓM LỆNH LOGIC:

- Lệnh gán:

Cú pháp = <toán hạng>

Toán hạng là địa chỉ bit I, Q, M, L, D, T, C

Lệnh gán giá trị logic của RLO tới ô nhớ có địa chỉ được chỉ thị trong toán hạng

Lệnh tác động vào thanh ghi trạng thái như sau:

Ký hiệu: (-) Chỉ nội dung bit không bị thay đổi theo lệnh

(x) Chỉ nội dung bit bị thay đổi theo lệnh

Khi giá trị logic của bit tại <address> bằng 1 thì RLO có giá trị 1

Khi giá trị logic của bit tại <address> bằng 0 thì RLO có giá trị bằng 0

- Lệnh gán có điều kiện giá trị 1:

Cú pháp S <toán hạng>

Toán hạng là địa chỉ bit I, Q, L, M, D

Nếu RLO=1 lệnh sẽ ghi giá trị 1 váo ô nhớ có địa chỉ trong toán hạng

Lệnh tác động vào thanh ghi trạng thái như sau:

=

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 20

Toán hạng là địa chỉ bit I, Q, M, L, D

Nếu RLO=0, lệnh sẽ ghi giá trị 0 vào ô nhớ có địa chỉ trong toán hạng

Lệnh tác động vào thanh ghi trạng thái như sau:

Trang 21

Cú pháp A <toán hạng>

Toán hạng là dữ liệu kiểu BOOL hoặc địa chỉ bit I, Q, M, L, D, T, C

Nếu FC = 0 lệnh sẽ gán giá trị logic của toán hạng vào RLO

Ngược lại khi FC = 1 lệnh sẽ thực hiện phép tính AND RLO với toán hạng

và ghi lại kết quả vào RLO

Lệnh tác động vào thanh ghi trạng thái như sau:

Khi giá trị logic hai địa chỉ <address> bằng 1 thì RLO có giá trị 1

Nếu có ít nhất 1 trong 2 ngõ vào xuống mức 0 thì RLO có giá trị bằng 0

Cú pháp AN <toán hạng>

Toán hạng là dữ liệu kiểu BOOL hoặc địa chỉ bit I, Q, M, L, D, T, C

Nếu FC = 0 lệnh sẽ gán giá trị logic nghịch đảo của toán hạng vào RLO Ngược lại khi FC =1 nó sẽ thực hiện phép tính AND RLO với giá trị nghịch đảo của toán hạng và ghi lại kết quả vào RLO

Lệnh tác động vào thanh ghi trạng thái như sau:

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 22

Toán hạng là dữ liệu kiểu BOOL hoặc địa chỉ bit I, Q, M, L, D, T, C

Nếu FC = 0 lệnh sẽ gán giá trị logic của toán hạng vào RLO Nếu FC = 1 nó thực hiện

phép tính OR RLO với toán hạng và ghi lại kết quả vào RLO

Lệnh tác động vào thanh ghi trạng thái như sau:

RLO có giá trị 1 khi có ít nhất một trong hai tín hiệu tại hai địa chỉ

<address> ở mức 1

RLO có giá trị 0 khi cả hai tín hiệu ngõ vào đều xuống mức 0

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 23

- Lệnh OR NOT:

Cú pháp ON <toán hạng>

Toán hạng là dữ liệu kiểu BOOL hoặc địa chỉ bit I, Q, M, L, D, T, C

Nếu FC=0 lệnh sẽ gán giá trị logic nghịch đảo của toán hạng vào RLO Nếu FC=1 nó thực hiện phép tính OR RLO với giá trị nghịch đảo của toán hạng

và ghi lại kết quả vào RLO

Lệnh tác động vào thanh ghi trạng thái như sau:

Nếu FC = 0 lệnh sẽ gán giá trị logic của biểu thức trong dấu ngoặc sau nó vào RLO

Nếu FC = 1 nó sẽ thực hiện phép tính AND giữa RLO với giá trị logic của biểu thức trong dấu ngoặc sau nó và ghi lại kết quả vào RLO

Lệnh tác động vào thanh ghi trạng thái như sau:

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 24

O I0.4

O I0.5 )

Nếu FC = 0 lệnh sẽ gán giá trị logic của biểu thức trong dấu ngoặc sau nó vào RLO

Nếu FC = 1 nó sẽ thực hiện phép tính OR giữa RLO với giá trị của biểu thức trong dấu ngoặc sau nó và ghi lại kết quả vào RLO

Lệnh tác động vào thanh ghi trạng thái như sau:

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 25

Ví dụ:

Thực hiện Q4.0 = I0.2 v (I0.4 v I0.5)

A I0.2 O(

AN I0.4

A I0.5 )

= Q4.0

1.3 NHÓM LỆNH TIẾP ĐIỂM ĐẶC BIỆT:

- Lệnh ghi giá trị logic 1 vào RLO:

Cú pháp SET Lệnh không có toán hạng và có tác dụng ghi 1 vào RLO

Lệnh tác động vào thanh ghi trạng thái như sau:

o LAD: lệnh không thực hiện

- Lệnh ghi giá trị logic 0 vào RLO:

Cú pháp CLR Lệnh không có toán hạng và có tác dụng ghi 1 vào RLO

Lệnh tác động vào thanh ghi trạng thái như sau:

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 26

- Lệnh đảo giá trị RLO:

Cú pháp NOT Lệnh không có toán hạng và có tác dụng đảo giá trị RLO

Lệnh tác động vào thanh ghi trạng thái như sau:

Lệnh tác động váo thanh ghi trạng thái như sau:

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 27

Khi RLO thay đổi từ 0 lên 1 kết quả của lệnh kiểm tra FB ở trạng thái 1 trong một vòng quét Để hệ thống phát hiện được sự thay đổi cạnh lên thì RLO phải được lưu trữ trong 1 bit nhớ FB hoặc bit dữ liệu <address>

Nếu giá trị RLO trước đó lưu trữ trong <address > có giá trị 0 và RLO ở vòng quét hiện tại có giá trị 1 thì kết quả RLO của lệnh có giá trị 1 trong vòng quét

- Lệnh phát hiện xung cạnh xuống:

Cú pháp FN <Toán hạng>

Toán hạng là địa chỉ I, Q, M, L, D và được sử dụng như 1 biến cờ để ghi lại giá trị của RLO tại vị trí này trong chương trình RLO sẽ có giá trị trong vòng quét khi có sườn xuống trong RLO

Lệnh tác động vào thanh ghi trạng thái như sau:

Khi RLO thay đổi từ 1 xuống 0 kết quả của lệnh kiểm tra FB ở trạng thái trong 1 vòng quét Để hệ thống phát hiện được sự thay đổi cạnh lên thì RLO phải được lưu trữ trong một bit nhớ FB hoặc bit dữ liệu <address>

Nếu giá trị RLO trước đó lưu trữ trong <address > có giá trị 0 và RLO ở vòng quét hiện tại có giá trị 1 thì kết quả RLO của lệnh có giá trị 1 trong vòng quét

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 28

1.4 NHÓM LỆNH SO SÁNH:

- So sánh số nguyên 16 bit:

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 29

- So sánh số nguyên 32 bit:

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 30

- So sánh số thực:

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 31

1.5 NHÓM LỆNH TOÁN HỌC:

- Thực hiện với số nguyên 16 bit:

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 32

- Thực hiện với số nguyên 32 bit:

- Thực hiện với số thực:

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 33

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 34

1.6 LỆNH CHUYỂN ĐỔI BCD – SỐ NGUYÊN:

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 35

1.7 LỆNH VỀ TIMER:

1.7.1 Giới thiệu Timer:

Bộ thời gian Timer là bộ tạo thời gian trễ T mong muốn giữa tín hiệu logic ngõ vào và tín hiệu logic ngõ ra

S7 300 có 5 loại timer khác nhau Tất cả 5 loại Timer này cùng bắt đầu tạo thời gian trễ tín hiệu kể từ thời điểm kích của tín hiệu đầu vào, tức là khi tín hiệu đầu vào chuyển trạng thái, được gọi là thời điểm timer được kích

Thời gian trễ T mong muốn được khai báo với timer bằng một word 16 bit bao gồm 2 thành phần:

- Độ phân giải: timer của S7 300 có 4 chế độ phân giải: 10ms, 100ms, 1s và 10s

- Một số nguyên BCD trong khoảng 0 ÷ 999 được gọi là PV (reset value _ giá trị

đặt trước)

Thời gian trễ T mong muốn tính như sau: T = Độ phân giải *PV

Bit 14, 15 không sử dụng

Bit 13, 12 dùng để đặt độ phân giải

Bit 0 đến bit 11 là giá trị PV dưới dạng BCD (0< PV < 999)

Ngay tại thời điểm kích timer, giá trị PV được chuyển vào thanh ghi 16 bit của T_word (gọi là thanh ghi CV, viết tắt current value, giá trị tức thời) Timer sẽ ghi nhớ khoảng thời gian trôi qua kể từ khi được kích bằng cách giảm dần một cách tương ứng nội dung thanh ghi CV Nếu nội dung thanh ghi trở về bằng 0 thì timer

đã đạt được thời gian trễ mong muốn T và điều này sẽ được báo ra ngoài bằng cách đổi trạng thái tín hiệu ngõ ra

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 36

CPU 314 có 128 timer được đánh số từ 0 đến 127 Một timer được đặt tên là Tx, trong

đó x là số hiệu của timer (0 ≤ x ≤ 127) Ký hiệu Tx cũng đồng thời là địa chỉ hình thức của thanh ghi CV (T- word) và của đầu ra T-bit của timer đó Tuy chúng có cùng địa chỉ hình thức, song T-word và T-bit vẫn được phân biệt với nhau nhờ kiểu lệnh sử dụng với toán hạng Tx Khi dùng lệnh làm việc với từ, Tx được hiểu là địa chỉ của Tword, ngược lại khi sử dụng lệnh làm việc với tiếp điểm Tx sẽ được hiểu là địa chỉ của T-bit

Một timer đang trong chế độ làm việc (sau khi được kích) có thể được đưa về chế độ chờ khởi động ban đầu, tức là chờ sườn lên của tín hiệu đầu vào Công việc này gọi là reset timer Tín hiệu reset timer được gọi là tín hiệu xoá và khi tín hiệu xoá có giá trị bằng 1 timer sẽ không làm việc Tại thời điểm xuất hiện sườn lên của tín hiệu xoá, T_word và T-bit được xoá về 0, tức là thanh ghi CV được đặt về 0 và tín hiệu đầu ra

có trạng thái 0

1.7.2 Khai báo sử dụng Timer:

Khai báo sử dụng timer gồm có 5 bước:

o Khai báo tín hiệu enable nếu muốn sử dụng tín hiệu chủ động kích

o Khai báo tín hiệu đầu vào

o Khai báo tín hiệu trễ mong muốn

o Khai báo loại timer được sử dụng

o Khai báo tín hiệu xoá timer nếu muốn

- Khai báo tín hiệu enable:

Trang 37

- Khai báo thời gian trễ mong muốn:

Cú pháp L <hằng số>

“Hằng số “ trong toán hạng xác định thời gian trễ T đặt trước cho timer Hằng số này có hai dạng:

o Dạng dữ liệu thời gian trực tiếp: S5T#h_m_s_ms

L S5T#00h05m20s00ms có thời gian trễ là 5 phút 20 giây

o Dạng khai báo theo độ phân giải:

L W#16#2127 có thời gian trễ là 127 giây

- Khai báo loại timer:

S7-300 có 5 loại timer được khai báo theo các lệnh:

o SD: Timer đóng mạch chậm

Cú pháp SD <Tên timer>

Thời gian giữ trễ được bắt đầu tính từ khi có sườn lên của tín hiệu đầu vào (hoặc khi có sườn lên của tín hiệu enable đồng thời tín hiệu vào bằng 1), tức là ở ngay thời điểm đó giá trị PV (giá trị đặt trước) được chuyển vào thanh ghi T-word (CV giá trị tức thời) Trong khoảng thời gian trễ T-bit có giá trị 0 Khi hết thời gian trễ, T-bit có giá trị bằng 1 Như vậy T-bit có giá trị 1 khi T-word = 0 hay CV = 0 Khoảng thời gian trễ chính là khoảng thời gian giữa thời điểm xuất hiện sườn lên của tín hiệu đầu vào và sườn lên của T-bit

Khi tín hiệu vào bằng 0, T-bit và T-word cùng nhận giá trị 0

o SS: Timer đóng mạch chậm có nhớ

Cú pháp : SS <tên timer>

Thời gian giữ trễ được bắt đầu tính từ khi có sườn lên của tín hiệu đầu vào (hoặc khi có sườn lên của tín hiệu enable đồng thời tín hiệu vào bằng 1), tức là ở ngay thời điểm đó giá trị PV (giá trị đặt trước) được chuyển vào thanh ghi T-word (CV giá trị tức thời) Trong khoảng thời gian trễ T-bit có giá trị 0 Khi hết thời gian trễ, tức là khi T-word = 0, T-bit có giá trị bằng 1

Khoảng thời gian trễ chính là khoảng thời gian giữa thời điểm xuất hiện sườn lên của tín hiệu đầu vào và sườn lên của T-bit

Với bộ timer trễ theo sườn lên có nhớ, thời gian trễ vẫn được tính cho dù lúc đó tín hiệu đầu vào đã về 0

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 38

o SP: Timer Xung

Cú pháp SP <tên timer>

Thời gian giữ trễ được bắt đầu tính từ khi có sườn lên của tín hiệu đầu vào (hoặc khi có sườn lên của tín hiệu enable đồng thời tín hiệu vào bằng 1), tức là ở ngay thời điểm đó giá trị PV (giá trị đặt trước) được chuyển vào thanh ghi T-word (CV giá trị tức thời) Trong khoảng thời gian trễ ,tức là khi T-word có giá trị ≠ 0, T-bit

có giá trị bằng 1 Ngoài thời gian trễ T-bit có giá trị bằng 0

Nếu chưa hết thời gian trễ mà tín hiệu đầu vào về 0 thì giá trị T-bit và t-word cũng về 0

o SE: Timer giữ độ rộng xung

Cú pháp SE <Tên timer>

Thời gian giữ trễ được bắt đầu tính từ khi có sườn lên của tín hiệu đầu vào (hoặc khi có sườn lên của tín hiệu enable đồng thời tín hiệu vào bằng 1), tức là ở ngay thời điểm đó giá trị PV (giá trị đặt trước) được chuyển vào thanh ghi T-word (CV giá trị tức thời) Trong khoảng thời gian trễ, tức là khi T-word có giá trị ≠ 0, T-bit

có giá trị bằng 1 Ngoài thời gian trễ T-bit có giá trị bằng 0

Nếu chưa hết thời gian trễ mà tín hiệu đầu vào về 0 thì thời gian trễ vẫn được tính tiếp tục, tức là T-bit và T-word không về 0 theo tín hiệu đầu vào

Cú pháp SF <Tên timer>

Thời gian giữ trễ được bắt đầu tính từ khi có sườn lên của tín hiệu đầu vào (hoặc khi có sườn lên của tín hiệu enable đồng thời tín hiệu vào bằng 1), tức là ở ngay thời điểm đó giá trị PV (giá trị đặt trước) được chuyển vào thanh ghi T-word (CV giá trị tức thời) Trong khoảng thời gian trễ, tức là khi T-word có giá trị ≠ 0, T-bit

có giá trị bằng 1 Ngoài thời gian trễ T-bit có giá trị bằng 0

- Khai báo tín hiệu xóa (reset)

Cú pháp A <Địa chỉ bit>

R <Tên timer>

Toán hạng thứ nhất “Địa chỉ bit” xác định tín hiệu sẽ được sử dụng làm tín hiệu chủ động xóa cho timer có tên trong toán hạng thứ hai Khi tín hiệu xóa bằng 1, T-word (thanh ghi CV) và T-bit cùng đồng thời được đưa về 0

Nếu tín hiệu xóa bằng 0, timer sẽ chờ được kích lại

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 39

1.7.3 Khai báo Timer trong LAD và FBD:

- Timer đóng mạch chậm (SD):

Bảng khai báo thông số Timer đóng chậm:

Giản đồ thời gian Timer đóng chậm:

Khởi động: Timer khởi động khi RLO tại ngõ vào S thay đổi từ 0 lên 1 Timer bắt đầu chạy với giá trị thời gian rõ ràng đặt tại ngõ vào TV miễn là trạng thái ngõ vào S =1

Xoá: Khi RLO reset ngõ vào “R” là 1, thì giá trị thời gian hiện hành và độ phân giải bị xoá và ngõ ra Q ở trạng thái Reset

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Trang 40

Ngõ ra digital: Giá trị thời gian hiện hành có thể đọc như một số nhị phân tại ngõ ra BI và BCD Giá trị thời gian hiện hành là giá trị ban đầu của TV trừ đi giá trị thời gian đã hoạt động của timer, tính từ khi timer được khởi động

Ngõ ra Binary: Tín hiệu tại ngõ ra “Q” là “1”, sau khi timer đã chạy hết, không

có lỗi và ngõ vào “S” có tín hiệu ở trạng thái “1” Khi timer đang hoạt động, nếu tín hiệu ở ngõ vào “S” thay đổi từ “1” xuống “0”, thì timer ngưng hoạt động Trong trường hợp này ngõ ra Q có trạng thái tín hiệu 0

- Timer đóng mạch chậm có nhớ (SS):

Với các thông số, kiểu dữ liệu và toán hạng khai báo giống như dang LAD và FBD của timer đóng mạch chậm (SD)

Giản đồ thời gian Timer đóng chậm có nhớ:

Khởi động: Timer khởi động khi RLO ở ngõ vào S thay đổ từ 0 đến 1 Timer bắt đầu hoạt động với giá trị thời gian xác định rõ ràng tại ngã vào TV và tiếp tục hoạt động thậm chí nếu tín hiệu ngõ vào S thay đổi thành 0 trong suốt thời gian

đó Nếu tín hiệu tại ngõ vào S thay đổi từ 0 đến 1 trong khi timer đang hoạt động, thì timer sẽ khởi động mới lại

Reset: Khi RLO tại ngõ vào R là 1 thì giá trị thời gian hiện hành và độ phân giải

bị xoá và ngõ ra Q ở trạng thái Reset

Ban quyen © Truong DH Su pham Ky thuat TP HCM

Ngày đăng: 10/04/2020, 12:08

TỪ KHÓA LIÊN QUAN

w