Labview_TCPIP通讯(含测试DEMO)

对于网络通信来说,LabVIEW平台本身提供了多种方法加以实现,如可以通过TCP协议、UDP协议、DataSocket技术、甚至远程面板通信技术等方式进行通信。

下面通过一个简单的例子,演示在LabVIEW中如何通过TCP协议实现两个程序之间的数据通信功能。

实例说明

编写两个程序,分别为服务器端程序和客户端程序。其中,服务器端程序开始运行时,处于等待客户端连接的状态中,一旦有客户端成功连接,则向客户端发送带有时间信息的字符串“I`m sever!”;客户端程序与服务器成功建立连接后,则读取服务器端发送的信息,并在前面板上显示出来,以此来实现服务器端与客户端的通信。

编程思路

TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。使用LabVIEW基于TCP协议编写通信软件时,一般其整个传输过程如下:

(1)服务器通过主机名或者IP地址与端口号,建立侦听,等待客户端连接;

(2)客户端根据主机的IP地址和端口号发出连接请求;

(3)服务器与客户端建立连接后,通过读写函数进行TCP数据通信;

(4)关闭连接。

在LabVIEW中,提供了一组专门的相关TCP的操作函数,在后面板程序框图中进入函数数据通信协议中选择TCP可以进入TCP子模板,主要节点函数如下图所示。

 

 

使用上面的函数,下面分别给出服务器端程序和客户端程序的具体实现方法。

服务器端程序

服务器端前面板如下图所示,其中,“端口号”设置服务器程序的端口,该值即为客户端程序的要连接的服务器程序的端口标识值;“待发送字符串”为发送给客户端程序的内容,该处设置为“I`m sever!”。

 

 

服务器端程序框图如下:

 

 

在程序框图中,首先利用“TCP侦听”函数创建一个侦听,该函数需要2个关键参数:端口号和超时时间(单位为ms)。该示例超时时间设为-1表示永远不超时,即无限等待下去直到有一个客户端程序连接。该函数运行后返回一个“连接ID”参数,该参数是其它TCP相关操作函数的输入参数接口。利用“格式化日期/时间字符串”函数取得当前的系统日期及时间,然后与待发送的字符串连接后得到实际发送的消息内容,利用“写入TCP数据”函数发送到客户端程序即可。该例中采用了两个“写入TCP数据”节点函数发送数据,首先发送消息内容的字节数(此处使用“强制类型转换”函数将“I32”类型的长度数据转换为字符串),其次发送实际的内容字符串数据。这种先发字符串长度再发字符串内容的发送方式有利于客户端正确的接收数据。最后调用“关闭TCP连接”函数,退出程序。

客户端程序

客户端前面板如下图所示,其中,“端口号”即为服务器端程序设置的端口标识值;“IP地址”设置服务器端程序的IP地址,“已接收字符串”显示服务器端程序发送的消息及收到该消息时的时间信息。

 

 

客户端端程序框图如下:

 

 

在程序框图中,首先调用“打开TCP连接”函数建立与服务器端程序的连接,该函数需要2个关键参数:IP地址和端口号,即服务器端程序所在的主机的IP地址及服务器端程序设置的端口号。该函数与服务器端程序正确建立连接后返回一个“连接ID”参数,该参数是其它TCP相关操作函数的输入参数接口。与服务器端框图程序相对应,该程序也采用了2个“读取TCP数据”节点函数读取服务器端程序发送的数据,与“写入TCP数据”节点函数不同的是,该函数还需要一个参数:要读取的字节数。由于服务器端程序先发送的是总字节信息,因此客户端首先读取接收消息内容的字节信息,输入I32类型的常数“4”,表示读取4个字节的内容,然后将读取的字符串内容使用“强制类型转换”函数转换为“I32”类型的字节值,将字节值作为第2个“读取TCP数据”节点函数的读取的字节值参数,然后将实际的消息内容读出显示到前面板的“已接收字符串”控件上即可。这种方法是TCP通信中常用的方法,可以保证在不丢失数据的前提下有效地发送或接收数据。最后调用“关闭TCP连接”函数,退出程序。

总结

通过上面的程序可以看出,由于LabVIEW对TCP协议通信底层的具体实现方法进行了高度的封装,因此使用这些函数构建复杂、灵活的网络测试系统时,相对于其它高级编程语言,将会大大降低编程人员的开发难度,提高编程效率,这也是图形化编程语言的高效、简洁的魅力所在。

另外,需要说明的是:

(1)采用TCP节点通信时,在服务器端框图程序中必须指定网络通信端口,客户端也要指定相同的端口,才能与服务器之间进行正确的通信,如上面例子中指定端口号为1800。在一次通信连接建立后,就不能改变端口的值了。如的确需要改变端口值,则必须首先断开连接,才能重新设置新的端口值。

(2)在客户端要指定服务器的IP地址才能与服务器之间建立连接。若服务器和客户机在同一台机子上运行时,客户端框图程序中输入的服务器地址可以设置为下面任意一个值:“localhost”、“127.0.0.1”、空字符串或者当前计算机的名称。

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LabVIEW是一种功能强大的编程环境,可用于开发和控制各种自动化设备。欧姆龙PLC是一种常用的可编程逻辑控制器,常用于工业自动化控制系统。TCP/IP是一种广泛应用于互联网的通信协议。 LabVIEW与欧姆龙PLC通过TCP/IP通信可以实现实时数据传输和控制指令的发送。通过TCP/IP通信,LabVIEW可以与欧姆龙PLC建立连接,实时读取PLC的数据状态,并将其显示在LabVIEW界面上。同时,还可以将LabVIEW中处理得到的数据、参数等信息通过TCP/IP通信传输给PLC,实现对PLC进行控制的功能。这种方式可以实现LabVIEW与欧姆龙PLC的双向通信,方便地进行数据交互和控制操作。 为了实现LabVIEW与欧姆龙PLC的TCP/IP通信,需要在LabVIEW中使用TCP/IP通信相关的函数和工具库。LabVIEW提供了一系列TCP/IP通信的函数和工具库,使得开发者可以方便地进行TCP/IP通信的编程工作。在LabVIEW中,可以使用这些函数和工具库实现TCP/IP通信的建立、连接、数据传输等操作。 总结起来,LabVIEW和欧姆龙PLC通过TCP/IP通信可以实现实时数据传输和控制指令的发送。通过LabVIEW中的TCP/IP函数和工具库,可以方便地搭建TCP/IP通信的环境,实现LabVIEW与欧姆龙PLC之间的数据交互和控制操作。这种通信方式在工业自动化控制系统中得到广泛应用,能够提高系统的实时性和可靠性,提升自动化控制系统的整体性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值