- 第一段階。
- 建筑物
- 应用设计
- 应用程序编辑器
- 郁金香应用程序编辑器介绍
- 创建新的郁金香应用程序
- 如何在应用程序编辑器和播放器中使用键盘快捷键
- 郁金香中的多语言功能
- 步骤
- 小装饰
- 教科文组织
- 什么是触发器?
- 阶跃触发器
- 应用程序级触发器
- 小部件触发器
- 应用程序过渡指南
- 计时器触发器
- 如何添加设备触发器
- 如何通过条件(If/Else 语句)添加触发器
- 触发器编辑器中的操作和转换列表
- 最常见的十大触发因素是什么?
- 如何通过触发器设置部件颜色
- 如何发送电子邮件
- 如何为 Tulip 用户设置短信通知
- 如何从触发器打印步骤
- 如何在应用程序编辑器中使用表达式编辑器
- 表达编辑器的技术细节
- 应用程序编辑器中的完整表达式列表
- 使用日期时间表达式
- 类型化表达
- 使用数组和对象表达式
- 在触发器中处理时间
- 支持的自定义日期格式
- 如何完成应用程序
- 如何通过设备摄像头扫描条形码和 QR 码
- 如何在触发器中添加正则表达式
- 在郁金香应用程序中使用应用程序信息
- 如何使用触发器调用连接器函数
- 变量
- 解决问题
- 达蒂(印度教女神)。
- 连接器
- 分析
- 视觉
- 设备监测
- 受管制行业
- 副驾驶站在第一线。
- 自动化
- 进口中的出口
- 运行应用程序
- 管理
- Developers
- Connect to Software
- Connect to Hardare
- Edge Devices
- 支持的设备
- 可与郁金香配合使用的即插即用设备列表
- 创建和支持设备驱动程序
- 郁金香中的设备驱动程序支持
- 如何设置条形码扫描仪
- 使用串行驱动程序
- 如何将斑马打印机与 Tulip 集成
- 使用 Zebra 网络打印机驱动程序
- 使用 Zebra GK 系列标签打印机驱动程序
- 使用 USB 波贝盒驱动程序
- 使用康耐视 In-Sight 2000 驱动程序
- 如何配置康耐视和 Tulip
- 使用 MT SevenExcellence PH 计驱动程序
- 使用通用 ADC 驱动程序
- 使用欧米茄 HH806 温度计驱动器
- 使用数字卡尺驱动器
- 如何设置通用 TS05 蓝牙测温枪
- 使用康耐视 DataMan TCP 驱动程序
- 为 Windows Tulip Player 设置三丰 U-WAVE 接收器
- 使用布雷克内尔 PS25 称重驱动器
- 使用 RFID 驱动程序
- 使用Kolver EDU 2AE/TOP/E驱动程序
- 使用 USB 脚踏板驱动程序
- 使用 Torque 开放协议驱动程序
- 使用 Dymo M10 USB 电子称驱动程序
- 使用康耐视 In-Sight 驱动程序
- 使用 Telnet 驱动程序
- 使用通用 I/O 驱动程序
- 如何设置科尔弗扭矩控制器
- 使用 Insize 多通道卡尺驱动器
- 使用 Dymo S50 USB 电子称驱动程序
- 斑马 Android DataWedge 配置
- 将三丰数字卡尺与三丰 U 波驱动器配合使用
- Troubleshoot
- Nodo Rosso.
- 创建可重复使用的组件
- 使用应用程序接口
- 技术和信息技术文件
- 指南
- 图书馆
- 使用郁金香图书馆
- Laboratory Operation App Suite
- 图书馆藏书
- 图书馆应用程序
- 教科书上的例子
- 应用解决方案
- CMMS 应用程序包
- Zerokey solutions
- 成果的可见性
- 物品委託電子申告(eBR)申請書類一式
- 盈科 CAPA Lite
- 5 为何使用人工智能进行根源分析
- 利用人工智能进行简单的缺陷报告
- 业务案例生成器
- 轮班启动会议
- 看板应用程序套件
- 简单的 OEE 控制面板
- Arena BOM 解决方案
- 设备管理应用程序套件
- 简单核对表
- 清单管理套件
- 上柴应用程序套件
- 改善漏斗
- 考勤管理简单解决方案
- 上柴质量审计
- 包装与装运图书馆应用
- CAPA 管理
- 移动照相机应用程序
- OEE 计算器
- 每小时生产记分卡
- 材料反冲
- 质量事件仪表板
- 首次通过产量申请
- 采光
- 培训解决方案
- 数字系统库存
- 视觉定位跟踪
- 数字系统访问管理
- 材料管理
- 工具与资产经理
- 优质活动管理
- 带断光传感器的步进推进器
- 数字秒表
- 审核清单
- 卡塔纳企业资源规划应用程序
- 高级别基线评估
- 物料清单管理
- 安全事故经理
- 上柴卡管理
- 精益仪表板
- 5S 结果雷达(蜘蛛)图表小工具
- 5S 一览表
- 移动生产记分卡
- 移动设计模板
- 工艺工程(移动)
- 执行维护令
- 机器启动检查表示例
- 如何申请
- 可堆肥 MES
- 制药行业的 MES 系统
- 连接器和单元测试
- Planeus 单元测试
- COPA-DATA Connector
- 平面连接器
- Veeva 连接器
- Inkit 连接器
- MRPeasy 连接器
- Oracle 融合连接器
- LabVantage 连接器和单元测试
- 谷歌聊天连接器
- Salesforce 连接器
- Litmus 概览
- eMaint 连接器
- eLabNext 连接器
- Acumatica ERP 连接器
- CETEC 连接器
- PagerDuty 连接器
- NiceLabel 集成
- Aras 集成概述
- SDA 集成
- 尼米乐队单元测试
- 竞技场整合
- 条码扫描器单元测试
- 脚踏板单元测试
- 开始在 RealWear 头戴式耳机上使用郁金香
- 空气台连接器
- 希波连接器
- 调酒师集成
- SAP S/4 HANA 云连接器
- RFID 扫描仪单元测试
- Jira 连接器
- 斑马标签打印机单元测试
- 谷歌翻译连接器
- MSFT Power Automate
- OpenAI 连接器
- 谷歌日历连接器
- 郁金香应用程序接口单元测试
- Duro PLM 单元测试
- HiveMQ 单元测试
- 与 NetSuite 集成
- 康耐视单元测试
- PowerBI 桌面集成
- ProGlove 单元测试
- Fivetran 集成
- ParticleIO 集成
- Google Drive 连接器
- 雪花连接器
- SAP SuccessFactors 连接器
- ZeroKey Integration
- 谷歌地理编码连接器
- 谷歌工作表连接器
- 如何将 Tulip 与 Slack 整合
- HighByte 智能枢纽单元测试
- LandingAI 单元测试
- LIFX 单元测试(无线灯)
- 微软日历连接器
- M365 Dynamics F&O 连接器
- Microsoft Outlook 连接器
- Microsoft Teams 连接器
- 使用 Oauth2 将 Microsoft Graph API 连接到 Tulip
- Microsoft Excel 连接器
- 网宿应用程序和连接器
- OpenBOM 连接器
- 称重秤单元测试
- InfluxDB 连接器
- Augury 连接器
- 连接器
- 舍弗勒 Optime 连接器
- MongoDB Atlas 连接器
- MaintainX 连接器
- Twilio 连接器
- SendGrid 连接器
- 安慰连接器
- 如何为 RealWear 头戴式耳机设计郁金香应用程序
- OnShape 连接器
- 可定制的小部件
- Job Planning/Scheduling Board
- 时间轴小工具
- json 树查看器小工具
- 看板任务管理小工具
- 徽章小工具
- 高级计时器小工具
- 分段按钮自定义小工具
- 动态仪表自定义小工具
- 小吃店小部件
- 变化探测器单元测试
- 状态颜色指示器 设备测试
- 输入长度检查单元测试
- 计算器自定义部件单元测试
- 图像注释小工具单元测试
- 精益仪表板小工具
- Looper 单元测试
- 秒表单元测试
- 数字输入单元测试
- 数字键盘单元测试
- 径向测量仪
- 菜单单元测试步骤
- SVG 小工具
- 文本输入单元测试
- 工具提示单元测试
- 作业指导 照顾要点 单元测试
- 书面电子签名小工具单元测试
- ZPL 查看器单元测试
- 简单折线图小工具
- 货架自定义小工具
- 滑块小工具
- NFPA 钻石定制小工具
- 通过 - 失败 自定义小工具
- 简单计时器自定义小工具
- Nymi Presence集成小工具
- 自动化
Following Release 306, Tulip is changing the way numbers are stored in Tables and Completion Records to support capturing, storing, and displaying trailing zeros.
The Number data type is a real number (i.e. 53, 700, 506.2, 7.645). Tulip’s numeric precision allows numbers to contain trailing zeros (i.e. 1.90, 7.300, 36.850, 419.38910).
Details of Numeric Precision
Number Input data saves trailing zeros
Operator data entered through Number Inputs preserves trailing zeros on storage and display throughout the Tulip ecosystem - up to 20 digits after the decimal. Inputs over 20 digits will be rounded to the nearest 20th digit
Table data stores in a new precise data type called Postgres Decimal - instead of floats.
Table record data displays all digits after decimals
Tables display all digits after the decimal with an ellipsis at column width. The previous UX limitation only showed the first 3 digits in the grid view. To view all digits past the decimal, click on the Table Record.
Number inputs and expressions can control digits to desired decimals
App Builders can specify and enforce digits on input and computation via:
- A Number Input validation rule to set the exact number of decimal places.
- Expressions for managing decimal places of external inputs (i.e. Connectors, Devices, Machines, Custom Widgets) and performing mathematical computations. These expressions include ROUND() and GETDECIMALPLACES().
- A new Expression, TOPLAINTEXT(), emits decimals with full precision.
Read more about these expressions in the section below: Expressions to Manage Precision.
Limits and Out-of-Bounds Behavior
Maximum value: JS MAX SAFE INT
- This is the standard maximum value for numeric data in Javascript
- Tulip Tables API out of bounds handling: Incoming data larger than this will raise an error and not be stored.
Maximum digits after the decimal: 20
- This is more than the number of digits in floats (previously Tulip supported 15 digits), and encompasses all known use cases.
- Tulip Tables API out of bounds handling: Incoming data with more than 20 digits will be rounded to the nearest 20th digit
How does numeric precision work with other Tulip features?
Input data with trailing zeros only applies to Number Inputs in Apps. Other data streams in Tulip handle numeric precision differently:
External data
Data coming in through Connectors, Machines, Devices, and Custom Widgets is still sent in as Strings or Floats, this is dependent on the data type provided by the source. Numeric data is converted to Postgres Decimals upon storage to Tulip Tables and Completion Records.
Automations
Automations will support trailing zeroes later in 2025. Currently, automations performing computations do not store trailing zeros.
Expressions to Manage Precision
App builders can manage digits when storing numbers in Tulip with the following expression.
ROUND()
Use ROUND() to specify the desired number of decimals and add trailing zeros before storing the value.
App builders can manage digits when doing mathematical computations, including averages and sums, with the following expressions.
GETDECIMALPLACES() and ROUND()
Use GETDECIMALPLACES() and/or ROUND(), to manage decimal places for computation results.
TOPLAINTEXT()
Use TOPLAINTEXT() instead of TOTEXT() to see full decimal places of precision of a numeric value, including trailing zeros. This is because TOTEXT() retains a backward-compatible implementation to display precise decimals as Javascript Numbers (i.e. floats) with at most 16 digits of precision.
Technical Details
- As part of this release, Tulip Tables and Completions have moved from “floats” to precise Postgres Decimals, which are configured to store up to 20 digits after the decimal.
- Incoming numeric data from all sources (i.e. Apps, Tulip Table API, Connectors, etc.) stores in Tulip Tables as Postgres Decimals and will round to a maximum of 20 digits upon storage.
Historical Data
Data collected prior to Release 306 has been completely preserved, keeping the numeric values the same. Any new incoming data is rounded to 20 digits after the decimal point.
Minor Changes
There are some edge case changes and caveats in how numbers are handled in apps after the Numbers Precision rollout, as a result of the differences between decimals and floats:
- Expressions: Javascript NaN & Infinity don’t exist in precise Decimal numbers — as a result, Expressions will now raise an error on mathematical error cases (ex. taking the square root of a negative number or dividing by 0).
a. This means App Builders may have to update any special case logic that works with JS NaN and Infinity. These are not a supported interface, and we do not advise leveraging them to navigate mathematical edge cases in your apps. - Triggers: Show Message now using quotes to wrap numbers
a. This means you’ll now be able to display trailing zeros in Show Message. - Tables: CSV exports now show full numbers (that are more than 1e6) – previously, the CSV used exponential notation for large numbers (greater than 1e6).
a. This means your Admins may need to update CSV processing scripts to remove any special cases for processing exponentials, if they had them. - Expressions: TOTEXT & number representation – If you need to preserve trailing zeros in textual representation, use a new expression TOPLAINTEXT() which wraps numbers in quotes to preserve trailing zeros.
a. Expressions: TOTEXT() does not wrap numbers in quotes and therefore doesn’t preserve trailing zeros. Instead, use new TOPLAINTEXT() to view the full number with trailing zeros, wrapped in quotes.
b. We’re introducing TOPLAINTEXT() as a new Expression to preserve backwards compatibility for apps that may have been using the TOTEXT() expression.
If you have any questions about working with numbers precision, contact your CSM or post in the Community thread.
Number
Number is a Tulip Datatype. Numbers can be any positive or negative number. Numbers support decimals.
ex. -5, 15, 47, 155, 15.2, -12.73
Input
An input is transmission of data from a data set to a program.
Tulip Tables
Tulip Tables are a global location to store your production data. Tables are made up of Records (rows). A single can be accessed from multiple apps or stations at the same time.
Table Record
A Table Record is a reference to a row in a Tulip Table. Table Records can be created either from the Table UI or from with an App Trigger.
To edit a record it must be loaded into a Table Record Placeholder.
Expression
A configured code snippet that returns a calculated value based on certain inputs. Expressions have access to all of the variables, Table Records, and any other data available to an application.
Connectors
Connectors are how your Tulip apps can connect to other systems. Connectors can make API calls with HTTP Connectors, or pull data directly from SQL databases. Additionally OPC-UA Connectors can be used to retrieve Machine data.
Once pulled, data can be used throughout your applications.
Device
Devices are tools or pieces of hardware that are integrated into Tulip applications. Examples include barcode scanners, digital scales, or Zebra printers. Devices must be connected to applications on the Shop Floor pages after an application has been assigned a Station. Not to be confused with Display Devices, or the interfaces through which an end user accesses an application.
Machine
A Machine is a digital representation of a physical datasource. Machines have Attributes that are updated through an OPC-UA Connector or the Tulip API.
App Completion
App Completions are a mechanism to store immutable data from a Tulip app. When an app is completed, all Variable's current values will be stored in the app completions tab. This completion data can be analyzed in Analytics.
By default, after a Completion users will be brought back to the Begin Screen of your application. This behavior can be adjusted with other Transition types.
Automation
Workflow that performs tasks in the background, without an interface. Automations run logic every time an event occurs.