LabVIEW通过以太网(TCP)与S7-1200 PLC通信

article/2025/10/14 7:33:25

LabVIEW通过以太网(TCP)与S7-1200 PLC通信

laiping    20170901

摘要:本文介绍LabView采用以太网(TCP)方式与西门子S7-1200PLC通讯

关键字:LabView、S7-1200、TCP、PLC、通信

1、概述

    西门子S7-1200 PLC支持多种协议通过以太网通讯方式,如OPC、TCP、S7、MODBUS-TCP等。TCP方式相比其它协议,具有更多的灵活性,更快的数据响应等优点,本人即介绍LabVIEW通过TCP方式与S7-1200 PLC通信。

    S7-1200 PLC的TCP通信方式,称之为“开放式用户通讯”,通过以太网发送或读取数据。

2、测试环境

2.1 硬件平台

1)       PLC:CPU 1215C  固件v4.0;

2)       PC一台;

2.2 软件平台

1)       博途 TIA V14

2)       LabVIEW 2012 或以上版本

2.3 整体思路

1)       PLC编程:配置PLC --> 添加发送和接收数据块 --> 发送数据程序 --> 接收数据程序 --> 编译下载

2)       LabVIEW编程:创建TCP连接 --> 接收或发送数据 --> 关闭连接

3、操作步骤

3.1 CPU配置

1)       打开 TIA Portal,创建项目,添加CPU为1215C。

2)       双击“设备组态”,切换到“设备视图”,点击CPU,右键选择属性。

3)       在常规栏,选择PROFINET 接口[X1]/以太网地址属性,设置CPU的IP地址,本例设置为 192.168.0.10,如下图所示:

图 1

4)       在常规栏,选择系统和时间存储器属性,启用系统存储器字节和时钟存储器字节,如下图:

图 2

5)       如果传输的数据量大,且实时性要求高,可选择通信负载属性,把由通信引起的循环负荷由默认为20%,提高到 50%。

图 3

3.2 添加数据块

1)       添加发送数据块。该数据块用于存储PLC向LabVIEW发送的数据。点击程序块/添加新块,在打开的对话框中选择数据块,输入名称,如 PlcSendData ,类型可选择全局DB。注意如果不一次性传输大量数据,可以直接使用PLC变量,单次发送一个数据,不需要创建数据块。

图 4

2)       打开该数据块PlcSendData ,添加数据,名称如 ArySendData,选择数据类型Array of Byte,即字节数组,数组长度设置为10。

图 5

3)       修改数据块属性。选中数据块PlcSendData ,右键属性,在属性栏去掉优化的块访问,以支持绝对寻址模式。

图 6

4)       添加接收数据块。该数据块用于存储LabVIEW向PLC发送的数据。数据块名称PlcRecvData,数据类型Array of Byte,操作方法同步骤1、2、3。

图 7

3.3 编写发送数据程序

1)       打开 Main 程序

2)       添加指令通信/开放式用户通信/TSEND_C到程序段1,调用选项的数据块名称采用默认。

图 8

3)       配置 TSEND_C 的通讯参数。选中 TSEND_C,右键属性,切换到组态页,选择连接参数属性。伙伴项选择未指定连接数据选择新建系统会自动创建一个连接数据,如PLC_1_Send_DB。输入伙伴的IP地址,如192.168.0.12。由伙伴主动建立连接,PLC的端口可保留默认的2000。连接类型为TCP,连接ID采用默认值。(注:所谓伙伴即与PLC通信的另一方,可以为上位机PC、HMI等)

图 9

4)       配置 TSEND_C 的输入输出。TSEND_C在检测到参数 REQ 上升沿时执行发送作业,因此每次发送数据时,都应在REQ上产生一个脉冲,此处为了简便,调用系统时钟 Clock_10Hz(每秒10次),周期性的发送数据。参数DATA为待发送的数据,此处调用数据块 PlcSendData。注意DATA采用纯符号寻址时,发送 LEN 应设置为0,而采用绝对寻址时,应设置为实际发送数据的长度。通讯状态参数 DONE\BUSY等按需要连接。

图 10

3.4 编写接收数据程序

1)       添加指令通信/开放式用户通信/TRCV_C 到程序段2,调用选项的数据块名称采用默认。

2)       配置 TRCV_C 的通讯参数。选中 TRCV_C,右键属性,切换到组态页,选择连接参数属性。伙伴项选择未指定连接数据选择3.3 步骤自动创建的数据,如PLC_1_Send_DB切记不要选择新建(此例的通讯连接为自动创建,因此发送与接收共用一个连接,必须保持一致才能正常通讯)。

图 11

3)       配置 TRCV_C 的输入输出。TRCV_C在检测到参数 EN_R 为1时启动接收。参数DATA为数据接收区,此处调用3.2步骤所创建的数据块PlcRecvData。注意DATA采用纯符号寻址时,接收 LEN 应设置为0,而采用绝对寻址时,应设置为实际发送数据的长度。通讯状态参数 DONE\BUSY等按需要连接。具体参数信息请查看帮助文档。

图 12

4)       为了判断PLC是否正确接收到LabVIEW所发送的数据,可通过以下两种方法测试。
a、将第3.3 的数据发送区设置为与数据接收区相同的数据块,即 PlcRecvData,使PLC把接收到数据发送回LabVIEW。
b、添加 MOVE 指令采用数据移动的方法完成此功能,如下所示:

图 13

3.5 编写LabVIEW程序

1)       创建TCP连接TCP OpenConnection。输入PLC的IP地址 192.168.0.10 和端口号2000。

图 14

2)       读取数据TCP Read。输入读取长度10(PLC程序的发送数据块长度为10个字节)。

图 15

3)       发送数据TCP Write。

图 16

4)       关闭连接TCP Close Connection。

5)       前面板如下。点击 Write,把数据WriteData写入PLC,同时PLC把该数据发回LabVIEW,通过 ReadData显示。如果ReadData数据与WriteData一致,即通信正常。

图 17

3.6 下载程序,连接测试

参考文献:

1.  SIEMENS SIMATIC S7 S7-1200 可编程控制器系统手册

附:PLC与LabVIEW源码 下载链接:

https://download.csdn.net/download/laipin7/24826129

常见问题解答

问题:通讯无法建立连接,错误代码56

解答:报错原因为上位机与PLC建立TCP连接失败,IP地址或端口号错误,请检查:

1)上位机与PLC在同一网段,并且物理连接正常(指示灯可直观判断),无IP冲突

2)上位机IP地址,与图9、图11中设置一致,即192.168.0.123

3)先开启PLC,并确认PLC处于运行模式,再运行上位机程序


http://chatgpt.dhexx.cn/article/GwPsq86E.shtml

相关文章

不用编程,快速实现西门子PLC与罗克韦尔(AB)PLC之间以太网通讯

智能网关IGT-DSER支持多点对多点的PLC之间通讯,支持以太网,串口设备混合数据交换;无需编程开发,只须配置数据的起始地址和数量即可,支持热插拔,断电重启后自恢复运行,支持网络跨网段&#xff0c…

西门子S7-300型PLC与西门子S7200smart型PLC的以太网通讯例程

西门子S7-300型PLC与西门子S7200smart型PLC的以太网通讯例程 为程序 300PLC的IP地址:192.168.0.1 200PLC的IP地址:192.168.0.4 S7-300 与smart200以太网通讯 通信简介 S7 通信是S7系列PLC基于MPI、PROFIBUS、ETHERNET网络的一种优化的通信协议&#xff0…

西门子PLC 以太网通讯

云锋 个人主页给TA发消息加TA为好友发表于:2011-03-04 14:44:55楼主 实际工程中用过的PLC 以太网通信案例,需要把PLC型号、与PLC通信的设备、通信的各种参数及情况、通信实现的功能等说明清楚,贴出程序并加以说明。 PLC及与PLC通信的设备类…

三菱PLC内置以太网通讯

三菱PLC在与外界进行数据交换时可以使用内置以太网与PC建立连接。 实际使用三菱Q系列PLC,在连接之前测试网络是否连通,我采用的TCP/UDP测试工具,将PC端设置与PLC内网在同一网段,然后在编程软件中配置PLC参数。 如图所示&#xff…

不用编程实现PLC之间通讯-西门子与三菱以太网实时通讯

PLC通讯智能网关IGT-DSER支持各种PLC之间多对多通讯;PLC无需编程,只需配置寄存器地址,还带有字节顺序调整功能,方便快速实施;因为是多线程的交互模式,所以可以保证高实时性;支持串口、网口通讯&…

PLC 以太网通讯

 云锋 个人主页给TA发消息加TA为好友发表于:2011-03-04 14:44:55楼主 实际工程中用过的PLC 以太网通信案例,需要把PLC型号、与PLC通信的设备、通信的各种参数及情况、通信实现的功能等说明清楚,贴出程序并加以说明。 PLC及与P…

同感,在另外一个小华为待过,也差不多是这样的

最近很多朋友咨询的一些硬件问题,发现朋友们没有仔细的看datasheet,也没有好好的做电路分析。我讲一讲华为是怎么做硬件开发的,给正在做硬件开发的朋友一些启示。说的不对的地方,大家批评指正。 曾经2007年,刚工作2年的…

转载的硬件十万个为什么

硬件十万个为什么 微信号 Hardware_10W 功能介绍 热爱技术,乐于分享 1、电源类 1.1 电源基础 各种“地”—— 各种“GND” 板载电源设计规范 电源环路稳定性评价方法 深入芯片内部,理解去耦电容的作用 减小DC/DC变换器中的接 地反弹——一些接地要点…

华为内部硬件开发设计流程

点击上方“大鱼机器人”,选择“置顶/星标公众号” 福利干货,第一时间送达 华为内部硬件开发设计流程 2007年,以2年的工作经验去一家小公司去面试。当时笔试完,对方对我很认可。但当时他说:“我需要招一个,在…

python语言创意绘画-校招资讯|拼多多、百度、中建六局等名企校园招聘

原标题:校招资讯|拼多多、百度、中建六局等名企校园招聘 1、【上海】拼多多 【公司简介】 拼多多是国内目前主流的手机购物APP。用户通过发起和朋友,家人,邻居等的拼团,以更低的价格,拼团购买商品。旨在…

嵌入式工程师是青春饭吗?越老越吃香吗?

信息来自火哥,朱晓明,CSDN等 一位不愿透露姓名的嵌入式工程师说过,“我是一名嵌入式软件工程师,我现在慌得一笔!”并非计算机科班出身的他,整个七年下来感觉自己学习的课程也不比电子信息科班出身的少&…

关于硬件工程师的真相:敢问路在何方?

关于硬件工程师的真相:敢问路在何方? 硬件工程师,曾经有多少人希望从事的职业?在别人眼里好像能够从事硬件设计需要你了解很多东西,可以从事这个职业之后才逐渐发现,硬件工程师处在一种非常难受的困境当中…

数模混合仿真

SPICE模型 参考:做电路仿真必须知道什么是SPICE模型! 如今,每一天都有不知其数的半导体芯片设计公司与设计验证工程师,在用着电路仿真软件SPICE。SPICE广泛应用在仿真模拟电路(例如运放OpAmp,能隙基准稳压…

2022年由电子科技到整体科技

2022年由电子科技到整体科技 2022年的电子科技产业:五大趋势预测 走过饱经波折的2021年之后,整个电子产业正式迈进了2022年。 参考文献链接 https://mp.weixin.qq.com/s/3QUQ5bTc96P97pychTlsTA https://mp.weixin.qq.com/s/-PAmFVoBJVmE6YA2yQ5QRA 虽…

苏姿丰承认:PC真的不行了;马斯克:我被推特骗了;周鸿祎称微软抄袭 360 安全模式后发文否认​ | EA周报...

EA周报 2022年8月5日 每个星期7分钟,元宝带你喝一杯IT人的浓缩咖啡,了解天下事、掌握IT核心技术。 周报看点 1、腾讯将取消部分外包免费食堂福利 2、马斯克:我被推特骗了,他们吹嘘的日活用户数远高于看广告的用户数 3、小米展示Mi…

如何打造自动驾驶的数据闭环

最近自动驾驶和数据闭环结合在一起,原因是自动驾驶工程已经被认可是一个解决数据分布“长尾问题”的任务,时而出现的corner case(极端情况)是是对数据驱动的算法模型进行升级的来源之一,如图所示。 构成这个自动驾驶数…

2021-01-28

SoC知识及选型经验分享 1.什么是SoC? 在嵌入式产品领域,SoC是这么个意思:一般说来, SoC(System on Chip的缩写),称为芯片级系统,也有称片上系统,意指它是一个产品&#…

VisionSeed:一颗让 AI 开发遍地开花的种子!

作者:从墨 人工智能市场的火热,自然吸引了众多开发者趋之若鹜,然而,由于AI开发门槛较高,因此,能够真正具有AI应用开发能力,并将AI技术应用到企业当中的用户少之又少。 数据、算力和算法作为是…

5分钟成为车联网专家|如何实现C-V2X技术突破把住车联网发展命门

C-V2X被视为5G最有前景的应用之一,是业界热点。首先,简要介绍智能驾驶与C-V2X融合发展的必要性和建设中的技术问题;然后,结合V2X整体解决方案,研究各网元的功能定位、关键技术趋势、难题与产品形态;接着&am…

DAMS峰会:解读ES搜索平台、AI中台、DataOps、机器学习等大数据技术精要

DAMS峰会:解读ES搜索平台、AI中台、DataOps、机器学习等大数据技术精要 dbaplus社群 今天 近年来,因数据衍生、关联、发展起来的技术层出不穷,我们不断探索数据从资源转化为资产的方法,又面临在数据共享和互通中引发的安全隐患&am…