跳到主要内容

设备接入

概述

Janus提供多种设备数据接入方式,实现不同类型设备数据的互联互通,并基于数据开发不同的数据应用。

创建设备

进入Janus系统,点击左侧菜单栏 设备接入 - 设备列表 ,进入设备列表页,点击右上角 新增设备

填入设备信息,完成后点击 确认 即可完成设备创建。

  • 序列号:序列号是Janus系统识别设备的唯一编号,可选 自动生成手动选择
    • 自动生成:创建设备时由Janus自动生成设备序列号;
    • 手动选择:选中时,需选择序列号;
  • 设备名称:填写描述该设备的名称;
  • 设备分组:设置该设备所属的分组;
  • 设备类型:设置设备的设备类型(关联 数据定义)。
  • 所属团队:设置设备的所属团队(关联 用户管理)。
  • 标签:设置设备的标签,若输入多个请按回车键分隔;
  • 设备位置:点击并在地图上标定设备的位置信息;
  • 设备描述:填写描述该设备的备注内容;
  • 使用FTP推送流程图:若勾选,则通过FTP协议推送流程图,适用于接入固高控制器的场景;
  • 同步设备数据到Neptune:若勾选,则该设备的数据经Janus系统同步发送到Neptune(需要Janus保持接入英特网);
  • 保存设备数据:若勾选,则将设备数据保存在Janus本地服务器中。

创建完成后,请根据下方文档操作提示完成设备接入。

支持接入协议

目前支持协议如下:

方式或协议备注
Modbus协议适用于支持Modbus TCP/RTU连接的设备。
串口数据适用于支持串口连接,并且可通过串口传输数据的设备,如欧姆龙的PLC。
s7 server适用于西门子s7 DAserver接入协议的设备。
OPC UA适用于支持OPC UA协议的设备。
MQTT适用于可作为MQTT客户端接入的设备。
TCP/UDP Socket适用于可通过网络并支持通过TCP/UDP协议交换数据的设备。
HTTP适用于可通过HTTP协议进行数据交换的设备。
BACnet该协议一般用于智能楼宇设备;

目前支持的设备品牌及型号如下:

  • Fanuc CNC: 0i-MA/0i-MB/0i-MC/0i-MD/0i-MF/15-MB/15i-MA/16-MB/16-MC/16i-MA/18-MC/18-MC/18i-MB/21i-MB/30i-MA/30i-MB/31i-MA/31i-MB/32i-MA/32i-MB/35i-MB
  • Mitsubishi Machining Center & Lathe System: Series E80 / Series C6 C64 C80 / Series M70 M70V M700 M700V 系列部分型号
  • Citizen: 使用了三菱控制器的型号
  • Siemens Sinumerik: Series 740D / 828D
  • Heidenhain: iTNC 530 TNC 320/620/640/426/430 系列部分型号
  • Mazak: 640T NEXUS / 640M NEXUS / MATRIX E0 C4B D4 C3 D3 C9 D1 D2 / MATRIX NEXUS D4 及使用了三菱控制器的型号
温馨提示
  • 上述品牌部分需要厂家开通授权后方可使用,开通授权涉及费用
  • 同一型号由于生产日期不同或执行过客户定制,可读取数据各有不同,需要现场实际确认

不同的设备/PLC接入到Janus时,根据所支持的协议按照步骤接入即可。

功能路径

登录Janus边缘计算平台,点击左侧菜单栏 设备接入 - 设备列表 ,列表中点击 设备详情

进入设备详情页,找到 设备接入方式 页面模块,点击右上角 修改

在弹出的对话窗口中选择设备要使用的接入方式,根据相关协议配置信息接入设备或填写连接信息。

Triton

Triton是运行于控制端操作系统上的可执行程序,配置Triton相关信息即可接入数据到Janus。

强烈推荐用户通过Triton客户端接入到Janus平台中。

Triton目前提供Windows/Linux/Windows CE 6各个平台的版本,相关的说明请参考 Triton工业设备客户端部署文档

MQTT协议

设备端
(Client)
设备端 (Client)
Janus
(Server)
Janus...
设备上传特定格式数据
设备上传特定格式数据
Janus下发数据到设备
Janus下发数据到设备
Viewer does not support full SVG 1.1

设备使用MQTT协议接入时,配置MQTT协议相关信息连接接入到Janus,然后发送Json数据格式至Janus。

  1. 点击 MQTT 标签页;
  2. 根据协议配置信息,在MQTT客户端连接配置中填入协议配置信息;
  3. 点击 确认 ,系统识别设备接入方式为MQTT。

使用MQTT传输数据时,数据传输采用key/value模式(即编号/值),故要为每个需要传输的变量定义一个在本设备中唯一的编号,建议编写具有阅读性、便于理解的编号。其中uuidtoken为必须编号(编号名称不可修改),是设备传输数据的身份标识;

数据传输示例如下:

  • 设备端上传数据格式规范:
{
"uuid": "设备UUID", // uuid为必须栏位
"token": "设备令牌", // token为必须栏位
"time": "20180310142505336", // 数据产生的时间:格式为yyyyMMddHHmmssSSS, 如该栏位为空,则取当前时间
// 数据列表
"speed": "10", // 速度=10
"temperature": 36.5, // 温度=36.5 .
"key_10": "test"
}
  • 设备端上传数据示例:
{
"uuid":"CNC_10001",
"token": "DD6A-FB32-434F-01DB",
"MachineType": "E-CNC-PP2", // 机床型号
"Type": "主轴:高精度主轴轴承,适应高刚性", // 规则
"Company": "GOOGOL", // 品牌
}
  • Janus下发数据示例:
{
"action": "data",
"data": {
// 下发的数据列表
"speed": "10.35", // 下发的速度=10.35,
"temperature": "30.5" // 下发的温度=30.5
},
"uuid": "7CFE-51EF-55AB-27FB" // 设备序列号
}

PLC协议

设备作为Modbus Master接入

PLC
(Master)
PLC...
Janus
(Slave)
Janus...
从Janus寄存器地址获取数据
从Janus寄存器地址获取数据
PLC往Janus寄存器地址写数据
PLC往Janus寄存器地址写数据
Viewer does not support full SVG 1.1

设备作为Modbus Master接入时,Janus会在本地启动一个Modbus Slave的实例,设备 (Master)根据逻辑写数据至Janus (Slave), Janus (Slave)会定时读取本身的数据作为设备数据。由于Modbus协议不同,设备作为Modbus Master接入分为两类:Modbus TCP和Modbus RTU。

采用Modbus TCP协议

  • Slave ID:Janus Slave的ID
  • 端口号:Janus Slave提供给Master连接的端口号
  • 定时读取:Janus会按照用户设定频率定时读取Slave上的数据
  • 数据读取:Janus可批量设置要读取Slave中哪些数据(详见数据接入说明)

采用Modbus RTU协议

  • Slave ID:Janus Slave的ID
  • 定时读取:Janus会按照用户设定频率定时读取Slave上的数据
  • Modbus Rtu配置信息:Janus Slave提供给Master的通讯参数
  • 数据读取:Janus可批量设置要读取Slave中哪些数据(详见数据接入说明)

设备作为Modbus Slave接入

PLC
(Slave)
PLC...
Janus
(Master)
Janus...
从PLC寄存器地址获取数据
从PLC寄存器地址获取数据
Janus往PLC寄存器地址写数据
Janus往PLC寄存器地址写数据
Viewer does not support full SVG 1.1

设备作为Modbus Slave接入时,Janus自动创建Modbus Master实例,连接设备(Slave) 。定时读取设备(Slave)的数据作为设备数据。由于Modbus协议不同,设备作为Modbus Slave接入分为两类:Modbus TCP和Modbus RTU。

采用Modbus TCP协议接入

  • IP地址:设备Slave的IP地址
  • Slave ID:当前接入设备Slave的ID
  • 端口号:当前接入设备Slave的端口号
  • 定时读取: Janus会按照用户设定频率定时读取设备(Slave)的数据
  • 数据读取:支持批量设定读取数据(相见数据接入说明)

采用Modbus RTU协议:

  • Slave ID:Janus Slave的ID
  • 定时读取:Janus会按照用户设定频率定时读取Slave上的数据
  • Modbus Rtu配置信息:Janus Slave提供给Master的通讯参数
  • 数据读取:Janus可批量设置要读取Slave中那些数据

查看【调试面板】,即可查看读取的设备数据。设备数据为固定格式:

格式解析:

{
"action": "data",
"uuid": "898F-EFRD-34RD-09OK", // 设备UUID
"data": {
"3_40001": 105, // 设备数据项,示例代表Modbus Slave 3 区第1位数据
"3_40002": 0, // 设备数据项,示例代表Modbus Slave 3 区第2位数据
"3_40003": 0, // 设备数据项,示例代表Modbus Slave 3 区第3位数据
"3_40004": 0, // 设备数据项,示例代表Modbus Slave 3 区第4位数据
"3_40005": 0, // 设备数据项,示例代表Modbus Slave 3 区第5位数据
"3_40006": 0, // 设备数据项,示例代表Modbus Slave 3 区第6位数据
"3_40007": 0, // 设备数据项,示例代表Modbus Slave 3 区第7位数据
"3_40008": 0, // 设备数据项,示例代表Modbus Slave 3 区第8位数据
"3_40009": 0, // 设备数据项,示例代表Modbus Slave 3 区第9位数据
"3_40010": 0, // 设备数据项,示例代表Modbus Slave 3 区第10位数据
}
}

设备作为串口接入

串口设备
(Slave)
串口设备 (Slave)
Janus
(Master)
Janus...
从PLC寄存器地址获取数据
从PLC寄存器地址获取数据
Janus往PLC寄存器地址写数据
Janus往PLC寄存器地址写数据
Viewer does not support full SVG 1.1

Janus支持串口接入,定时发送密令至设备,读取设备数据:

  • 串口设置:配置串口波特率,校验位等信息
  • 定时发送: Janus会定时发送密令至串口设备,可发送多组密令
  • 数据格式:发送和接收都同时支持ASCII和HEX数据格式

查看【调试面板】,即可查看读取的设备数据。设备数据为固定格式:

格式解析:

{
"action": "data",
"uuid": "898F-EFRD-34RD-09OK", // 设备UUID
"data": {
"3_40001": 105, // 设备数据项,示例代表Modbus Slave 3区第1位数据
"3_40002": 0, // 设备数据项,示例代表Modbus Slave 3 区第2位数据
"3_40003": 0, // 设备数据项,示例代表Modbus Slave 3 区第3位数据
"3_40004": 0, // 设备数据项,示例代表Modbus Slave 3 区第4位数据
"3_40005": 0, // 设备数据项,示例代表Modbus Slave 3 区第5位数据
"3_40006": 0, // 设备数据项,示例代表Modbus Slave 3 区第6位数据
"3_40007": 0, // 设备数据项,示例代表Modbus Slave 3 区第7位数据
"3_40008": 0, // 设备数据项,示例代表Modbus Slave 3 区第8位数据
"3_40009": 0, // 设备数据项,示例代表Modbus Slave 3 区第9位数据
"3_40010": 0, // 设备数据项,示例代表Modbus Slave 3 区第10位数据
}
}

设备作为s7 server接入

Janus支持s7 server接入,填入目标设备局域网IP及端口(默认为102),设置DB数据块号及开始/结束位置,选择合并数。

Socket协议

设备作为TCP/UDP Socket客户端接入

设备使用TCP/UDP协议时,由于二者使用方法类似,本文档以设备使用TCP协议接入为例进行讲解。

设备端
(Client)
设备端 (Client)
Janus
(Server)
Janus...
设备发送数据到Janus
设备发送数据到Janus
设备发送'r'到Janus,获取Janus下发的数据
设备发送'r'到Janus,获取Janus下发的数据
Janus回复数据接收结果
Janus回复数据接收结果
Viewer does not support full SVG 1.1

Janus内置TCP Socket Server,设备可作为TCP Socket客户端连接Janus,并发送数据至Janus;下发数据时,设备需主动发送r获取Janus下发的数据。

  • TCP服务器: 会根据Janus实际部署情况显示IP
  • TCP 端口: 可在Janus配置文件中配置
  • 数据格式:使用JSON数据格式,Janus会自动标记IP和端口号为该设备数据来源

使用TCP Socket传输数据时,数据传输采用key/value模式(即编号/值),故要为每个需要传输的变量定义一个在本设备中唯一的编号,建议编写具有阅读性、便于理解的编号。其中uuidtoken为必须编号(编号名称不可修改),是设备传输数据的身份标识;

设备作为TCP/UDP Server接入

设备端
(Server)
设备端 (Server)
Janus
(Clinet)
Janus...
设备发送数据到Janus
设备发送数据到Janus
Janus下发数据到设备
Janus下发数据到设备
Viewer does not support full SVG 1.1

设备内置TCP Server,Janus可作为TCP Socket Client接入设备,定时读取设备的数据

  • TCP Server:配置设备的IP以及端口号
  • 定时发送: Janus会定时发送密令至TCP Server,和设备进行交互
  • 16进制格式:支持发送16进制数据至设备,同时,也支持接收16进制数据格式

设备作为OPC UA TCP Server接入

设备端
(Server)
设备端 (Server)
Janus
(Client)
Janus...
Janus获取特定数据栏位字段
Janus获取特定数据栏位字段
请求OPC UA  Server获取所有数据栏位字段
请求OPC UA  Server获取所有数据栏位字段
Viewer does not support full SVG 1.1

使用OPC UA协议接入时,设备作为OPC UA Server接入时,配置OPC UA Server的连接信息,读取对应的数据到Janus。

  1. 选择 TCP Socket 标签页,点击 设备作为OPC UA TCP Server接入
  2. 端点设置:填入服务器配置信息(OPC Server地址、安全策略、验证方式)、定时读取频率;
  3. 数据读取:点击 搜索数据栏位 ,获取所有数据栏位字段;
  4. 配置需要读取数据的字段。

HTTP协议

设备作为HTTP Server接入

设备端
(Server)
设备端 (Server)
Janus
(Client)
Janus...
Janus获取设备数据(GET)
Janus获取设备数据(GET)
Janus下发数据到设备(POST)
Janus下发数据到设备(POST)
Viewer does not support full SVG 1.1

设备或第三方系统内置HTTP Server,Janus可使用HTTP协议发送数据至设备/第三方系统获取或下方数据。

  • HTTP Server地址:填写设备/第三方系统的IP信息
  • 请求类型:基于设备/第三方系统提供的接口配置对应的类型POST/GET
  • 请求参数:基于设备/第三方系统提供的接口文档配置请求数据需要的参数信息

设备使用HTTP发送数据到Janus

设备端
(请求方)
设备端 (请求方)
Janus
(服务端)
Janus...
设备发送数据到Janus
设备发送数据到Janus
Janus通过回调下发数据
Janus通过回调下发数据
Janus回复数据接收结果
Janus回复数据接收结果
Viewer does not support full SVG 1.1

Janus内置HTTP Server,设备可使用HTTP协议发送数据至Janus。

  • HTTP地址:会根据Janus部署情况显示IP以及相关信息
  • 下发数据:HTTP接入时,支持下发数据至设备(需要设备提供HTTP数据下发接口)
  • 数据格式:HTTP接入时,需要设备按照特定的JSON格式发送数据

使用HTTP传输数据时,数据传输采用key/value模式(即编号/值),故要为每个需要传输的变量定义一个在本设备中唯一的编号,建议编写具有阅读性、便于理解的编号。其中uuidtoken为必须编号(编号名称不可修改),是设备传输数据的身份标识;

BACnet/IP协议

设备端
(Server)
设备端 (Server)
Janus
(Client)
Janus...
Janus获取特定数据栏位字段
Janus获取特定数据栏位字段
请求Server获取所有数据栏位字段
请求Server获取所有数据栏位字段
Viewer does not support full SVG 1.1

使用BACnet/IP协议接入时,设备作为Server接入时,配置Server的连接信息,读取对应的数据到Janus。

在接入协议配置页面。点击搜索属性栏位后,在显示页面上勾选需要读取的数据,勾选成功后,在设备数据调试面板可看到读取的实时数据。