vbnet串口通信实例_工业通信之何谓EtherNet/IP

434e4f1f2b653288f1e0851c6c91e0f7.png

这是自动化圈的第 8 篇文章,本文主要介绍工业通信基础以及重点分析EtherNet/IP原理。

在介绍EtherNet/IP之前,先扯一点通信的东西,EtherNet/IP是众多通信方式之一,先介绍通信知识,让我们先有一个全局的视角再去看待EtherNet/IP。

1 通信模型

下面图片是通信最基本的模型:

20fd9f49526b678a9eadae6bef396dd8.png

一个完整的通信应该包括发信方、收信方、传送的途径和传送方式。通信的目的是传送信息,信息是有载体的,信息的载体具有不同的形式,如文字、声音、图像、手势等。发信方发出信息,通信系统以不同的方式(如电信号、光信号)将它们传送到收信方,变成收信方可以理解的信息,这就完成了通信的全过程。

上面是有一个简单的过程,真实世界还要考虑干扰等因素。因此,人们不断在上述环节展开研究、改进,以满足不同的应用场合,才形成了当今复杂的通信系统。

在自动化行业中,经常需要两台机器的通信,根据上面模型,要实现一个通信就必须要具有以下3个条件:

1.发信方和收信方,也就是要有两台机器设备,比如PLC和PLC,PLC与变频器、PLC与机器人等。总之,通信首先要清楚通信对象,是谁和谁之间通信。比如当一个PLC与多台相同的变频器通信,就容易混淆。

2.连接途径;连接途径是连接发信方和收信方的方法。连接途径可以是串口线(使用RS485、RS232通信),也可以是网线(使用ProfiNet、EtherNet/IP等通信),也可以无线等。无论采用什么通信,都必须要有连接途径,也就是要有路可走。这种连接途径是实实在在的,看见的硬件连接。

3.传送方式;传送方式是收信方和发信方约定的协议,只有拥有相同的协议的机器才能通信,比如一人说中文,另一个说英文是没法交流的。常见的协议有RS485、RS232、ProfiNet、EtherNet/IP等。这些协议是软件编写的,设备出厂时就已经写在设备里。通信协议非常多,有些是通用公开的,而有些是各个自动化公司自己推出的。

2 各种通讯方法之间区别

根据上面的模型,各种通信的区别就是连接途径和传送方式的不同,即硬件连接线和通信协议的区别。比如串口和以太网使用的电缆是不一样的,也就是连接途径区别。还比如Profinet、EtherNet/IP、Modbus TCP/IP虽然连接途径一样,都是网线,但他们的协议不同,互相之间仍不能交流。

此外,连接途径和传送方式是一一对应的,也就是通信协议和硬件电缆是绑定的,比如工作中常听到Profinet,Profibus,虽然说的是协议,并没有说使用的电缆,因为知道协议也就确定了使用什么电缆。

具体到通信协议原理是很复杂的东西,在此不做深究。只需要知道Profinet、EtherNet/IP、Modbus TCP/IP等都是一种发送、接收信息的约定规范,只有发信方、收信方都支持这种协议时才能互相通信。

3 EtherNet/IP简介

EtherNet/IP是由 ODVA规范管理并公开的的工业通信网络。ODVA是一家国际标准开发组织,由世界领先的自动化供应商成员组成,EtherNet/IP正是这个组织的代表作。EtherNet/IP通过将 CIP 协议、 TCP/IP、以太网这三者组合之后得以实现。由此可知,连接途径仍是网线,传送方式是CIP协议及组合。

EtherNet/IP 通信中,扫描器和适配器是十分重要的概念。当开始 EtherNet/IP 通信时,一台设备相对于另一台设备,需要打开被称为 “ 连接 ” 的通信线路。打开连接的一侧称为 “ 扫描器 ”,类似主站;被打开的一侧称为 “ 适配器 ”,类似从站。

f2812e681609d11f2f880d408dd3271f.png

EtherNet/IP 具有定时收发数据的周期通信 (Implicit 信息)和不定时收发指令 / 响应的信息通信 (Explicit 信息)两种方式。在周期通信中,可按照收发数据的优先程度来设定 RPI(通信周期),从而可以调整整体的通信量来收发数据。在信息通信中,可在必要时间通信所需的指令/响应。信息通信无需循环通信的定时性,例如,可用于读写适配器设备的设定用途等。

EtherNet/IP通信通常是在扫描器中设置设置适配器的参数,如图新增一个适配器:

08620efb7b1e191af9763ef725c8c185.png

Name:适配器唯一的名称;

IP Address:适配器的IP地址

Input Assembly instance /size:输入实例/大小,根据适配器实际设置

Output Assembly instance /size:输出实例/大小,根据适配器实际设置

Configuration Assembly instance /size:配置实例/大小,根据适配器实际设置

上述输入实例、输出实例、配置实例是指传送数据的格式,比如数据中标志位和状态位的规定。有些设备是出厂时就指定这些参数,扫描器和适配器的这三个参数一定是对应的。

603294d31c21d834fdc047bc22a8a510.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在VB.NET中获取局域网中的IP地址,可以使用System.Net.NetworkInformation命名空间中的相关类和方法。 首先,可以使用NetworkInterface类来获取本地计算机上的网络接口信息。可以通过NetworkInterface.GetAllNetworkInterfaces方法获取所有网络接口的列表,并遍历该列表来获取每个网络接口的信息。 然后,可以根据每个网络接口的信息,使用IPInterfaceProperties类中的UnicastAddresses属性获取每个接口的单播地址列表。从这个列表中,可以筛选出是IPv4地址、非回环地址、以太网地址等符合条件的IP地址。 最后,将符合条件的IP地址存储在一个集合中,并将其打印出来或进行其他处理。 以下是一个简单的示例代码: ```vb Imports System.Net.NetworkInformation Module Module1 Sub Main() Dim ipAddresses As New List(Of String)() ' 获取所有的网络接口 Dim networkInterfaces As NetworkInterface() = NetworkInterface.GetAllNetworkInterfaces() For Each networkInterface As NetworkInterface In networkInterfaces ' 获取网络接口的IP属性 Dim ipProperties As IPInterfaceProperties = networkInterface.GetIPProperties() ' 获取接口的单播地址列表 Dim unicastAddresses As UnicastIPAddressInformationCollection = ipProperties.UnicastAddresses For Each unicastAddress As UnicastIPAddressInformation In unicastAddresses ' 筛选出IPv4地址、非回环地址和以太网地址 If unicastAddress.Address.AddressFamily = System.Net.Sockets.AddressFamily.InterNetwork AndAlso Not IPAddress.IsLoopback(unicastAddress.Address) AndAlso networkInterface.NetworkInterfaceType = NetworkInterfaceType.Ethernet Then ipAddresses.Add(unicastAddress.Address.ToString()) End If Next Next ' 打印IP地址 For Each ipAddress As String In ipAddresses Console.WriteLine(ipAddress) Next Console.ReadLine() End Sub End Module ``` 运行上述代码,就可以获取到局域网中的IP地址,并将其打印出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值