TÀI LIỆU ĐƯỢC HỖ TRỢ BỞI AI
Bạn muốn biết điều gì?
Variables
Một variable (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 ở trước camera. Camera giữ cho nó luôn cập nhật trong khi chạy, và mỗi inspection lưu lại giá trị mà nó có tại thời điểm đó. Sau đó, bạn có thể đặt nó vào tên tệp, xem nó trong Library và sử dụng nó trong scripts. Không cần viết code.
Mở Integration > Variables.

Giá trị đến từ đâu
| Nguồn | Cách nó đến |
|---|---|
| PLC User Data | PLC ghi nó vào các byte User Data của nó |
| MQTT | Một message đến trên một topic. Giá trị có thể là toàn bộ payload hoặc một field của một message JSON |
| Camera script | Camera script của bạn tính toán ra và đặt nó 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ể đặt một giá trị bằng tay trên trang Variables, ví dụ như người vận hành nhập một số lô. Một giá trị đặt bằng tay sẽ tồn tại cho đến khi nguồn của chính variable đó gửi một giá trị mới, và các captures sử dụng nó sẽ được gắn 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ự được đặt sẵn, cắt bỏ khoảng trắng và NULs ở cuối), Rockwell (một Logix STRING: một DINT length rồi 82 ký tự) hoặc Siemens (một S7 STRING: một byte max-length, một byte length, 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 scripts và result messages dưới dạng chuỗi thập phân, vì số JavaScript không thể chứa mọi giá trị 64-bit. Sử dụng BigInt(vars.part_id) trong một script nếu bạn cần thực hiện phép tính số học trên nó.
Từ MQTT
Đưa ra topic, cách đọc payload (JSON, String hoặc Number), và đối với JSON là path đến field, ví dụ $.id. Wildcards không được cho phép trong topic của một variable. Khi MQTT tắt, variable 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 đây đã được dành riêng:
vars,vars_info,tools,tools_by_name,rules,trigger,recipe,state - Tối đa 64 variables trê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 |
|---|---|
| Tên file và folder của Remote Storage | {var.serial}, ví dụ {camera}/{var.lot} làm folder và {var.serial}_{capture_id} làm tên file. Một tên file 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 variables mà nó đã lưu, cùng với 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 nó đã cũ bao lâu. Xem Recipe script |
| Camera script | vars.get("serial"), và vars.set() cho các variables có nguồn là camera script |
| Result messages | 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 lưu các giá trị mà các variables có khi các tools của nó hoàn thành. Hãy để PLC ghi serial trước khi nó kích hoạt trigger, nếu không capture sẽ lưu giá trị của bộ phận trước đó.
- Trống hiển thị dưới dạng
_. Một variable không có giá trị sẽ xuất hiện dưới dạng_trong tên file và dưới dạngnulltrong scripts - Khởi động lại bắt đầu từ trống. Sau khi khởi động lại, mỗi variable đợi nguồn của nó gửi một giá trị mới. Các giá trị đặt bằng tay cần được đặt lại
- Một bộ cho mỗi camera. Variables thuộc về camera, vì vậy mọi recipe trên nó đều đọc cùng một bộ
- Exports. Variables đi kèm với recipe exports
Đặt variable bằng tay trên trang Variables, sau đó trigger thủ công. Recipe script nhìn thấy giá trị đặt bằng tay giống hệt như nó sẽ nhìn thấy giá trị của PLC, và capture được đánh dấu manual để nó không bao giờ bị nhầm với dữ liệu sản xuất. Một recipe script có thể từ chối các giá trị đặt bằng tay trên các dây chuyền không được phép, bằng cách kiểm tra vars_info.<name>.source.