Networks Business Online Việt Nam & International VH2

Tổng Quan Ngôn Ngữ Lập Trình PLC FBD (Function Block Diagram)

Đăng ngày 08 November, 2022 bởi admin

Cập nhật 2021 – 09-14

1713

Một trong những ngôn ngữ lập trình PLC chính thức và được sử dụng rộng rãi là: Sơ đồ khối chức năng (FBD:Function Block Diagram ). Đây là một ngôn ngữ đơn giản và trực quan để lập trình nhiều chương trình con cùng lúc trong một chương trình PLC. Ngôn ngữ FBD rất dễ học và cung cấp rất nhiều tính năng.

Là một trong những ngôn ngữ lập trình PLC chính thức được mô tả trong IEC 61131-3. FBD là ngôn ngữ cơ bản cho tất cả các lập trình viên PLC. Đó là một ngôn ngữ tuyệt vời để triển khai mọi thứ từ logic đến bộ định thời (timer), bộ điều khiển PID và thậm chí cả hệ thống SCADA trong giải pháp của bạn, v.v.

Hầu hết các kỹ sư đều yêu thích ngôn ngữ FBD vì nó là một cách rất phổ biến và trực quan để mô tả một hệ thống. Các kỹ sư thích xếp mọi thứ vào hộp (block). Và đó chính xác là khái niệm về ngôn ngữ FBD. Ngôn ngữ FBD rất hữu ích khi các khái niệm điều khiển hàng loạt từ ISA-88 được áp dụng.

Trong bài hướng dẫn này, chúng tôi sẽ trình làng cho những bạn một số ít nguyên tắc cơ bản của lập trình FBD và những khối tính năng .

Sơ đồ khối chức năng là gì?

Từ phổ thông, những bạn cũng hoàn toàn có thể đã biết một thứ còn được gọi là sơ đồ khối, thường được dùng để tạo nên sơ đồ giải thuật trong tin học. Sơ đồ khối tính năng của PLC không có gì độc lạ so với nó. Những gì ngôn ngữ FBD cung ứng là một cách để đặt những hàm được viết bằng nhiều dòng mã vào chung trong những hộp ( block ) .
Qua đó tất cả chúng ta hoàn toàn có thể thuận tiện liên kết chúng, để tạo ra một chương trình PLC lớn hơn .
Cũng như ngôn ngữ logic bậc thang ( LAD ) và câu lệnh có cấu trúc ( ST : Structure Text ), sơ đồ khối công dụng hay FBD được PLCOpen diễn đạt trong tiêu chuẩn IEC 61131 – 3. Hầu hết những chương trình PLC được viết với một số lượng FBD. Bởi vì, mặc dầu những bạn hoàn toàn có thể viết những hàm của mình trong câu lệnh có cấu trúc ( ST ). Bạn vẫn thường phải liên kết những tính năng đó .

Các khối chức năng

Trong FBD toàn bộ những công dụng được đưa vào những khối tính năng. Tất cả chúng đều có một hoặc nhiều nguồn vào và đầu ra. Chức năng của khối là mối quan hệ giữa trạng thái của những nguồn vào và đầu ra của nó .
Dưới đây là cách một khối công dụng đơn thuần hoàn toàn có thể trông như thế nào :

khoi chuc nang trong fbd

Mô tả khối tính năng trong FBD
Khối công dụng được minh họa bằng một hộp ( box ). Ở giữa hộp thường là một hình tượng hoặc một câu lệnh. Biểu tượng này bộc lộ công dụng trong thực tiễn của khối công dụng .

Tùy thuộc vào hàm chức năng, có thể có nhiều hay ít  số lượng đầu vào và đầu ra nào trên khối chức năng. Bạn có thể kết nối đầu ra của một khối chức năng với đầu vào của khối chức năng khác. Từ đó tạo ra Sơ đồ khối chức năng (FBD: Function Block Diagram )

khoi chuc nang co ban

Kết hợp những khối tính năng để tạo một sơ đồ khối công dụng cơ bản

Có rất nhiều khối chức năng tiêu chuẩn được cung cấp trong FBD, nhưng bạn cũng có thể tạo các khối chức năng của riêng mình. Thông thường, bạn sẽ phải sử dụng cùng một câu lệnh trong chương trình PLC của mình nhiều lần. Nó có thể là một chức năng để điều khiển một van, một động cơ,… Với các khối chức năng, bạn có thể tạo một khối chức năng cụ thể cho một động cơ và sử dụng nó nhiều lần. 

Hãy bắt đầu bằng cách xem xét một số khối chức năng tiêu chuẩn như được mô tả trong tiêu chuẩn IEC dành cho ngôn ngữ lập trình PLC. Chúng cung cấp một loạt các chức năng từ cơ bản đến nâng cao. 

Khối chức năng tiêu chuẩn 

Trong tiêu chuẩn của IEC, hiên có rất nhiều khối chức năng được mô tả. Dưới đây là tổng quan về các khối quan trọng nhất trong mô tả FBD chính thức:

Khối chức năng Bit Logic

Chức năng cơ bản nhất của chương trình PLC là logic. Kết hợp gọi là logic tổng hợp. Logic là dạng thuật toán đơn thuần nhất mà trải qua những trạng thái của nguồn vào của nó hoàn toàn có thể thiết lập một số ít đầu ra. Về cơ bản, có hai hàm bit logic khác nhau trong FBD. Chỉ với hai hàm này, bạn hoàn toàn có thể lấy ra một loạt những hàm logic khác .

 Toán tử Logic Or

Đầu tiên chúng tôi muốn trình làng với bạn về khối hàm OR. Nó có 2 nguồn vào, 1 đầu ra và hoạt động giải trí giống như một cổng OR. Nếu một trong những nguồn vào là đúng thì đầu ra cũng sẽ trở thành đúng .
Trong ngôn ngữ FBD, khối logic OR thường sẽ giống như sau :

khoi chuc nang trong fbd

Khối tính năng đại diện thay mặt cho toán tử logic OR trong FBD
Có thể bạn đã thấy hình tượng cho toán tử logic OR là > = 1. Về cơ bản nó là điều kiện kèm theo cho đầu ra. Nếu tổng của hai nguồn vào lớn hơn hoặc bằng 1, đầu ra trở thành true .
Cũng giống như tổng thể những phép toán logic bit khác, false được trình diễn bằng 0 và true bằng 1. Điều này hoàn toàn có thể được minh họa bằng bảng chân trị cho toán tử logic OR :

chan tri cua phep toan logic

Chức năng của khối OR tương đương với kết nối song song của hai tiếp điểm trong logic bậc thang. Nếu một trong hai tiếp điểm bị đóng, đầu ra sẽ được đặt. Khi tôi nói đầu ra ở đây tôi có nghĩa là đầu ra của khối chức năng. Chúng tôi chỉ có thể kết nối chân đầu ra với một khối chức năng khác. Nhưng nếu chúng ta muốn đặt một đầu ra thực tế hoặc một bit với đầu ra khối thì sao? Điều này dẫn chúng ta đến khối chức năng tiếp theo.

Toán tử gán (Assigment Operation)

Trong nhiều trường hợp, khi bạn cần link đầu ra của một khối tính năng đến nguồn vào của một khối khác. Nhưng nhiều lúc bạn muốn dùng đầu ra đó để điều khiển và tinh chỉnh một hay nhiều bit hơn. Để làm được điều đó bạn gán 1 đầu ra hay 1 giá trị cho 1 biến .
Và để gán thì đương nhiên bạn cần dùng khối công dụng gán. Các khối gán hoạt động giải trí bằng cách gán nguồn vào của nó vào một vị trí trong bộ nhớ PLC.

Khối chức năng cũng có một đầu ra mà bạn có thể sử dụng để kết nối với các khối chức năng khác. Điều này rất hữu ích vì bạn có thể gán giá trị ở bất kỳ đâu trong sơ đồ khối chức năng của mình. Không chỉ ở đầu ra của khối cuối cùng.

Hàm gán có công dụng tương tự như như một cuộn dây trong logic bậc thang .

khoi chuc nang trong fbd

Khối công dụng của một hoạt động giải trí gán trong FBD

Toán tử Logic AND

Khối công dụng tiếp theo chúng tôi muốn trình làng với những bạn đó là khối công dụng AND. Cũng giống như khối OR, đây là một trong những khối tính năng cơ bản nhất trong lập trình PLC .
Nó có 2 nguồn vào và một đầu ra. Nó rất giống với hàm OR nhưng hoạt động giải trí hơi khác một chút ít. Thay vì một trong hai nguồn vào, khối này nhu yếu cả hai đầu vào phải là một bộ đúng với đầu ra .
Nếu cả hai nguồn vào đều đúng thì đầu ra cũng sẽ trở thành đúng .

khoi chuc nang trong fbd

Khối tính năng đại diện thay mặt cho hoạt động giải trí logic AND trong FBD
Đây là bảng chân trị của khối AND :

bang chan tri cua khoi and

Nếu bạn biết một chút ít về logic bậc thang, khối công dụng AND tương tự với liên kết tiếp nối đuôi nhau của 2 tiếp điểm trong logic bậc thang. Cả hai đều phải đúng trước khi khối nhìn nhận đầu ra của nó là đúng .

Toán tử phủ định

Đôi khi bạn sẽ muốn đảo ngược đầu vào hoặc đầu ra của một khối. Để làm điều đó, bạn phải sử dụng phủ định. Nó có nhiều dạng khác nhau, tùy thuộc vào ứng dụng bạn sử dụng .
Trong một số ít trường hợp, bản thân nó là một khối hoàn hảo. Và nhiều lúc nó chỉ là những vòng tròn nhỏ mà bạn hoàn toàn có thể đặt trên bất kể chân nào của những khối công dụng .
Hàm “ NOT ”, hàm “ Invert RLO “ ( result of logic operation ) hoặc hàm gán phủ định trên thực tiễn hoạt động giải trí bằng cách đổi khác tín hiệu thành ngược lại .

khoi chuc nang trong fbd

Khối công dụng phủ định
Khi một tín hiệu bị đảo ngược hoặc bị phủ định, điều đó có nghĩa là, nếu nó là đúng, nó sẽ trở thành sai và ngược lại. Vòng tròn nhỏ ở chốt của khối biểu lộ đúng mực tính năng đó .
Không chỉ là đầu ra hoàn toàn có thể được đảo ngược. Các đầu vào cũng hoàn toàn có thể được đảo ngược. Đơn giản bằng cách đặt vòng tròn trên chân đầu vào. Sau này, bạn sẽ thấy rằng việc đảo ngược tổng thể những nguồn vào hoặc đầu ra đều có tính năng như nhau so với tính năng của một khối .

Toán tử XOR (Exclusive OR)

Khối này là một trường hợp đặc biệt quan trọng của khối OR. Các giá trị nguồn vào trên khối OR phải lớn hơn hoặc bằng 1. Nhưng như bạn hoàn toàn có thể thấy bên dưới, khối XOR nhu yếu hai đầu vào phải bằng 1 .
Ví dụ, nếu cả hai đầu vào là đúng, thì đầu ra của XOR sẽ là sai, vì tổng những nguồn vào lớn hơn 1 .

khoi chuc nang trong fbd

Khối XOR trong FBD

Mặc dù nó có thể được xây dựng với 2 khối chức năng AND và một khối OR, khối XOR vẫn được coi như một khối chức năng riêng trong Siemens TIA Portal, Codesys và nhiều hãng khác.

Nó được sử dụng thoáng đãng để kiểm tra xem một và chỉ một trong hai đầu vào là đúng .

Toán tử NAND, NOR,…

Hai khối chức năng tiếp theo cũng được xây dựng bằng cách sử dụng các khối cơ bản. Chúng là các khối phủ định. Nó thực sự chỉ có nghĩa là đầu ra của khối bị phủ định. 

Lấy ví dụ về khối NAND như minh họa bên dưới. Như bạn hoàn toàn có thể thấy, khối công dụng NAND thực sự chỉ là khối AND với đầu ra phủ định. NAND là viết tắt của NOT AND hoặc Negated ( phủ định ) AND .

khoi chuc nang trong fbd

Khối NAND từ khối AND phủ định trong FBD
Bảng chân trị cho khối này trọn vẹn ngược lại với bảng chân trị cho khối AND .

bang chan tri cua khoi nand

Như đã đề cập trước đây, công dụng của khối tính năng NAND cũng hoàn toàn có thể nhận được bằng cách phủ định những nguồn vào. Giảm nhẹ nguồn vào có công dụng tương tự như như phủ định đầu ra. Do đó, một khối NAND cũng hoàn toàn có thể trông như thế này :

khoi nand tao tu 2 dau not

Khối NAND được tạo ra từ 2 đầu vào NOT trên khối AND

Khối chức năng Bistable (hai trạng thái)

Các loại khối chức năng tiếp theo mà tôi sẽ giới thiệu cho bạn cũng là bistable. Tôi thích nghĩ về chúng như một dạng bộ nhớ  đơn giản nhất. Bạn có thể set hoặc reset đầu ra. Đầu ra (Q) ghi nhớ trạng thái cuối cùng của đầu vào đã đặt (S1). 

Cung cấp cho S1 một xung, và Q1 sẽ được thiết lập. Ngay cả khi S1 sau đó đổi khác trạng thái thành false, hiệu quả đầu ra vẫn là true. Bạn hoàn toàn có thể nói rằng Q1 ghi nhớ nếu có bất kể điều gì xảy ra tại S1. Đó là nguyên do tại sao tôi thích coi những hàm bistable hoặc flip-flops như thể bộ nhớ .

Set/Reset

Khối tính năng được gọi là SR hoặc set / reset và đây là cách nó trông giống như sau :

khoi chuc nang trong fbd

Khối công dụng Set / Reset ( thiết lập ưu tiên )

Để hiểu rõ hơn về cách hoạt động của chức năng này, chúng ta hãy xem xét bên trong khối chức năng. Phần bên trong khối chức năng của khối SR cho thấy rằng nó được tạo thành từ các khối logic 2 bit. Một hàm AND và một hàm OR. 

Đầu ra của hàm AND được liên kết với nguồn vào của hàm OR. Vì một trong những nguồn vào trên hàm AND là Q1, hàm này cũng đóng vai trò là đầu ra cho hàng loạt khối .
Nhiều người gọi đây là một tính năng lật. Q1 sẽ nhớ rằng tại 1 số ít thời gian S1 là “ true ”. Điều này lê dài cho đến khi chân R hay “ reset ” được “ set ” thành “ true ”. Sau đó Q1 sẽ được thiết lập lại. Đầu ra ( Q1 ) ghi nhớ và do đó tôi thích coi khối này như một khối bộ nhớ đơn thuần .

ben trong khoi sr

Bên trong khối công dụng Set / Reset
Loại khối này luôn có mức độ ưu tiên. Nếu cả hai nguồn vào đều đúng thì điều gì sẽ xảy ra ?
Khối SR đã “ set ” mức độ ưu tiên. Vì vậy, trong trường hợp cả hai nguồn vào đều đúng, đầu ra sẽ được “ set ” .
Nhưng đó không phải khi nào cũng là điều bạn muốn. Và điều đó sẽ dẫn tất cả chúng ta đến khối tiếp theo .

Reset/Set

Trong 1 số ít trường hợp, bạn hoàn toàn có thể muốn đặt lại đầu ra khi cả hai nguồn vào ( S1 và R ) đều đúng. Đó là nguyên do tại sao tất cả chúng ta phải chặn RS. Về cơ bản, nó hoạt động giải trí theo cùng một cách với khối SR, nhưng với “ reset ” là ưu tiên thay vì “ set ” .

khoi chuc nang trong fbd

Khối tính năng Reset / Set ( thiết lập ưu tiên )

Một lần nữa, khối này được cấu thành từ hai khối logic cơ bản. Nhưng vì flip flops – SR / RS  là nền tảng trong lập trình PLC nên chúng cũng có khối chức năng riêng của chính mình.

ben trong khoi rs

Bên trong khối công dụng Reset / Set
Tất nhiên có một số ít cách để ghi nhớ mọi thứ. Và mặc dầu flip flops là một cách rất đơn thuần để ghi nhớ, những loại khối tiếp theo hoàn toàn có thể là một dạng bộ nhớ thậm chí còn còn đơn thuần hơn

Phát hiện cạnh

Việc phát hiện các cạnh rất hữu ích trong cả lập trình PLC và điện tử. Tất nhiên, chúng ta không nói về cạnh bàn bếp của bạn, mà là rìa của các tín hiệu.

Thông thường, bạn sẽ chỉ liên kết nguồn vào với một khối tính năng “ đếm ” ( sẽ khám phá thêm về những khối này sau ). Nhưng nếu bạn còn nhớ nguyên lí hoạt động giải trí cơ bản của PLC, bạn sẽ biết rằng PLC có thời hạn quét hoặc thời hạn chu kỳ luân hồi .
Thời gian này thường rất ngắn ( 20 – 50 ms ). Khi bạn nhấn một nút nhấn ( ngay cả khi bạn nhấn và thả nhanh ), đầu vào sẽ bật trong thời hạn lâu hơn ( thường là 100 – 200 mili giây ). Đầu vào sẽ được bật trong vài chu kỳ luân hồi quét .
Mỗi khi PLC quét đến khối đếm, nó sẽ đếm một khi đầu vào là true. Đối với mỗi lần nhấn nút, bộ đếm sẽ đếm không chỉ 1 mà là 2, 3, 5 hoặc thậm chí còn nhiều hơn .
Để tránh điều này, tất cả chúng ta sẽ sử dụng những khối phát hiện cạnh .

Khối chức năng kích xing cạnh lên

(RISING TRIGGER:R_TRIG)

Cạnh mà tất cả chúng ta đang nói đến, trong tín hiệu kỹ thuật số đươc là cạnh lên. Đôi khi cũng được gọi là cạnh dương .
Nó xảy ra khi tín hiệu đi từ false ( 0 ) sang true ( 1 ). Trong điện tử kỹ thuật số là khi điện áp đi từ 0 đến 5V. Cạnh lên là những gì xảy ra ngay khi tất cả chúng ta nhấn nút .

khoi chuc nang trong fbd

Khối công dụng R_TRIG để phát hiện xung cạnh lên
Khi đầu vào ( CLK ) phát hiện ra một cạnh lên, đầu ra sẽ được thiết lập. Nhưng chỉ trong một khoảnh khắc ngắn, vì cạnh lên diễn ra quá nhanh. Mặc dù nguồn vào hoàn toàn có thể đúng cho những chu kỳ luân hồi quét tiếp theo, đầu ra sẽ không được “ set ” nhiều hơn một lần. Đầu ra tạo ra một xung khi phát hiện ra cạnh dương hoặc cạnh lên .
Dưới đây là sơ đồ khối công dụng để dễ hiểu hơn :

so do chuc nang khoi kich xung canh len

Sơ đồ tính năng cho khối R_TRIG
Cần một cạnh lên mới để tạo ra một xung khác ở đầu ra. Có thể nói, khối công dụng sẽ ghi nhớ, nếu có một cạnh lên ở đầu vào. Vì vậy, để thiết lập lại đầu ra, đầu vào cần chuyển thành “ false ” rồi lại “ true ”. Hoặc như trong ví dụ về nút nhấn của chúng tôi ; bạn cần phải thả nút ra và nhấn lại .

Khối chức năng kích xung cạnh dưới (FALLING TRIGGER : F_TRIG)

Cũng giống như những cạnh lên, tất yếu bạn cũng hoàn toàn có thể phát hiện những cạnh xuống. Khi tín hiệu đi từ true ( 1 ) đến false ( 0 ) là cạnh xuống .

khoi chuc nang trong fbd

Khối tính năng F_TRIG để phát hiện tín hiệu cạnh xuống
Đôi khi cạnh xuống còn được gọi là cạnh âm. Nó cũng hoạt động giải trí bằng cách tạo ra một xung ở đầu ra nhưng với một cạnh xuống ở đầu vào .

so do chuc nang khoi kich xung canh duoi

Sơ đồ tính năng cho khối F_TRIG
Một cách sử dụng nổi bật cho khối này là tạo ra một thứ gì đó xảy ra khi một thứ khác dừng lại .

Giả sử bạn muốn bật đèn vàng khi động cơ dừng. Nhưng bạn chỉ muốn điều này xảy ra khi động cơ đã được khởi động. Sao cho đèn vàng chỉ được bật vào thời điểm động cơ dừng.

 Giải pháp: Sử dụng khối  F_TRIG để phát hiện cạnh xuống tại đầu ra động cơ. Từ đó tạo ra một xung để “set” đầu ra của đèn vàng.

Khối chức năng định thời (Timer)

Với những khối trước, chúng tôi muốn bảo vệ một tín hiệu không dài hơn thời hạn quét. Nhưng nhiều lúc bạn sẽ muốn trấn áp độ dài của tín hiệu hoặc thời gian nó xảy ra .
Đây là nơi những khối tính năng định thời Open trong hình. Bộ định thời là 1 số ít tính năng được sử dụng nhiều nhất trong lập trình PLC. Chúng được chia thành ba loại bộ định thời khác nhau .
Nếu bạn muốn biết thêm về bộ định thời và xem chúng hoạt động giải trí như thế nào trong mô phỏng PLC, bạn hoàn toàn có thể đọc bài viết về bộ định thời PLC. Bạn sẽ tìm thấy những video hướng dẫn về cả bộ định thời bật trễ, bộ định thời tắt trễ và bộ định thời xung .
Một số người cho rằng bạn sẽ chỉ cần sử dụng một trong số chúng, chính do với điều đó, bạn hoàn toàn có thể lấy được toàn bộ những công dụng định thời. Nhưng vì cả ba đều được miêu tả trong IEC 61131 – 3 và có trong hầu hết những ứng dụng nên chúng tôi muốn ra mắt với bạn toàn bộ bộ định thời đó .

Bộ đinh thời xung (TP)

Bộ định thời tiên phong được gọi là bộ định thời xung, vì nó được sử dụng để tạo ra một xung có độ dài đơn cử .
Nó có 2 nguồn vào và hai đầu ra. Cho đến nay, tất cả chúng ta chỉ thấy những khối công dụng mà nguồn vào và đầu ra đều là kiểu tài liệu boolean. Điều này vẫn đúng với IN và Q. của khối TP. Nhưng nó có một chút ít độc lạ với PT và ET. Cả hai đều nhận những biến của kiểu tài liệu TIME .
PT là viết tắt của Preset Time và là một đầu vào cho khối. Đây là nơi bạn đặt thời hạn bạn muốn xung tại Q. Ngay sau khi đầu vào IN là true, đầu ra Q. sẽ được đặt cho thời hạn PT.

khoi chuc nang trong fbd

Khối tính năng định thời xung ( TP )
ET là viết tắt của Elapsed Time. Đây là lúc Q. đã hoạt động giải trí .
Giả sử bạn muốn quạt thông gió bật trong 10 phút. Sau đó, bạn sẽ phải nhập vào 10 phút tại PT và đặt quạt thông gió ở đầu ra Q. Trong nhiều trường hợp, việc này rất có ích khi hoàn toàn có thể xem quạt đã chạy trong bao lâu. Đó là hiệu quả của ET .

bieu do dinh thoi xung

Biểu đồ của bộ định thời xung
Bạn hoàn toàn có thể xem tính năng của bộ định thời xung cụ thể hơn một chút ít trong biểu đồ thời hạn ở trên .

Bộ định thời mở trễ (On Dlay Timer :TON)

Loại bộ định thời tiếp theo là bộ định thời mở trễ hay còn được gọi tắt là TON. Nhưng thay vì định thời cho xung, nó được sử dụng để định thời mở trễ cho xung. Khi đầu vào được mở, bộ định thời mở trễ sẽ mở màn đếm. Sau thời hạn PT trôi qua, đầu ra Q. sẽ được “ set ”. Đây cũng là nguyên do cho cái tên của nó .
Ngõ ra của tín hiệu sẽ được mở sau một độ trễ nhất định .

khoi chuc nang trong fbd

Khối tính năng định thời mở trễ ( TON )
Bộ định thời mở trễ có cùng chân đầu vào và đầu ra như bộ định thời xung. Và một lần nữa, nó vẫn có ET để xem bao nhiêu thời hạn đã trôi qua .
Trong biểu đồ cho bộ đếm thời hạn mở trễ bật bên dưới, tính năng được minh họa :

bieu do khoi dinh thoi mo tre

Biểu đồ khối định thời mở trễ
Một số người khẳng định chắc chắn bộ định thời mở trễ là bộ định thời duy nhất bạn cần. Nhưng trước khi lý giải nguyên do tại sao, hãy để tôi trình làng với bạn một loại bộ định thời thứ ba và sau cuối .

Bộ định thời tắt trễ (TOF)

Chức năng của bộ hẹn giờ trễ tắt ( TOF ) rất giống với TON. Nhưng với một sự độc lạ lớn
| Nó sẽ tắt đầu ra sau một thời hạn trễ
Trong thời gian nguồn vào được đặt thành true, đầu ra sẽ được “ set ”. Miễn là nguồn vào vẫn ‘ true ”, đầu ra sẽ giữ nguyên cho đến khi hết thời hạn PT. Sau thời hạn đó, đầu ra sẽ bị tắt .

khoi chuc nang trong fbd

Khối công dụng định thời tắt trễ ( TOF )
Thoạt nhìn, bộ định thời tắt trễ này có vẻ như rất giống với bộ định thời xung ( PT ). Nhưng chúng cũng có một điểm độc lạ quan trọng .
Đầu ra của bộ định thời xung sẽ được bật trong thời hạn PT ngay cả khi đầu vào chuyển thành “ false ” ở giữa thời hạn. Điều này là do bộ định thời tìm kiếm một cạnh lên ở đầu vào. Tuy nhiên so với bộ định thời tắt trễ, thời hạn sẽ ngừng đếm nếu nguồn vào là “ true ” .

bieu do dinh thoi tat tre

Biểu đồ của bộ định thời tắt trễ
Ba bộ định thời này là bộ định thời chính thức được miêu tả trong IEC 61131 – 3. Về mặt kỹ thuật, bạn hoàn toàn có thể kiến thiết xây dựng tổng thể chúng bằng cách chỉ sử dụng bộ định thời mở trễ. Điều đó trọn vẹn khả thi khi bạn dùng thêm những khối bit logic .

Khối chức năng đếm

Loại khối chức năng tiếp theo không chỉ có đầu vào và đầu ra nữa. Chúng còn có một kiểu dữ liệu khác. Đã đến lúc chúng ta tìm hiểu đến những khối chức năng đếm PLC.

Đếm là rất hành vi cơ bản trong lập trình PLC. Máy đã sản xuất bao nhiêu mẫu sản phẩm ? Công cụ ở bước nào của trình tự ? Có nhiều nguyên do để sử dụng bộ đếm trong chương trình PLC.
IEC phân phối ba khối đếm tiêu chuẩn khác nhau. Một là để đếm xuôi, một để đếm ngược và một để đếm ngược hoặc xuôi .
Hãy xem mở màn với khối đếm tiên phong !

Khối đếm xuôi (Up Couter: CTU)

Khối đếm này có 3 đầu vào và hai đầu ra. Mặc dù số đầu vào và đầu ra có vẻ như rất nhiều, nhưng chúng đều cần thiết để có thể đếm được. Nhưng trước khi xem xét chi tiết từng đầu vào và đầu ra, hãy để tôi giải thích ngắn gọn cách hoạt động của khối đếm xuôi.

| Mỗi xung trên CU sẽ đếm CV tăng lên 1. Khi CV > = PV thì Q. được “ set ” .
Đầu vào CU tìm kiếm một cạnh lên. Khi điều đó xảy ra, CV đầu ra sẽ tăng lên 1. Để hoàn toàn có thể làm điều đó, CV đầu ra cần nhận một kiểu tài liệu khác là số nguyên ( integer ) .

Vì số nguyên là hệ số 16 bit (với số đầu tiên được sử dụng cho dấu) nên bạn có thể đếm tới 32767. Cả PV đầu vào và CV đầu ra đều thuộc kiểu dữ liệu số nguyên. PV là giới hạn khi đầu ra “boolean” Q được “set”.

khoi chuc nang trong fbd

Khối tính năng đếm xuôi ( CTU )
Đầu vào reset ( R ) được sử dụng để đặt giá trị CV thành 0. Chúng ta thường mở màn đếm ngược từ 0 vì theo cách đó, đầu ra CV sẽ luôn đại diện thay mặt cho số lượng xung đã đếm được trên CU.
Đối với bạn thích ngôn ngữ mã hóa văn bản, đây là phần thân khối công dụng trong ngôn ngữ structured text :
IF R THEN
CV : = 0 ;
ELSIF CU AND ( CV < PVmax ) THEN CV : = CV + 1 ; END_IF ; Q. : = ( CV > = PV ) ;

KHỐI ĐẾM NGƯỢC (DOWN COUNTER : CTD)

Đôi khi bạn cũng sẽ cần phải đếm ngược. Thường thì bạn sẽ muốn chương trình PLC của mình triển khai một hoạt động giải trí trong một khoảng chừng thời hạn nhất định. Đối với trường hợp này thì khối đếm ngược rất tiện lợi .
| Mỗi xung trên CD được đếm thì CV giảm xuống 1. Khi CV < = 0 thì Q. được “ set ” . Nó hoạt động giải trí giống hệt như bộ đếm xuôi, nhưng thay vì đếm lên 1, nó đếm xuống 1. Điều này đưa đến một sự độc lạ khác giữa bộ đếm xuôi và ngược. Khi đếm ta khởi đầu từ đâu ? Khi đếm xuôi tất cả chúng ta thường chỉ đếm từ 0. Nhưng khi đếm ngược tất cả chúng ta cần đặt một giá trị nhất định để tất cả chúng ta hoàn toàn có thể đếm ngược từ đó. Đó là nguyên do tại sao tất cả chúng ta phải nhập LD. Khi LD được đặt thành true, đầu ra CV được đặt thành PV .

khoi chuc nang trong fbd

Khối công dụng đếm ngược ( CTD )
Phần thân khối công dụng trông giống như thế này trong ngôn ngữ structured text :
IF LD THEN
CV : = PV ;
ELSIF CD AND ( CV > PVmin ) THEN
CV : = CV – 1 ;
END_IF ;
Q. : = ( CV < = 0 ) ; Bây giờ bạn đã học được cả cách đếm xuôi và đếm ngược, đã đến lúc tất cả chúng ta khám phá đến khối đếm sau cuối .

Khối đếm ngược xuôi (Up Down Couters: CTUD)

Đôi khi hoàn toàn có thể thực tiễn để hoàn toàn có thể đếm cả xuôi và ngược. Đó là nguyên do tại sao IEC cũng cung ứng một khối công dụng dùng để đếm cả xuôi và ngược .
Khối đếm có 5 nguồn vào và 3 đầu ra. Tất cả chúng đều có cùng tên với những nguồn vào và đầu ra trên những khối đếm mà ta đã khám phá trước đó. Khối này là sự tích hợp của hai khối trước đó. Tất cả những nguồn vào và đầu ra đều có công dụng giống nhau .

khoi chuc nang trong fbd

Khối tính năng đếm ngược xuôi ( CTUD )
Để thực sự biết cách khối công dụng này hoạt động giải trí, hãy để tôi chỉ cho những bạn phần “ thân ” của khối công dụng :
IF R THEN
CV : = 0 ;
ELSIF LD THEN
CV : = PV ;
ELSE
IF NOT ( CU AND CD ) THEN
IF CU AND ( CV < PVmax ) THEN CV : = CV + 1 ; ELSIF CD AND ( CV > PVmin ) THEN
CV : = CV – 1 ;
END_IF ;
END_IF ;
END_IF ;
QU : = ( CV > = PV ) ;
QD : = ( CV < = 0 ) ; Đoạn code này thoạt nhìn hoàn toàn có thể hơi phức tạp. Nhưng nó thực sự chỉ là sự tích hợp của bộ đếm xuôi và ngược. Khi CU đếm xung thì CV tăng lên 1 và khi CD đếm xung thì CV giảm 1. Mỗi đầu ra QU và QD đều được thiết lập với những điều kiện kèm theo tựa như như với hai khối đếm trước đó .

Các khối chức năng so sánh

Tôi thích nghĩ về loại khối tính năng tiếp theo giống như việc đặt câu hỏi. A có bằng B không ? CV có lớn hơn PV không ? Đã đến lúc để so sánh những con số lượng !
So sánh thực sự là một cái gì đó đã xảy ra trong nhiều khối mà chúng tôi đã trình làng. Lấy ví dụ khối OR so sánh hai đầu vào kiểu “ boolean ”. Nếu tổng của chúng bằng 1, đầu ra sẽ được “ set ” .
Giờ đây, tất cả chúng ta không chỉ hoàn toàn có thể so sánh những kiểu tài liệu boolean trong FBD. Trên thực tiễn, tất cả chúng ta hoàn toàn có thể so sánh toàn bộ những số thực và hầu hết những kiểu tài liệu. Các khối này không chỉ tiện lợi, tôi cũng sẽ hứa với bạn rằng chúng là thứ mà bạn sẽ sử dụng rất nhiều .
Về cơ bản, toàn bộ những khối so sánh đều có hai hoặc nhiều nguồn vào và một đầu ra. Các nguồn vào hoàn toàn có thể sử dụng bất kể kiểu tài liệu cơ bản nào và đầu ra là kiểu tài liệu boolean. Bạn phải cẩn trọng khi so sánh những kiểu tài liệu, vì nó hoàn toàn có thể hơi phức tạp .
Hãy khởi đầu với khối so sánh cơ bản tiên phong :

Khối binhg đẳng (=)

Khối hàm bình đẳng được sử dụng để xem liệu hai biến có bằng nhau hay không. Nếu vậy, đầu ra sẽ được thiết lập. Tôi thích nghĩ về khối khi đặt câu hỏi này: 

IN1 có bằng IN2 không ?
Mặc dù khối này có vẻ như đơn thuần, nhưng bạn phải cẩn trọng một chút ít với loại tài liệu bạn so sánh ở đây. So sánh số nguyên với khối này có lẽ rằng là kiểu tài liệu bạn sẽ sử dụng nhiều nhất. Giả sử bạn muốn đặt đầu ra khi máy ở bước 12. Khi đó IN1 sẽ là biến bước và IN2 sẽ là 12 .
Có ba dấu chấm giữa hai nguồn vào để minh họa rằng khối này hoàn toàn có thể nhận nhiều hơn hai nguồn vào. Để đầu ra được “ set ”, toàn bộ những nguồn vào phải bằng nhau. Chức năng này được miêu tả như thế này bằng cách sử dụng structured text :
OUT : = IN1 = IN2 = … = INn

khoi chuc nang trong fbd

Khối tính năng bình đẳng
Tuy nhiên, việc so sánh những kiểu tài liệu khác bằng nhau hoàn toàn có thể gây ra một số ít yếu tố. Nếu bạn nỗ lực sử dụng bình đẳng để so sánh một giá trị analog ( kiểu tài liệu thực ) với một kiểu tài liệu thực khác, bạn sẽ thấy rằng rất khó để chúng hoàn toàn có thể bằng nhau .
Đối với khối này để thiết lập đầu ra thì cần phải nhu yếu hai nguồn vào phải đúng chuẩn bằng nhau. Hãy nhớ rằng kiểu tài liệu thực là số dấu phẩy động. Bạn hoàn toàn có thể muốn điều gì đó xảy ra khi nhiệt độ lên tới 80 độ. Nhưng nếu bạn sử dụng số thực ở đây, nhiệt độ đúng chuẩn phải bằng 80,0 độ không được sai một li .
Đối với loại so sánh này, tốt hơn là sử dụng phối hợp những khối so sánh. Bằng cách đó, bạn hoàn toàn có thể so sánh nó với một loạt những số chứ không chỉ một .

Khối bất bình đẳng (<>)

Nhưng nếu bạn muốn kiểm tra xem một số con số không bằng nhau thì sao? Tất nhiên bạn chỉ có thể phủ định đầu ra của khối bình đẳng. Nhưng điều đó sẽ khá khó hiểu. Và tại sao phải làm điều đó khi có một khối chức năng để thực hiện chính xác điều đó.

Khối hoạt động giải trí theo cách tựa như như trước nhưng kiểm tra sự bất bình đẳng thay vì bình đẳng. Câu hỏi để ghi nhớ tính năng của khối này là :
| IN1 KHÔNG bằng IN2 ?
Nếu vậy, đầu ra sẽ được “ set ”. Nhưng chỉ miễn là chúng không bằng nhau. Ngay sau khi những nguồn vào bằng nhau, đầu ra sẽ bị tắt .

khoi chuc nang trong fbd

Khối công dụng bất bình đẳng
Đối với ai đã quen thuộc với ngôn ngữ structured text bạn sẽ biết hình tượng cho bất đẳng thức. Nó tương tự như như những gì trong nhiều ngôn ngữ lập trình được ghi chú như thế này : “ ! = “. Nhưng trong lập trình PLC bất đẳng thức được kí hiệu là “ < > ” .
Lưu ý rằng khối tính năng này chỉ nhận hai nguồn vào .

Khối ít hơn (<)

Nếu bạn còn nhớ trước đây chúng ta gặp vấn đề với việc so sánh các kiểu dữ liệu thực với hàm bình đẳng. Khối này và khối tiếp theo có thể là giải pháp cho điều đó. Bởi vì với khối này, chúng ta có thể kiểm tra xem một biến có nằm trong một giới hạn số hay không.

Chính thức khối này được gọi là chuỗi tăng dần. Hãy nghĩ về nó như bằng câu hỏi :

| IN1 có nhỏ hơn IN2 không?

Về cơ bản, nó kiểm tra xem giá trị của nguồn vào tiên phong có ít hơn ( nhỏ hơn ) so với giá trị của nguồn vào thứ hai hay không. Khối hoạt động giải trí rất tốt với những số thực vì bạn hoàn toàn có thể thuận tiện kiểm tra nhiệt độ phòng có nhỏ hơn 80.5 độ hay không .

khoi chuc nang trong fbd

Khối công dụng Ít hơn
Có một nguyên do khiến tên chính thức của khối này chuỗi tăng theo trình tự. Cũng giống như khối bình đẳng, bạn hoàn toàn có thể lan rộng ra khối này với nhiều hơn 2 nguồn vào. Khi làm điều đó, cái tên chuỗi tăng theo trình tự sẽ có nhiều ý nghĩa hơn .
Bởi vì với nhiều nguồn vào, giá trị của những nguồn vào đó phải tạo nên một chuỗi giá trị ngày càng tăng. In1 phải nhỏ hơn IN2, tức là phải nhỏ hơn IN3, v.v. Hàm hoàn toàn có thể được diễn đạt bằng structured text như sau :
OUT : = ( IN1 < IN2 ) AND ( IN2 < IN3 ) AND … ( INn-1 < INn )

Khối lớn hơn (>)

Khi bạn hoàn toàn có thể thực thi một chuỗi tăng dần, tất yếu bạn cũng hoàn toàn có thể tạo một chuỗi giảm dần. Tóm lại, bạn cũng hoàn toàn có thể kiểm tra xem một số ít giá trị có lớn hơn một giá trị khác hay không. Câu hỏi mà khối này đặt ra là :

|IN1 có lớn hơn IN2 không?

Nhưng cũng giống như khối trước, khối này cũng hoàn toàn có thể nhận nhiều hơn hai nguồn vào. Đó là nguyên do tại sao khối này cũng là một chuỗi số, lần này là một chuỗi giảm dần để thiết lập đầu ra .

khoi chuc nang trong fbd

Khối công dụng lớn hơn
Mỗi đầu vào sau phải nhỏ hơn đầu vào trước, do đó tạo ra một chuỗi giảm dần. Nếu khối này được viết bằng ngôn ngữ structured text thì tính năng của khối lệnh lớn hơn trông giống như sau :
OUT : = ( IN1 > IN2 ) AND ( IN2 > IN3 ) AND … ( INn-1 > INn )
Sự tích hợp của những khối lớn hơn và nhỏ hơn cũng hoàn toàn có thể rất có ích. Khi nói những giá trị analog, bạn thường muốn kiểm tra xem chúng có nằm trong một khoanh vùng phạm vi nhất định hay không .
Ví dụ : Nếu nhiệt độ từ 90 đến 100 độ. Ở đây bạn hoàn toàn có thể kiểm tra xem nhiệt độ có lớn hơn 90 hay không và sau đó kiểm tra xem nó có nhỏ hơn 100 hay không .
Kết hợp những khối so sánh được sử dụng thoáng rộng. Bạn thường sẽ thấy khối bình đẳng được phối hợp với nhỏ hơn hoặc lớn hơn. Mặc dù đây chỉ là sự phối hợp của những khối, chúng thường có những khối tính năng riêng :

  • Ít hơn hoặc bằng
  • Lớn hơn hoặc bằng

Khối chức năng lựa chọn

So sánh hai hoặc nhiều giá trị là hữu ích. Nhưng đôi khi, thay vì so sánh, bạn sẽ phải lựa chọn giữa các giá trị. Các khối chức năng lựa chọn sẽ giúp bạn làm điều đó. 

Điểm chung của chúng là chúng cung ứng cho bạn tùy chọn chọn giá trị. Có hoặc không có điều kiện kèm theo. Bản chất của những khối này thực sự chỉ là một phép gán. Bạn sẽ chọn một trong những nguồn vào và gán nó cho đầu ra của những khối này .

Khối di chuyển

Khối lựa chọn đầu tiên và đơn giản nhất là khối chức năng di chuyển. Trên thực tế, bạn đã từng thấy khối này trước đây. Hoặc ít nhất là một khối có cùng chức năng. Khối chức năng gán.

Những gì khối này làm là nó gán giá trị nguồn vào cho đầu ra của nó. Và đoán xem. Khối này triển khai đúng chuẩn những điều tương tự như. Bạn hoàn toàn có thể vướng mắc tại sao FBD phân phối hai khối có cùng công dụng. Chúng cũng tương tự như nhau, nhưng có một điểm độc lạ quan trọng .
Trong khi khối này hoàn toàn có thể được sử dụng với bất kể kiểu tài liệu nào, khối gán chỉ hoàn toàn có thể được sử dụng với kiểu tài liệu boolean. Với khối vận động và di chuyển, bạn hoàn toàn có thể chuyển dời bất kể kiểu tài liệu nào sang một kiểu tài liệu bất kể khác .
Đối với bạn thích structured text, việc trình diễn khối trông đơn thuần như :
OUT : = IN
Trong FBD, khối chuyển dời trông như thế này :

khoi chuc nang trong fbd

Khối tính năng chuyển dời

Như bạn có thể thấy khối này chỉ có một đầu vào và một đầu ra. Khái niệm lựa chọn không thực sự áp dụng cho khối này, vì bạn chỉ có một giá trị để chọn. Mặc dù vậy, nhiều khi bạn sẽ có thể thêm nhiều đầu ra hơn vào khối di chuyển. Do đó, một khối di chuyển có thể được sử dụng để di chuyển một giá trị đến những nơi khác nhau.

Khi tôi nói rằng khối này hoạt động giải trí với bất kể kiểu tài liệu nào, tôi thực sự có ý đó. Bạn hoàn toàn có thể chuyển dời những giá trị từ bất kể kiểu tài liệu nào sang một kiểu tài liệu bất kể khác. Bạn thậm chí còn không cần phải đặt đầu ra có cùng một kiểu tài liệu với nguồn vào. Bạn hoàn toàn có thể tự do vận động và di chuyển, ví dụ : một số nguyên thành thực v.v.

Điều này làm cho khối di chuyển hơi phức tạp. Bạn phải thực sự cẩn thận khi chuyển từ kiểu dữ liệu này sang kiểu dữ liệu khác. Đối với người mới bắt đầu, tôi thực sự khuyên bạn chỉ nên di chuyển các giá trị sang cùng kiểu dữ liệu với đầu vào. Trên thực tế, tôi hiếm khi khuyên bạn nên trộn các kiểu dữ liệu ngay cả đối với các chuyên gia. Nó chỉ làm cho chương trình PLC của bạn trở nên phức tạp.

Lựa chọn nhị phân (SEL)

Lựa chọn nhị phân kéo tất cả chúng ta đến gần hơn một chút ít với khái niệm lựa chọn. Nó cung ứng cho bạn thời cơ để chọn giữa 2 giá trị để sau đó gán cho một đầu ra .
Tên của khối cho biết rằng bạn có nguồn vào nhị phân ( boolean ) hoàn toàn có thể chọn 1 trong 2 giá trị nguồn vào. Do đó khối này có 3 nguồn vào. Một điều kiện kèm theo ( G ) và hai giá trị ( IN0, IN1 ). Điều kiện có kiểu tài liệu boolean và được sử dụng để chọn giữa hai giá trị .

khoi chuc nang trong fbd

Khối công dụng lựa chọn nhị phân ( SEL )
Bạn rất hoàn toàn có thể sẽ nhận thấy rằng những tên đầu vào hơi khác so với những khối tính năng khác. Điều đó chỉ để làm cho khối dễ hiểu hơn. Vì điều kiện kèm theo ( G ) hoàn toàn có thể nhận hai giá trị khác nhau là 0 và 1, nên gọi những nguồn vào IN0 và IN1 là hài hòa và hợp lý .
Nếu G là 0, đầu vào IN0 sẽ được chọn. Và nếu G là 1 thì nguồn vào IN1 sẽ được chọn. Giá trị của nguồn vào đã chọn sau đó sẽ được gán cho đầu ra ( OUT ) .
Một lần nữa, công dụng này hoàn toàn có thể được trình diễn trong structured text :
IF G = 0 THEN
OUT : = IN0
ELSIF G = 1 THEN
OUT : = IN1
END_IF ;

Bộ ghép kênh mở rộng

Trong một số ít trường hợp, bạn thậm chí còn hoàn toàn có thể có nhiều hơn 2 giá trị mà bạn muốn chọn. Đây là lí do bộ ghép kênh lan rộng ra được sử dụng. Bạn thậm chí còn hoàn toàn có thể thấy từ ghép kênh quen thuộc nếu bạn biết một vài thiết bị điện tử kỹ thuật số. Và khối này có cùng tính năng – để chọn một trong nhiều nguồn vào .

khoi chuc nang trong fbd

Khối công dụng Bộ ghép kênh lan rộng ra ( MUX )

Không giống như bộ chọn nhị phân, đầu vào điều kiện, có tên là K trong khối này, không chỉ có thể nhận một kiểu dữ liệu boolean. Trên thực tế, nó có thể nhận bất kỳ kiểu dữ liệu cơ bản nào. Mặc dù kiểu dữ liệu duy nhất thực sự có ý nghĩa để sử dụng ở đây là số nguyên.

Vì bạn phải chọn giữa những nguồn vào từ IN0 đến Inn nó chỉ có ý nghĩa để đưa điều kiện kèm theo K một số lượng tổng quát. Trên trong thực tiễn, nó chỉ hợp lệ để cho K 1 số ít từ 0 đến n. Khái niệm về hàm hoàn toàn có thể giống như sau :
OUT : = INK
Trong đó K phải nằm trong khoanh vùng phạm vi 0 … n, với n là số lượng nguồn vào .

Hàm cuực tiểu có thể mở rộng (MIN)

Cho đến nay, bạn đã thấy cách chọn giá trị bằng cách sử dụng một nguồn vào có điều kiện kèm theo. Đầu vào đó hoàn toàn có thể là nhị phân hoặc số nguyên tùy thuộc vào số lượng nguồn vào mà bạn phải chọn. Nhưng đôi lúc bạn sẽ muốn chọn một giá trị tùy thuộc vào chính những giá trị đó. Có thể là bạn muốn chọn giá trị cao nhất hoặc thấp nhất trong số những biến khác nhau. Với hai khối công dụng tiếp theo, bạn hoàn toàn có thể thực thi đúng chuẩn điều đó .

khoi chuc nang trong fbd

Khối tính năng tối thiểu hoàn toàn có thể lan rộng ra ( MIN )

Việc chọn biến có giá trị nhỏ nhất là điều mà tôi có thể đảm bảo rằng bạn sẽ sử dụng vào một lúc nào đó. Tên chính thức của khối chức năng nàytối thiểu có thể mở rộng, nhưng thường chỉ được gọi là tối thiểu hoặc MIN. Nó được gọi là có thể mở rộng vì bạn có thể thêm bất kỳ số lượng đầu vào nào trên khối. Tất cả các đầu vào có thể lấy bất kỳ kiểu dữ liệu cơ bản nào và chúng thậm chí có thể thuộc các kiểu dữ liệu khác nhau trên cùng một khối.

OUT : = MIN ( IN1, IN2 )
Những gì sẽ được gán cho đầu ra của khối luôn là giá trị của đầu vào nhỏ nhất. Hay nói cách khác – nguồn vào có giá trị nhỏ nhất sẽ được chọn .

Hàm cực đại có thể mở rộng (MAX)

Khi bạn có một khối để tìm giá trị nhỏ nhất, tất yếu bạn cũng sẽ có một khối để tìm giá trị lớn nhất. FBD cũng cung ứng một khối tính năng tiêu chuẩn để làm điều đó. Nó hoạt động giải trí giống hệt như hàm cực tiểu, nhưng chọn biến có giá trị lớn nhất và gán giá trị đó cho đầu ra của nó. Ngoài ra, khối này nhận bất kể kiểu tài liệu cơ bản nào làm đầu vào và đầu ra .

khoi chuc nang trong fbd

Khối tính năng tối đa hoàn toàn có thể lan rộng ra ( MAX )
Với cả 2 khối này, bạn nên biết bạn sử dụng kiểu tài liệu nào ở đầu ra. Nếu bạn đang cố gắng nỗ lực tìm giá trị lớn nhất của hai kiểu tài liệu thực, ví dụ : 80,46 và 206,95 và bạn sử dụng số nguyên làm đầu ra, đầu ra sẽ đơn thuần là 206 .
OUT : = MAX ( IN1, IN2 )
Một tính năng mưu trí với hai khối này là bạn cũng hoàn toàn có thể so sánh những kiểu tài liệu ngày và giờ. Giả sử bạn có rất nhiều dấu ngày tháng trong chương trình PLC của mình và bạn muốn tìm cái mới nhất. Với tính năng tối đa, bạn luôn hoàn toàn có thể tìm thấy ngày gần đây nhất .

Hàm giới hạn (Limit)

Bằng cách tích hợp hai khối tính năng trước đó, tất cả chúng ta hoàn toàn có thể tạo ra một công dụng trọn vẹn mới. Chức năng này không tương quan nhiều đến lựa chọn, mà là về số lượng giới hạn. Đó là nguyên do tại sao khối tính năng này được gọi là hàm số lượng giới hạn. Thông thường, bạn sẽ muốn đặt số lượng giới hạn cho một khoanh vùng phạm vi giá trị trong chương trình PLC .

khoi chuc nang trong fbd

Khối tính năng số lượng giới hạn ( LIMIT )
Chức năng hàm số lượng giới hạn thực sự chỉ được tạo thành bởi những hàm cực tiểu và cực lớn. Điều này hoàn toàn có thể thấy nếu tất cả chúng ta nhìn vào phần thân của khối công dụng :
OUT : = MIN ( MAX ( IN, MN ), MX )
Điều thực sự xảy ra ở đây là bạn đặt số lượng giới hạn cực tiểu và cực lớn cho bất kể biến nào bạn đặt ở đầu vào ( IN ). Giá trị cực tiểu và cực lớn được đặt ở đầu vào ( MIN và MAX ) và cả ba nguồn vào hoàn toàn có thể nhận bất kể kiểu tài liệu cơ bản nào .

Tạo các khối chức năng của riêng bạn

Tất cả những khối tính năng trên hầu hết là những khối được diễn đạt trong IEC 61131 – 3, tiêu chuẩn chính thức cho những ngôn ngữ lập trình PLC. Có nhiều khối công dụng khác được phân phối trong FBD. Trên trong thực tiễn, hầu hết có mọi khối tính năng cho mọi hoạt động giải trí mà bạn hoàn toàn có thể thực thi trong lập trình PLC. Trong số đó có :

  • Khối hàm số học
  • Các khối tính năng di dời bit
  • Các khối tính năng chuỗi ký tự
  • Các khối công dụng quy đổi
  • Khối tính năng tiếp xúc

Và nhiều thứ khác nữa …

Tôi thực sự khuyên bạn nên bắt đầu bằng cách vọc vạch các automation IDE  như TIA Portal hoặc Codesys. Hãy thử tạo các chương trình PLC đơn giản bằng cách sử dụng FBD. Tôi thấy đó là cách tốt nhất để tìm hiểu về các khối chức năng mới.

Vấn đề ở đây là một khối chức năng đại diện cho một chức năng. Bên trong thân khối chức năng, bạn sẽ thấy rằng các chức năng được mô tả bằng structured text, ladder logic hoặc ngôn ngữ lập trình PLC khác. Có rất nhiều khối tiêu chuẩn cung cấp cho bạn rất nhiều chức năng khác nhau. Nhưng đôi khi không đủ.

Đây là nguyên do tại sao bạn sẽ cần phải kiến thiết xây dựng những khối công dụng của riêng mình. Trên thực tiễn, đây là một trong những nền tảng trong lập trình PLC có cấu trúc .

Trên đây là tổng quan về ngôn ngữ lập trình PLC FBD. Hy vọng  những thông tin mà B2bmart.vn tổng hợp sẽ giúp  bạn đọc hiểu rõ về ngôn ngữ lập trình PLC này 

Source: https://vh2.com.vn
Category : Tin Học