收藏官网首页
查看: 11753|回复: 1

[交流] 关于物联网,有些问题不了解

38

主题

60

帖子

248

积分

中级会员

Rank: 3Rank: 3

积分
248
发表于 2016-8-30 23:13:33 | 显示全部楼层 |阅读模式
注册成为机智云开发者,手机加虚拟设备快速开发
本帖最后由 sept 于 2016-8-30 23:21 编辑

物联网应用开发的始占在于它本身 。这些边缘设备通常没有屏幕(尽管并非总是如此)、处理器功耗低,搭载的是某种嵌入式操作系统,使用一个或多个通信协议进行交流(通常是无线)。这些东西可能直接与网络、相邻事物和网络网关相连,一般外形就是一个盒子带一些闪闪发光的灯。

  系统的下一层即集成层是软件和基础设施,运行在企业数据中心或云中,来从各种事物中接收和管理数据流。运行在集成层的软件通常也负责管理这些事物,必要时更新固件。

  接下来就分析层,用于管理并处理数据。最后,还有一个终端用户层,这一层上应用程序用于用户之间交流。这些可能是企业应用、可能是网络应用,也可能是移动应用。

  如果你正在想办法构建物联网应用,最后两层将会是你接触最多的。作为开发人员,你可能没有工具处理这些边缘设备或网关,或者没有适应集成层的能力。

  这也就是为什么说构建应用程序要从已经就绪的“物联网平台”开始是有道理的了。这些平台通常包含集成层,这一层承载着以时间为序列输入的数据,以及分析层、自动精简配置,激活和管理功能,实时消息总线和建立其上的平台和应用之间的通信API。

————————————
以下的内容不理解:

当应用程序大幅模块化,一个特定技术模式能够从一个应用程序到另一个能够被重用,一个令人兴奋的应用程序开发领域将会打开局面。这可能涉及接口到连接层、数据分析工具、深度嵌入规则引擎或者安全组件,甚至数据库选项和云服务。从为一个容器中设计测量水位的应用程序,以及是否有特定的模块可以被其他应用程序和作为“软件即服务”产品的一部分被重用?

38

主题

60

帖子

248

积分

中级会员

Rank: 3Rank: 3

积分
248
 楼主| 发表于 2016-8-30 23:23:23 | 显示全部楼层

主持人:再谈到一些具体的技术方面,也就是今天的主题——工业级物联网项目的快速开发,组态画面如何快速转换为Html5动画?

刘洪峰:如果身处工控领域,那么对组态软件不会陌生,为什么需要组态软件呢?

因为工控项目工期相对较紧,及时同样的项目,每个现场都会有一定的区别,如果新开发代码,很难保证代码的可靠性。所以用组态软件,采用搭积木的方式,快速完成项目,由于每个模块都是考验过的,所以整体可靠性也会很高。

我们的组态软件的特色是除支持轻量级组态硬件(一个单片里面也可以跑组态),还支持PC组态及Html5组态。针对Html5动画来说,实现起来并不是特别难,难的是各种动画元素和设备变量的绑定及对应关系,组态软件转换为Html5的优势是,不仅仅动画完全一一实现,并且IO绑定关系还在,可以直接和后台服务通信,快速显示现场的设备状态。



这是我们的组态开发环境,最早是WinCE的组态开发环境,后期我们调整为.NET Micro Framework的组态。再后来就是PC组态及现在的Html5组态。这个平台可扩展性强,Html5组态就是通过插件导出的。上面的画面是一个 垃圾处理的组态画面。



导出到网页上就是这个样子:当然需要传入一些参数,比如websocket服务器的ip,端口号。当然也可以在网页中直接嵌入,不过为了灵活,为了让一个html5文件,显示多个相同的现场,采用参数的方式。



这个是污水处理的画面,绑定关系要复杂一些,特别是流动的动画。早期的这种画面,不用组态方式,用代码写,是很繁琐的。



导出到网页上,就是这个样子。

主持人:请谈谈基于WebSocket协议,通过IO字典快速和后台服务器进行通信的技术特点。

刘洪峰:正是因为有了WebSocket才使得基于Html5组态有了实现的可能。我这样表达可能不是太严谨。早期这种动画 一般都是flash,但是我们也知道 iOS系统已经不支持flash了。如果用 其他基于http通信协议做 动画,代价也会很高。WebSocket天然的比较适合,并且一旦做好,目前可以说 全平台支持。

通过Html5提供的绘图指令,可以构建组态图元库,每个图元有一个或多个动画点,每个动画点和一个IO字典里面的变量进行绑定,根据这个变量的值显示不同的颜色或图案。组态软件在导出Html5组态画面的时候,会自动进行图元和IO字典变量的绑定,WebSocket负责把这些变量和后台WebSocket服务程序进行对接(组态软件导出组态画面的同时,会导出一个IO字典表,直接导入服务器后台就可以实现对接)。

这里需要强调一下,做基于html5的组态和pc或嵌入式上的不同。后者程序都是编译好的,通过配置,反序列化出来组态,包括IO绑定。

但是 html5的是通过js脚本,是代码形式存在,这就有最大的灵活度,意味着我们可以不用配置,代码本身就是配置。另外就是js脚本在当前硬件条件下,做复杂的动画和通信,效率是非常高的,超出我们的意料。

主持人:请介绍下智能网关/智能终端等通过组态化软件支持,实现少编程或免编程完成数据采集,控制和通信的过程。

刘洪峰:举一个简单的例子,比如采集温湿度,温湿度传感器种类很多,通信链路和通信协议也多样,比如有RS485、I2C、单总线、AD等等。这个时候如果是组态软件支持,可以选择部署对应的驱动即可,对应的都是两个变量T和H(温度和湿度),用户直接读取这两个变量值即可。

我们这个组态是可以自动添加IO变量的,加入驱动的同时,IO变量也就有了。(当然对比如modbus这种非明确IO的,不能实现自动添加)。如果希望把温度和湿度传递到云端去,这个时候直接配置一个系统策略(云和端通信),配置好需要上传的IO字典即可(对应服务器上的中间件,也需要配置一下,设定好对应的上传IO字典,一般都是导入IO的xml文件即可)。

如果需要控制,那么可以加一个一路或多路继电器的驱动,每一路继电器也对应一个IO字典变量,向其中写入1,就是开启继电器,写入0,就是断开继电器。这个时候可以用一个标准系统策略,通过配置建立关系,比如T大于多少,就想继电器的变量写入1,低于多少,就写入0。

当然你也可以自己写一个简单的策略(C#或VB.NET),直接读取对应的变量,经过逻辑判断后,向输出变量写入对应的数据,可以实现相对复杂的控制。

主持人:请展开介绍一下Windows Azure + Windows 10 IoT + .NET Micro Framwork, 一体化的开发体验,全程软硬件.NET支持。

刘洪峰: Windows Azure是微软早就发力的一个云平台,不同于一般的云服务公司,微软不仅仅提供所谓的云主机,更多的是体现在云计算层面,并且和Visual Studio开发工具紧密结合,可以直接在线开发、上传、调试。开发效率和开发能力被大大拓展。

Windows 10横空出世最吸引人的地方就是UWP(通用平台程序)的提出,这就意味着,只要是Windows 10的系统,UWP程序都可以运行,无论是X86还是ARM架构,无论是PC,还是XBOX,手机或平板。

Windows 10 IoT是一款完全免费的系统,专门针对物联网研发的系统,除了UWP等特性的支持外,还对GPIO,SPI,I2C等等芯片层面的直接开发,提供了支持。并且在树莓派这种ARM低端开发板上也可以运行。大大扩展了Windows 10的应用范围。这次我去参加微软的技术大会,Windows 10 IoT 又出来两个版本, 当前是Windows 10  IoT core, 新出的是 移动版和企业版。

.NET Micro Framwork是微软2001年就开始研发的轻量级系统,可以在单片上运行,目前可以看,是Windows 10 IoT的一个补充。最近刚刚推出了最新V4.4版本,支持UWP接口,AllJoyn通信协议。另外.NET Micro Framework家族也衍生了一个产品LLILUM,支持把标准UWP程序直接编译为本地二进制代码,直接部署到芯片中运行(更小,更快)。

我是从2006年开始了解.net mf,2007年这个技术进入中国,2008年去微软去学习这个,2003那个时候的智能手表就是基于这个系统。LLILUM产品 其实目前德国的一个企业在做,就是把C#直接编译成二进制代码,一年授权使用费十几万,而微软是完全免费开源的。这个的执行效率就很高了,对资源的要求也非常小了。

一言以蔽之,由于这些平台全部都支持.NET平台开发,一样的开发环境,一样的开发语言,一致的开发调试体验,会让一个人的能力发挥最大,可以让更少的人在更短的时间内快速开发出可靠又实用的物联网项目。

微软的技术做深入的产品研发也许不是好选择,但是做项目,做集成确是最好的选择。特别是需要用户做二次开发的。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表