Tài nguyên

Đọc tài liệu SDK camera công nghiệp và chuẩn GenICam

GenICam, SFNC và các tính năng chuẩn hay dùng, cách đọc tài liệu SDK và thiết kế phần mềm ít phụ thuộc hãng.

Đọc tài liệu SDK camera công nghiệp và chuẩn GenICam
Nội dung bài viết
  1. GenICam là gì?
  2. Các tính năng SFNC hay dùng
  3. Đọc tài liệu SDK hiệu quả
  4. Thiết kế phần mềm ít phụ thuộc hãng

Mỗi hãng camera công nghiệp có SDK và tài liệu riêng, nhưng hầu hết đều tuân theo chuẩn GenICam. Hiểu chuẩn này giúp bạn đọc tài liệu của bất kỳ hãng nào nhanh hơn, và viết phần mềm ít phụ thuộc vào một hãng cụ thể.

GenICam là gì?

GenICam (Generic Interface for Cameras) là chuẩn do tổ chức EMVA quản lý, quy định cách phần mềm khám phá và điều khiển các tính năng của camera. Camera tự mô tả các tính năng của nó trong một file XML; phần mềm đọc file này để biết camera có những tham số gì, kiểu dữ liệu, giới hạn ra sao.

  • GenApi: cơ chế truy cập tính năng qua file mô tả.
  • SFNC (Standard Features Naming Convention): quy ước tên chuẩn cho các tính năng phổ biến, nên tên tham số giống nhau giữa các hãng.
  • GenTL: lớp truyền tải chuẩn, cho phép phần mềm dùng chung với nhiều loại giao tiếp (GigE Vision, USB3 Vision...).

Các tính năng SFNC hay dùng

Tên tính năngÝ nghĩa
Width, Height, OffsetX, OffsetYKích thước và vị trí vùng đọc ảnh (ROI phần cứng)
PixelFormatĐịnh dạng điểm ảnh: Mono8, Mono12, BayerRG8...
ExposureTimeThời gian phơi sáng (thường tính bằng µs)
GainĐộ khuếch đại tín hiệu
AcquisitionModeChụp liên tục hay một ảnh
TriggerMode, TriggerSource, TriggerActivationBật trigger, nguồn trigger (phần cứng/phần mềm), cạnh lên/xuống
TriggerDelayĐộ trễ từ lúc nhận trigger tới lúc phơi sáng
LineSelector, LineMode, LineSourceCấu hình các chân I/O (vào/ra, tín hiệu xuất ra)
AcquisitionFrameRateGiới hạn tốc độ khung hình

Tên có thể khác đôi chút ở camera đời cũ hoặc tính năng riêng của hãng; tài liệu của hãng luôn liệt kê đầy đủ.

Đọc tài liệu SDK hiệu quả

  1. Bắt đầu từ ví dụ mẫu đi kèm SDK (thường có C++, C#, Python): chụp một ảnh, chụp liên tục, chụp theo trigger.
  2. Dùng phần mềm xem camera của hãng để thử thay đổi tham số, quan sát kết quả, rồi mới viết code với đúng các tham số đó.
  3. Đọc mục "Programming Guide" / "Feature Reference" của dòng camera bạn dùng.
  4. Đọc phần xử lý lỗi và mất kết nối: camera mất mạng, mất ảnh (frame drop), bộ đệm đầy.
  5. Đọc phần cấu hình mạng (với GigE): IP tĩnh, jumbo frames, kích thước gói tin, băng thông.

Thiết kế phần mềm ít phụ thuộc hãng

  • Tạo một lớp trung gian (interface) như ICamera với các hàm Open, SetExposure, Grab, Close; mỗi hãng một lớp cài đặt riêng.
  • Dùng tên tính năng SFNC trong file cấu hình thay vì tên riêng của hãng khi có thể.
  • Ghi lại phiên bản firmware camera và SDK đang dùng trong tài liệu dự án.

Xem thêm: đồng bộ trigger và đèn strobe.

Ban biên tập HọcFree

Chúng tôi viết những bài hướng dẫn dễ hiểu, thực tế để ai cũng có thể tự học lập trình và ngoại ngữ, hoàn toàn miễn phí.