当前位置: 首页 > news >正文

LabVIEW部署Web服务

目录

  • LabVIEW部署Web服务
    • 1、创建项目
    • 2、创建Web服务
    • 3、新建WebVI
      • 3.1、使用GET方法
      • 3.2、使用POST方法
    • 4、 部署和对应URL
      • 4.1、应用程序:8080
      • 4.2、本地调试:8009
      • 4.3、NI Web服务器:9090(禁用)
    • 5、测试
      • 5.1、测试GET方法
      • 5.2、测试POST方法
    • 6、实际应用
    • 7、浏览器测试
    • 8、HTTP测试软件
    • 9、笔记

LabVIEW部署Web服务

1、创建项目

2、创建Web服务


可以修改名称,此处修改为test

3、新建WebVI

右键Web资源→选择"新建VI",一个VI对应一个方法

3.1、使用GET方法

①新建VI后,命名为plus,前面板添加三个数值控件,命名必须是英文,如果是中文,在测试的时候会报错,并且要修改接线端子

②右键plus→选择"GET"(默认为GET)

③右键test→选择"属性"

④选择"HTTP方法VI设置"→选中"plus"→选择"输出类型"→选择"接线端"和输出格式选择"JSON"

  • 这个也是方法默认的设置

3.2、使用POST方法

①新建VI后,命名为plus post,并修改程序框图

②右键plus post→选择"POST"

③选择"HTTP方法VI设置"→选中"plus"→选择"输出类型"→选择"数据流"

4、 部署和对应URL

①右键test→选择"应用程序Web服务器"→选择"开始(调试服务器)”→等待开始完成

②查看对应的URL
右键其中一个方法,此处是plus→选择"显示方法URL…"

  • 如果方法里面存在中文字符,选择显示方法URL后可能会闪退URL页面

    ③里面会存在三种端口,要看方法是部署到哪个服务器的
    应用程序:8080
    本地调试:8009
    NI Web服务器:9090
  • 由于端口很多,所以要注意哪个服务器在启用

4.1、应用程序:8080

右键test→选择"应用程序Web服务器"→选择"发布"→等待发布完成

4.2、本地调试:8009

右键test→选择应用程序Web服务器→选择开始(调试服务器)

4.3、NI Web服务器:9090(禁用)

右键test→选择"开始"

但是由于未知原因,一直连接不上服务器,因此不再使用

5、测试

5.1、测试GET方法

使用"本地调试:8009"
①右键"我的电脑"→选择"新建"→选择"VI"→命名为test_get

②修改VI如下→执行→返回{“c”:3}

5.2、测试POST方法

①右键"我的电脑"→选择"新建"→选择"VI"→命名为test_post
②修改VI如下→执行→返回“3.000000”

6、实际应用

程序在完成的情况下,需要生成应用程序,那么对应的URL里面的端口就不再是第5点的三个端口了,具体的端口在程序生成规范中设置。

  • 这个时候Web服务器就会部署在应用程序上,应用程序打开的时候,服务有效,如果应用程序关闭,则服务会无效
    ①新建VI,命名为main→简单一个循环结构,用于测试,程序框图如下

②右键"程序生成规范"→选择"新建"→选择"应用程序(EXE)"

③选择Web服务→勾选"test"→选择"应用程序Web服务器"→HTTP端口设置为8002(默认也是8002)

④选择"源文件"→选中main→点击箭头,把main设置到启动VI中→点击生成

⑤执行生成的exe

⑥新建一个VI,命名为test_main→拷贝test_get和test_post程序框图里面的程序到test_main→只改动端口为8002(这个在第③步设置的)→执行→返回正常,说明可以正常调用

7、浏览器测试

  • Get方法
  • post方法不能直接在浏览器中测试,会返回404

8、HTTP测试软件

  • Get方法
  • Post方法

9、笔记

  1. HTTP/1.1 200 OK
    Connection: Keep-Alive
    Server: Embedthis-http
    Content-Type: application/json; charset=utf-8
    Cache-Control: no-cache
    Date: 周三, 03 6月 2026 03:28:34 GMT
    Content-Length: 2
    Keep-Alive: timeout=60, max=199
  • 服务端返回HTTP/1.1,且Connection: Keep-Alive:代表服务端支持长连接
  • 客户端没主动Connection:Close
    结论:目前就是长连接
  1. 如果是根本没开web服务,但是客户端调用接口,会在head返回,而且不会有错误簇
    HTTP/1.1 404 Not Found
    Connection: Keep-Alive
    Server: Embedthis-http
    Cache-Control: no-cache
    Date: 周三, 03 6月 2026 04:03:08 GMT
    Content-Length: 190
    Keep-Alive: timeout=60, max=199
  2. LabVIEW不支持host为localhost的连接
  3. LabVIEW的JSON转换
  4. LabVIEW的JSON转换为LabVIEW簇对象,JSON里面必须包含LabVIEW簇对象的所有元素,可以多,不能少
  • 异常JSON:会报LabVIEW: (Hex 0xFFFA4722) The cluster element was not found in the JSON string.
{"messageType":"S","message":"閰嶆柟鏌ヨ鎴愬姛","data":{"ProcessList":[],"PartList":[],"StepList":[{"StepNo":"1","StepName":"OCV","StepDesc":null,"FilePath":null,"StartPageNo":null,"EndPageNo":null,"Operation":"SCAN_ARRAY","StepGroup":null,"ProcessList":[],"PartList":[]}]},"jsonRet":null}
  • 正常JSON:包含Tag
{"messageType":"S","message":"閰嶆柟鏌ヨ鎴愬姛","data":{"ProcessList":[],"PartList":[],"StepList":[{"StepNo":"1","StepName":"OCV","StepDesc":null,"FilePath":null,"StartPageNo":null,"EndPageNo":null,"Operation":"SCAN_ARRAY","StepGroup":null,"ProcessList":[],"PartList":[],"Tag":""}]},"jsonRet":null}
  • 关键簇,里面包含Tag,不包含jsonRet,即便JSON字符串包含,也不会报错
  1. JSON返回如果存在null,必须在这里设置为Ture,否则会报错:LabVIEW: (Hex 0xFFFA4723) Type mismatch between JSON and LabVIEW.
  2. 不完整的JSON会返回这个错误
    LabVIEW: (Hex 0xFFFA4725) The JSON string is invalid. JSON strings must be encoded in UTF-8 and must conform to the JSON grammar.
http://www.jsqmd.com/news/1256493/

相关文章:

  • 工业大模型实时学习迭代机制:从“物理状态推演”到“端到端智能自动化”的深度技术解析
  • 【系统架构设计师】预测试卷十:综合知识(75道选择题)
  • 大麦网抢票脚本深度解析:从架构设计到性能优化的自动化解决方案
  • 2026 大连管道疏通口碑 TOP5 深度测评|正规疏通公司哪家好?资质_价格_上门速度全对比 - 园子一号
  • Mamba与YOLOv8结合的目标检测优化实践
  • 2026 玉州区黄金变现避坑指南!30 年本土连锁门店全覆盖,无损验金上门零收费,变现足额不亏 - 华金汇黄金回收
  • 上海居民闲置黄金变现避坑指南:区分品牌专柜与连锁回收价差根源 - 日常比对手册
  • “这一次,把力气用在刀刃上”
  • 2026 上海管道疏通口碑 TOP5 深度测评|正规疏通公司哪家好?资质_价格_上门速度全对比 - 园子一号
  • ComfyUI-Easy-Use终极指南:从零开始掌握AI绘画工作流设计
  • 3步配置GitHub Actions定时任务:让股票智能分析系统每天自动为你工作
  • AMD Ryzen处理器深度调试指南:5个核心技巧掌握硬件级性能调优
  • Python语言基础:9_字符串
  • Gemini决策仪表盘实战:用daily_stock_analysis提升你的股票投资决策效率
  • AI驱动的API版本自动化管理实践
  • 北美的留美求职身份规划服务哪家靠谱,STEM延期策略+绿卡路径规划缺一不可 - Matthewmx
  • 【毕设分享】springboot高校实习管理系统37884
  • AI短视频矩阵从0到100万粉丝:9步标准化SOP,含4类算法加权权重公式(2024最新平台内参)
  • 2026 东莞管道疏通口碑 TOP5 深度测评|正规疏通公司哪家好?资质_价格_上门速度全对比 - 园子一号
  • 锡林郭勒出发西藏热门线路榜:2026纯玩口碑冠军,这家15年五星地接社凭什么?| 附:旅行社电话 - 西藏康泰旅行社
  • 御坂翻译器:5分钟开启无障碍Galgame体验的终极实时翻译解决方案
  • 百万行代码里跑Claude Code?三面这题80%的人答不上来
  • RPC详解
  • 免费解锁WeMod高级功能:3分钟开启你的游戏增强之旅
  • 工厂产线自动化,深度学习不是来抢 PLC 饭碗的
  • 《派出你的AI同事:WorkBuddy案例实战》008:草稿变多语种对外发布(案例)
  • Python语言基础:10_列表
  • Sunshine游戏串流服务器:3步打造专业级远程游戏体验
  • Windows Defender终极移除指南:3种模式快速释放系统性能
  • 2026年广东龙门冲床厂家:高精度与重载型冲压设备的实力工厂深度剖析 - 卓企推荐