革新内容,v4.二.2版本:
style=”font-size: 1陆px;”>1.充实Modbus协议读取多少个寄存器,并且按种种数据类型解析数据。
二.Modbus Serial和Modbus
TCP八个驱动合并成一个驱动。
style=”font-size: 1陆px;”>3.修改数据库结构,保存配置音讯。
style=”font-size: 1六px;”>四.优化ServerSuperIO焦点代码,应用进程中的潜在难点。

v四.2.二下载地址:法定下载

ServerSuperIO Designer IDE
v四.二版本更新内容:

  • style=”font-size: 1六px;”>扩展ServerSuperIO.Host运转程序,能够动用IDE进行测试,Host为运维环境。
  • style=”font-size: 16px;”>针对设备驱动扩张导入监测点成效。
  • style=”font-size: 1陆px;”>修复OPC客户端配置后关闭窗体慢的场馆。
  • 修改保存Tag值为object对象。
  • 优化其余代码。

v四.二.一 更新内容:
style=”font-size: 1陆px;”>一.重新定义数据转载文本协议,使网关与ServerSuperIO以及中间能够相关交互数据。
style=”font-size: 1陆px;”>二.恢宏ServerSuperIO动态数据类的措施,更灵敏。
style=”font-size: 16px;”>3.修复Designer扩张转发职务的七个BUG。
4.修改数据转载客户端和服务端。
伍.充实硬件网关驱动。

v四.贰.一下载地址:合法下载

      物联网涉及到各样装备、种种传感器、各类数据源、各种协商,并且很难统壹,那么就要有叁个结构性的框架化解这么些标题。SSIO正是基于时期前进的等级和求实实情的结缘产物。




      各类数码新闻,如下图:

 目       录

 目       录

 目       录

金沙注册送58 1

开源跨平台IOT通信框架ServerSuperIO,直到云端。三.
Modbus协议,读取多少个寄存器,完成各样数据类型解析… 二

一.专业Modbus和非标准化准协议的运用、测试以及驱动开发…

贰.
与硬件网关数据交互,以及实行多少转载… 二

 

3.1           概述… 2

1.1           概述… 2

2.1           概述… 2

 

三.二           Modbus基础知识… 二

壹.2           标准Modbus的应用和测试…

二.贰           演示的架构… 2

         
化解方案,合营SIO使用:

三.3          
读取多少个寄存器,七种数据类型解析… 四

壹.叁           非标准化准协议的应用和测试…
2

二.三           Modbus
Slave模拟传感器数据… 三

金沙注册送58 2

3.4           完成效益展示… 六

1.四           设备驱动的开发… 2

二.4          
硬件网关SuperLink采集和中间转播数据… 叁

一、SSIO特点

三.5           以后驱动的规划… 柒


二.5           ServerSuperIO
Designer采集数据… 5

  • 轻型高品质通讯框架,适用于二种应用场,轮询情势、自笔者控制格局、并发形式和单例格局。
  • 不独是报导框架,是装备驱动、IO通道、控制格局场景的和谐机制。
  • 援救协议驱动器,能够按正统写标准协议和自定义商业事务。
  • 支撑发送数据缓存器,帮忙命令缓存重发和按事先级别发送。
  • 支撑协议过滤器,按规则筛选数据,并且能够继承接口,自定义过滤格局。
  • 支撑接收数据缓存器,能够缓存不符合过滤器的数据,和下次接收数据进行拼接。
  • 支撑按设备命令优先级别进行调度设施,保障有高级别命令的驱动及时发送。
  • 辅助一个装置驱动,同时帮衬串口和网络三种简报方式,能够监视IO通道数据。
  • 支撑贰个装备驱动,在互连网通信时方可补助TCP
    Server和TCP Client三种工作格局。
  • 扶助多配备共享同一IO通道举办报导。
  • 支撑定时清理超时的网络IO通道。
  • 支撑显得视图接口,满足分歧显示必要。
  • 支撑服务组件接口,能够自定义完结OPC服务、四-20mA输出、LED大屏显示、短信服务、以及多职能网关服务。
  •  援助创设多服务实例,实现区别工作的拆分。
  •  支持跨平台布置,能够运营在Linux和Windows系统。

 

 1.1    概述

贰.6           ServerSuperIO
Designer转发数据… 七

二、SSIO发布到NuGet平台

2.1    概述

     
在发布《正规Modbus和非标准化准协议的行使、测试以及驱动开发》之后,有个别网络朋友举报在Modbus协议驱动方面是或不是足以兑现读四个寄存器和按八种数据类型解析数据。一是平时做事比较忙,贰是有个别犯懒。在传感器及仪器仪表行业用到Modbus协议的情事相比多,可是多数施用都比较简单,大概往往只须要三个指令读取数据,对回到数据举行解析。我觉着针对那种情状开发二个简单的驱动11分不难,加之网民的水准参差,也从没针对性网络好友的反映举办主动的答应。可是从1个产品的角度怀想,确实应该展开完美,也实在有市场方面包车型客车急需,有广大公司是借鉴Modbus协议情势展开自定义协和式飞机,情状比较复杂。所以,利用出差的那段时光,针对Modbus驱动达成读取多个寄存器和按种种数据类型解析数据,以满足不相同应用现场的须要。

       Designer
IDE完全是在ServerSuperIO基础上拓展付出,当然2次开发者也足以支付协调的IDE环境,应用到集团的制品和花色中。从前开发过一个IDE环境,不过离产品化还相比远。Designer
IDE的框架相对相比较早熟,并且扩张性比较好,能够运用Designer
IDE实行系统开发和配置,使用ServerSuperIO.Host正式计划运转。

二.七           完成的全景效果… 八

金沙注册送58 3

贰.二    Modbus基础知识

     
Modbus采纳的广播发表机制为呼叫应答格局,或叫主从方式(master/slave)。主机发送请求命令,从机接到指令后开始展览校验数据的完整性,以及明确是或不是发放自个儿的一声令下,校验成功后,重临指定的数目音讯,实现二回完整的广播发表。呼叫应答通讯机制如下图:

金沙注册送58 4

      
Modbus协议依靠互连网传输层定义了3个简便的多寡传输协议,串口通信(Modbus
塞里al)的TiggoTU和ASCII格局以及互连网通信(Modbus
TCP)方式在情商编码和操作方面有所差异。基本协议格式如下图:

金沙注册送58 5

      下位机地址和功效码,示意图:

金沙注册送58 6

 

      
白皮书介绍:下载地址。

      
今后还会与Web组态对接,用于图形化建立模型,从尾部传感器到云端监测神速达成“即接即展现”,通讯和图表建立模型充裕解耦,是前日火速网络(例如伍G)环境建设的发展趋势。同时,为中型小型公司售前设计、项目布置和实施提供全套的解决方案。全体的行使,希望对于集团和人个都会有实质的进步。

金沙注册送58 ,2.1    概述

三、搜索SSIO

二.3    读取七个寄存器,八种数据类型解析

      
首要针对【寄存器个数】和【解析数据格局】四个选项进行升级换代,在配备驱动中扩充监测点的时候,能够采取那两项内容。如下图:

金沙注册送58 7

       
一个寄存器个数代码3个字节,转换来字节数的公式为:读取数据字节数=寄存器个数*贰,依据实况设置。

       
解析数据格局为二4种,主要针对short、ushort、int、uint、float和double数据类型实行辨析,由于传感器与电脑的高低位排序有所差距,所以本着同1种数据类型分差别的分析方法。解析数据形式,如下图:

金沙注册送58 8

       ServerSuperIO Designer IDE 4.2
下载:。

      
工业现场(物联网)使用硬件网关(SuperLink)的景色比较常见,主要怀恋多区域场景和互连网条件限制景况下的行使和计划,具体遵照实地的采纳场景。网关两大骨干功效:数据收集和数据转载,在品种连串建设中起到承上启下的效应。

金沙注册送58 9

二.四    达成效益展现

       使用Modbus TCP进行出现说法,连接Modbus
Slave,1二柒.0.0.一:50贰,读取3个数据点,按“short,二字节,顺序:先高后低”解析数据,如下图:

金沙注册送58 10

壹.二    标准Modbus的行使和测试

      
ServerSuperIO未来合龙了硬件网关(SuperLink),达成了在档次建设进度中别的节点的多寡收集与转化,并且形成级连陈设。能够方便的与工业网络平台或工业余大学数量平台对接;也许承担建设本身的云端平台,整合行业财富,形成以公司出品为主的生态建设。

style=”font-size: 18px;”>四、安装SSIO

2.五    以后驱动的设计

      
ServerSuperIO约等于系统建设中数量交互的心脏,以往对下一而再种种PLC及传感器,也在积极筹划开发基于各类PLC的驱动;对上连年WEB组态以及管理类别。全体都通过布署完结,为中型小型集团提供壹站式的种类化解方案,下落资金、进步作用。

       近期国产自主安全可控的redcore
browser浏览器融通资金二.伍个亿,实际上利用是的谷歌(Google)的开源内核,借使有“创新”的成份,预计也只是半途而废。就算ServerSuperIO算不上巨大上,不过也终于积累了10年的工作经验,算是真正的独立自主安全可控。哈哈……。


 1.[连载]《C#报纸发表(串口和网络)框架的规划与达成》

 2.[开源]C#跨平台物联网通信框架ServerSuperIO(SSIO)介绍

 2.行使SuperIO(SIO)和开源跨平台物联网框架ServerSuperIO(SSIO)构建系统的欧洲经济共同体方案

 3.C#工业物联网和集成系统化解方案的技能路线(数据源、数据收集、数据上传与接受、ActiveMQ、Mongodb、WebApi、手提式有线电话机App)

 5.github地址:

 六.助力中小集团级连云端,促进工业互连网平台蓬勃发展,全套消除方案。

 物联网&集成技术 QQ群:542560八三 

      
有过多配备或传感器号称是Modbus协议,然则其实中对行业内部的Modbus协议举行改动,那种情状多多,本质上自定义协议。

二.二    演示的架构

金沙注册送58 11

(一)下载Modbus
Slave,并展开安装

      演示大体包罗三有的:

伍、事例代码(德姆o)

    
自行百度下载,首要用来模拟使用Modbus协议的巅峰设备和传感器。不知情Modbus协议的对象们,先补补课。达成运转效果,如下图:

   (1)传感器层,使用Modbus
Slave进行效仿,相然能够是其余PLC、传感器等;

   
德姆o下载地址:

金沙注册送58 12

  
(二)硬件网关(SuperLink)实时收集传感器层的数目消息,并且展开数据转载、汇聚;

1.客户端(发送文书)

     步骤1:接下去对Modbus
Slave进行设置,选取【Setup】->【Slave Definition】,
对从机地址、功效码、寄存器起始地址和数据实行安装,如下图:

  
(叁)ServerSuperIO实时接收网关层的数额音讯,也正是数据交互中央,ServerSuperIO同样有着转载能力,可以特别转载给上1层数据宗旨的ServerSuperIO,形成级连数据传递。结构如下图:

 

金沙注册送58 13

金沙注册送58 14

        static void SendFile()
        {
            if (!System.IO.File.Exists(_file))
            {
                Console.WriteLine("文件不存在:"+_file);
                return;
            }

            FileStream fs = null;
            try
            {
                Console.WriteLine("开始传输>>");

                string fileName=DateTime.Now.ToString("yyMMddHHmmss") + ".txt";
                int bufferSize = _sendBufferSize;
                byte[] sendBuffer = new byte[bufferSize];
                fs = new FileStream(_file, FileMode.Open,FileAccess.Read,FileShare.Read);

                long length = fs.Length;
                int count = 0;
                Stopwatch watch = new Stopwatch();
                watch.Start();
                while (length > 0)
                {
                    int sendNum = fs.Read(sendBuffer, 0, sendBuffer.Length);

                    byte[] package = GetDataPackage(fileName,sendBuffer, sendNum);

                    count+=_tcpClient.Client.Send(package, 0, package.Length, SocketFlags.None);

                    length -= sendNum;

                    float percent = ((fs.Length - length)/(float) fs.Length)*100.0f;
                    Console.WriteLine("已传:" + percent.ToString("0.00")  + "%");
                }
                watch.Stop();

                Console.WriteLine("传输完毕!总数:" + count.ToString()+",耗时:"+ watch.Elapsed.TotalSeconds.ToString(CultureInfo.InvariantCulture));
            }
            catch
            {
                throw;
            }
            finally
            {
                if (fs != null)
                {
                    fs.Close();
                    fs.Dispose();
                }
            }
        }

        static byte[] GetDataPackage(string fileName,byte[] sendBuffer, int sendNum)
        {
            byte[] sendPackage = new byte[sendNum + 24];
            sendPackage[0] = 0x35;
            sendPackage[1] = 0x35;

            string code = "0001";
            byte[] codeBytes = System.Text.Encoding.ASCII.GetBytes(code);
            Buffer.BlockCopy(codeBytes, 0, sendPackage, 2, 4);

            byte[] fileBytes= System.Text.Encoding.ASCII.GetBytes(fileName);
            Buffer.BlockCopy(fileBytes, 0, sendPackage, 6, 16);

            Buffer.BlockCopy(sendBuffer, 0, sendPackage, 22, sendNum);

            sendPackage[sendPackage.Length - 2] = 0x33;
            sendPackage[sendPackage.Length - 1] = 0x33;

            return sendPackage;
        }

     步骤2:下载Virtual Serial Port
Driver虚拟串口软件,完成COM一与COM二的虚拟连接。如下图:

二.三    Modbus Slave模拟传感器数据

 

金沙注册送58 15

       
为了便于起见,未来生搬硬套三个数据点,十分能够越来越多。操作进程不现实介绍,请参见《业内Modbus和非标准协议的行使、测试以及驱动开发》。如下图:

 2.设备驱动

    
步骤三:选择【Connection】->【Connect】,对通信的重点参数实行安装,如下图:

金沙注册送58 16

//设备驱动
 public class ReceiveFileDriver:RunDevice
    {
        private Dynamic _Dyn;
        private Parameter _Parameter;
        private Protocol _Protocol;
        public ReceiveFileDriver() : base()
        {
            _Dyn = new Dynamic();
            _Parameter = new Parameter();
            _Protocol = new Protocol();
        }

        public override void Initialize(int devid)
        {
            this.Protocol.InitDriver(this, new FixedHeadAndEndReceiveFliter(TransFileDriver.Protocol.Head, TransFileDriver.Protocol.End));    //初始化协议驱动
        }

        //省略......
}

//协议驱动,并处理数据
public class Command : ProtocolCommand
{
        public Command()
        {
        }
        public override string Name
        {
            get { return "writefile"; }
        }
        public override object Analysis(byte[] data, object obj)
        {
            try
            {
               //count += data.Length - 24;
               //Console.WriteLine(count.ToString()+","+data[0].ToString() + "," + data[data.Length - 1].ToString());

                string path = Path.Combine(Environment.CurrentDirectory, "rev");
                if (!System.IO.Directory.Exists(path))
                {
                    System.IO.Directory.CreateDirectory(path);
                }
                string fileName = System.Text.Encoding.ASCII.GetString(data, 6, 16);
                path=Path.Combine(path, fileName);
                using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write, FileShare.Write))
                {
                    fs.Seek(fs.Length, SeekOrigin.Current);
                    byte[] content = new byte[data.Length - 24];
                    Buffer.BlockCopy(data, 22, content, 0, content.Length);
                    fs.Write(content, 0, content.Length);
                    fs.Flush();
                }

            }
            catch
            {
                return -1;
            }
            return 0;
        }

        public override byte[] Package(string code, object obj)
        {
            throw new NotImplementedException();
        }
    }

金沙注册送58 17

二.4    硬件网关SuperLink采集和转载数量

 三.宿主程序

          
至此,模拟数据源终端安装停止。

      
网关扶助100五种协议,包蕴国际标准协议和国内行业标准协议,涉及到:电力、煤矿、钢铁、智能楼宇、环境保护等。硬件外观如下图:

 static void Main(string[] args)
{

            ReceiveFileDriver dev = new ReceiveFileDriver();
            dev.DeviceParameter.DeviceName = "设备4";
            dev.DeviceParameter.DeviceAddr = 0;
            dev.DeviceParameter.DeviceCode = "0001";
            dev.DeviceParameter.DeviceID = 0;
            dev.DeviceDynamic.DeviceID = 0;
            dev.DeviceParameter.NET.RemoteIP = "127.0.0.1";
            dev.DeviceParameter.NET.RemotePort = 9600;
            dev.CommunicateType = CommunicateType.NET;
            dev.Initialize(0);

            IServer server = new ServerFactory().CreateServer(new ServerConfig()
            {
                ServerName = "接收文件服务",
                ListenPort = 6699,
                NetReceiveBufferSize = 2048,
                ControlMode = ControlMode.Self,
                SocketMode = SocketMode.Tcp,
                DeliveryMode = DeliveryMode.DeviceCode,
                StartReceiveDataFliter = true,
                ClearSocketSession = false,
            });

            server.AddDeviceCompleted += server_AddDeviceCompleted;
            server.DeleteDeviceCompleted += server_DeleteDeviceCompleted;
            server.Start();

            server.AddDevice(dev);

            while ("exit" == Console.ReadLine())
            {
                server.Stop();
            }
}

(贰)陈设Designer
IDE,并展开安装,达成与Modbus Slave通信

金沙注册送58 18

 6、实验效果

      步骤一:安顿Designer
IDE,最新版本是v4.二,下载地址:,具体配置请参见:《配备手册.docx》。运行ServerSuperIO.Designer.exe主界面,如下图:

         
网关通过C/S结构的软件举办配备,方便、易用。数据搜集配置能够单点配置和批量导入。采集Modbus
Slave数据的布局,如下图:

 

金沙注册送58 19

金沙注册送58 20

      二日的小时,将近三GB的数码新闻,稳定性、扩充性都尤其正确。

    
步骤二:右键单击【服务实例】->【扩充服务实例】,对劳务的基本参数进行安装,其余参数能够维持不变,假诺有景况需求高级参数设置,那么必要视景况而定。四个劳动实例能够挂载四个装备驱动、服务插件等。如下图:

         
网关采集上来的多少,可以实时通过有线网络或3G/四G进行数据转发,具体陈设消息和自定义转载的数据点,如下图:

金沙注册送58 21

金沙注册送58 22

金沙注册送58 23

 

    
步骤3:在刚刚创立的劳务实例,右键单击选择【设备驱动管理】,能够看到左侧的区域有设施管理和对应设备的监测点管理。如下图:

金沙注册送58 24

2.伍    ServerSuperIO Designer采集数据

      
Designer是在ServerSuperIO的基础上支付的,是四个布局和调节环境,正式生产环境的周转能够选取Host控制台程序。

     
扩展运营的服务实例,约等于运作设备驱动的器皿,因为网关是按统1标准协议积极上传数据。在配备参数的时候选拔DeviceCode数据分发形式,与网关配置的“站点编号”相对应;别的采用Self(自小编控制形式)控制形式,在代码二遍开发层面能够挑选主动发送请求数据或被动接收数据,未有落到实处主动发送请求数据,如下图:

金沙注册送58 25

         
增添设备驱动的时候,“设备编码”对应的是“站点编号”,选用NET通信类型,选取SuperLink网关通讯驱动,如下图:

金沙注册送58 26

         
数据收集之后,通过配备驱动保存到mysql数据库中,实际运转效果,如下图:

金沙注册送58 27

二.6    ServerSuperIO Designer转载数据

      
ServerSuperIO同样帮衬客户端和服务端格局的多少转载成效,帮忙SuperLink与ServerSuperIO之间数据传递的磋商,也正是ServerSuperIO与ServerSuperIO之间能够极其级的连通数据,在项目建设中开展灵活配置。数据转载配置,如下图:

金沙注册送58 28

二.七    达成的全景效果

       
按演示的架构最终兑现的作用,如下图:

金沙注册送58 29

 

v四.二.壹下载地址:合法下载


1.[连载]《C#简报(串口和网络)框架的规划与贯彻》

2.[开源]C#跨平台物联网通信框架ServerSuperIO(SSIO)介绍

2.选拔SuperIO(SIO)和开源跨平台物联网框架ServerSuperIO(SSIO)创设系统的共同体方案

3.C#工业物联网和集成系统化解方案的技艺路线(数据源、数据收集、数据上传与选取、ActiveMQ、Mongodb、WebApi、手提式有线电话机App)

5.github地址:

6.助力中型小型公司级连云端,促进工业网络平台蓬勃发展,全套解决方案。

物联网&集成技术 QQ群:5425608叁 

 

金沙注册送58 30

1.[连载]《C#简报(串口和网络)框架的计划性与完结》

    
步骤肆:选拔【增加设备驱动】,以设施基本参数和报纸发表参数实行安装,如下图:

2.[开源]C#跨平台物联网通信框架ServerSuperIO(SSIO)介绍

金沙注册送58 31

2.选取SuperIO(SIO)和开源跨平台物联网框架ServerSuperIO(SSIO)构建系统的全体方案

    
步骤伍:接纳刚刚扩充的装置驱动,并且在最左侧区域选用【扩充监测点】,对应Modbus
Slave进行安装和布置,读取三个监测点的数据音信。

3.C#工业物联网和集成系统解决方案的技能途径(数据源、数据收集、数据上传与吸收接纳、ActiveMQ、Mongodb、WebApi、手提式有线电电话机App)

         
读取第四个寄存器数据的安装,如下图:

5.ServerSuperIO开源地址:

金沙注册送58 32

物联网&集成技术(.NET) QQ群54256083

         
读取第1个寄存器数据的设置,如下图:

金沙注册送58 33

     步骤陆:选拔【调节和测试】->【运维】,实际运作效果能够把传感器的两个寄存器数据读取上来,如下图:

金沙注册送58 34

一.3    非标准化准协议的应用和测试

       
非标准化准协议的行使和测试与Modbus的操作进度一致,可是选用增多设备驱动和布置扩张监测点要基于实际意况而定。该驱动的说道,参见:《如开发一套设备驱动,同时扶助串口和互联网通讯》发送和选择协议章节。

(一)配置设施驱动和监测点

        
步骤1:扩展设备驱动,如下图:

金沙注册送58 35

       
步骤2:扩张监测点,如下图:

金沙注册送58 36

 (二)运营模拟终端

   在测试工具目录中运作【TestDevice(模拟终端设备).exe】程序,并且布置串口参数,如下图:

金沙注册送58 37

(三)选用【调节和测试】->【运维】,达成运维效果,如下图:

金沙注册送58 38

一.4    设备驱动的支出

      
标准Modbus设备驱动事例下载:。

      
非标准化准配备驱动事例下载:。

      
开发设备驱动进度参见:《如开发一套设备驱动,同时帮衬串口和网络通信》,也许在接口方法有所改变,结合Modbus设备驱动事例开发本身的设备驱动就行了。别的,开发设备驱动相比较灵敏,不自然非要配置监测点,能够把多少存款和储蓄操作也写在装备驱动里,可是要思索到对数据处理的围堵情形,不要影响ServerSuperIO对配备驱动的完好调度。

       使用Designer
IDE配置并测试好系统后,能够接纳【运维控制台】,作为运转时环境,效果如下图:

金沙注册送58 39


1.[连载]《C#电视发表(串口和互联网)框架的统一筹划与完毕》

2.[开源]C#跨平台物联网通信框架ServerSuperIO(SSIO)介绍

2.运用SuperIO(SIO)和开源跨平台物联网框架ServerSuperIO(SSIO)塑造系统的一体化方案

3.C#工业物联网和集成系统消除方案的技术途径(数据源、数据搜集、数据上传与接收、ActiveMQ、Mongodb、WebApi、手提式有线电话机App)

5.github地址:

6.助力中型小型公司级连云端,促进工业网络平台蓬勃发展,全套解决方案。

物联网&集成技术 QQ群:542560八叁 

 

相关文章

网站地图xml地图