Labview 与欧姆龙 PLC 的 Ethernetip TCP 网口通讯:CIP 通讯的魅力

作者:qq 876223965日期:2025/12/10

Labview Ethernetip TCP网口通讯欧姆龙PLC OmronNX1P2NJ501NJ301PLC标签通讯 CIP通讯比Fins通讯更完美。 1.自定义变量读写 2.支持 Bool单点或数组读写 3支持数字格式单个或者数组读写 4支持浮点数单个或者数组读写 程序经过测试准确运行从此远离%转换成Fins.

在自动化控制领域,Labview 与欧姆龙 PLC 的通讯是很多工程师会面临的课题。今天咱就唠唠 Labview 通过 Ethernetip TCP 网口和欧姆龙 NX1P2、NJ501、NJ301 这些 PLC 进行标签通讯,特别是 CIP 通讯,相比 Fins 通讯那可太香了!

1. 自定义变量读写

CIP 通讯在自定义变量读写方面非常灵活。在 Labview 中,我们可以通过相关的库函数来实现对 PLC 自定义变量的读写操作。比如,使用 “Ethernet/IP CIP Generic” 函数节点,通过配置节点参数,我们就能轻松与 PLC 交互。

1// 假设已经创建好了一个与 PLC 连接的会话句柄 session
2// 读取自定义变量
3Read_Variable(session, "Custom_Variable", data); 
4// 这里的 "Custom_Variable"  PLC 中自定义变量的名称
5// data 是用于存储读取到的数据的变量
6
7// 写入自定义变量
8Write_Variable(session, "Custom_Variable", new_data); 
9// new_data 是要写入到 PLC 自定义变量的新数据

代码分析:上述代码片段展示了简单的自定义变量读写操作。通过指定会话句柄,明确要读写的变量名称,就能实现数据的交互。这比 Fins 通讯在自定义变量处理上更直观和便捷,Fins 通讯可能需要复杂的地址计算和指令组合来完成类似操作。

2. 支持 Bool 单点或数组读写

对于 Bool 类型数据,CIP 通讯同样表现出色。无论是单个 Bool 点的读写,还是 Bool 数组的操作,都能轻松应对。

1// 读取单个 Bool 
2Read_Bool(session, "Bool_Single_Point", bool_value); 
3// "Bool_Single_Point"  PLC 中单个 Bool 变量名
4// bool_value 存储读取到的 Bool 
5
6// 读取 Bool 数组
7Read_Bool_Array(session, "Bool_Array", bool_array); 
8// "Bool_Array"  PLC  Bool 数组变量名
9// bool_array 存储读取到的 Bool 数组数据
10
11// 写入单个 Bool 
12Write_Bool(session, "Bool_Single_Point", new_bool_value); 
13// new_bool_value 是要写入的新 Bool 
14
15// 写入 Bool 数组
16Write_Bool_Array(session, "Bool_Array", new_bool_array); 
17// new_bool_array 是要写入的新 Bool 数组

代码分析:这里针对 Bool 数据的操作,通过特定的函数明确区分了单点和数组的读写。在实际项目中,比如设备的状态监测(开/关等 Bool 类型状态),使用 CIP 通讯这种简洁的方式能大大提高开发效率。而 Fins 通讯在处理 Bool 数组时,可能会因为其指令格式和数据转换的复杂性,导致代码量增加和出错概率上升。

3. 支持数字格式单个或者数组读写

数字格式数据在 PLC 应用中也很常见。CIP 通讯对于单个数字或者数字数组的读写支持得很好。

1// 读取单个整数
2Read_Int(session, "Single_Int", int_value); 
3// "Single_Int"  PLC 中单个整数变量名
4// int_value 存储读取到的整数值
5
6// 读取整数数组
7Read_Int_Array(session, "Int_Array", int_array); 
8// "Int_Array"  PLC 中整数数组变量名
9// int_array 存储读取到的整数数组数据
10
11// 写入单个整数
12Write_Int(session, "Single_Int", new_int_value); 
13// new_int_value 是要写入的新整数值
14
15// 写入整数数组
16Write_Int_Array(session, "Int_Array", new_int_array); 
17// new_int_array 是要写入的新整数数组

代码分析:从代码可以看出,对于数字格式数据的操作,和之前 Bool 数据操作类似,都有清晰明确的函数对应。这使得在处理诸如设备计数、设定值等数字相关数据时,代码逻辑简洁明了。相较于 Fins 通讯,CIP 通讯不需要繁琐的格式转换和复杂的地址映射就能完成这些操作。

4. 支持浮点数单个或者数组读写

在涉及到精确控制和数据计算的场景中,浮点数的读写必不可少。CIP 通讯在这方面也不含糊。

1// 读取单个浮点数
2Read_Float(session, "Single_Float", float_value); 
3// "Single_Float"  PLC 中单个浮点数变量名
4// float_value 存储读取到的浮点数值
5
6// 读取浮点数数组
7Read_Float_Array(session, "Float_Array", float_array); 
8// "Float_Array"  PLC 中浮点数数组变量名
9// float_array 存储读取到的浮点数数组数据
10
11// 写入单个浮点数
12Write_Float(session, "Single_Float", new_float_value); 
13// new_float_value 是要写入的新浮点数值
14
15// 写入浮点数数组
16Write_Float_Array(session, "Float_Array", new_float_array); 
17// new_float_array 是要写入的新浮点数数组

代码分析:通过这些函数,我们能方便地对浮点数进行操作。在实际应用中,比如温度、压力等模拟量数据的处理,使用 CIP 通讯能高效准确地完成浮点数的读写。而 Fins 通讯在处理浮点数时,往往需要额外的转换步骤来确保数据的准确性和一致性,CIP 通讯则很好地避免了这些麻烦。

经过实际测试,使用上述基于 CIP 通讯的程序能够准确运行,从此再也不用纠结那些让人头疼的 % 转换成 Fins 的问题了。CIP 通讯以其简洁、高效、强大的功能,在 Labview 与欧姆龙 PLC 的通讯中展现出了比 Fins 通讯更完美的一面,为自动化项目的开发节省了大量的时间和精力。希望大家在实际项目中也能多多尝试 CIP 通讯,感受它带来的便利。


Labview 与欧姆龙 PLC 的 Ethernetip TCP 网口通讯:CIP 通讯的魅力》 是转载文章,点击查看原文


相关推荐


单片机手搓掌上游戏机(十六)—pico运行fc模拟器之程序修改烧录
Bona Sun2025/11/30

我们来山寨picosystem,毕竟79刀,有些地方还是要简化修改的。 到: https://github.com/fhoedemakers/PicoSystem_InfoNes 下载zip或者git clone都可以。 解压缩,用vscode 打开文件夹   修改的地方:  首先是那个VSYNC,也就是8引脚的一个输入信号,我能买到的st7789上都没有这个引脚,看了一下代码 就是等待它的下降沿,也就知道该刷下一屏了。  其实没多大作用,我孤陋寡闻,还没见过屏幕撕裂,


谷歌的大反击:Gemini 3 Flash 让“快”和“聪明”终于握手言和
墨风如雪2025/12/18

还记得以前我们怎么挑选大模型吗?我们要么忍受旗舰模型“老牛拉破车”般的推理速度,只为求一个靠谱的答案;要么为了秒回的快感,去忍受轻量级模型偶尔的“胡言乱语”。 在这个2025年的尾巴,谷歌似乎终于要把这道选择题撕掉了。 12月17日,Gemini 3 Flash 正式上线。如果不看发布会,光看名字,你可能会以为这又是一个为了省钱而不得不做出的妥协版。但上手实测并扒开数据一看,这次的情况有点不一样。谷歌不想让你把它当备胎,而是想让它成为你每天都在用的主力。 速度不再是智商的敌人 让我们先聊聊最直


从“单机”到“分布式”到“集群”,服务经历了什么?
哈里谢顿2025/12/27

【万字长文·图解】 从“单机”到“分布式”到“集群”——一次讲透两者的区别、联系、落地场景与常见架构 一、先放一张脑图 单机(one box)────┬──> 集群(Cluster):多台机器干**同一件事**(横向复制) └──> 分布式(Distributed):多台机器干**不同的事**(横向拆分) 关键词 集群 = 人多力量大(量) 分布式 = 专人干专事(分工) 现实中往往“分布式 + 集群”混合出现(既拆分又复制) 二、集群(Cluster)


CISP-PTE 日志分析1
mooyuan天天2026/1/5

目录 一、渗透准备 1、打开靶场 2、开始答题 3、分析日志 (1)基于ip地址分析 (2)基于响应值200分析 二、暴力破解 1、firefox打开adminlogin.php页面 2、bp inception设置为on 3、输入用户名密码登录 4、bp抓包发送到intruder 5、配置intruder的positon 6、配置intruder的payload并开启攻击 7、分析攻击结果 8、正确密码登录 本文详细讲解CTF-PTE靶场日志分析关卡的渗透实


React Native for Harmony:订单列表页面状态筛选完整实现
lili-felicity2026/1/13

目录 核心知识点:订单列表状态筛选 完整核心用法 1.1 核心内置 API/Hook/组件 介绍实战开发:双版本完整实现 2.1 版本一:基础极简版 - 订单状态单选筛选OpenHarmony6.0+ TS环境专属避坑指南扩展用法:订单筛选高频进阶技巧 一、核心知识点:订单列表状态筛选 完整核心用法 1、核心内置 API/Hook/组件 介绍 本次实现的订单列表「状态筛选」功能,全程基于React Native原生核心能力开发、无任何第三方依赖、无鸿蒙原生桥接代码,所有能力完美适配鸿蒙端,且在T


【Linux 系统开发】基础开发工具详解:软件包管理器、编辑器。编译器开发实战
纵有疾風起2026/1/21

目录 引言 一. 软件包管理器 1.1 什么是软件包 1.2 Linux软件生态 1.3 如何使用yum/apt 1.4 安装源 二. 编辑器Vim 2.1 Linux编辑器-vim 2.2 vim的基本概念 2.3 vim的基本操作 2.4 vim命令模式命令集 1)进入插入模式: 2)从插入模式切换为命令模式 : 3)移动光标 : 4)删除文字: 4)复制: 5)替换: 6)撤销上一次操作: 7)更改 : 8)跳至指定的行: 总结并拓展: 2.5

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2026 XYZ博客