PLC 转 Web API 服务器框架:物联网应用的得力助手
plc转web API服务器框架源码。 集成iot,web api服务,这套带码是通过C#编写集成IOCP高性能高并发优势服务器服务源码。 带手机app测试demo源码 具体具备功能如下: 1、具备EF6+mssql数据库功能,可更改为MYSQL或SQLITe. 2、自带WEB API服务,抛弃IIS支持。 用户可以通过WEB前端直接读取远程设备数据以及下发控制指令。 WEB API功能有服务器日志查询、WEB API接口认证用户管理、远端设备注册管理、服务器轮询读取任务启停、服务器参数设置、查询历史数据记录、下发指令到终端设备。 3、系统目前支持modbus 、modbus rtu协议,可定制开发集成Modbus TCp、西门子PLC S7协议、OPC协议、三菱PLC协议以及集成MQTT服务(以上协议在框架中没有集成,可以定制集成)。 4、系统自带MVC服务,开发API像平常使用的一样方便。 另外它自带硬件协议驱动。 5、与传统协议方法不同,比如Modbus设备,需要PC端主动去连接设备,而这套框架只需要监听端口,服务器就能自动去轮询终端所有设备。 6、API接口具备动态增加轮询读取数据的任务,并且具备定时读取任务启停、任务创建和销毁、特殊读取任务定制等等。 7、运行方式以Windows服务的方式,通过API简单配置服务器参数后,只需重启本服务即可生效。 9、更快更方便的安装部署方法,支持一键安装部署,无需复杂的设置配置过程。 自带WEB API与WEB应用、自带Lot服务器应用 ,可定制集成为自带MQTT服务器,一切都免除了第三方服务软件的复杂安装配置过程。 10、完整的使用说明文档。 11、强大的技术团队支持。 该框架是应用方面的DEMO源码,MVC API底层源码、IOCP Sockect源码以及通讯协议源暂不提供,如需要源码的朋友加好友 【升级通知】物联网服务器框架已升级至2.0.2.6。 升级内容如下: 1、加入了自适应服务规则,对内存、CPU及硬盘资源进行分流控制,对服务器要求更低,速度并发更高。 2、加入了一键启动服务,自动创建数据库以配置参数功能。 省去了复杂的配置过程。 3、修复了物联网设备数据读取时超时问题,加入了可灵活配置的时间机制。 4、加入了物联网设备标识,使一个4G DTU设备可以挂载多个485或232从站。 5、开放服务器接收源数据事件接口,使用时可以自定义协议以及扩展性更强。

在物联网开发领域,寻找一套高效、易用且功能强大的服务器框架至关重要。今天就来给大家分享一款超赞的 PLC 转 Web API 服务器框架源码,它集成了 IoT 和 Web API 服务,基于 C# 编写,充分发挥了 IOCP 高性能高并发的优势。
框架的强大功能
- 数据库灵活性:具备 EF6 + mssql 数据库功能,而且还能轻松切换为 MYSQL 或 SQLITe。这对于不同项目需求,无论是大型企业级应用依赖的 MSSQL,还是轻量级项目青睐的 SQLite,都能很好地适配。例如,在 EF6 中连接 MSSQL 数据库,可能会有这样的代码片段:
using (var context = new YourDbContext())
{
var data = context.YourTable.ToList();
}
这里通过 YourDbContext 上下文对象来操作数据库表 YourTable,获取数据。如果要切换到 MySQL,只需要修改数据库连接字符串以及对应的 EF6 配置部分即可。
- 独立的 WEB API 服务:自带 WEB API 服务并且抛弃了 IIS 支持。用户可以直接通过 WEB 前端读取远程设备数据以及下发控制指令。它涵盖了丰富的 WEB API 功能,像服务器日志查询、接口认证用户管理等。以服务器日志查询接口为例,可能会有如下代码:
[HttpGet]
public IHttpActionResult GetServerLog()
{
// 这里从日志存储位置读取日志数据,可能是数据库或者文件系统
var logData = LogService.GetServerLog();
return Ok(logData);
}
这段代码定义了一个 HTTP GET 请求的 API 接口,通过调用 LogService 的方法获取服务器日志数据,并返回给前端。
- 丰富的协议支持与可定制性:目前支持 modbus 、modbus rtu 协议,并且对于 Modbus TCp、西门子 PLC S7 协议等多种协议可以定制开发集成。比如在处理 Modbus RTU 协议时,会有类似这样的代码来读取设备数据:
ModbusRtuMaster master = new ModbusRtuMaster(new SerialPort("COM1", 9600));
ushort[] data = master.ReadHoldingRegisters(1, 0, 10);
这里创建了一个 ModbusRtuMaster 对象,通过串口连接设备,然后读取设备的保持寄存器数据。如果要集成其他协议,就需要按照对应协议的规范来编写类似的通讯代码。
- 便捷的 MVC 服务:系统自带 MVC 服务,开发 API 就如同平常使用一样方便,而且自带硬件协议驱动。这使得开发人员可以快速搭建前后端交互的应用,例如在 MVC 的控制器中处理 API 请求:
public class YourAPIController : Controller
{
[HttpPost]
public ActionResult SendCommandToDevice(CommandModel model)
{
// 处理下发到设备的指令逻辑
var result = DeviceCommandService.SendCommand(model);
return Json(result);
}
}
这段代码展示了在 MVC 控制器中接收前端传来的指令模型 CommandModel,调用 DeviceCommandService 来处理指令并返回结果给前端。
- 智能的设备轮询:与传统协议方法不同,对于像 Modbus 设备,无需 PC 端主动去连接设备,框架只需监听端口,服务器就能自动轮询终端所有设备。这样大大简化了设备管理的逻辑,提高了系统的自动化程度。
- 灵活的 API 任务管理:API 接口具备动态增加轮询读取数据的任务,还能实现定时读取任务启停、任务创建和销毁等功能。例如,动态增加轮询任务的代码可能如下:
var task = new PollingTask
{
DeviceId = 1,
Interval = TimeSpan.FromSeconds(10),
Callback = () =>
{
// 这里执行读取设备数据的逻辑
var data = DeviceDataService.ReadDeviceData(1);
// 处理读取到的数据
}
};
TaskManager.AddPollingTask(task);
这里创建了一个轮询任务 PollingTask,设置了设备 ID、轮询间隔以及回调函数来读取设备数据,然后通过 TaskManager 添加到任务管理中。
- 方便的运行与部署:以 Windows 服务的方式运行,通过 API 简单配置服务器参数后,重启服务即可生效。而且支持一键安装部署,无需复杂的设置配置过程。自带的 WEB API 与 WEB 应用、IoT 服务器应用,甚至可定制集成为自带 MQTT 服务器,完全免除了第三方服务软件的复杂安装配置过程。
- 完善的文档与技术支持:拥有完整的使用说明文档,还有强大的技术团队支持,对于开发者来说,无论是初次上手还是遇到难题,都有可靠的保障。
升级亮点
物联网服务器框架现已升级至 2.0.2.6,带来了诸多提升:
- 资源优化:加入了自适应服务规则,对内存、CPU 及硬盘资源进行分流控制,让服务器在更低的硬件要求下,实现更高的速度并发。这对于一些硬件资源有限的部署场景非常友好。
- 简化配置:加入了一键启动服务和自动创建数据库以配置参数功能,彻底省去了复杂的配置过程。开发人员和运维人员可以更快速地让系统上线运行。
- 稳定性提升:修复了物联网设备数据读取时的超时问题,并加入了可灵活配置的时间机制。例如可以在配置文件中设置读取超时时间:
然后在代码中读取这个配置值来设置读取操作的超时:
int timeout = Convert.ToInt32(ConfigurationManager.AppSettings["ReadTimeout"]);
// 在设备读取方法中使用这个超时时间
var data = DeviceReader.ReadData(deviceId, timeout);
- 设备管理增强:加入了物联网设备标识,使得一个 4G DTU 设备可以挂载多个 485 或 232 从站,大大增强了设备管理的灵活性和扩展性。
- 拓展性提升:开放服务器接收源数据事件接口,使用时可以自定义协议,让开发者能够根据特定需求对框架进行深度定制。
虽然该框架是应用方面的 DEMO 源码,MVC API 底层源码、IOCP Sockect 源码以及通讯协议源暂不提供,但如果有需要完整源码的朋友可以加好友获取。相信这款框架能为你的物联网项目开发带来极大的便利和助力。
















