Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气 Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式。
Modbus协议是一个master/slave架构的协议。有一个节点是master节点,其他使用Modbus协议参与通信的节点是slave节点。每一个slave设备都有一个唯一的地址。在串行和MB+网络中,只有被指定为主节点的节点可以启动一个命令(在以太网上,任何一个设备都能发送一个Modbus命令,但是通常也只有一个主节点设备启动指令)。
本接口主要针对采用Modbus协议接入本IOT中继平台的设备,用于通过http API向本IOT中继平台调用Modbus服务主动读取接入设备的物模型数据或向接入的设备写入物模型数据,例如:通过操作http API 接口获取接入设备的工作温度,或向设备寄存器写入数值等。
说明:Modbus协议在本IOT中继平台只支持读写物模型属性数据。
接口功能 本接口主要实现调用Modbus服务主动读取接入设备的物模型数据,例如:读取接入设备温度传感器的温度。
Request URL: http://192.168.0.105:18080/openApi/modbusReadModelProperties
域名访问URL: http://iotbox.iotrelay.cn:8080/api/openApi/modbusReadModelProperties
Request Method: GET
数据提交格式 Query String Parameters
请求头参数 Authorization
请求头参数说明:
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
Authorization | Header | 是 | 固定值:字符串“Bearer” +“token”组成, "token"为上述登录接口获取的属性值,如:请求头中 “Authorization” : “Bearer eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJiNjE3OGVlN2ZhNWM0OWU2ODlmMGEzNjIxNzkxYzk2OCIsInN1YiI6IntcInVzZXJJZFwiOlwiNDlcIixcInVzZXJOYW1lXCI6XCIxMzQzNzE1NjU2OVwiLFwibmlja05hbWVcIjpcIjQ0MDgwMDAwMDAxMTExMDAwMDE3XCJ9IiwiaXNzIjoic2oiLCJpYXQiOjE2OTcxNTk2NjgsImV4cCI6MTY5NzE2MTQ2OH0.4C3GJIF5ejmySHy9l_LmheoCs5jknq17h9tPsZB3dIM” |
请求体参数说明:
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
deviceId | string | 是 | 接入设备ID标识,黄色为接入设备ID标识值 “44080000001111000001” |
propertiesId | string | 是 | IOT接入设备物模型属性ID标识,黄色为物模型属性ID标识值 “P_1696583483495” “P_1696583483496” |
正确响应结果示例:
{ "code": "0", "msg": "success", "data": { "id": "null", "applyType": "1", "pointName": "温度", "deviceId": "44080000001111000015", "deviceSn": "1682824504262-1001111", "createTime": "2023-05-05 20:37:54", "readWriteType": "1", "dataValueDataType": "integer_value", "propertiesId": "P_1697276433454", "functionId": "null", "eventId": "null", "integerValue": "22", "longValue": "null", "floatValue": "null", "doubleValue": "null", "stringValue": "null", "booleanValue": "null", "dateValue": "null", "timeValue": "null", "jsonValue": "null" } }
返回参数说明:
参数名 | 类型 | 描述 |
---|---|---|
deviceId | string | 接入设备ID标识,黄色为接入设备ID标识值 “44080000001111000015” |
applyType | Integer | 数据主题应用类别(对应模型3个类别:1、属性;2、功能服务;3、事件) 此处黄色"1"对应属性 |
pointName | string | 测点(数据点)名称 |
deviceSn | string | 设备编号 |
createTime | string | 数据时间 |
readWriteType | string | 数据读写类型(1、读;2、写;3、上报 ) |
propertiesId | string | IOT接入设备物模型属性ID标识,黄色为物模型属性ID标识值 “P_1697276433454” |
functionId | string | IOT接入设备物模型功能定义ID标识,黄色为物模型功能定义ID标识值 |
eventId | string | IOT接入设备物模型事件定义ID标识,黄色为物模型事件定义ID标识值 |
dataValueDataType | string | 测点数据值数据类型(对应integer_value/float_value/string_value/boolean_value/date_value/time_value/json_value) |
integerValue | integer | 测点数据整型值 |
错误响应结果示例:
{ "code": "-1", "msg": "fail:Modbus服务读取物模型属性数据失败" "data": "null" }
写入物模型功能操作简介
写入物模型功能操作 主要实现调用Modbus服务向接入设备写入物模型功能数据,通常用于向设备下发执行指令操作,在本IOT中继平台中,IOT中继平台作为主设备可以向从设备执行下面7个操作功能。 在本IOT中继平台中,物模型功能配置同MODBUS数据点写入功能向对应。
特别说明:向设备写入数据前提必须是接入设备是可以写入的,物模型功能属性数据读写类型配置为写。
接口功能 本接口主要实现调用Modbus服务向接入设备写入物模型功能数据,用于写单个线圈,例如:控制设备的开关等。
特别说明:向设备写入数据前提必须是接入设备是可以写入的,物模型属性数据读写类型配置为写。
Request URL: http://192.168.0.105:18080/openApi/writeCoil
域名访问URL: http://iotbox.iotrelay.cn:8080/api/openApi/writeCoil
Request Method: POST
数据提交格式 application/json
请求头参数 Authorization
请求头参数说明:
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
Authorization | Header | 是 | 固定值:字符串“Bearer” +“token”组成, "token"为上述登录接口获取的属性值,如:请求头中 “Authorization” : “Bearer eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJiNjE3OGVlN2ZhNWM0OWU2ODlmMGEzNjIxNzkxYzk2OCIsInN1YiI6IntcInVzZXJJZFwiOlwiNDlcIixcInVzZXJOYW1lXCI6XCIxMzQzNzE1NjU2OVwiLFwibmlja05hbWVcIjpcIjQ0MDgwMDAwMDAxMTExMDAwMDE3XCJ9IiwiaXNzIjoic2oiLCJpYXQiOjE2OTcxNTk2NjgsImV4cCI6MTY5NzE2MTQ2OH0.4C3GJIF5ejmySHy9l_LmheoCs5jknq17h9tPsZB3dIM” |
请求体格式 Content-Type
{ "deviceId": "44080000001111000018", "functionId": "F_1714449278021", "writeBooleanValue": "true" }
请求体参数说明:
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
deviceId | string | 是 | 接入设备ID标识,黄色为接入设备ID标识值 “44080000001111000018” |
functionId | string | 是 | IOT接入设备物模型功能ID标识,黄色为物模型功能ID标识值 “F_1714449278021” |
writeBooleanValue | boolean | 是 | 设备物模型数据写入数据类型值( 布尔类型:true/false 两个选项 ) 黄色标识值 “true” |
正确响应结果示例:
{ "code": "0", "msg": "success", "data": "true", }
错误响应结果示例:
{ "code": "-1", "msg": "此设备非modbus协议接入,不可以写入" "data": "false" }
接口功能 本接口主要实现调用Modbus服务向接入设备写入物模型功能数据,用于写多个线圈,例如:向设备写入多个开关状态数据。
Request URL: http://192.168.0.105:18080/modbusOperate/writeCoils
域名访问URL: http://txb.iotrelay.cn:8080/api/modbusOperate/writeCoils
Request Method: POST
数据提交格式 application/json
请求头参数 Authorization
请求头参数说明:
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
Authorization | Header | 是 | 固定值:字符串"Bearer" +"token"组成, "token"为上述登录接口获取的属性值,如:请求头中 “Authorization” : “Bearer eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJiNjE3OGVlN2ZhNWM0OWU2ODlmMGEzNjIxNzkxYzk2OCIsInN1YiI6IntcInVzZXJJZFwiOlwiNDlcIixcInVzZXJOYW1lXCI6XCIxMzQzNzE1NjU2OVwiLFwibmlja05hbWVcIjpcIjQ0MDgwMDAwMDAxMTExMDAwMDE3XCJ9IiwiaXNzIjoic2oiLCJpYXQiOjE2OTcxNTk2NjgsImV4cCI6MTY5NzE2MTQ2OH0.4C3GJIF5ejmySHy9l_LmheoCs5jknq17h9tPsZB3dIM” |
请求体格式 Content-Type
{ "deviceId": "44080000001111000018", "functionId": "F_1714449278021", "writeBooleanValues": "[true,false]" }
请求体参数说明:
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
deviceId | string | 是 | 接入设备ID标识,黄色为接入设备ID标识值 “44080000001111000018” |
functionId | string | 是 | IOT接入设备物模型功能ID标识,黄色为物模型功能ID标识值 “F_1714449278021” |
writeBooleanValues | boolean[] | 是 | 设备物模型数据写入布尔类型数组值( 布尔类型:true/false 两个选项 ) 黄色标识值 “[true,false]” |
正确响应结果示例:
{ "code": "0", "msg": "success", "data": "true", }
错误响应结果示例:
{ "code": "-1", "msg": "此设备非modbus协议接入,不可以写入" "data": "false" }
接口功能 本接口主要实现调用Modbus服务向接入设备写入物模型功能数据,用于写单个保持寄存器。
Request URL: http://192.168.0.105:18080/modbusOperate/writeRegister
域名访问URL: http://txb.iotrelay.cn:8080/api/modbusOperate/writeRegister
Request Method: POST
数据提交格式 application/json
请求头参数 Authorization
请求头参数说明:
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
Authorization | Header | 是 | 固定值:字符串"Bearer" +"token"组成, "token"为上述登录接口获取的属性值,如:请求头中 “Authorization” : “Bearer eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJiNjE3OGVlN2ZhNWM0OWU2ODlmMGEzNjIxNzkxYzk2OCIsInN1YiI6IntcInVzZXJJZFwiOlwiNDlcIixcInVzZXJOYW1lXCI6XCIxMzQzNzE1NjU2OVwiLFwibmlja05hbWVcIjpcIjQ0MDgwMDAwMDAxMTExMDAwMDE3XCJ9IiwiaXNzIjoic2oiLCJpYXQiOjE2OTcxNTk2NjgsImV4cCI6MTY5NzE2MTQ2OH0.4C3GJIF5ejmySHy9l_LmheoCs5jknq17h9tPsZB3dIM” |
请求体格式 Content-Type
{ "deviceId": "44080000001111000018", "functionId": "F_1714449278021", "writeShortValue": "1" }
请求体参数说明:
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
deviceId | string | 是 | 接入设备ID标识,黄色为接入设备ID标识值 “44080000001111000018” |
functionId | string | 是 | IOT接入设备物模型功能ID标识,黄色为物模型功能ID标识值 “F_1714449278021” |
writeShortValue | short | 是 | 设备物模型数据写入数据类型值(short类型) 黄色标识值 “1” |
正确响应结果示例:
{ "code": "0", "msg": "success", "data": "true", }
错误响应结果示例:
{ "code": "-1", "msg": "此设备非modbus协议接入,不可以写入" "data": "false" }
接口功能 本接口主要实现调用Modbus服务向接入设备写入物模型功能数据,用于写多个保持寄存器。
Request URL: http://192.168.0.105:18080/modbusOperate/writeRegisters
域名访问URL: http://txb.iotrelay.cn:8080/api/modbusOperate/writeRegisters
Request Method: POST
数据提交格式 application/json
请求头参数 Authorization
请求头参数说明:
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
Authorization | Header | 是 | 固定值:字符串"Bearer" +"token"组成, "token"为上述登录接口获取的属性值,如:请求头中 “Authorization” : “Bearer eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJiNjE3OGVlN2ZhNWM0OWU2ODlmMGEzNjIxNzkxYzk2OCIsInN1YiI6IntcInVzZXJJZFwiOlwiNDlcIixcInVzZXJOYW1lXCI6XCIxMzQzNzE1NjU2OVwiLFwibmlja05hbWVcIjpcIjQ0MDgwMDAwMDAxMTExMDAwMDE3XCJ9IiwiaXNzIjoic2oiLCJpYXQiOjE2OTcxNTk2NjgsImV4cCI6MTY5NzE2MTQ2OH0.4C3GJIF5ejmySHy9l_LmheoCs5jknq17h9tPsZB3dIM” |
请求体格式 Content-Type
{ "deviceId": "44080000001111000018", "functionId": "F_1714449278021", "writeShortValues": "[1,0]" }
请求体参数说明:
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
deviceId | string | 是 | 接入设备ID标识,黄色为接入设备ID标识值 “44080000001111000018” |
functionId | string | 是 | IOT接入设备物模型功能ID标识,黄色为物模型功能ID标识值 “F_1714449278021” |
writeShortValues | short[] | 是 | 设备物模型数据写入整型数组值(short数组类型: [1,0] ) 黄色标识值 “[1,0]” |
正确响应结果示例:
{ "code": "0", "msg": "success", "data": "true", }
错误响应结果示例:
{ "code": "-1", "msg": "此设备非modbus协议接入,不可以写入" "data": "false" }
接口功能 本接口主要实现调用Modbus服务向接入设备写入物模型功能数据,用于写入数字类型的模拟量。
Request URL: http://192.168.0.105:18080/modbusOperate/writeHoldingRegister
域名访问URL: http://txb.iotrelay.cn:8080/api/modbusOperate/writeHoldingRegister
Request Method: POST
数据提交格式 application/json
请求头参数 Authorization
请求头参数说明:
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
Authorization | Header | 是 | 固定值:字符串"Bearer" +"token"组成, "token"为上述登录接口获取的属性值,如:请求头中 “Authorization” : “Bearer eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJiNjE3OGVlN2ZhNWM0OWU2ODlmMGEzNjIxNzkxYzk2OCIsInN1YiI6IntcInVzZXJJZFwiOlwiNDlcIixcInVzZXJOYW1lXCI6XCIxMzQzNzE1NjU2OVwiLFwibmlja05hbWVcIjpcIjQ0MDgwMDAwMDAxMTExMDAwMDE3XCJ9IiwiaXNzIjoic2oiLCJpYXQiOjE2OTcxNTk2NjgsImV4cCI6MTY5NzE2MTQ2OH0.4C3GJIF5ejmySHy9l_LmheoCs5jknq17h9tPsZB3dIM” |
请求体格式 Content-Type
{ "deviceId": "44080000001111000018", "functionId": "F_1714449278021", "writeNumberValue": "1" "dataType": "2" }
请求体参数说明:
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
deviceId | string | 是 | 接入设备ID标识,黄色为接入设备ID标识值 “44080000001111000018” |
functionId | string | 是 | IOT接入设备物模型功能ID标识,黄色为物模型功能ID标识值 “F_1714449278021” |
writeNumberValue | number | 是 | 设备物模型数据写入数字类型值,写入数字类型的模拟量(如:写入Float类型的模拟量、Double类型模拟量、整数类型Short、Integer、Long) 黄色标识值 “1” |
dataType | string | 是 | 设备Modbus数据类型值,(1、布尔类型;2、整型;3、短整型;4、长整型;8、float) |
正确响应结果示例:
{ "code": "0", "msg": "success", "data": "true", }
错误响应结果示例:
{ "code": "-1", "msg": "此设备非modbus协议接入,不可以写入" "data": "false" }
接口功能 本接口主要实现调用Modbus服务向接入设备写入物模型功能数据,用于串口Rtu模式 写保持寄存器。
Request URL: http://192.168.0.105:18080/modbusOperate/writeRegisterByRtuSerial
域名访问URL: http://txb.iotrelay.cn:8080/api/modbusOperate/writeRegisterByRtuSerial
Request Method: POST
数据提交格式 application/json
请求头参数 Authorization
请求头参数说明:
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
Authorization | Header | 是 | 固定值:字符串"Bearer" +"token"组成, "token"为上述登录接口获取的属性值,如:请求头中 “Authorization” : “Bearer eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJiNjE3OGVlN2ZhNWM0OWU2ODlmMGEzNjIxNzkxYzk2OCIsInN1YiI6IntcInVzZXJJZFwiOlwiNDlcIixcInVzZXJOYW1lXCI6XCIxMzQzNzE1NjU2OVwiLFwibmlja05hbWVcIjpcIjQ0MDgwMDAwMDAxMTExMDAwMDE3XCJ9IiwiaXNzIjoic2oiLCJpYXQiOjE2OTcxNTk2NjgsImV4cCI6MTY5NzE2MTQ2OH0.4C3GJIF5ejmySHy9l_LmheoCs5jknq17h9tPsZB3dIM” |
请求体格式 Content-Type
{ "deviceId": "44080000001111000018", "functionId": "F_1714449278021", "writeIntValue": "1" }
请求体参数说明:
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
deviceId | string | 是 | 接入设备ID标识,黄色为接入设备ID标识值 “44080000001111000018” |
functionId | string | 是 | IOT接入设备物模型功能ID标识,黄色为物模型功能ID标识值 “F_1714449278021” |
writeIntValue | int | 是 | 设备物模型数据写入数据类型值为整型值 黄色标识值 “1” |
正确响应结果示例:
{ "code": "0", "msg": "success", "data": "true", }
错误响应结果示例:
{ "code": "-1", "msg": "此设备非modbus协议接入,不可以写入" "data": "false" }
接口功能 本接口主要实现调用Modbus服务向接入设备写入物模型功能数据,用于写入一个String数据。
Request URL: http://192.168.0.105:18080/modbusOperate/writeString
域名访问URL: http://txb.iotrelay.cn:8080/api/modbusOperate/writeString
Request Method: POST
数据提交格式 application/json
请求头参数 Authorization
请求头参数说明:
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
Authorization | Header | 是 | 固定值:字符串"Bearer" +"token"组成, "token"为上述登录接口获取的属性值,如:请求头中 “Authorization” : “Bearer eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJiNjE3OGVlN2ZhNWM0OWU2ODlmMGEzNjIxNzkxYzk2OCIsInN1YiI6IntcInVzZXJJZFwiOlwiNDlcIixcInVzZXJOYW1lXCI6XCIxMzQzNzE1NjU2OVwiLFwibmlja05hbWVcIjpcIjQ0MDgwMDAwMDAxMTExMDAwMDE3XCJ9IiwiaXNzIjoic2oiLCJpYXQiOjE2OTcxNTk2NjgsImV4cCI6MTY5NzE2MTQ2OH0.4C3GJIF5ejmySHy9l_LmheoCs5jknq17h9tPsZB3dIM” |
请求体格式 Content-Type
{ "deviceId": "44080000001111000018", "functionId": "F_1714449278021", "writeStringValue": "test" }
请求体参数说明:
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
deviceId | string | 是 | 接入设备ID标识,黄色为接入设备ID标识值 “44080000001111000018” |
functionId | string | 是 | IOT接入设备物模型功能ID标识,黄色为物模型功能ID标识值 “F_1714449278021” |
writeStringValue | string | 是 | 设备物模型数据写入字符串类型值 黄色标识值 “test” |
正确响应结果示例:
{ "code": "0", "msg": "success", "data": "true", }
错误响应结果示例:
{ "code": "-1", "msg": "此设备非modbus协议接入,不可以写入" "data": "false" }