标签 分享 下的文章

EdgeX Foundry 中文社区 在使用和开发过程中,收到很多使用者和开发者的提问和反馈,我们将在一系列文章中给大家分享出来。

系列文章二:主要介绍一些跟设备和驱动相关的问答。

  • EdgeX Foundry 性能如何?单个实例能承载多少设备?一次性能采集多少设备数据?
  • 如何开发一个新的 Device Service 设备驱动?
  • EdgeX 如何支持 I2C, SPI, UART 接口数据采集?
  • 官方支持通用协议情况如何? ModBus,MQTT,REST,ONVIF 分别是什么情况?
  • 官方支持工业协议情况如何? S7,OPC-UA,BACnet 分别是什么情况?

常见问题(FAQ)

性能相关

!!! question "EdgeX Foundry 性能如何?"

这个问题由一位外国开发者在 GitHub 上提出来,坦率地说,这个问题范围太广了,不好完整的回答。

  • [x] 非要给个答案的话,那就是:
    EdgeX 性能完全取决于你的硬件配置。

!!! question "单个实例能承载多少设备?"

接着上一个大的问题,这是其中一个分支问题,假如计算资源足够的话,应该可以承受几十万设备。

  • [x] 笔者所在公司,采用 4核心,8G内存,可以跑 virtual device 50000-80000个,丝毫没有什么影响;
  • [x] 把几万,几十万设备承载在一个实例中,其实并不是一个好的选择,要考虑到如果发生单点故障,应该如何应急处理;

!!! question "一次性能采集多少设备数据?"

测试中有多少个命令以及命令间隔是多少?并且,您应该关注许多选项,例如:数据持久性、南向设备协议种类多少。

  • [x] 单协议采集,数量非常多的情况下,就看每个采集设备的测点数量,不会出现什么大问题,注意观察宿主机器上的资源利用率情况,及时作出调整;
  • [x] 多协议采集,这样的情况下需要启动多个不同的设备服务微服务来运行,资源占用比单协议采集要多很多,需要更多的资源进行配合;

设备服务(驱动)开发

!!! question "如何开发一个新的 Device Service 设备驱动?"

其实,这个应该不是一个问答能解决的事情,需要一个章节或一个课题来解决。官方给出了很完整的[开发手册][3],具备一些基础能力后,一步一步来,很容易开发出新的设备驱动。

  • [x] Golang SDK

    • 符合官方的统一开发语言;
    • 开发更简单;
  • [x] C SDK

    • 嵌入式设备上,或需要调用 C 库函数的情况下;

    • 需要开启 C 编译环境,尤其是 docker 相关,生成 docker image 需要更多依赖;

      总的来说,开发一个设备驱动,是一件很复杂且繁琐的工作,要测试的内容很多,稳定性/可靠性都是需要很多经验配合。

外设驱动开发

!!! question "EdgeX 如何支持 I2C, SPI, UART 接口数据采集?"

这个问题,是由一个国人在 GitHub 上提出来的,他的提法是否支持 I2C。

我的回答:不必要!

原因有如下:

  • EdgeX 更加偏向于计算,而不是针对一些串口协议进行解析;
  • 这些传感器协议,也不适合接在边缘计算网关之上,太过于底层的协议,应该由 MCU + 实时操作系统来完成;
  • 将这些协议转换成 ModBus RTU,我想这是更加合适的选择;

官方驱动支持情况

!!! question "通用协议:ModBus,MQTT,REST,ONVIF 分别是什么情况?"

这些协议,大部分都由社区开发完成,并且经过多轮迭代,稳定可靠,完全可以用在商业环境下。

  • ModBus: RTU/TCP 两个版本都支持的很好;
  • MQTT: 跟随主版本一起发布,效果很好;
  • REST: 跟随主版本一起发布,效果很好;
  • ONVIF: 跟随主版本一起发布;
    • v3.0 之前的版本隐性 bug 比较多,慢慢的完善了很多;
    • 还需要一个流媒体服务器配合使用,毕竟 EdgeX 只是做了 ONVIF 协议适配;

!!! question "工业场景协议:S7,OPC-UA,BACnet 分别是什么情况?"

工业场景下,稳定性要求高,性能要求也很高,那么,需要更多的时间来完成开发和测试。

  • Siemens S7: 官方还没有完整的开源子项目,笔者公司贡献了第一套代码,目前(11月12日)还在 review 中,详见:https://github.com/edgexfoundry-holding/device-s7
  • OPC-UA: 由社区完成了贡献,不过,也不是标准的 EdgeX 组件,需要自己编译和测试,并且用到项目中;
  • BACnet: 官方有一个 C 版本的,也跟随主版本一起发布;

关于我们

!!! success "亿琪软件"

上海亿琪软件有限公司成立于 2016 年,专注于 5G 通信、AI 人工智能、边缘计算和大数据网络安全多项技术领域,致力于物联网领域前沿技术的创新,为用户提供全方位、智能化和安全的物联网解决方案。

2023 年,公司发布“YiFUSION |工业边缘智能融合一体机”产品,为工业客户提供一整套的边缘计算+AI 能力:高性能数据采集、多类型数据融合、AI 算法集成、云端业务对接。在边缘网关的基础上,集成了 IoT 平台的边缘协同能力、本地 Web SCADA 和 HMI 功能、本地数据存储、边缘 AI 视频分析、行业应用集成等。

2022 年,公司推出 “YiCLOUD |亿琪云”一站式物联网应用解决方案。公司的业务涵盖了智慧城市、智慧农业、智能工厂和智慧园区等多个领域,公司软硬件产品和解决方案获得华为技术认证,得到中国移动 OCP 认证,公司还是边缘计算产业联盟 ECC 成员。

!!! tip "关注我们"
yiqisoft edgexfoundry
!!! warning "联系我们--商业服务"

    - 网站:http://yiqisoft.cn
    - 邮件:support@yiqisoft.cn
    - 电话:021-68863086
    - 手机:186-1666-9123