基于C#的OPC转Web API服务器框架源码
本文介绍一款基于C#开发的OPC转Web API服务器框架,采用IOCP(I/O Completion Ports)技术实现高性能高并发,适用于物联网(IoT)场景。
1. 数据库支持灵活切换
框架默认使用EF6 + MSSQL,但可轻松切换为MySQL或SQLite。通过修改配置文件即可适配不同环境:
<connectionStrings>
<add name="DefaultConnection" connectionString="Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;" providerName="System.Data.SqlClient" />
</connectionStrings>
将 providerName 改为 MySql.Data.MySqlClient 并调整连接字符串即可。
2. 自带 Web API 服务,抛弃 IIS
框架内置 Web API 服务,无需依赖 IIS。用户可通过 Web 前端直接读取远程设备数据及下发控制指令。功能包括日志查询、接口认证、设备注册管理、轮询任务启停、参数设置及历史数据查询等。
示例接口:
[HttpGet]
public IActionResult GetDeviceData(int deviceId)
{
var data = _deviceService.GetData(deviceId);
return Ok(data);
}
3. 支持多种协议,可定制开发
目前支持 Modbus、Modbus RTU 协议。可定制集成 Modbus TCP、西门子 PLC S7 协议、OPC 协议、三菱 PLC 协议以及 MQTT 服务。
扩展新协议示例:
public class CustomProtocol : IProtocol
{
public void Connect(string address) { /* 自定义连接逻辑 */ }
public byte[] ReadData() { /* 自定义数据读取逻辑 */ return new byte[0]; }
}



