Hàm chức năng – FUNCTION

Một phần của tài liệu Nghiên cứu, ứng dụng PLC S7-1200 điều khiển thiết bị qua mạng Intenet (Trang 40)

5. BỐ CỤC ĐỒ ÁN

2.2.3. Hàm chức năng – FUNCTION

Functions (FCs) là các khối mã không cần bộ nhớ. Dữ liệu của các biến tạm thời bị mất sau khi FC đƣợc xử lý. Các khối dữ liệu toàn cầu có thể đƣợc sử dụng để lƣu trữ dữ liệu FC.

Functions có thể đƣợc sử dụng với mục đích: - Trả lại giá trị cho hàm chức năng đƣợc gọi.

- Thực hiện công nghệ chức năng, ví dụ: Điều khiển riêng với các hoạt động nhị phân.

- Ngoài ra, FC có thể đƣợc gọi nhiều lần tại các thời điểm khác nhau trong một chƣơng trình. Điều này tạo điều kiện cho lập trình chức năng lập đi lặp lại phức tạp.

FB (function block): Đối với mỗi lần gọi, FB cần một khu vực nhớ. Khi một FB đƣợc gọi, một Data Block (DB) đƣợc gán với instance DB. Dữ liệu trong Instance DB sau đó truy cập vào các biến của FB. Các khu vực bộ nhớ khác nhau đã đƣợc gán cho một FB nếu nó đƣợc gọi ra nhiều lần.

DB (data block): DB thƣờng để cung cấp bộ nhớ cho các biến dữ liệu . Có hai loại của khối dữ liệu DB: Global DBs nơi mà tất cả các OB, FB và FC có thể đọc đƣợc dữ liệu lƣu trữ, hoặc có thể tự mình ghi dữ liệu vào DB, và instance DB đƣợc gán cho một FB nhất định.

26 2.3. TẬP LỆNH LẬP TRÌNH 2.3.1. Bit logic Bảng 2. 3. Tập lệnh Bit logic Tên Hình ảnh Chức năng Tiếp điểm thƣờng hở

Tiếp điểm thƣờng hở sẽ đóng khi giá trị địa chỉ IN bằng 1 Toán hạng IN: I, Q, M, L, D

Tiếp điểm thƣờng

đóng

Tiếp điểm thƣờng đóng sẽ hở khi giá trị địa chỉ IN bằng 1 Toán hạng IN: I, Q, M, L, D

Lệnh OUT

Giá trị của bit địa chỉ là OUT sẽ bằng 1 khi đầu vào của lệnh này bằng 1 và ngƣợc lại

Toán hạng OUT: Q, M, L, D

Lệnh OUT đảo

Giá trị của bit có địa chỉ là OUT sẽ bằng 1 khi đầu vào của lệnh này bằng 0 và ngƣợc lại.

Toán hạng OUT: Q, M, L, D

Lệnh Set

Giá trị của bit có địa chỉ là OUT bằng 1 khi đầu vào bằng 1. Khi đầu vào bằng 0 thì bit vẫn không đổi.

Toán hạng OUT: Q, M, L, D

Lệnh Reset

Giá trị của bit có địa chỉ là OUT bằng 0 khi đầu vào này bằng 1. Khi đầu vào bằng 0 thì các bit này vẫn không đổi.

Toán hạng OUT: Q, M, L, D

Lệnh Set nhiều bit

Giá trị của các bit có địa chỉ đầu tiên là OUT sẽ bằng 1 khi đầu vào bằng 1. Khi đầu vào bằng 0 thì các bit này vẫn không đổi. Trong đó số bit là giá trị của n, n là hằng số.

Toán hạng OUT: Q, M, L, D

Lệnh Reset nhiều bit

Giá trị của các bit có địa chỉ đầu tiên là OUT sẽ bằng 0 khi đầu vào của lệnh này bằng 1.Khi đầu vào bằng 0 thì các bit

này vẫn không đổi. Trong đó số bit là giá trị của n Toán hạng OUT: Q, M, L, D

27

2.3.2. Sử dụng bộ Timer

Sử dụng lệnh Timer để tạo một chƣơng trình trễ định thời. Số lƣợng của Timer phụ thuộc vào ngƣời sử dụng và số lƣợng vùng nhớ của CPU. Mỗi timer sử dụng 16 byte IEC_Timer dữ liệu kiểu cấu trúc DB. TIA Portal tự động tạo khối DB khi lấy khối Timer [1].

Kích thƣớc và tầm của kiểu dữ liệu Time là 32 bit, lƣu trữ nhƣ là dữ liệu Dint : T#-14d_20h_31m_23s_648ms đến T#24d_20h_31m_23s_647ms hay là - 2.147.483.648 ms đến 2.147.483.647 ms. Bảng 2. 4. Các tập lệnh Timer Tên Hình ảnh Chức năng Timer tạo xung - TP

Thay đổi PT, IN không ảnh hƣởng khi Timer đang chạy. Khi đầu vào IN “TRUE” vào timer sẽ tạo ra một xung có

độ rộng bằng thời gian đặt PT. Timer trễ sƣờn lên có nhớ - Timer TONR

Thay đổi PT không ảnh hƣởng khi Timer đang vận hành, chỉ ảnh hƣởng khi timer đếm lại.

Khi ngõ vào IN “FALSE” khi vận hành thì timer sẽ dừng nhƣng không đặt lại bộ định thì. Khi chân IN “TRUE” trở

lại thì Timer bắt đầu tính thời gian đã đặt PT. Timer trễ

sƣờn xuống có nhớ - TON

Thay đổi PT không ảnh hƣởng khi Timer đang vận hành, chỉ ảnh hƣởng khi timer đếm lại.

Khi ngõ vào IN chuyển sang “FALSE” khi vận hành thì timer sẽ dừng sau thời gian đặt. Khi chân IN “TRUE” trở

lại thì Timer hoạt động trở lại. Timer có

nhớ On Delay - TONR

Thay đổi PT không có ảnh hƣởng trong khi bộ định thì vận hành, nhƣng có ảnh hƣởng khi định thì khôi phục lại. Thay đổi IN sang “FALSE”, trong khi bộ định thì vận hành, sẽ dừng bộ định thì nhƣng không đặt lại bộ định thì. Thay đổi IN trở

lại sang “TRUE” sẽ làm bộ định thì bắt đầu tính toán thời gian từ giá trị thời gian đƣợc tích lũy.

28

2.3.3. Sử dụng bộ Counter

Lệnh Counter đƣợc dùng để đếm các sự kiện ở ngoài hay các sự kiện quá trình ở trong PLC. Mỗi Counter sử dụng cấu trúc lƣu trữ của khối dữ liệu DB để làm dữ liệu của Counter. TIA Portal tự động tạo khối DB khi lấy lệnh.

Tầm giá trị đếm phụ thuộc vào kiểu dữ liệu mà chúng ta chọn lựa. Nếu giá trị đếm là một số Interger không dấu, có thể đếm xuống tới 0 hoặc đếm lên tới tầm giới hạn. Nếu giá trị đếm là một số interder có dấu, có thể đếm tới giá trị âm giới hạn hoặc đếm lên tới một số dƣơng giới hạn.

Bảng 2. 5. Các lệnh Counter

Tên Hình ảnh Chức năng Counter

đếm lên - CTU

Giá trị bộ đếm CV đƣợc tăng lên 1 khi tín hiệu ngõ vào CU chuyên từ 0 lên 1. Ngõ ra Q đƣợc tác động lên 1 khi CV>=PV. Nếu trạng thái R = Reset đƣợc tác động thì bộ

đếm CV = 0. Counter

đếm xuống –

CTD

Giá trị bộ đếm đƣợc giảm 1 khi tín hiệu ngõ vào CD chuyển từ 0 lên 1. Ngõ ra Q đƣợc tác động lên 1 khi CV <=0. Nếu trạng thái LOAD đƣợc tác động thì CV = PV.

Counter đếm lên xuống – CTUD

Giá trị bộ đếm CV đƣợc tăng lên 1 khi tín hiệu ngõ vào CU chuyển từ 0 lên 1. Ngõ ra QU đƣợc tác động lên 1 khi

CV >=PV. Nếu trạng thái R = Reset đƣợc tác động thì bộ đếm CV = 0.

Giá trị bộ đếm CV đƣợc giảm 1 khi tín hiệu ngõ vào CD chuyển từ 0 lên 1. Ngõ ra QD đƣợc tác động lên 1 khi CV

29 2.3.4. So sánh Bảng 2. 6. Các lệnh so sánh Tên Hình ảnh Chức năng Lệnh so sánh

Lệnh so sánh dùng để so sánh hai giá trị IN1 và IN2 bao gồm IN1 = IN2, IN1 >= IN2, IN1 <= IN2, IN1 < IN2, IN1

> IN2 hoặc IN1 <> IN2

So sánh 2 kiểu dữ liệu giống nhau, nếu lệnh so sánh thỏa thì ngõ ra sẽ là mức 1 = TRUE và ngƣợc lại

Kiểu dữ liệu so sánh là: SInt, Int, Dint, USInt, UDInt, Real, LReal, String, Char, Time, DTL, Constant.

Lệnh trong khoảng In

– range

Tham số: MIN, VAL, MAX

Kiểu dữ liệu so sánh : SInt, Int, Dint, USInt, UInt, UDInt, Real, LReal, Constant. So sánh 2 kiểu dữ liệu giống nhau, nếu MIN<=VAL<=MAX thỏa thì lên mức cao và ngƣợc lại. Lệnh

ngoài khoảng out-of-

range

Tham số: MIN, VAL, MAX

Kiểu dữ liệu so sánh: SInt, Int, Dint, USInt, UInt, UDInt, Real, LReal, Constant

So sánh 2 kiểu dữ liệu giống nhau, nếu so sánh MIN > VAL hoặc MAX < VAL thỏa thì tác động mức cao và ngƣợc lại.

2.3.5. Toán học Bảng 2. 7. Các lệnh toán học Tên Hình ảnh Chức năng Lệnh tính toán

Thực hiện phép toán từ các giá trị ngõ vào IN1, IN2, IN(n) theo công thức OUT=…(+,-,*,/) rồi xuất kết

quả ra ngõ ra OUT.

Các thông số ngõ vào phải cùng định dạng. Lệnh cộng ADD: OUT = IN1 + IN2

Lệnh trừ SUB: OUT = IN1 – IN2 Lệnh nhân MUL: OUT = IN1*IN2

30 Lệnh cộng, trừ, nhân, chia

Tham số IN1, IN2 phải cùng kiểu dữ liệu: SInt, Int, Dint, USInt, UInt, UDInt, Real, LReal, Constant Tham số OUT có kiểu dữ liệu: SInt, Int, Dint, USInt,

UInt, UDInt, Real, LReal.

Tham số ENO = 1 nếu không có lỗi xảy ra trong quá trình thực thi. Ngƣợc lại ENO = 0 khi có lỗi, một số

lỗi xảy ra khi thực hiện lệnh này:

2.3.6. Di chuyển MOVE

Bảng 2. 8. Các lệnh di chuyển MOVE

Tên Hình ảnh Chức năng

Lệnh MOVE

Lệnh Move di chuyển nội dung ngõ vào IN đến ngõ ra OUT mà không làm thay đổi giá trị ngõ IN

Tham số: EN: cho phép ngõ vào ENO: cho phép ngõ ra IN: nguồn giá trị đến OUT1: Nơi chuyển đến

Lệnh Move_BLK sao chép các nội dung của một vùng nhớ IN đến một bộ nhớ xác định khác. Số lƣợng các giá trị đƣợc sao chép đƣợc quy định trong COUNT. Hoạt động sao chép

theo hƣớng tăng dần các địa chỉ Tham số:

EN: cho phép ngõ vào ENO: cho phép ngõ ra IN: nguồn giá trị đến COUNT: số giá trị sao chép

31

2.3.7. Các lệnh định tỷ lệ và chuẩn hóa

Hình 2. 28. Lệnh định tỷ lệ

Lệnh SCALE_X định tỷ lệ của thông số số thực đƣợc chuẩn hóa VALUE, với (0,0 <= VALUE <= 1,0) thành kiểu dữ liệu và phạm vi giá trị đƣợc xác định bởi các thông số MIN và MAX: OUT = VALUE (MAX – MIN) + MIN.

Đối với lệnh SCALE_X, các thông số MIN, MAX và OUT phải là kiểu dữ liệu giống nhau.

Lệnh NORM_X làm chuẩn hóa thông số VALUE bên trong phạm vi giá trị đƣợc xác định bởi các thông số MIN và MAX: OUT = (VALUE – MIN) / (MAX – MIN) với (0,0 <= OUT <= 1,0).

Đối với lệnh NORM_X, các thông số MIN, VALUE và MAX phải là kiểu dữ liệu giống nhau.

Ta nhấp vào phía dƣới tên hộp và chọn một kiểu dữ liệu từ trình đơn thả xuống. Bảng 2. 9. Bảng dữ liệu nhập hàm SCALE_X và NORM_X.

Thông số Kiểu dữ liệu Miêu tả

MIN SInt, Int, DInt, USInt, UInt, UDInt, Real Giá trị cực tiểu ngõ vào của phạm vi

VALUE

SCALE_X: Real

NORM_X: SInt, Int, DInt, USInt, UInt, UDInt, Real

Giá trị ngõ vào để định tỷ lệ hay chuẩn hóa MAX SInt, Int, DInt, USInt, UInt, UDInt, Real Giá trị cực đại ngõ vào của

phạm vi OUT

SCALE_X: Real

NORM_X: SInt, Int, DInt, USInt, UInt, UDInt, Real

Giá trị ngõ ra đã đƣợc định tỷ lệ hay đƣợc chuẩn hóa

32

2.3.8. Các lệnh đếm thời gian

Ta sử dụng các lệnh đếm thời gian để thiết lập và đọc đồng hồ hệ thống PLC. Kiểu dữ liệu DTL đƣợc sử dụng để mang lại các giá trị ngày và giờ.

Bảng 2. 10. Kiểu dữ liệu DTL

Cấu trúc DTL Kích thƣớc Phạm vi hợp lệ

Năm: UInt 16 bit 1970 đến 2554

Tháng: USInt 8 bit 1 đến 12

Ngày: USInt 8 bit 1 đến 31

Ngày trong tuần: USInt 8 bit 1 = Chủ nhật đến 7 = Thứ bảy

Giờ: USInt 8 bit 0 đến 23

Phút: USInt 8 bit 0 đến 59

Giây: USInt 8 bit 0 đến 59

Nano giây: UDInt 32 bit 0 đến 999.999.999

Lệnh WR_SYS_T (Write System Time) thiết lập đồng hồ thời gian trong ngày của PLC với một giá trị DTL tại thông số IN. Giá trị thời gian này không gồm múi giờ địa phƣơng hay độ dịch chỉnh thời gia tiết kiệm ánh sáng ngày.

Hình 2. 29. Lệnh Write System Time

Bảng 2. 11. Thông số của lệnh Write System Time

Thông số Kiểu thông số Kiểu dữ liệu Miêu tả

IN IN DTL

Thời gian trong ngày để thiết lập trong đồng hồ hệ thống PLC

33

Lệnh RD_SYS_T (Read System Time) đọc thời gian hệ thống hiện thời từ PLC. Giá trị này không bao gồm múi giờ địa phƣơng hay độ dịch chỉnh thời gian tiết kiệm ánh sáng ngày.

Hình 2. 30. Lệnh Read System Time. Bảng 2. 12. Thông số của lệnh Read System Time

Thông số Kiểu thông số Kiểu dữ liệu Miêu tả

RET_VAL OUT Int Mã điều kiện thực thi

OUT OUT DTL Thời gian hệ thống PLC hiện thời

Một phần của tài liệu Nghiên cứu, ứng dụng PLC S7-1200 điều khiển thiết bị qua mạng Intenet (Trang 40)

Tải bản đầy đủ (PDF)

(130 trang)