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.

Giá trị đến từ đâu
| Nguồn | Cách giá trị đến |
|---|---|
| PLC User Data | PLC ghi giá trị vào các byte User Data của nó |
| MQTT | Mộ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 script | Camera script của bạn tính toán và thiết lập giá trị bằng vars.set() |
| Constant | Mộ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ập | Giá trị |
|---|---|
| Offset | Byte 0 đến 463 của User Data |
| Type | BOOL, SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT, REAL, LREAL, STRING, BYTES |
| Bit | 0 đế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 format | Fixed 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.
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ơi | Cá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 |
| Library | Chi 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 script | vars.serial, và vars_info.serial.age_ms cho biết giá trị đó cũ đến mức nào. Xem Recipe script |
| Camera script | vars.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
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ànulltrong 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
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.