Chuyển đến nội dung chính

TÀI LIỆU ĐƯỢC HỖ TRỢ BỞI AI

Bạn muốn biết điều gì?

Biến

Một biến lưu giữ một giá trị từ dây chuyền của bạn, chẳng hạn như số serial của bộ phận đang ở trước camera. Camera giữ cho giá trị này luôn cập nhật trong khi chạy, và mỗi inspection sẽ lưu lại giá trị mà nó có tại thời điểm đó. Bạn có thể đưa nó vào tên tệp, xem nó trong Library và sử dụng nó trong các script. Không cần viết mã.

Mở Integration > Variables.

Trang Variables: giá trị đến từ đâu, biến, và nơi bạn sử dụng nó

Giá trị đến từ đâu​

NguồnCách giá trị đến
PLC User DataPLC ghi giá trị vào các byte User Data của nó
MQTTMột tin nhắn đến trên một topic. Giá trị có thể là toàn bộ payload hoặc một trường của tin nhắn JSON
Camera scriptCamera script của bạn tính toán và thiết lập giá trị bằng vars.set()
ConstantMột giá trị cố định mà bạn nhập, chẳng hạn như tên dây chuyền hoặc trạm

Bạn cũng có thể thiết lập giá trị bằng tay trên trang Variables, ví dụ như người vận hành nhập số lô. Giá trị được thiết lập bằng tay sẽ tồn tại cho đến khi nguồn của biến gửi một giá trị mới, và các capture sử dụng nó sẽ nhận được huy hiệu manual trong Library.

Trang này cung cấp ba ví dụ để bắt đầu: số serial của bộ phận từ PLC, số lô từ MQTT, và tên dây chuyền hoặc trạm.

Từ PLC​

Chọn vị trí giá trị nằm trong User Data của PLC và kiểu dữ liệu của nó:

Thiết lậpGiá trị
OffsetByte 0 đến 463 của User Data
TypeBOOL, SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT, REAL, LREAL, STRING, BYTES
Bit0 đến 7, chỉ dành cho BOOL. Nếu không có, BOOL có nghĩa là toàn bộ byte khác không
String formatFixed length (một số ký tự nhất định, các khoảng trắng và NUL ở cuối được cắt bỏ), Rockwell (một Logix STRING: một DINT độ dài rồi đến 82 ký tự) hoặc Siemens (một S7 STRING: một byte độ dài tối đa, một byte độ dài, rồi đến các ký tự)

Thứ tự byte tuân theo fieldbus: little-endian trên EtherNet/IP, big-endian trên PROFINET. Trên PROFINET, một số byte chỉ đến khi PLC gửi toàn bộ module User Data.

LINT và ULINT đến dưới dạng văn bản

Số nguyên 64-bit đến với các script và thông điệp kết quả dưới dạng chuỗi thập phân, vì số JavaScript không thể lưu giữ mọi giá trị 64-bit. Hãy dùng BigInt(vars.part_id) trong script nếu bạn cần thực hiện phép toán trên một giá trị như vậy.

Từ MQTT​

Cung cấp topic, cách đọc payload (JSON, String hoặc Number), và đối với JSON là path đến trường, ví dụ $.id. Không cho phép sử dụng wildcard trong topic của biến. Khi MQTT tắt, biến sẽ ở trạng thái trống.

Tên và giới hạn​

  • Tên bao gồm chữ cái thường, chữ số và dấu gạch dưới, bắt đầu bằng một chữ cái, tối đa 32 ký tự: serial, lot_number, part_type
  • Các tên sau được dành riêng: vars, vars_info, tools, tools_by_name, rules, trigger, recipe, state
  • Tối đa 64 biến mỗi camera. Giá trị văn bản tối đa 1024 byte

Nơi bạn sử dụng nó​

NơiCách dùng
Tên tệp và thư mục Remote Storage{var.serial}, ví dụ {camera}/{var.lot} làm thư mục và {var.serial}_{capture_id} làm tên tệp. Tên tệp vẫn cần {capture_id}, {trigger_id} hoặc {timestamp}, và không được chứa /. Xem Remote Storage
LibraryChi tiết của mỗi capture liệt kê các biến mà nó đã lưu, kèm theo nguồn và thời điểm mỗi giá trị được nhận
Recipe scriptvars.serial, và vars_info.serial.age_ms cho biết giá trị đó cũ đến mức nào. Xem Recipe script
Camera scriptvars.get("serial"), và vars.set() cho các biến có nguồn là camera script
Thông điệp kết quảMỗi kết quả được gửi qua MQTT, HTTP API và đến camera script đều mang theo vars và vars_info

Những điều cần biết​

Hãy ghi trước khi trigger

Mỗi inspection sẽ lưu các giá trị mà biến có khi các công cụ của nó hoàn tất. Hãy để PLC ghi số serial trước khi nó phát trigger, nếu không capture sẽ lưu giá trị của bộ phận trước đó.

  • Trống sẽ hiển thị là _. Một biến không có giá trị sẽ xuất hiện là _ trong tên tệp và là null trong các script
  • Khởi động lại sẽ bắt đầu với trạng thái trống. Sau khi khởi động lại, mỗi biến chờ nguồn của nó gửi một giá trị mới. Các giá trị được thiết lập bằng tay cần được thiết lập lại
  • Một bộ cho mỗi camera. Biến thuộc về camera, vì vậy mọi recipe trên nó đều đọc cùng một bộ biến
  • Xuất. Biến đi kèm với recipe exports
Thử nghiệm trên bàn làm việc mà không cần PLC

Thiết lập biến bằng tay trên trang Variables, sau đó trigger thủ công. Recipe script nhìn thấy giá trị được thiết lập bằng tay giống hệt như cách nó nhìn thấy giá trị của PLC, và capture được đánh dấu manual để không bao giờ bị nhầm với dữ liệu production. Một recipe script có thể từ chối các giá trị được thiết lập bằng tay trên những dây chuyền không cho phép, bằng cách kiểm tra vars_info.<name>.source.

Tiếp theo nên đi đâu​