Skip to content

mqtt协议驱动

mqtt协议驱动是iboot平台默认的协议驱动, 开发者无需做任何配置即可使用mqtt协议驱动. mqtt broker需要自行搭建, 可以使用mosquitto、emqx等mqtt broker.

  1. 网络架构图mqtt协议驱动
  2. 配置流程

新增mqtt网关子设备产品 -> 配置产品物模型 -> 新增mqtt网关设备(mqtt连接) -> 新增mqtt网关子设备

  1. 添加网关子设备产品mqtt协议子产品

设备类型选择网关子设备, 父产品选择默认Mqtt网关产品(此网关产品已在系统中存在)

  1. 添加物模型
  • 物模型属性: 物模型属性需要先添加设备上报的字段, 然后新增一个json类型的属性将设备上报的字段绑定到json属性中 mqtt协议物模型属性
  • 事件模型: 协议指令选择订阅, 上行配置的主题需要以网关子设备产品编号开头 格式如下: 子产品编号/{deviceSn}/标识符, 其中{deviceSn}为设备编号的占位符, 下行配置无配置项。上报的负载必须通过输入@来提及json格式的物模型属性; 遗嘱选择否 mqtt协议物模型事件
  • 功能模型: 协议指令选择发布, 下行配置的主题没有做要求, 负载直接填写json格式的数据 mqtt协议功能模型
json
{"wendu": 30, "shidu": 30}
  1. 新增网关设备(配置菜单在: 设备管理 -> mqtt网关设备)

mqtt的网关设备其实就是一个mqtt客户端连接, 所以需要配置mqtt客户端的连接信息, 包括broker地址、端口、用户名、密码、客户端id等信息 mqtt协议网关设备

  • 所属产品:选择默认的Mqtt网关产品(此网关产品已在系统中存在)
  • 客户端id:整个mqtt broker中需要保证客户端id的唯一性, 否则可能出现客户端不断重连的情况
  • 主题:主题需要以网关子产品编号开头 格式如下: 网关子产品编号/#, 此主题写法的意思是此客户端将订阅此产品的所有主题
  1. 新增网关子设备

网关子设备的新增和直连设备的新增类似mqtt协议网关子设备

  • 所属产品:选择之前添加的网关子设备产品
  • 设备编号:此设备编号需要和事件模型上行配置中的{deviceSn}占位符一致, 比如设备发布的主题是: mqtt_default_demo/demo_001/wendu, 那么设备编号就需要填写demo_001, 否则子设备会一直处于离线状态

modbus协议驱动

modbus协议是一个国际标准的工业协议, 目前iboot平台已经开源了modbus协议驱动, 目前支持modbus rtu和modbus tcp两种实现, 开发者无需做任何开发即可使用modbus协议驱动。

  1. 网络架构图modbus协议驱动
  2. 配置流程

新增modbus网关子设备产品 -> 配置产品物模型 -> 新增modbus网关设备(串口或tcp连接) -> 新增modbus网关子设备

  1. 添加网关子设备产品

设备类型选择网关子设备, 父产品可以选择默认Modbus Rtu网关产品或Modbus Tcp网关产品(网关产品已在系统中存在)

  1. 添加物模型
  • 物模型属性: 物模型属性根据设备的文档来按需添加, 在读寄存器的时候一个点位地址需要配置一个属性
  • 事件模型: 协议指令选择读寄存器或读线圈, 下行配置的寄存器地址和数量需要根据设备的文档来配置, 上行配置需要输入@来提及物模型属性, 将采集的值和物模型属性进行绑定
  • 功能模型: 协议指令选择写寄存器或写线圈, 下行配置的寄存器地址和数量需要根据设备的文档来配置, 上行配置没有配置项
  • 注: 寄存器数量算法: 一个寄存器两个字节, 比如 readShort short类型占用两个字节所以寄存器数量填1
  1. 添加网关设备(配置菜单在: modbus网关设备)

添加modbus网关设备时 所属产品如果选择modbus rtu需要配置串口信息, 如果是modbus tcp需要配置modbus的tcp连接信息

  1. 添加网关子设备

在刚新增的网关设备那条记录的操作栏上面点击子设备按钮来新增子设备, 子设备的所属产品选择之前添加的网关子设备产品, 所属组必须指定, 因为在事件源配置采集器的数据需要选择哪些组的设备加入采集, 如果这里没有指定所属组则采集器无法采集到数据!

dtu协议驱动

基于DTU的modbus协议驱动是对modbus协议在网络架构上的扩展, 由于modbus rtu协议的网络架构时基于串口的, 串口的传输距离有限制, 所以需要将modbus rtu协议进行扩展那就需要一个串口服务器(dtu)做透传来将RS485的协议扩展到网络上(TCP), 目前iboot平台已经开源了dtu协议驱动, 开发者无需做任何开发即可使用dtu架构的modbus rtu协议驱动。此驱动的物模型配置和modbus协议驱动的物模型配置一致

  1. 网络架构图dtu协议驱动
  2. 配置流程(物模型配置和modbus协议一致)

新增DTU网关子设备产品 -> 配置产品物模型 -> 新增DTU网关设备 -> 新增网关子设备

  1. dtu是需要主动连接iboot平台的, 所以需要在iboot平台开放端口给dtu连接, 这个端口在平台的网络组件菜单上面进行配置dtu网络组件
  1. 注册码类型: 注册码类型一般为ascii和hex, 需要和dtu的配置一致
  2. 读空闲时长: 如果平台在此时间段内没有收到dtu的心跳包则会主动断开此dtu连接, 单位为秒, 如果设置为0则表示不进行心跳包检测, 如果配置大于0则需要同时配置dtu的心跳包时间, 还有此值需要大于(上图的小于是)dtu的心跳包时间
  1. dtu连接iboot平台的时候需要有一个编号让平台知道怎么区分对应的dtu, 所以在平台配置dtu网关设备的时候需要配置dtu的编号, 这个编号需要和dtu的注册包编号一致(dtu的注册包可以在dtu设备的配置界面进行获取). 以有人的dtu移动端配置为例有人dtu设备配置
  1. 注册包功能: 发送方式选择连接发送注册包, 注册包内容可以选择自定义, 注册包类型一般为ascii和hex两种按需选择就可以
  2. 心跳包功能: 心跳包功能可以让平台知道dtu是否在线, 心跳包和注册包必须在内容和注册码类型上都保持一致

dlt645协议驱动

编写中...

opcua协议驱动

编写中...

s7协议驱动

编写中...