赞
踩
C#上位机与omron欧姆龙 Fins TCP通信以太网通讯实例 源码
通过和PLC用网络连接,可以读取写入欧姆龙PLC的数据寄存器DM(批量也可以)、输入输出CIO、辅助继电器WR,H保持继电器等。
c#基于VS2015以上版本
C#上位机与Omron欧姆龙Fins TCP通信以太网通讯实例 源码
网络连接已经成为了现代工业自动化的重要组成部分,实现可视化监控和控制成为了现代工业的趋势。而在实现这个过程中,C#上位机借助网络连接读取和写入欧姆龙PLC的数据寄存器DM、输入输出CIO、辅助继电器WR、H保持继电器等数据,变得尤为关键。
本文围绕C#上位机与Omron欧姆龙Fins TCP通信以太网通讯实例,详细介绍如何实现上位机和PLC之间的通讯,以及展示如何通过源码实现这种通讯。
一、Fins协议简介
Fins(Factory Interface Network Service)是欧姆龙工业网络的一种协议。其主要用于在欧姆龙的设备(比如欧姆龙PLC)之间进行数据通讯。Fins协议支持串行、以太网通讯方式,适用于各种不同的网络拓扑结构。
Fins通讯协议的特点:
1、数据通讯速度快,传输效率高。
2、支持多种不同类型的数据通讯方式,包括以太网和串行通讯。
3、支持多种不同的应用协议,包括ASCII、UDP、TCP等。
4、支持多种不同的通讯模式,包括点对点通讯和多节点通讯。
二、基本的Fins通讯原理
Fins是Omron欧姆龙PLC之间进行通讯的一种协议,它实现了PLC之间的数据交互。Fins协议有点像TCP/IP协议,但是两者并不完全相同。Fins可以看作是一种在TCP/IP基础上开发的应用层协议。Fins协议最重要的方面是数据传输,其包头信息和数据体由数据类型、地址、数据等组成。
下面是Fins通讯的基本原理:
1、建立连接:PLC作为Server,C#上位机作为Client,请连接Server。
2、发送通讯数据:将需要发送的数据封装成Fins格式进行发送。
3、接收应答信息:收到Server返回的数据,对数据进行解析并判断是否正确,如果正确则表示通讯成功。
4、关闭连接:当通讯结束后,关闭连接,释放资源。
三、C#上位机与Omron欧姆龙Fins TCP通信
1、建立连接
在C#上位机与Omron欧姆龙PLC进行通讯时,首先需要建立连接。使用Socket进行连接,首先需要设定远程IP地址和端口号,对PLC进行连接。在连接时,需要注意使用IP地址和端口号进行通讯。
示例代码:
string ip = "192.168.0.1"; // PLC IP地址 int port = 9600; // PLC 端口号
IPEndPoint ipe = new IPEndPoint(IPAddress.Parse(ip), port);//实例化一个远程端点
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//实例化一个Socket socket.Connect(ipe);//连接PLC
2、发送通讯数据
连接建立后,就可以发送通讯数据了。C#上位机向PLC发送通讯数据时,需要将数据进行封装成Fins格式。Fins格式包括数据头和数据体两部分。数据头部分包括Fins协议的相关信息,如服务代码、功能码、数据帧编号等等。数据体部分则是要发送的数据。
示例代码:
byte[] sendBytes = new byte[18]; sendBytes[0] = 0x80; //Fins协议头,固定位0x80 sendBytes[1] = 0x00; //Fins协议头,固定位0x00 sendBytes[2] = 0x02; //Fins协议头,固定位0x02 sendBytes[3] = 0x00; //Fins协议头,固定位0x00 sendBytes[4] = 0x00; //Fins协议头,固定位0x00 sendBytes[5] = 0x0C; //数据体长度,12个byte sendBytes[6] = 0x00; //门编号 sendBytes[7] = 0x01; //功能码,读单元(D)存储区指令 sendBytes[8] = 0x00; //文件种类信息,固定位0x00 sendBytes[9] = 0x00; //0x00,表示读取D存储区指令;0x01,表示读取WR区指令 sendBytes[10] = 0x00; //起始地址 send
相关代码,程序地址:http://lanzouw.top/680958870660.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。