25 Câu hỏi phỏng vấn thường gặp về PLC (Phần nâng cao)

0
1215

Tiếp nối chuỗi bài 25 Câu hỏi phỏng vấn thường gặp về PLC, ở bài này, itudong sẽ cung cấp 10 câu hỏi nâng cao liên quan PLC để các bạn học tập nhé.

Các câu hỏi cơ bản các bạn xem ở đây nhé:

CÁC CÂU HỎI NÂNG CAO (10 câu)

1Nêu sự khác nhau giữa PLC và DCS?

Đây là một vấn đề thường xuyên được đặt ra trong các buổi phỏng vấn tuyển dụng. Để trả lời câu hỏi này, đầu tiên các bạn phải nắm rõ khái niệm về hệ thống PLC và hệ thống DCS. Sau đó, sự khác nhau giữa 2 hệ thống này được tóm tắt như sau:

PLC: Bộ điều khiển khả trình (Programmable Logic Controller) là thiết bị bao gồm bộ xử lý và hệ thống các ngõ vào – ra, trong đó bao gồm các module cơ bản, module giao tiếp… Sau đó sẽ dùng hệ thống SCADA/HMI để hiển thị và giao tiếp với người dùng. Thông thường, hệ thống PLC sẽ không có trạm lưu cơ sở dữ liệu trung tâm. Bộ điều khiển PLC phù hợp cho các ứng dụng cần tốc độ xử lý nhanh, tập trung xử lý ngõ vào ra, ít vòng lặp điều khiển. Ví dụ ngành sản xuất điện tử, ô tô…

DCS:  Hệ thống điều khiển phân tán (DCS) tương tự như PLC, tuy nhiên DCS chứa nhiều bộ điều khiển tự động được phân phối trong toàn bộ hệ thống chứ không tập trung duy nhất về một thiết bị. Do đó, nếu một bộ điều khiển bị lỗi, toàn bộ nhà máy sẽ không bị ảnh hưởng. Một hệ thống DCS sẽ có trạm giám sát dùng để vận hành, trạm kỹ thuật dùng để chỉnh sửa hệ thống và trạm lưu giá trị lịch sử đi kèm với nhau. Hệ thống DCS do có bộ điều khiển được phân tán, chia hệ thống thành từng cụm nên phù hợp các ứng dụng có nhiều vòng lặp điều khiển như là ngành dầu khí, nhà máy điện…

2Thế nào là điều khiển dự phòng?

Dự phòng (Redundant) là một tính năng vô cùng cần thiết đối với các hệ thống lớn hoặc những hệ thống có tính quan trọng. Đặc biệt trong các hệ thống DCS, cấu trúc dự phòng được xem như là một yếu tố bắt buộc. Hiểu nôm na, chúng ta sẽ có một bộ điều khiển luôn túc trực trong trạng thái sẵn sàng kế bên bộ điều khiển chính. Khi phát hiện bộ điều khiển chính bị lỗi hoặc lý do gì đó không hoạt động được thì bộ dự phòng này sẽ tự động nhảy vào thay thế cho bộ chính. Như vậy hệ thống của chúng ta sẽ đảm bảo hoạt động liên tục không bị gián đoạn khi thiết bị điều khiển bị lỗi. Bộ điều khiển chính được gọi là Master, bộ điều khiển dự phòng được gọi là Standby.

Mở rộng ra, tính năng dự phòng không nhất thiết chỉ dùng cho các hệ thống điều khiển (DCS, PLC) mà còn có thể dùng cho tất cả những thiết bị khác nếu cần thiết. Ví dụ trạm bơm tại một vị trí quan trọng. Khi phát hiện tín hiệu bơm chính bị hỏng thì sẽ có bơm dự phòng nhảy vào thay thế để không làm gián đoạn đến quy trình.

3Thế nào là ép buộc (forcing) tín hiệu I/O?

Thông thường, module I/O sẽ đọc, ghi các tín hiệu bên ngoài và đưa vào PLC. Có thể tín hiệu này là của cảm biến, của valve, của motor… Mỗi chu kỳ quét thì bộ điều khiển sẽ cập nhật tín hiệu I/O một lần. Do đó, để thay đổi trạng thái các I/O mà không cần tác động phần cơ khí thì các kỹ sư sẽ thực hiện thao tác ép buộc tín hiệu I/O. Việc ép buộc tín hiệu khác với mô phỏng thông thường đó là ngoài việc thay đổi giá trị, chúng ta còn ngăn không cho giá trị này thay đổi trong quá trình thực hiện logic.

Force tín hiệu thông thường chỉ dùng cho việc kiểm tra hoạt động trong hệ thống hoặc khi có thiết bị đang hư hỏng nhưng chưa thay thế được. Khi giả lập tín hiệu, các bạn nên cân nhắc và tìm hiểu kỹ trước khi thực hiện vì có thể gây ảnh hưởng đến thiết bị và con người. Đặc biệt là khi force các tín hiệu bảo vệ an toàn.

4Phân biệt Function Block và Function Code

Khi lập trình các chương trình PLC, đặc biệt là PLC của hãng Siemens, các bạn sẽ gặp nhiều khái niệm Function block (FB) và Function code (FC). Đây là hai loại chương trình con khác nhau được mô tả trong tiêu chuẩn IEC 61131-3. Chúng có chức năng rút gọn và tối ưu cho việc lập trình, đặc biệt với các đoạn chương trình được sử dụng lặp đi lặp lại. Cả FB và FC đều có một tính năng quan trọng là khả năng chứa các tham số đầu vào / đầu ra. Điều này cho phép một thuật toán giống nhau có thể được sử dụng nhiều lần, mỗi lần các biến có giá trị khác nhau.

Điểm khác nhau của hai khối này đó là FC sẽ sử dụng địa chỉ của tham số đã cho để đọc và ghi trực tiếp vào các tham số đó. Trong khi khối FB sẽ yêu cầu tạo khối dữ liệu (DB) riêng và sao chép các tham số này vào một khối dữ liệu được liên kết đó. Khi hoạt động, FB sẽ xử lý nội bộ các biến của DB đó, không sợ bị xung đột địa chỉ ô nhớ như FC. Ngoài ra, FC chỉ có một ngõ ra chứa kết quả trả về duy nhất.

5Giải thích sự khác nhau giữa khối instance data và khối global data (hay còn gọi là shared data)

Như tên gọi của nó, intance data là khối dữ liệu dành riêng cho khối chương trình con FB khi được gọi ra trong chương trình chính. Còn global data là khối dữ liệu toàn cục, được khai báo như là bộ nhớ dùng chung độc lập, để các bên có thể truy cập và xử lý ô nhớ một cách dễ dàng. Instance DB có cấu trúc được cố định theo cấu trúc tham số của FB. Trong khi cấu trúc của global DB có thể được khai báo tùy ý trong khối DB.

Ví dụ trong một chương trình, khối dữ liệu cho các động cơ sẽ là instance DB do cần cấu trúc của FB động cơ. Và mỗi động cơ sẽ có vùng dữ liệu riêng để xử lý trong quá trình hoạt động. Trong khi đó, dữ liệu do người vận hành nhập từ màn hình HMI sẽ là khối dữ liệu global DB để các đoạn chương trình khác có thể truy cập lấy thông số một cách dễ dàng.

Sự khác biệt giữa 2 khối dữ liệu này được mô tả chi tiết như sau:

Khối Global dataKhối Instance data
Tất cả block (FBs, FCs and OBs) có thể truy cập vào bộ nhớ global data trong suốt chương trìnhKhối Instance DB là bộ nhớ chỉ dành riêng cho FB khai báo nó.
Bạn có thể tạo global DB độc lập với các khối khác trong chương trình.Intance DB chỉ được tạo ra khi FB liên kết được gọi ra trong chương trình.
Không cho phép tạo biến cục bộ tĩnh (static local).Biến cục bộ tĩnh có thể được khai báo trong FB. Dữ liệu của biến cục bộ tĩnh được lưu trữ sẽ không bị mất khi FB chạy xong và được giữ lại trong nhiều chu kỳ cho đến khi nó bị ghi đè.
Thêm, xóa, hoặc chỉnh sửa tham số được thực hiện trong khối dữ liệu DB.Thêm, xóa hoặc chỉnh sửa tham số được thực hiện trong khối chương trình con FB.
Giá trị ban đầu và giá trị hiện tại có thể được thay đổi trong global DB.Giá trị ban đầu và giá trị hiện tại không thể thay đổi được trong instance DB.

 

6Phân biệt các loại bộ nhớ trong PLC?

Trong hệ thống PLC, sẽ có 3 loại bộ nhớ Load Memory, Work Memory và Retain Memory.

  • Load Memory: là bộ nhớ chứa toàn bộ dữ liệu chương trình của hệ thống. Bao gồm cấu hình phần cứng, nội dung phần mềm, data block…
  • Work Memory: là bộ nhớ chứa các khối block, vùng dữ liệu mà PLC sẽ tác động trong quá trình hoạt động. Khi làm việc xong thì Work memory sẽ giải phóng các ô nhớ này để chứa các đối tượng khác trong quá trình làm việc tiếp theo.
  • Retain Memory: là vùng nhớ lưu trữ thông số của các tag khi PLC restart hoặc mất nguồn.

Chi tiết các bộ nhớ này, các bạn đọc bài viết tại đây:

7Phân biệt Compile error  và Runtime error?

Compile error: đây là là lỗi biên dịch. Tức là lỗi bị xảy ra khi bạn đang lập trình, trình biên dịch sẽ kiểm tra một số lỗi như cú pháp, tên biến, kiểu dữ liệu, …. Lỗi này thông thường sẽ được phát hiện và cảnh báo trước khi chương trình thật sự chạy. Ví dụ ở lệnh If mà các bạn gõ nhầm thành Iff thì chương trình sẽ cảnh báo lỗi để sửa lại.

Runtime error: đây là lỗi khi chạy chương trình. Các chương trình lập trình không kiểm soát được các lỗi này, mà nó chỉ xuất hiện trong quá trình chạy hệ thống. Ví dụ với chương trình điều khiển động cơ. Các kỹ sư lập trình rất tốt và điều khiển bình thường. Trong quá trình vận hành, người vận hành lỡ tay nhập giá trị tốc độ động cơ là -100 vòng/phút dẫn đến hệ thống bị lỗi và có thể gây treo bộ điều khiển.

Để khắc phục các lỗi này, thông thường các chương trình lập trình sẽ giúp bạn kiểm tra compile error và cảnh báo để sửa chữa dễ dàng. Tuy nhiên, đối với runtime error, người lập trình phải tự kiểm soát và tạo các hàm kiểm tra lỗi tương ứng với hệ thống của mình đang lập trình. Mục đích để cảnh báo lỗi cho người vận hành biết và chỉnh lại. Như ví dụ ở trên, chỉ cần thêm lệnh xem xét nếu tốc độ là số âm thì hiển thị cảnh báo người dùng và yêu cầu nhập lại chứ chưa đưa vào khối lệnh điều khiển động cơ.

8Thế nào là I/O phân tán (Remote I/O hay còn gọi là Distributed I/O) ?

Khái niệm Remote I/O và Distributed I/O trước đây là tương tự như nhau. Tuy nhiên do sự phát triển không ngừng của ngành tự động hóa trên thế giới nên sẽ có một chút phân cấp nhỏ. Mình sẽ nói rõ hơn phía dưới.

I/O phân tán là các module I/O được lắp đặt ở xa, không nằm chung với bộ điều khiển trung tâm như các module I/O truyền thống. Mục đích là nhằm khắc phục khoảng cách địa lý đối với các thiết bị ở xa. Các bạn hình dung, trước đây, với 100 thiết bị thì chúng ta sẽ kéo 100 sợi dây để về PLC để điều khiển. Nếu thiết bị ở gần thì không sao, nhưng nếu thiết bị cách 1000m thì 100 sợi là khối lượng quá lớn và tín hiệu dễ bị suy hao. Với bộ I/O phân tán, chúng ta sẽ lắp module I/O kế bên 100 thiết bị này. Sau đó chỉ cần kết nối truyền thông từ I/O phân tán với PLC là có thể điều khiển dễ dàng.

Như mình nói ở trên, remote I/O và distributed I/O có sự khác biệt nhỏ. Cả 2 đều là I/O phân tán. Tuy nhiên, ở trạm I/O phân tán, Distributed I/O sẽ có bộ điều khiển xử lý tín hiệu tại vị trí. Còn remote I/O chỉ đơn thuần tổng hợp gửi tín hiệu về bộ điều khiển trung tâm.

9Mô tả cấu trúc master/slave?

Cấu trúc master/slave là kiểu cấu trúc một thiết bị giao tiếp với một hoặc nhiều thiết bị. Thiết bị master sẽ đóng vai trò chủ động và thiết bị slave đóng vai trò bị động. Hy nói cách khác, thiết bị đóng vai trò master có nhiệm vụ đi hỏi các thiết bị slave. Mỗi thiết bị slave sẽ có một địa chỉ nhất định. Các thiết bị slave chỉ được trả lời và cung cấp dữ liệu cho master khi được hỏi đến địa chỉ của mình. Thông thường, bộ điều khiển (PLC) sẽ đóng vai trò master còn các thiết bị đo lường sẽ đóng vai trò slave.

10Mô tả cấu trúc server/client?

Tương tự, cấu trúc client-server cũng giống như master-slave. Ở đây, máy khách (client) là người yêu cầu dữ liệu và máy chủ (server) sẽ phải trả lời máy khách để chuyển dữ liệu. Bình thường, máy chủ sẽ ngồi đợi máy khách yêu cầu dữ liệu. Sau khi nhận được yêu cầu, máy chủ sẽ phản hồi thông tin tương ứng. Sau khi yêu cầu được giải đáp, máy chủ sẽ ngồi đợi tiếp cho đến khi có yêu cầu tiếp theo.

Ở câu hỏi phía trên, nếu ở góc nhìn master/slave thì PLC sẽ là master và thiết bị đo lường sẽ là slave. Tuy nhiên, nếu nhìn theo góc nhìn server/client thì PLC sẽ đóng vai trò client và thiết bị đo lường sẽ đóng vai trò server. PLC sẽ yêu cầu dữ liệu và thiết bị đo lường có nhiệm vụ phản hồi thông tin cho PLC.

Hai cấu trúc master/slave và server/client là cấu trúc cơ bản và thông dụng nhất. Trong mạng truyền thông công nghiệp, các hệ thống, thiết bị gửi dữ liệu theo các chiều liên tục với nhau. Do đó, nếu các bạn không nắm rõ quy luật trong “cuộc chơi” này thì việc kiểm soát và phân tích dữ liệu rất khó khăn.

( Th.S Nguyễn Trọng Nhân – itudong.com)


P/s: Nếu các bạn có câu hỏi hay cần giải đáp thì comment phía dưới nhé. Mình sẽ trả lời cho các bạn.

 

 

BÌNH LUẬN

Please enter your comment!
Please enter your name here