e-works数字化企业网  »  文章频道  »  基础信息化  »  物联网

从端到云——工业物联网项目全栈快速开发

2017/6/13    来源:极客头条    作者:刘洪峰      
关键字:  工业物联网  
从去年伊始,国内外一些大公司都先后推出了面向物联网领域的平台产品,如微软Azure平台的IoT Hub、阿里云平台的物联网开发套件、百度云平台的物接入IoT Hub、物解析IoT Parser和物管理IoT Device等等,但上述公司的产品从平台特色和技术角度来看,相对比较适合一些企业级项目开发及智能硬件的云连接、云存储的使用,其实并不太适合一些对控制实时性较高、接入点多、业务逻辑相对复杂的工业领域。
    从去年伊始,国内外一些大公司都先后推出了面向物联网领域的平台产品,如微软Azure平台的IoT Hub、阿里云平台的物联网开发套件、百度云平台的物接入IoT Hub、物解析IoT Parser和物管理IoT Device等等,但上述公司的产品从平台特色和技术角度来看,相对比较适合一些企业级项目开发及智能硬件的云连接、云存储的使用,其实并不太适合一些对控制实时性较高、接入点多、业务逻辑相对复杂的工业领域。
 
    工业自动化领域相对比较封闭,发展也比较慢,多年来涉及到通信相关的,大部分还是采用现场工业总线等技术来实现。笔者曾发过一篇《浅谈工业级物联网项目架构设计及实施》,里面除了介绍了工业物联网的概念和特色外,还介绍了物联网通用中间件平台的架构设计。时至今日,随着国内外大公司的介入,物联网越来越热。下面笔者将结合工控领域的特色及当前物联网领域的一些新技术新趋势,分享工业物联网和民用物联网的特色及异同,并从自身实际应用开发的角度,解读从端到云,工业物联网项目的全栈快速开发之路。
 
    一、前言
 
    1.1 民用物联网VS工业物联网
 
    最近诞生的共享单车,短短一年多的时间就遍布国内一二线城市,迅速成为一个现象级应用,可以说是民用物联网领域最大的应用。小米的智能家居套件,以低廉的价格,相对实用的功能,也赢得了不少智能家居爱好者的追捧,也是比较典型的民用物联网应用。 
 
    工业物联网对大部分人来说,相对陌生,往往是面向行业的应用,比如我们当前所做的养殖物联网监控,污水处理物联网监控和垃圾处理物联网监控。
 
    那民用物联网和工业物联网的区别是什么呢?
 
    从技术角度来说,民用物联网和工业物联网并没有本质的区别,都是有云、有端、都具备传感器数据采集、设备控制及通信传输等功能。只是工业物联网脱胎于工控自动化网络,后者对可靠性和实时性有较高的要求,有各种工业级别的现场总线,如Profibus,Modbus RTU/TCP,CANopen等等,后续又在民用以太网的基础上,推出了工业以太网。那时候还没有云的概念,考虑到安全,网络都是私有的,很少和因特网进行互联。从某种意义上来说,没有云技术的高速发展,就不会有现在的民用物联网上各种现象级应用。当然工业物联网也得益于云技术的成熟,才能使高门槛的工业自动化技术得到了一定程度上的普及,否则也很难有今天所谓的工业物联网。不过民用物联网和工业物联网区别还是有的,下面将一一简要介绍。
 
  • 首先是数量的区别,民用物联网往往面临的是百万、千万级别的用户群。工业物联网从量上来说,要比这个规模小得多。

  • 其次是功能上的区别,民用物联网功能往往比较单一,易用,免维护。工业物联网功能就相对复杂的多,往往对应一个行业内的一系列具体的功能,

  • 然后就是价格上的区别,民用领域的用户对价格相对敏感,所以民用领域的物联网产品往往价格比较低廉。工业物联网领域的产品由于面向行业,面向具体的应用,量少,所以单价相对较贵。

  • 最后就是品质上的区别了,最简单的工业和民用的区别,就是设计产品的时候,器件选型民用产品往往选择民用级别的,工业级产品往往选择工业级的。除了价格上工业级的芯片比较贵外,应用环境的温度范围比民用领域也要宽广,可以在相对苛刻的条件下也能可靠地工作。
 
    1.2 工业物联网全栈开发
 
    全栈开发的概念来源于Web开发领域,指同时具备前端和后台开发的能力。引申到工业物联网领域,全栈开发意味着要懂硬件开发,要懂各种传感器、云开发、Web开发技术、手机APP开发、各种通信技术和数据存取,大数据时代还要求懂数据挖掘和分析。
 
    这对全栈工程师来说,要求就非常高了。考虑到实际,从技术路线来看,全栈开发还是分派系的,如“Java派”,各种层面的开发都是以Java类的开发技术为主。如“.NET派”,各种层面的开发都是用.NET技术进行开发。由于历史原因,我从2001年开始进入工控开发,工控软件类开发大都以微软技术为主,所以全栈开发主要采用了.NET技术。
 
    二、工业物联网设备端开发
 
    民用物联网端的开发和工业物联网端的开发还是有很大区别的,民用物联网端产品是厂家直接基于芯片进行产品开发。是典型的硬件开发了。而工业物联网端的开发,往往是在第三方厂家的产品基础上进行二次开发,也就是更多的是做集成类的开发工作。
 
    我们所做的工业物联网的端设备就是供其他工业物联网集成商进行二次开发的。当然我们也会基于我们的软硬件产品进行工业物联网项目的集成开发。
 
    这里着重介绍的就是在现有的工业物联网产品基础上进行的项目开发。
 
    2.1 常见IO接口
 
    目前工业领域常见的IO接口如下:
 
  • RS485:两线制,差分信号传输,半双工通信,最大通信距离千米以上。

  • RS232:三线制,全双工通信,一般通信距离小于10米。 

  • CAN:两线制,多主通信,高性能,高可靠性,每次最多传输8个字节的数据。通信距离千米以上。

  • 以太网:4线或8线,多主通信,高性能。普通网线通信距离100米以内。

  • Zigbee:基于IEEE802.15.4标准的低功耗无线通信协议,低功率一般传输距离100米以内,高功率的1000米左右。

  • LoRa:基于扩频技术的超远距离无线传输方案。低功耗,多节点。

  • GPRS:通用分组无线服务技术,广域网通信。

  • NB-IoT:IoT领域一个新兴的技术,支持低功耗设备在广域网的蜂窝数据连接,亦称低功耗广域网(LPWA)。

  • 模拟量输入:0~20mA/0~5V/0~20V

  • 开关量输入:0~24V

 
    2.2 常见通信协议
 
    Modbus RTU: 施耐德公司制定的基于RS485/RS232的串行通信总线协议。 
 
    Modbus TCP: 施耐德公司制定的基于以太网的通信总线协议。 
 
    PPI:西门子公司专为S7-200系列PLC开发的通讯协议。 
 
    Profibus:是一种国际化、开放式、不依赖于设备生产商的现场总线标准。 
 
    CANopen:是一种架构在CAN上的高层通信协协议,包括通信子协议及设备子协议。
 
    2.3 常见智能模块
 
    常见的智能模块其实种类比较多的,比如智能电表,智能水表,各种PLC及其配套的扩展模块等等。我们这里主要介绍的就是凌霄物联网智能网关、智能终端、智能IO模块和综合采集模块。
 
 物联网智能网关 智能终端 综合采集器
 
    图1 物联网智能网关 智能终端 综合采集器
 
    网关除具备网口、USB、SD卡及扩展两路智能模组(无线通信、RTC、存储等板卡)外,还可以配置各种不同通信接口板(当然也可以直接对接智能终端或智能IO上的输入输出子板)。
 
  • 综合通信:1路RS485,2路RS232,1路CAN

  • RS485-CAN:3路RS485,1路CAN

  • RS485:4路RS485
 
    智能终端和智能IO模块的主要区别有,一是通信接口,智能终端有三种接口可选,以太网、RS485和CAN;而智能IO模块仅具备CAN接口。二就是智能终端支持二次开发,能独立运行,也可以作为智能网关的扩展模块,而智能IO仅作为智能网关的扩展模块存在。
 
    智能终端和智能IO模块,根据对外接口不同,主要有如下种类的模块:
 
  • 综合输入输出模块:2路模拟量入,2路开关量入,2路继电器输出

  • 综合模拟量模块:4路模拟量输入,2路模拟量输出

  • 综合开关量模块:4路开关量输入,4路开关量输出

  • 模拟量采集模块:4路模拟量输入

  • 开关量输入模块:8路开关量输入

  • 继电器输出模块:8路开关量输出

  • 热电偶采集模块:4路热电偶采集
 
    综合采集器,是一个九合一的传感器集成模块,可以说是国内外集成度最高的一款产品。一次可以采集的传感器数据有3路温度,1路湿度、1路氧气、1路氨气、1路二氧化碳、1路光照、1路PM2.5。该模块可以通过RS485直接和网关相连,标准Modbus RTU通信协议。
 
    2.4 YFIOs数据组态开发
 
 YFIOs系统架构
 
    图2 YFIOs系统架构
 
    图2是YFIOs数据组态系统的架构图,其包含三部分:驱动层,核心层(驱动引擎及实时数据库)和策略层。
 
    所谓的二次开发大部分就是开发和具体业务联系密切相关的策略程序,此外就是少部分的驱动程序开发(除了对接特殊设备,大部分情况下无需用户开发驱动程序)。
 
    下面我们用一个简单示例来介绍一下YFIOs组态开发。
 
    2.4.1 硬件准备及连接
 
    我们需要准备如下设备:1台物联网智能网关,1台物联网智能终端(或智能IO),1台综合采集器,1条USB线及附属电源及连接线等。设备及辅材准备好后,按如下方式进行接线:
 
设备连接
 
    图3 设备连接
 
    2.4.2 创建用户驱动
 
 新建YFIOs设备
 
    图4 新建YFIOs设备
 
    如图4所示,根据设备的类型,对应的网关接口,新建综合采集器和输入输出智能终端对应的用户设备。
 
    设备创建后,对应的设备变量也会自动创建。
 
    2.4.3 设备及变量监控
 
    无需任何编程,只要把相关的驱动和配置信息部署到网关,就可以直接监控设备的通信状态、IO输入状态和连接的传感器数据。如果有IO继电器输出,也可以在IO监控界面,直接修改对应的值以改变继电器的开闭状态。
 
IO数据监控
 
    图5 IO数据监控
 

责任编辑:李欢
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐