DTU配置注冊包及心跳包(對應設備配置->設備SN),模塊工作方式:TcpClient,首次連接成功后,DTU發送上來的注冊包作為鏈路SessionId
1. ModbusRtu設備 -> Dtu -> Server
2. DLT645設備 -> Dtu -> Server
3. 自定義設備?-> Dtu -> Server
調用方法
using FusionDrive.DtuServer.Util; using FusionDrive.DtuServer.Util.dtu;namespace FusionDrive.DtuServer {internal class Program{static DtuServer_NDB DtuServer_Modbus = new DtuServer_NDB();static DtuServer_NDB DtuServer_Dlt645 = new DtuServer_NDB();static void Main(string[] args){DtuMgr.ClearLink();//StartDTUService_Modbus();//StartDTUService_DLT645();StartDTUService_Custom();Console.ReadLine();}static void StartDTUService_Modbus(){ // 啟動modbus_dtu服務DtuServer_Modbus.Start(9501, "ModbusDtuServer"); // 初始化輪詢點位PointAction dtuAction1 = new PointAction(new Util.model.EquipInfo(){EquipName = "DtuClient_ModbusRtu",EquipSN = "pzXklIseRWC2H3Wd",ProtocolModel = 3,ConnectParam = @"{""SalveId"":1,""AddressStartWithZero"":false}",},new List<Util.model.EquipPoint>(){new Util.model.EquipPoint(){PointName = "點位1",Address = "x=3;105",DataType = 1,DataFormat = "CDAB"}});dtuAction1.Start();}static void StartDTUService_DLT645(){// 啟動dlt645_dtu服務DtuServer_Dlt645.Start(9502, "DLT645DtuServer");// 初始化輪詢點位PointAction dtuAction2 = new PointAction(new Util.model.EquipInfo(){EquipName = "DtuClient_DLT645",EquipSN = "1w0bxMPFdxg5wyF9",ProtocolModel = 4,ConnectParam = @"{""Station"":""000000000028"",""Type"":""97""}",},new List<Util.model.EquipPoint>(){new Util.model.EquipPoint(){// 功能碼// 97 B6-11// 07 02-01-01-00PointName = "A相電壓",Address = "B6-11",DataType = 9,DataFormat = "CDAB"}});dtuAction2.Start();}static void StartDTUService_Custom(){// 啟動custom_dtu服務DtuServer_Custom.Start(9503);// 初始化輪詢點位var info = new Util.model.EquipInfo(){EquipName = "DtuClient_OHM",EquipSN = "b7NmwKPSCVoorCsz",ProtocolModel = 100,ConnectParam = @"{""Decode"":""ohm"",""EncodeData"":[""*TRG\r\n""],""EncodeType"":""ASCII""}",};UidMgr.AddClient(info.EquipSN, info);}} }