Xem thêm

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

Huy Erick
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...

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ẽ giới thiệu cho các bạn một số nguyên tắc cơ bản của lập trình FBD và các khối chức năng.

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

Từ phổ thông, các bạn cũng 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 chức năng của PLC không có gì khác biệt so với nó. Những gì ngôn ngữ FBD cung cấp là một cách để đặt các hàm được viết bằng nhiều dòng mã vào chung trong các hộp (block).

Qua đó chúng ta có thể dễ dàng kết nối 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 chức năng hay FBD được PLCOpen mô tả trong tiêu chuẩn IEC 61131-3. Hầu hết các chương trình PLC được viết với một số lượng FBD. Bởi vì, mặc dù bạn có thể viết các 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 kết nối các chức năng đó.

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

Trong FBD tất cả các chức năng được đưa vào các khối chức năng. Tất cả chúng đều có một hoặc nhiều đầu 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 các đầu vào và đầu ra của nó.

Dưới đây là cách một khối chức năng đơn giản có thể trông như thế nào:

khoi chuc nang trong fbd

Hình 1: Mô tả khối chức năng trong FBD

Khối chức năng được minh họa bằng một hộp (box). Ở giữa hộp thường là một biểu tượng hoặc một câu lệnh. Biểu tượng này thể hiện chức năng thực tế của khối chức nă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

Hình 2: Kết hợp các khối chức năng để tạo một sơ đồ khối chức nă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 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ổ hợp. Logic là dạng thuật toán đơn giản nhất mà thông qua các trạng thái của đầu vào của nó có thể thiết lập một số đầ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 có thể lấy ra một loạt các hàm logic khác.

Toán tử Logic Or

Đầu tiên chúng tôi muốn giới thiệu với bạn về khối hàm OR. Nó có 2 đầu vào, 1 đầu ra và hoạt động giống như một cổng OR. Nếu một trong các đầu 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

Hình 3: Khối chức năng đại diện cho toán tử logic OR trong FBD

Có thể bạn đã thấy biểu tượng cho toán tử logic OR là >= 1. Về cơ bản nó là điều kiện cho đầu ra. Nếu tổng của hai đầu vào lớn hơn hoặc bằng 1, đầu ra trở thành true.

Cũng giống như tất cả các phép toán logic bit khác, false được biểu diễn bằng 0 và true bằng 1. Điều này 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 liên kết đầu ra của một khối chức năng đến đầu vào của một khối khác. Nhưng thỉnh thoảng bạn muốn dùng đầu ra đó để điều khiển 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ì dĩ nhiên bạn cần dùng khối chức năng gán. Các khối gán hoạt động bằng cách gán đầu vào của nó vào một vị trí trong bộ nhớ PLC.

khoi chuc nang trong fbd

Hình 4: Khối chức năng của một hoạt động gán trong FBD

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ó chức năng tương tự như một cuộn dây trong logic bậc thang.

Toán tử Logic AND

Khối chức năng tiếp theo chúng tôi muốn giới thiệu với các bạn đó là khối chức năng AND. Cũng giống như khối OR, đây là một trong những khối chức năng cơ bản nhất trong lập trình PLC.

Nó có 2 đầu vào và một đầu ra. Nó rất giống với hàm OR nhưng hoạt động hơi khác một chút. Thay vì một trong hai đầu vào, khối này yêu cầu cả hai đầu vào phải là một bộ đúng với đầu ra.

Nếu cả hai đầu vào đều đúng thì đầu ra cũng sẽ trở thành đúng.

khoi chuc nang trong fbd

Hình 5: Khối chức năng đại diện cho hoạt động 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 về logic bậc thang, khối chức năng AND tương đương với kết nối nối tiếp của 2 tiếp điểm trong logic bậc thang. Cả hai đều phải đúng trước khi khối đánh giá đầ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 phần mềm bạn sử dụng.

Trong một số trường hợp, bản thân nó là một khối hoàn chỉnh. Và đôi khi nó chỉ là những vòng tròn nhỏ mà bạn có thể đặt trên bất kỳ chân nào của các khối chức năng.

Hàm “NOT”, hàm “Invert RLO“ (result of logic operation) hoặc hàm gán phủ định trên thực tế hoạt động bằng cách thay đổi tín hiệu thành ngược lại.

khoi chuc nang trong fbd

Hình 6: Khối chức nă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 thị chính xác chức năng đó.

Không chỉ là đầu ra có thể được đảo ngược. Các đầu vào cũng 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ất cả các đầu vào hoặc đầu ra đều có tác dụng như nhau đối với chức 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 của khối OR. Các giá trị đầu vào trên khối OR phải lớn hơn hoặc bằng 1. Nhưng như bạn có thể thấy bên dưới, khối XOR yêu cầ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 các đầu vào lớn hơn 1.

khoi chuc nang trong fbd

Hình 7: 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 rộng rãi để 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 có thể thấy, khối chức nă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

Hình 8: Khối NAND từ khối AND phủ định trong FBD

Bảng chân trị cho khối này hoàn toà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, chức năng của khối chức năng NAND cũng có thể nhận được bằng cách phủ định các đầu vào. Giảm nhẹ đầu vào có tác dụng tương tự như phủ định đầu ra. Do đó, một khối NAND cũng có thể trông như thế này:

khoi nand tao tu 2 dau not

Hình 9: 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)

1