news 2026/2/5 22:15:42

C#工业自动化通信开发库:功能丰富,持续进化

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C#工业自动化通信开发库:功能丰富,持续进化

c#工业自动化通信开发库,工业自动软件必备的基本程序。 包括串口通信,TCP客户端,tcp服务器端,高并发物联网接收服务器端,udp通信,can总线通信,profinet,modbus tcp/rtu/dtu等,各大品牌plc通信,opc ua,opc da,http通信,mysql常规库,ef6+mysql,ef6+sqlite,firebird数据库,ini配置文件操作,excel表格操作(包括模版化导出),rabbitmq消息队列管理库,Rabiitmq消息队列操作库,常用的数据转换(高低字节排序,转换,取位设位,校验和等),功能可拆分。 update 2021.7.26----优化消息队列出队缓存,读取更快捷更稳定。 update 2021.7.26----新增加rabbitmq消息队列管理类,可以嵌入到用户界面中管理rabbitmq服务器 update 2021.8.3---新增应用于物联网及mes系统中远程读取modbus rtu协议。 update 2021.8.10---新增加ef6+mssql数据库功能,实现自动创建表,以及存储过程。 完善及提高了efmssql,efsqlite,efmysql等安全。 update 2021.08.19---根据行业设备通信现状需要,增加通过dcom组件与opc服务器通信功能,去除原来复杂的操作过程,使用接口式更方便稳定 update-2021-08-30-----新增加dtu服务器,pc做为服务器,远程4G Dtu模块作为客户端主动连接服务器,服务器根据模块注册信息下发modbus rtu指令至远端,终端回复数据服务器自动解析。 主要应用于物联网平台.mes系统 通知,Fax.net.Api已经更新至1.0.3.0。 。 。 。 Version 1.0.3.0 [2021-10-18]更新细节如下: 1、新增欧姆龙PLC Fins-Tcp通信。 2、优化WebApi通信,增加客户端验证功能,修复跨域问题。 4、完善Socket连接对象私有化后导致无法判断连接状态问题。

最近发现了一个超棒的C#工业自动化通信开发库,它简直是工业自动软件必备的基本程序!涵盖了超多实用的通信方式和功能,今天来给大家好好唠唠。

一、丰富的通信类型

  1. 串口通信
    csharp
    // 简单示例,创建串口对象并设置参数
    SerialPort serialPort = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
    serialPort.Open();

    串口通信在工业自动化中很常见,比如连接一些简单的传感器设备。这里创建了一个串口对象,指定了端口号、波特率等参数,然后打开串口就可以进行数据收发啦。
  2. TCP客户端和服务器端
    -TCP客户端
    csharp
    TcpClient tcpClient = new TcpClient();
    tcpClient.Connect(IPAddress.Parse("192.168.1.100"), 8080);
    NetworkStream stream = tcpClient.GetStream();

    这段代码创建了一个TCP客户端,连接到指定的IP地址和端口。通过NetworkStream可以方便地进行数据读写操作。
    -TCP服务器端
    csharp
    TcpListener tcpListener = new TcpListener(IPAddress.Any, 8080);
    tcpListener.Start();
    TcpClient client = tcpListener.AcceptTcpClient();
    NetworkStream stream = client.GetStream();

    这里设置了一个TCP服务器端,监听指定端口。当有客户端连接时,接受连接并获取NetworkStream来处理通信。
  3. 高并发物联网接收服务器端

这个对于物联网场景非常关键,能高效处理大量设备的连接和数据接收。想象一下,众多物联网设备同时发送数据过来,它都能稳稳接住。

  1. UDP通信
    csharp
    UdpClient udpClient = new UdpClient(8888);
    IPEndPoint remoteEP = new IPEndPoint(IPAddress.Any, 0);
    byte[] receiveBytes = udpClient.Receive(ref remoteEP);

    UDP通信适合一些对实时性要求较高但对数据准确性要求相对没那么严格的场景。这里创建了一个UDP客户端,绑定到指定端口,然后接收数据。
  2. CAN总线通信

CAN总线在工业自动化里用于可靠的设备间通信,比如汽车电子、工业控制等领域。虽然这里没给出具体代码,但它的存在让整个通信库更完善了。

  1. Profinet

Profinet是一种工业以太网标准,对于自动化系统集成很重要。这个库支持Profinet通信,方便与符合该标准的设备进行交互。

  1. Modbus TCP/RTU/DTU等
    -Modbus TCP
    csharp
    // 假设已经有一个ModbusTcpClient实例client
    ushort[] registers = client.ReadHoldingRegisters(1, 10);

    通过ModbusTcpClient可以读取指定地址的保持寄存器数据。
    -Modbus RTU

如果设备支持Modbus RTU协议,也能轻松对接。这个库还新增了应用于物联网及mes系统中远程读取Modbus RTU协议的功能。

  • Modbus DTU
    2021.8.30新增加了dtu服务器功能,pc做为服务器,远程4G Dtu模块作为客户端主动连接服务器,服务器根据模块注册信息下发modbus rtu指令至远端,终端回复数据服务器自动解析。这在物联网平台和mes系统中很实用。
  1. 各大品牌PLC通信

像西门子、施耐德、欧姆龙等品牌的PLC通信都支持。比如2021 - 10 - 18新增了欧姆龙PLC Fins - Tcp通信。

`csharp

// 假设已有欧姆龙PLC Fins - Tcp通信相关类实例omronClient

byte[] data = omronClient.SendCommandAndReceiveResponse(command);

`

通过这个实例可以发送指令并接收响应,实现与欧姆龙PLC的通信。

  1. OPC UA和OPC DA

OPC UA和OPC DA是工业自动化中用于数据交互的标准协议。这个库支持它们,方便不同系统间的数据共享。

  1. HTTP通信
    csharp
    HttpClient httpClient = new HttpClient();
    HttpResponseMessage response = httpClient.GetAsync("http://example.com/api/data").Result;
    string content = response.Content.ReadAsStringAsync().Result;

    利用HttpClient可以轻松进行HTTP请求,获取远程服务器的数据。
  2. 数据库操作
    -MySQL常规库
    csharp
    using (MySqlConnection connection = new MySqlConnection("server=localhost;user=root;password=password;database=mydb"))
    {
    connection.Open();
    string query = "SELECT * FROM mytable";
    MySqlCommand command = new MySqlCommand(query, connection);
    MySqlDataReader reader = command.ExecuteReader();
    while (reader.Read())
    {
    // 处理数据
    }
    }

    这里通过MySqlConnection连接到MySQL数据库,执行查询并处理结果。
    -EF6 + MySQL
    csharp
    public class MyDbContext : DbContext
    {
    public DbSet MyEntities { get; set; }
    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
    optionsBuilder.UseMySql("server=localhost;user=root;password=password;database=mydb", new MySqlServerVersion(new Version(8, 0, 26)));
    }
    }

    使用Entity Framework 6与MySQL数据库交互,通过定义DbContextDbSet来操作数据库表。2021.8.10新增加了ef6 + mssql数据库功能,实现自动创建表,以及存储过程,还完善及提高了efmssql,efsqlite,efmysql等安全。
    -EF6 + SQLite
    csharp
    public class MySqliteDbContext : DbContext
    {
    public DbSet MyEntities { get; set; }
    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
    optionsBuilder.UseSqlite("Data Source=mydb.db");
    }
    }

    同样通过DbContext来配置与SQLite数据库的连接和操作。
    -Firebird数据库

支持与Firebird数据库进行通信,满足不同项目的数据库需求。

  1. INI配置文件操作
    csharp
    IniFile iniFile = new IniFile("config.ini");
    string value = iniFile.Read("Section1", "Key1");
    iniFile.Write("Section1", "Key2", "Value2");

    通过IniFile类可以方便地读写INI配置文件,获取和设置配置项的值。
  2. Excel表格操作(包括模版化导出)

可以将数据导出到Excel表格,还支持模版化导出,方便生成特定格式的报表。

  1. RabbitMQ消息队列管理库
    -消息队列管理

2021.7.26新增加rabbitmq消息队列管理类,可以嵌入到用户界面中管理rabbitmq服务器。

`csharp

c#工业自动化通信开发库,工业自动软件必备的基本程序。 包括串口通信,TCP客户端,tcp服务器端,高并发物联网接收服务器端,udp通信,can总线通信,profinet,modbus tcp/rtu/dtu等,各大品牌plc通信,opc ua,opc da,http通信,mysql常规库,ef6+mysql,ef6+sqlite,firebird数据库,ini配置文件操作,excel表格操作(包括模版化导出),rabbitmq消息队列管理库,Rabiitmq消息队列操作库,常用的数据转换(高低字节排序,转换,取位设位,校验和等),功能可拆分。 update 2021.7.26----优化消息队列出队缓存,读取更快捷更稳定。 update 2021.7.26----新增加rabbitmq消息队列管理类,可以嵌入到用户界面中管理rabbitmq服务器 update 2021.8.3---新增应用于物联网及mes系统中远程读取modbus rtu协议。 update 2021.8.10---新增加ef6+mssql数据库功能,实现自动创建表,以及存储过程。 完善及提高了efmssql,efsqlite,efmysql等安全。 update 2021.08.19---根据行业设备通信现状需要,增加通过dcom组件与opc服务器通信功能,去除原来复杂的操作过程,使用接口式更方便稳定 update-2021-08-30-----新增加dtu服务器,pc做为服务器,远程4G Dtu模块作为客户端主动连接服务器,服务器根据模块注册信息下发modbus rtu指令至远端,终端回复数据服务器自动解析。 主要应用于物联网平台.mes系统 通知,Fax.net.Api已经更新至1.0.3.0。 。 。 。 Version 1.0.3.0 [2021-10-18]更新细节如下: 1、新增欧姆龙PLC Fins-Tcp通信。 2、优化WebApi通信,增加客户端验证功能,修复跨域问题。 4、完善Socket连接对象私有化后导致无法判断连接状态问题。

RabbitMQClient client = new RabbitMQClient("localhost", 5672, "guest", "guest");

client.SendMessage("myqueue", "Hello, RabbitMQ!");

string message = client.ReceiveMessage("myqueue");

`

这里创建了一个RabbitMQClient实例,用于发送和接收消息到指定队列。

  • 消息队列操作

还有专门的Rabiitmq消息队列操作库,方便对消息队列进行各种操作。2021.7.26还优化了消息队列出队缓存,读取更快捷更稳定。

  1. 常用的数据转换

包括高低字节排序,转换,取位设位,校验和等。这些功能在数据处理过程中非常实用,比如在与不同设备通信时,可能需要对数据进行格式转换。

二、持续更新

这个库一直在不断进化。从2021年7月到10月,持续有功能更新。

  • 2021.7.26优化了消息队列出队缓存,读取更快捷更稳定,还新增加rabbitmq消息队列管理类。
  • 2021.8.3新增应用于物联网及mes系统中远程读取modbus rtu协议。
  • 2021.8.10新增加ef6 + mssql数据库功能,完善及提高了efmssql,efsqlite,efmysql等安全。
  • 2021.08.19增加通过dcom组件与opc服务器通信功能,去除原来复杂的操作过程,使用接口式更方便稳定。
  • 2021 - 08 - 30新增加dtu服务器功能。
  • 2021 - 10 - 18新增欧姆龙PLC Fins - Tcp通信,优化WebApi通信,增加客户端验证功能,修复跨域问题,完善Socket连接对象私有化后导致无法判断连接状态问题。

总之,这个C#工业自动化通信开发库功能强大且不断完善,对于从事工业自动化软件开发的小伙伴来说,绝对是个得力助手!

Version 1.0.3.0 [2021 - 10 - 18]

通知,Fax.net.Api已经更新至1.0.3.0 。大家可以关注一下这个库的更新动态,及时享受新功能带来的便利。希望这篇博文能让大家对这个库有更清晰的了解,一起在工业自动化开发的道路上轻松前行!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/29 21:38:30

select count(*) 表名 和select count(*) from 表名

mysql一次核对数据,少写了一个from,直接写成下面的sql了。select count(*) 表名结果无论哪个表都返回1,把我吓得捏了一把汗还以为数据被谁清空了。。原来是自己的手误,select count(*) 表名相当于把表名当成了列的别名&#xff0c…

作者头像 李华
网站建设 2026/1/31 13:12:17

Qwen3-Embedding-4B部署教程:Python调用避坑指南

Qwen3-Embedding-4B部署教程:Python调用避坑指南 1. Qwen3-Embedding-4B介绍 Qwen3 Embedding 模型系列是 Qwen 家族中专为文本嵌入和排序任务打造的最新成员,基于强大的 Qwen3 系列基础模型构建。该系列覆盖多种参数规模(0.6B、4B 和 8B&a…

作者头像 李华
网站建设 2026/1/30 9:17:32

RS ASIO音频延迟消除技术:实时演奏优化的完整解决方案

RS ASIO音频延迟消除技术:实时演奏优化的完整解决方案 【免费下载链接】rs_asio ASIO for Rocksmith 2014 项目地址: https://gitcode.com/gh_mirrors/rs/rs_asio 您是否遇到这些音频延迟困扰? 当您满怀激情地在摇滚史密斯中弹奏时,是…

作者头像 李华
网站建设 2026/1/30 18:40:14

基于multisim的两位二进制比较电路设计

设计一个两位二进制数&#xff08;AX2X1&#xff0c;BY2Y1&#xff09;的比较电路。(不能用集成的数值比较器&#xff0c;其他器件不限) 要求有三个输出A>B&#xff0c;A<B&#xff0c;AB分别对应三个输出端FA&#xff0c;FB&#xff0c;FO。 若A>B&#xff0c;FA1&am…

作者头像 李华
网站建设 2026/2/5 19:25:53

黑苹果配置革命:OpCore Simplify智能EFI生成解决方案

黑苹果配置革命&#xff1a;OpCore Simplify智能EFI生成解决方案 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 传统黑苹果配置的复杂性已经成为阻碍…

作者头像 李华
网站建设 2026/1/29 16:27:24

OpCore Simplify:让黑苹果配置告别复杂操作

OpCore Simplify&#xff1a;让黑苹果配置告别复杂操作 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 你是否曾经为配置黑苹果系统而头疼不已&#x…

作者头像 李华