特殊指令:JSON数据操作


目前在MQTT协议中,订阅或上报的数据一般采用JSON格式来描述。为了方便PLC创建JSON数据描述并发布到MQTT服务器,或者解析从服务器订阅的JSON数据,快驱动平台定义了一组JSON数据操作指令。

Json_SetINT:设置16位整数

设置16位整数指令向JSON文本中写入一个有符号16位整数。

参数名称数据类型读写方向说明
EN能流输入当EN使能时,进行数据写入操作。
BufUSINT输入当前JSON文本在PLC内存中的位置。
BufLengthUINT输入当前JSON文本的长度。
PathSTRING输入写入数据的位置。
ValueINT输入写入数据的值。
LengthUINT输出数据写入后JSON文本的长度。
DoneBIT输出0:写入不成功;1:写入成功。

写入数据的位置Path为字符串格式,用反斜杠"/"区分开来,例如位置"data/param/CellVoltage"表示在JSON根节点中尝试找到data对象,若找不到data对象,则创建data对象。然后在data对象中尝试找到param对象,若找不到param对象,则创建param对象。在param对象中设置CellVoltage属性为指定值。假如对一个空的JSON文本执行指令,写入数据的位置Path为"data/param/CellVoltage",写入值为5,将会构造JSON文本:

{ "data": { "param": { "CellVoltage": 5 } } }

Json_GetINT:获取16为整数

获取16位整数指令从JSON文本中读取一个有符号16位整数。

参数名称数据类型读写方向说明
BufUSINT输入当前JSON文本在PLC内存中的位置。
LengthUINT输入JSON文本的长度。
PathSTRING输入读取数据的位置。
ValueINT输出读取数据的值。
DoneBIT输出0:读取不成功;1:读取成功。

读取数据的位置Path为字符串格式,用反斜杠"/"区分开来,例如位置"data/param/CellVoltage"表示在JSON根节点中尝试找到data对象。然后在data对象中尝试找到param对象。在param对象中读取CellVoltage属性的值。

{ "data": { "param": { "CellVoltage": 5 } } }

若对上述JSON文本的位置"data/param/CellVoltage"进行读取操作,便可获得整数值5。