Android平台基于Modbus RTU/TCP的数据采集与写入开发记录 android modbus

最近刚完成的一个app记录下。

部分代码已传至github上(https://github.com/tywfeng/moniter-public)

需求是使用android设备(手机平板等),通过modbus RTU网络流转发或modbus TCP两种通讯协议实时采集现场数据,并以数值及图表形式在APP中呈现出来。(因为android手机没有串口所以现场设备会将modbus RTU数据使用TCP流转发方式传输至android端,这种流转发数据格式仍使用RTU数据帧格式(非modbus TCP数据帧格式))

开发前查了一些介绍资料,有包括Modbus4Android等多种android modbus库,但是最终还是决定使用JNI+NDK+libmodbus库的方式开发,主要原因:

  1. 需求中的modbus RTU网络流转发在Modbus4Android库中貌似不支持,因为libmodbus是开源库,所以可以针对需求增加对RTU网络流转发的支持。这是主要原因。
  2. 考虑到可能会做跨平台支持。

App功能设计上主要有以下几点:

  1. 数据采集+写值功能
  2. App前端数值+图表+告警呈现
  3. 参考组态软件,为增强适用性,随时方便设定采集/写的数据类型(例:bool,byte,short,word,long,dword,float,double,string等)
  4. 方便后续其他协议扩展(目前扩展了SiemensS7部分)
  5. 以及一些App前端连接/数据呈现/配置的辅助功能

程序大致流程:

采集:c/c++底层原始数据采集—>根据配置的数据类型解码(包括字节序调整及高低位转换)—>量程变换—>JNI回调至Java层—>存储/数值呈现/图表呈现/告警呈现

写入:将采集流程反向(写入时可区分输入类型:RawHex、SrcValue,ScaledValue等)

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值