1.自我介绍html
本人已经工做10年,一直在工业领域。在一线干过实施,下过矿井;干过项目,带过团队;干过软件研发,出过产品;干过项目群管理,售前和市场也接触过;期间在纯软件公司也干过将近两年的时间,熟悉软件开发流程与管理。虽然没有取得多大成绩,也算经历丰富了。git
互联网“行业”如火如荼的发展,曾经也想过转行去作“互联网”,奈何犹豫过久,已然提不起太多兴趣。凭借当年的沉淀与积累,有个半成品的框架,在工做索然无味的状况下,绝不犹豫的投身到物联网框架的开发与产品化的进程中。别人都说物联网的时代来了,若是真的是这样,也不知道是本身的选择好,仍是命好。github
这方面的工做纯属我的爱好,业余时间在干,通常晚上21点到23点是本身的第二个工做时间。这两年积极的投身到新的框架开发中,提升性能、统一接口、跨平台……等方面的工做。也作了本身的基础硬件产品,智能网关。安全
有人会问,那你正式工做是干什么的?在某集团公司工业版块负责大数据建设的相关工做。在没有大数据、云服务概念的时候,作过远程E服务相关的项目。说实话,对于传统行业来说,是很困难的一件事。可是做为企业来说,要么等死,要么在改变中死,彻底在于本身的选择。网络
2.占领大脑和丢了脚并发
不知道从何时,物联网、大数据、云服务、云计算……等一批概念流行起来。大厂都在争夺高制高点,大数据、云服务、各类标准……,作这些事情都颇有意义。可是我在想,你们都去占领大脑,脚就不重要了嘛?!显然不是,应该是同等重要。华为设备部、中兴仪器仪表……对于基础物联层,也是很头痛的一件事,这是大厦的根基,特别是工业领域。因此,我坚信对于咱们的框架有很大的市场应用空间,创造的直接价值那是另一回事。框架
3.物联的现实困难异步
对困难理解的前提是对现实世界的认知,有些传统制造业都不具有物联的基础条件,更谈不上物联网、智能制造、智能工厂,可是至由于落后,才有广阔的市场空间。就算有物联的基础,条件比较落后,底子比较薄,面临四个多样性:设备多样性、协议多样性、通信机制多样性、数据多样性。这就是咱们面临的问题,难道问题有多大吗?为了生存,企业都说能作。可是结构化的多样性问题,要用结构化的手段或框架来解决,这是各方面保障的前提。分布式
4.效率与成本工具
接触一家上海公司,有专人负责网关层的数据采集,有专人负责服务(云)端的对接,不太稳定、常常出现问题。解决细节问题,不能用细节的思惟方式去解决,而是要有更广阔的思惟、结构化思路才可以完全的、更好的解决问题。网关层、服务端是否可使用同一套框架?而且框架之间是否能够无缝对接?若是能够实现,应用同一套框架,开发效率会提升,用人成本和时间成本会下降。好的组织结构、好的框架总之要解决效率和成本,不然没有任何价值。
5.逆向思惟
大厂都在搞云平台、协议标准……,固然他们有资本和实力这样搞,软件用他们的、硬件用他们的,对于他们来说,养这么多人,反而成本是最低的。他们奉行一流企业定标准,用这种思惟模式去整合资源,竞争比的就是占领资源的多少。咱们认真考虑一下,对于传统企业来说,原本生存就很困难,和房地产、互联网拿投资的无法比,他们有能力一会儿彻底统一化的更新换代嘛?!参加上海工业博览会,也进行了市场调查,简直是开玩笑。咱们再认真考虑一下,用框架性的东西去解决设备多样性、协议多样性、通信机制多样性、数据多样性的问题,在物联网和集成系统的建设中是否也是整合资源的一种手段?!先解决企业互联监控的问题,再解决企业标准化的问题,这样是否也是一种思惟模式?!是的,咱们就先这样干!
5.智能网关,跑Windows 10 IOT和Ubuntu Mate
网关在物联网和集成系统建设中是重要的一个环节,实现数据的初步整合(采集),再进行数据的转发,造成体系层次清晰的级联网络系统。市场的网关大至分为两类:纯硬件接口的转换、搭载操做系统的小型机。固然也有在硬件基础上搭载本身的软件框架,可是很少见。在咱们的智能网关上能够实现搭载咱们ServerSuperIO物联网框架,使软件和硬件无缝结合,设备驱动的接口统一,能够开发一套驱动跑在不一样的嵌入式操做系统上,Windows 10 IOT和Ubuntu Mate,对于系统建设的方案选择更灵活。
智能网关的硬件配置:
l 四核1.2GHz Broadcom BCM2837 64位CPU。
l 1GB RAM。
l 板载BCM43143 WIFI和蓝牙低功能耗(BLE)。
l 40引脚扩展GPIO。
l 4个USB接口。
l 全尽寸HDMI,而且转VGA接口。
l 微型SD卡端口,用于运行操做系统和存储数据的介质。
l 升级切换的微型USB电源,高达2.5A。
l 可搭载的操做系统:Ubuntu Mate、Windows 10 IOT。
智能网关实体机照片:
6.SuperIO到ServerSuperIO发展历程和解决的实现问题
SuperIO&ServerSuperIO最先的雏形于2010年开始开发,当时主要是解决公司内部硬件产品众多、协议众多、之前的软件常常出问题、维护成本高、搞集成系统时各方面都很累。通过两三年的发展,确实解决了公司内部的产品体系问题,全部硬件产品均可以挂载到平台下运行。离开公司以后,感受这个平台从代码、应用等方面还有很大发展空间,2014年逐步产品化后才造成了SuperIO(SIO)这个平台。
可是SIO也只是解决了设备驱动(众多协议)插件式挂载的问题,不过只限于运行在Windows系列操做系统下,通常性的PC机和工控机上数据采集彻底没有问题。可是在运行效率方面还有很大提高空间、设备驱动的接口还能够进一步标准化(为了各层级均可以应用)、跨平台运行必须攻克、设备(驱动)之间信息交互与控制必须实现、框架在不一样层级应用的级联与控制必须实现、多服务实例的应用等等,一系列的框架和技术性问题还能够进一步完善。从总体物联网建设的框架性方面考虑,从2015年初开始,基于SIO的核心思想从新开发新一代物联网框架,也就是如今的ServerSuperIO(SSIO)框架,通过两年多的发展,搭载在智能网关的基础上,能够造成综合性的解决方案。
7.一套设备驱动,支持多种IO通信
无论是zigbee、wifi、有线网络,仍是RS48五、RS23二、RS422,总之主要分为两种硬件接口:网口和串口。至于OPC协议,能够用SSIO服务接口的造成间接实现,造成服务插件的一部分。若是不结构化的设计IO,网口和串口独立存在,随着产品愈来愈多,是很头痛的一件事,也不必定运行稳定。对于ServerSuperIO框架,在此基础上开发一套设备驱动能够分别实现经过网口或串口与硬件设备(传感器)进行交互,很是方便。有人认为通信很简单,其实若是把众多问题都考虑进去,那么将变得很复杂。也有不少纯网络通信框架,业务场景、通信机制的不一样,纯网络通信框架也未必可以彻底的适用于现场环境。根据多年的工做经验,针对SSIO增长了通信机制与应用场景,参见:《连载 | 物联网框架ServerSuperIO教程》1.4种通信模式机制。
示意图以下:
8.一套设备驱动,统一接口,多种平台挂载运行
针对ServerSuperIO框架的设备驱动接口进行标准化设计,另外针对ServerSuperIO框架自己进行了跨平台运行的移植工做,因此一次开发设备驱动,能够在多种平台下挂载运行。如今支持的平台包括:Windows xp SP3以上的版本操做系统(包括Server)、Windows 10 IOT嵌入式操做系统、Ubuntu&Ubuntu Mate操做系统。
示意图以下:
9.物联通信的级联
若是单单是采集硬件的数据与控制,也只能算是本地的系统,可是在物联网和集成系统建设中,必须造成体系化、网络化框架。因此ServerSuperIO在采集本范围内的数据信息与控制外,还要造成与上一级的ServerSuperIO进行数据交互,以及接收下一级的ServerSuperIO的交互数据,那么ServerSuperIO之间就造成了级联的关系,主要完成两大职责:数据的级联上传和反向控制,进而对设备自己进行级联控制。
结构示意图以下:
10.设备之间的通信、控制
采集与控制单个设备,在实际应用中还远远不够,还要可以设备与设备之间进行信息传递与控制,而且返回给发送控制源设备确认信息。例如:在监测流量计严重报警的状况下,是否应该调节或控制液体源头的阀门。相似的例子不少。
在ServerSuperIO最新的3.1版本中(尚未发布),支持设备向另外一个设备发起传递信息和控制后,被控制设备是否当即返回确认信息,仍是自主异步决定返回确认信息。增长了异步返回确认信息的功能,由于控制命令只是发给了另外一个设备驱动,设备驱动还会进一步与实际的硬件设备进行交互,与实现硬件交互成功后,再返回确认信息给发起的源设备驱动。
示意图以下:
11.与云端的交互、控制
ServerSuperIO提供了服务驱动的接口,一些除设备驱动类的功能之外,均可以以服务驱动的方式存在,例如:多设备采集的数据的融合模型计算、与其余平台或上层进行交互等等,在此仅以与服务端进行交互为实例进行介绍。与设备驱动之间的交互与控制不一样的是,设备驱动主动把采集的数据信息传递给服务驱动,服务驱动与云端进行交互,在接收云端指令后,发起传递信息或控制设备驱动,设备驱动再返回确认信息给服务驱动。
示意图以下:
12.将来的规划
从大环境来说,确定是有很普遍的应用;从本公司来说,未来在工业基础物联层面,确定也会用的上;从我的兴趣来说,也乐意可以继续作这方面的工做,固然是除正式工做以外。
从ServerSuperIO自己来说,3.1版本(未发布)对代码进行优化以及增长了异步返回确认信息的交互能力。后期会增长对数据安全方案的验证机制,以保障在工业领域应用数据交互与控制的安全性。另外从体系结构来说,以ServerSuperIO框架为基础,增长云端的建设能力,例如:数据分布式持久化等。从嵌入式应用为讲,要增长远程可配置能力等。
13.结束语
在如今的社会,长期坚持作一件事很不容易,作成产品级以及配合体系方案更不容易。慢慢往下走吧,但愿机会会眷顾那些踏实、实干的人。天道酬勤!!!
2.[开源]C#跨平台物联网通信框架ServerSuperIO(SSIO)介绍
2.应用SuperIO(SIO)和开源跨平台物联网框架ServerSuperIO(SSIO)构建系统的总体方案
3.C#工业物联网和集成系统解决方案的技术路线(数据源、数据采集、数据上传与接收、ActiveMQ、Mongodb、WebApi、手机App)
5.ServerSuperIO开源地址:https://github.com/wxzz/ServerSuperIO
物联网&集成技术(.NET) QQ群:54256083
连载教程:
1.4种通信模式机制
2.服务实例的配置参数说明
3.设备驱动介绍
4.如开发一套设备驱动,同时支持串口和网络通信
5.轮询通信模式开发及注意事项
6.并发通信模式开发及注意事项
7.自控通信模式开发及注意事项
8.单例通信模式开发及注意事项
9. 协议过滤器,解决一包多发、粘包、冗余数据
10.持续传输大块数据流的两种方式(如:文件)
11.实现设备(驱动)与设备(驱动)交互和级联控制。
12.服务接口的开发,以及与云端双向交互
13.自定义视图显示接口开发,知足不一样的显示需求
14.配制工具介绍,以及设备驱动、视图驱动、服务实例的挂载