zoukankan      html  css  js  c++  java
  • C#工业物联网和集成系统解决方案的技术路线(数据源、数据采集、数据上传与接收、ActiveMQ、Mongodb、WebApi、手机App)

    目       录

    工业物联网和集成系统解决方案的技术路线... 1

    前言... 1

    第一章           系统架构... 3

    1.1           硬件构架图... 3

    1.2           组件构架图... 4

    第二章           技术选型与介绍... 5

    2.1           开发环境... 5

    2.2           数据源... 5

    2.3           数据采集... 5

    2.4           数据上传服务... 6

    2.5           消息中间件... 6

    2.6           数据接收服务... 6

    2.7           数据存储... 6

    2.8           数据接口... 7

    2.9           Web业务系统... 7

    2.10        手机移动终端App. 7

    第三章           Demo的介绍... 8

    3.1           目录介绍... 8

    3.2           Demo调试... 8

    前言

        2000年以后,互联网在中国的大地上如火如荼的发展,在这个行业竞争中比的是加速度。我清晰的记得《世界是平的》中有这样一段话:在非洲,羚羊每天早上醒来时,它知道自己必须跑得比最快的狮子还快,否则就会被吃掉;狮子每天早上醒来时,它知道自己必须追上跑得最慢的羚羊,否则就会被饿死;不管你是狮子还是羚羊,当太阳升起时,你最好开始奔跑!我们奔跑的这10多年的时间里,互联网技术带动了各行各来的发展,同时也席卷了各行各来。

        2006年时,工业行业还在普遍使用电话线进行数据传输和远程帮助。网络技术慢慢的在向各行各业传导,工业行业也在发展,局域网、光纤以太网、WIFI3G4G等已经应用很广泛了。互联网技术在推动制造业发展的同时,也带动了众多公司的与时俱进,升级技术、提供更好的服务。

        我们在思考,后互联网时代将如何发展?将是互联网与各行各业深度融合的过程,例如现在常被提及的物联网,我认为它本质上是工业互联网,是制造技术与互联网技术无缝对接。不管是叫物联网还是工业互联网,未来物与物的交互、物与人的交互将无法避免。硬件与软件的协同发展,更快的推动了这个进程,例如:智能芯片的发展、嵌入式操作系统的发展、智能传感器的发展等。

        大数据、分布式、云计算等也在以惊人的速度发展,有些人可能认为这些东西离我们生活还比较遥远。但是并非是这样的,距离2006年只不过10年左右,现在的发展却是以前你无法想象的,而这种加速度的发展方式,2年的发展可能是你过去10年的发展之和。不管这些技术现在是否能够落地,但是这种趋势是无法改变的。

        数据的流动可以变现,现金的流动可以增加GDP。技术的进步就是生产力的提升,将来组织结构和关系也势必发生变化。不管是否懂技术技术、是否懂管理,思维方式不转变肯定会被淘汰。

        下面对物联网和集成系统的解决方案的技术路线进行介绍,只对技术选型和系统流程,对于架构的演变以及技术哪个更好不做具体说明。只供参考!!!

    第一章     系统架构

         架构图这块主要表达一个大概的结构化的意思,可以不太准确,希望大家能够理解。作为一个系统来讲还包括网络部署框架图,根据应用场景和网络环境不一样网络框架图也不一样,所以不在本文的讨论范围内。

    1.1    硬件构架图

     

    1.2    组件构架图

     

    第二章     技术选型与介绍

    文章不介绍代码部分,在Demo事例中有完整的代码和注释,可以下载调试。

    2.1    开发环境

    开发语言:全部使用C#,配有少量的JS代码。

    开发工具:除App部分,所有组件都采用VS2012开发,App程序采用VS2015开发,VS2015是一个超级开发工具工厂,在Win10操作系统上开发IoT嵌入式程序,也没有问题。

    操作系统:Windows 8.1,用习惯了也不错,听说要停止服务了,不过还有人在使用XP呢,不必担心。

    2.2    数据源

        数据源也就是产生数据的东西,也有人把这块统称为传感器,但是我认为这个叫法不太准确,所以我一般把这块统称为数据源。

        数据源包括的内容很多,例如:各类传感器、大中小型设备、硬件电路、软件组件等。各类数据源的通讯协议不同、通讯链路不同、通讯机制不同,在没有统一标准的情况下,这部分的工作比重要。因为有了数据之后,你的业务系统才有应用的价值。

        数据源我是写了一个模块的小程序,包括串口通讯和网口通讯。至于通讯协议,请参见《C#通讯(串口和网络)框架的设计与实现(SuperIO)- 12.二次开发及应用》。

    2.3    数据采集

         数据采集部分使用的是SuperIO框架,因为它支持串口和网口统一的插件式设备驱动开发,也就是说开发一个驱动可以支持串口和网口通讯。另外,可扩展性比较强,可以大大减小工作量。

         开发了一个驱动程序,在SuperIO平台下增加两个驱动实例,负责与数据源程序进行串口和网络通讯。

    2.4    数据上传服务

         数据上传服务是在SuperIO平台下开发的,可以继承IAppService接口开发插件服务,并且挂载到SuperIO平台下运行,设备驱动采集完数据后,可以通过接口传递到服务插件内,通过内存交互数据。如果涉及到数据完全性的数据交互,可以通过介质进行数据交互,例如:数据库、文本文件等。

        数据上传服务直接与消息中间件(ActiveMQ)进行交互,再由AcitveMQ进行消息转发。数据上传服务实际上是消息生产者的角色。

    2.5    消息中间件

         消息中间件采用ActiveMQ,需要部署Java运行环境。可用的消息中间件比较多,例如:RabbitMQ、ZeroMQ等。

         根据应用场景不同,可以选择的技术方案和技术路线也不一样。消息中间件这块也完全可以使用通讯组件来代替,例如:Netty和SuperSocket。

    2.6    数据接收服务

         数据接收服务是在SuperIO平台下开发的,可以继承IAppService接口开发插件服务,并且挂载到SuperIO平台下运行。

         数据接收服务直接与ActiveMQ进行交互,接收ActiveMQ转发过来的消息,实际上是消息消费者的角色。

    2.7    数据存储

        数据存储采用的是MongoDB,不太喜欢大而臃肿的东西,而且不需要ORM了,部署简单,可以使用MongoVUE工具对数据库进行管理。如果是大拿,可以直接cmd。

    2.8    数据接口

        数据接口采用Web Api,符合RESTful风格的http协议,操作调用简单、方便。抛弃了WebService的Soap协议,更没有选择WCF框架。

        这块并没有实现权限、安全管理。

    2.9    Web业务系统

        业务系统采用MVC框架,但是前端并没有与后台的控制器进行交互,而是与数据接口的WebAPI进行交互。前后端完全分离。

    2.10     手机移动终端App

         手机移动端使用VS2015开发,使用Xamarin框架进行开发,这个框架支持跨平台。Xamarin是个很不错的东西,唯一的缺点就是需要付费,对于中国IT人员来讲,这一点应该不是障碍。

    第三章     Demo的介绍

    3.1    目录介绍

    项目目录介绍如下:

    ClientService:上传数据与交互组件。

    DeviceDemo:设备驱动,负责采集数据。

    DeviceExport:数据输出组件,在Demo没有使用。

    DeviceShowUI:数据显示视图组件,负责显示采集过来的数据信息。

    FormTest:测试各部分的主工程。

    ProtocolPackage:公用协议包。

    ServerService:数据接收数据与交互组件。

    SuperIO_App:移动APP端,需要VS2015打开。

    SuperOPCClient:OPC客户端组件。

    SuperOPCServer:OPC服务端组件。

    TestDevice:模拟客户端测试程序。

    WebAPI:WebAPI和Web业务端数据显示。

    3.2    Demo调试

     下载地址:http://pan.baidu.com/s/1pJ7lZWf

    (1)    下载DEMO和工具

        下载SuperIO v2.2.7SuperIO_Demo v2.rar;下载mongodb数据库;下载ActiveMQ消息中间件。

    (2)    启动服务和程序

         启动mongodb,mongodb-win32-x86_64-2008plus-3.0.3-1start.bat,默认监听端口为:2222。

         启动ActiveMQ服务,apache-activemq-5.12.0inwin64activemq.bat,需要JAVA运行环境。

         启动SuperIO_Demo.sln解决方案,需要VS2012开发IDE,也可以转成VS2015工程,重新编译。

         启动SuperIO_App.sln解决方案,需要VS2015开发IDE,如果使用VS自带的模拟器,需要执行<adb connect 模拟器的IP>,才能把程序成功部署到模拟器,并且进行调试,否则VS工具一直处于部署阶段。

    (3)运行效果图

     

    (4)调试视频

        youku视频不是太清楚,请下载高清调试视频,地址:http://pan.baidu.com/s/1pJ7lZWf中的【视频演示】。

     

    作者:唯笑志在

    Email:504547114@qq.com

    QQ:504547114

    .NET开发技术联盟:54256083

    文档下载:http://pan.baidu.com/s/1pJ7lZWf

    官方网址:http://www.bmpj.net

  • 相关阅读:
    Session的使用与Session的生命周期
    Long-Polling, Websockets, SSE(Server-Sent Event), WebRTC 之间的区别与使用
    十九、详述 IntelliJ IDEA 之 添加 jar 包
    十八、IntelliJ IDEA 常用快捷键 之 Windows 版
    十七、IntelliJ IDEA 中的 Maven 项目初体验及搭建 Spring MVC 框架
    十六、详述 IntelliJ IDEA 创建 Maven 项目及设置 java 源目录的方法
    十五、详述 IntelliJ IDEA 插件的安装及使用方法
    十四、详述 IntelliJ IDEA 提交代码前的 Code Analysis 机制
    十三、IntelliJ IDEA 中的版本控制介绍(下)
    十二、IntelliJ IDEA 中的版本控制介绍(中)
  • 原文地址:https://www.cnblogs.com/lsjwq/p/5122612.html
Copyright © 2011-2022 走看看