研选课堂
HOME
研选课堂
正文内容
labview PLC编程 LabVIEW通过以太网与西门子S7-1200PLC通信,制作你自己的WINCC
发布时间 : 2025-01-22
作者 : 小编
访问数量 : 23
扫码分享至微信

LabVIEW通过以太网与西门子S7-1200PLC通信,制作你自己的WINCC

原创不易,请勿抄袭!

很多人可能听过或者用过这个软件,其实简单来说就是一个信息采集的系统,在工业中,对应的就是人机界面,类似于WINCC,INTOUCH,组态王等等,近几年在国内很火,今天和大家分享一下。

其实,建立自己的人机界面的方式有很多种,其中包括文中所讲的Labview,除此之外作者还使用过VB运用prodave驱动或者Libnodave驱动连接PLC数据制作画面,也非常好用。都是非常好用且有趣的应用,而且使用这些小众化的方式可以使得编出来的人机界面很高大上,最重要的是没有刻苦学习过的人无法更改或者判断故障,也就是不可替代性!搞工控的都知道不可替代性代表了什么,尤其是在每年数万电气自动化毕业生就业的前提下。

除了上述的目的,我觉得对于这些应用,一般的工控人员来讲只需要简单了解,需要用的时候再去研究学习即可,毕竟自动化知识不是纸上谈兵,没有实际应用再好的学生也学不来。

好吧,开始我们今天的案例!

一 概述

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

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

二 测试硬件和软件

硬件包括:

博途S1200PLC:CPU 1215C和PC一台;

软件包括:

博途 TIA V14 SP1和LabVIEW 2012 或以上版本

编程思路分为两步;

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

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

三 操作步骤

3.1 CPU配置

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

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

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

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

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

3.2 添加数据块

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

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

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

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

3.3 编写发送数据程序

1 打开 Main 程序

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

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

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

3.4 编写接收数据程序

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

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

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

4 为了判断PLC是否正确接收到LabVIEW所发送的数据,可通过以下两种方法测试。

a、将第3.3 的数据发送区设置为与数据接收区相同的数据块,即 PlcRecvData,使PLC把接收到数据发送回LabVIEW。

b、添加 MOVE 指令采用数据移动的方法完成此功能,如下所示:

3.5 编写LabVIEW程序

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

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

3) 发送数据TCP Write。

4) 关闭连接TCP Close Connection。

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

3.6 下载程序,连接测试

哎呀妈呀,累死我了,大家点个赞支持我一下呗!

喜欢的话请点赞并分享,您的支持是我坚持下去的动力!送人玫瑰,手有余香!

PLC, LABVIEW,C#——浅谈自动化工程师编程语言的选择

大家好,我是华山自控编程的朱老师!

常常有一些刚出来的大学生问我,想学习自动化方面编程,PLC, LABVIEW,C# 到底该选择哪一种编程语言? 同样,一些PLC工程师们想转型上位机编程,也会问,LABVIEW和C#这两种编程语言哪一种较好?在这里,我想分享下自己的看法。

我99年开始从事PLC编程,当时的主流PLC品牌包括西门子,AB,OMRON ,三菱 等品牌PLC我基本上都用过,随着运动控制卡的兴起,2008年后开始在一些小型设备上使用上位机编程,2012年后所开发的一些专机设备很多都带机器视觉,控制系统也基本上都是使用上位机编程了。在这里,我想从以下几个方面谈谈自动化行业如何选择适合自己的编程语言。

一.编程语言方面的差异

PLC编程主要是梯形图语言,当然也有个别的使用STL,SCL等这些类似于basic的简单语言编程,学习起来比较容易,指令也容易理解,手册基本中文,没有什么学历要求,其实自己拿手册多看几遍,也可以很快地入门(当年我自己就这样入行的)。

LABVIEW采用的是图形化编程,主要是框图连线样式,连线控件看上去有点像西门子的FB功能块编程,界面也是全中文,直观形象,特别是它的帮助功能强大,基本上所有的指令都有非常详细的帮助支持,提供详细说明和使用样例,因此学习起来也相对比较轻松的,就算学历不高,只要逻辑思维能力强,也是能学好的。

C#语言采用的是代码编程方式,从事这种编程也就是我们常说的’码农’。 C#语言有一定学习门槛,要学好一般来说需要大中专以上学历,还有就是需要你有一定的英语基础,因为界面上特别是代码界面基本上是英语呀,所以从入门来说,英语就需要一定的基础,我个人觉得有高中以上的英语基础就能应付,英语基础差的,可以专门学习《C#编程英语词汇》,这个词汇我整理了一份,有需要的同学可以找我分享。

至于PLC, LABVIEW , C#三种语言在程序结构和运行方式上面的差异,这里不详谈。

二.PLC ,LABVIEW , C# 适用的范围

PLC主要是适用过程控制,应用的领域大多是工厂的自动化流水线系统,在分散控制方面PLC有优势,用远程模块或总线方式,就能把一条很长的流水线串连起来。因此,PLC系统在这些分散式IO较多的系统,比如电磁阀,指示灯,传送,移载等场合应用较多。

LABVIEW 也称’虚拟仪器’,从名称上就可以看出,这个语言跟仪器是紧密相关的。它主要应用于 电流,电压,流量,电阻,电容,各种设备参数 等需要测试的场合,与测试仪器连接较多,自带很多仪器的驱动,因此用来做测试程序也具有无可比拟的优势。LABVIEW也可以用来做运动和视觉方面的控制系统,相对来说,测试系统更是LABVIEW应用的主流,PCB行业应用较多。

C#在自动化行业的应用,近年呈直线式上升。2015年以前VB和VC++是自动化行业应用较多的语言,2015年以后大部分都用C#开发了。C#特点是界面制作简单快捷,程序开发速度快。相较于LABVIEW, C#的灵活性更强,市场应用面也更广。运动控制卡,机器视觉,数据库,通讯等自动化控制领域C#的应用比较多。贴片机,点胶机,切割机,焊接机等很多的高精密的专机设备,大都采用C#配运动控制卡和CCD视觉的控制系统。

三.PLC ,LABVIEW , C# 从业人员出差情况及薪资水平比较

广东地区来说,PLC行业入门起薪在5K左右,5年左右资深PLC工程师12K左右,再上升难度就比较大了。PLC工程师基本上需要经常出差,因为设备在现场组装,必须到现场调试才能将系统运行起来。

LABVIEW 新手工资在7K左右,5年左右资深LABVIEW工程师12K~15K左右比较多,再上升难度也比较大,相对来说, LABVIEW工程师在现场调试的时间不会像PLC工程师多

C#新手起薪一般在8K左右,5年左右资深的C#工程师15K~25K左右的比较多。

因为C#控制系统的设备主要应用在专机上,因此一般在出厂前都调试好了,整机出厂,现场调试的时间很少,就算有问题一般也可以通过远程方式解决,相对来说出差也是比较少的。

这个只是市场大体行情,个别情况不做比较。

以上啰嗦了这么多,希望对那些选择编程语言困难的同学有帮助。想从事自动化编程的同学,可以根据自身的爱好和特点,以及希望从事的工作方向,选择适合自己的编程语言。

相关问答

如何用labview去编写生产线MES程序?

使用LabVIEW编写生产线MES程序需要以下步骤:1.确定需求:了解生产线的工艺流程和数据采集要求,明确需要监控和控制的参数。2.设计界面:使用LabVIEW的图形...

labview怎么通过modbus和plc通讯?

在LabVIEW中通过Modbus与PLC进行通信,可以使用NI的Modbus库或第三方库来实现。下面是一般的步骤:1.准备硬件:首先,连接您的PLC设备和计算机。通常使用串口...

LabVIEW与PLC如何进行Modbus通信?

首先确定双方是否有硬件接口,比如RS232或RS485端口。使用屏蔽双绞线,最后一个从站加120欧电阻。RS232方式不要超15米,RS485方式长度不要超过一千米。再确认二...

plc如何控制LabVIEW虚拟对象?

PLC控制labview这个还真没听说,顶多就是plc里面某个输出寄存器或者继电器的值变了之后labview程序或者VI可以产生相应的响应!一般来说,都是labview编写上位机...

如何用labview与西门子PLC串口通迅?

补充一下上面两位朋友的看法。在西门子的plc侧也需要针对自由口进行一些程序的编制。如果是200系列plc,一般都自带一个自由口;如果是300系列的话,需要增加一...

labview和plc哪种难学?

PLC①般用于大批量分布式多点控制交互,这种情况下,在工业现场用的较多;①般使用PLC的场合要求的速率不是非常高,但是“结点”非常多。由于PLC天生的优势(其...

西门子S200PLC如何建立通信?

现在PC上建立OPCserver,可以下载西门子公司SIMATICNETOPCserver,这时候可以用ETHERNET、PROFIBUS、MPI都可以和西门子PLC建立通讯关系。通讯成功...

OPC与PLC通讯?

没用过Labview的OPCServer,大概看了一下NI的介绍和一些文档。OPCServer有规范的,所以软件做出来都差不多。OPCServer中创建一个设备,选择好与设备通讯的...

开发单片机学什么语言好?

单片机是一种可编程器件,单片机的出现使硬件设计变得更为简单,产品的功能也更强大,而程序就是单片机的灵魂。目前功能稍微复杂一点的电子产品,都是以单片机为...

大神您好,请问三菱plc控制伺服电机怎么编程,主要就是伺服电机带动一根轴转动,左转三圈,右转三圈?

485232modbus等等。脉冲的话,顾名思义,高速脉冲,方向,...通讯各种各样的都有,专用协议,485232modbus等等。脉冲的话,顾名思义,高速脉冲,方向,脉冲数...

 传奇神之手  皇朝秘史txt 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部