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系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 ----优化消息队列出队缓存,读取更快捷更稳定。 update ----新增加rabbitmq消息队列管理类,可以嵌入到用户界面中管理rabbitmq服务器 update ---新增应用于物联网及mes系统中远程读取modbus rtu协议。 update --新增加ef6+mssql数据库功能,实现自动创建表,以及存储过程。 完善及提高了efmssql,efsqlite,efmysql等安全。 update ---根据行业设备通信现状需要,增加通过dcom组件与opc服务器通信功能,去除原来复杂的操作过程,使用接口式更方便稳定 update------新增加dtu服务器,pc做为服务器,远程4G Dtu模块作为客户端主动连接服务器,服务器根据模块注册信息下发modbus rtu指令至远端,终端回复数据服务器自动解析。 主要应用于物联网平台.mes系统 通知,Fax.net.Api已经更新至1.0.3.0。 1、新增欧姆龙PLC Fins-Tcp通信。 2、优化WebApi通信,增加客户端验证功能,修复跨域问题。 4、完善Socket连接对象私有化后导致无法判断连接状态问题。

最近在搞一个工业自动化的项目,发现C#非标自动化通讯库真的是个宝藏。这个库几乎涵盖了所有工业自动化中需要用到的通信协议和数据库操作,简直是开发者的福音。今天就来聊聊这个库的一些亮点,顺便穿插点代码分析,看看它到底有多强大。

首先,串口通信是工业自动化中最基础的操作之一。这个库提供了非常简洁的API来操作串口,比如下面这段代码:

SerialPort serialPort = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
serialPort.Open();
serialPort.WriteLine("Hello, Serial Port!");
string response = serialPort.ReadLine();
serialPort.Close();

这段代码打开了一个串口,发送了一条消息,并读取了返回的数据。整个过程非常直观,不需要复杂的配置。如果你需要处理更复杂的串口通信,比如Modbus RTU,这个库也提供了相应的支持。

接下来是TCP通信。工业自动化中,TCP通信几乎是必不可少的。这个库不仅支持TCP客户端和服务器端,还支持高并发的物联网接收服务器端。比如下面这段代码实现了一个简单的TCP服务器:

TcpListener listener = new TcpListener(IPAddress.Any, 5000);
listener.Start();
TcpClient client = listener.AcceptTcpClient();
NetworkStream stream = client.GetStream();
byte[] buffer = new byte[1024];
int bytesRead = stream.Read(buffer, 0, buffer.Length);
string message = Encoding.ASCII.GetString(buffer, 0, bytesRead);
Console.WriteLine("Received: " + message);
client.Close();
listener.Stop();

这段代码启动了一个TCP服务器,监听5000端口,接收客户端发来的消息并打印出来。如果你需要处理高并发的场景,这个库还提供了更高级的API来优化性能。

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系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 ----优化消息队列出队缓存,读取更快捷更稳定。 update ----新增加rabbitmq消息队列管理类,可以嵌入到用户界面中管理rabbitmq服务器 update ---新增应用于物联网及mes系统中远程读取modbus rtu协议。 update --新增加ef6+mssql数据库功能,实现自动创建表,以及存储过程。 完善及提高了efmssql,efsqlite,efmysql等安全。 update ---根据行业设备通信现状需要,增加通过dcom组件与opc服务器通信功能,去除原来复杂的操作过程,使用接口式更方便稳定 update------新增加dtu服务器,pc做为服务器,远程4G Dtu模块作为客户端主动连接服务器,服务器根据模块注册信息下发modbus rtu指令至远端,终端回复数据服务器自动解析。 主要应用于物联网平台.mes系统 通知,Fax.net.Api已经更新至1.0.3.0。 1、新增欧姆龙PLC Fins-Tcp通信。 2、优化WebApi通信,增加客户端验证功能,修复跨域问题。 4、完善Socket连接对象私有化后导致无法判断连接状态问题。

再来说说数据库操作。工业自动化中,数据存储和查询是必不可少的。这个库支持多种数据库,包括MySQL、SQLite、Firebird等。比如下面这段代码展示了如何使用EF6+MySQL进行数据库操作:

using (var context = new MyDbContext())
{
    var product = new Product { Name = "Widget", Price = 9.99m };
    context.Products.Add(product);
    context.SaveChanges();
    var products = context.Products.ToList();
    foreach (var p in products)
    {
        Console.WriteLine(p.Name);
    }
}

这段代码使用Entity Framework 6操作MySQL数据库,插入了一条记录并查询了所有记录。整个过程非常简洁,不需要手动编写SQL语句。

最后,不得不提的是消息队列。在工业自动化中,消息队列常用于解耦和异步处理。这个库支持RabbitMQ,并提供了管理类和操作类。比如下面这段代码展示了如何使用RabbitMQ发送和接收消息:

var factory = new ConnectionFactory() { HostName = "localhost" };
using (var connection = factory.CreateConnection())
using (var channel = connection.CreateModel())
{
    channel.QueueDeclare(queue: "hello", durable: false, exclusive: false, autoDelete: false, arguments: null);
    string message = "Hello, RabbitMQ!";
    var body = Encoding.UTF8.GetBytes(message);
    channel.BasicPublish(exchange: "", routingKey: "hello", basicProperties: null, body: body);
    Console.WriteLine("Sent: " + message);
}

这段代码声明了一个队列,发送了一条消息。如果你需要接收消息,可以使用类似的方式。

总的来说,这个C#非标自动化通讯库功能非常全面,几乎涵盖了工业自动化中所有常见的需求。而且它的API设计非常简洁,使用起来非常方便。如果你正在开发工业自动化软件,这个库绝对值得一试。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐