全部產品
Search
文件中心

:物模型TSL欄位說明

更新時間:Jun 30, 2024

本文介紹物模型TSL檔案中JSON欄位及其詳細說明。

說明 為了完整展示TSL的結構,以下樣本中包含所有參數,不代表實際使用中可能出現的組合。參數後的文字為參數說明,非參數值。各參數的使用情境,請參見參數說明。
{
    "schema": "物模型結構定義的訪問URL。",
    "profile": {
        "productKey": "當前產品的ProductKey。"
    },
    "properties": [
        {
            "identifier": "屬性唯一識別碼(物模型模組下唯一)。",
            "name": "屬性名稱",
            "accessMode": "屬性讀寫類型:唯讀(r)或讀寫(rw)。",
            "required": "是否是標準功能的必選屬性:是(true),否(false)。",
            "dataType": {
                "type": "屬性類型: int(原生)、float(原生)、double(原生)、text(原生)、date(String類型UTC毫秒)、bool(0或1的int類型)、enum(int類型,枚舉項定義方法與bool類型定義0和1的值方法相同)、struct(結構體類型,可包含前面7種類型,下面使用"specs":[{}]描述包含的對象)、array(數群組類型,支援int、double、float、text、struct)。",
                "specs": {
                    "min": "參數最小值(int、float、double類型特有)。",
                    "max": "參數最大值(int、float、double類型特有)。",
                    "unit": "屬性單位(int、float、double類型特有,非必填)。",
                    "unitName": "單位名稱(int、float、double類型特有,非必填)。",
                    "size": "數組元素的個數,最大512(array類型特有)。",
                    "step": "步長(text、enum類型無此參數)。",
                    "length": "資料長度,最大10240(text類型特有)。",
                    "0": "0的值(bool類型特有)。",
                    "1": "1的值(bool類型特有)。",
                    "item": {
                        "type": "數組元素的類型(array類型特有)。"
                    }
                }
            }
        }
    ],
    "events": [
        {
            "identifier": "事件唯一識別碼(物模型模組下唯一,其中post是預設產生的屬性上報事件)。",
            "name": "事件名稱。",
            "desc": "事件描述。",
            "type": "事件類型(info、alert、error)。",
            "required": "是否是標準功能的必選事件:是(true),否(false)。",
            "outputData": [
                {
                    "identifier": "參數唯一識別碼。",
                    "name": "參數名稱。",
                    "dataType": {
                        "type": "屬性類型: int(原生)、float(原生)、double(原生)、text(原生)、date(String類型UTC毫秒)、bool(0或1的int類型)、enum(int類型,枚舉項定義方法與bool類型定義0和1的值方法相同)、struct(結構體類型,可包含前面7種類型,下面使用"specs":[{}]描述包含的對象)、array(數群組類型,支援int、double、float、text、struct)。",
                        "specs": {
                            "min": "參數最小值(int、float、double類型特有)。",
                            "max": "參數最大值(int、float、double類型特有)。",
                            "unit": "屬性單位(int、float、double類型特有,非必填)。",
                            "unitName": "單位名稱(int、float、double類型特有,非必填)。",
                            "size": "數組元素的個數,最大512(array類型特有)。",
                            "step": "步長(text、enum類型無此參數)。",
                            "length": "資料長度,最大10240(text類型特有)。",
                            "0": "0的值(bool類型特有)。",
                            "1": "1的值(bool類型特有)。",
                            "item": {
                                "type": "數組元素的類型(array類型特有)。"
                            }
                        }
                    }
                }
            ],
            "method": "事件對應的方法名稱(根據identifier產生)。"
        }
    ],
    "services": [
        {
            "identifier": "服務唯一識別碼(物模型模組下唯一,其中set/get是根據屬性的accessMode預設產生的服務)。",
            "name": "服務名稱。",
            "desc": "服務描述。",
            "required": "是否是標準功能的必選服務:是(true),否(false)。",
            "callType": "async(非同步呼叫)或sync(同步調用)。",
            "inputData": [
                {
                    "identifier": "入參唯一識別碼。",
                    "name": "入參名稱。",
                    "dataType": {
                        "type": "屬性類型: int(原生)、float(原生)、double(原生)、text(原生)、date(String類型UTC毫秒)、bool(0或1的int類型)、enum(int類型,枚舉項定義方法與bool類型定義0和1的值方法相同)、struct(結構體類型,可包含前面7種類型,下面使用"specs":[{}]描述包含的對象)、array(數群組類型,支援int、double、float、text、struct)。",
                        "specs": {
                            "min": "參數最小值(int、float、double類型特有)。",
                            "max": "參數最大值(int、float、double類型特有)。",
                            "unit": "屬性單位(int、float、double類型特有,非必填)。",
                            "unitName": "單位名稱(int、float、double類型特有,非必填)。",
                            "size": "數組元素的個數,最大512(array類型特有)。",
                            "step": "步長(text、enum類型無此參數)。",
                            "length": "資料長度,最大10240(text類型特有)。",
                            "0": "0的值(bool類型特有)。",
                            "1": "1的值(bool類型特有)。",
                            "item": {
                                "type": "數組元素的類型(array類型特有)。"
                            }
                        }
                    }
                }
            ],
            "outputData": [
                {
                    "identifier": "出參唯一識別碼。",
                    "name": "出參名稱。",
                    "dataType": {
                        "type": "屬性類型: int(原生)、float(原生)、double(原生)、text(原生)、date(String類型UTC毫秒)、bool(0或1的int類型)、enum(int類型,枚舉項定義方法與bool類型定義0和1的方法相同)、struct(結構體類型,可包含前面7種類型,下面使用"specs":[{}]描述包含的對象)、array(數群組類型,支援int、double、float、text、struct)。",
                        "specs": {
                            "min": "參數最小值(int、float、double類型特有)。",
                            "max": "參數最大值(int、float、double類型特有)。",
                            "unit": "屬性單位(int、float、double類型特有,非必填)。",
                            "unitName": "單位名稱(int、float、double類型特有,非必填)。",
                            "size": "數組元素的個數,最大512(array類型特有)。",
                            "step": "步長(text、enum類型無此參數)。",
                            "length": "資料長度,最大10240(text類型特有)。",
                            "0": "0的值(bool類型特有)。",
                            "1": "1的值(bool類型特有)。",
                            "item": {
                                "type": "數組元素的類型(array類型特有)。"
                            }
                        }
                    }
                }
            ],
            "method": "服務對應的方法名稱(根據identifier產生)。"
        }
    ],
    //僅自訂模組的TSL中有以下參數。
    "functionBlockId": "自訂模組的唯一識別碼,模組ID。",
    "functionBlockName": "自訂模組名稱。",

    //當產品下添加了自訂模組,預設模組TSL中會包含以下參數,表示已添加的自訂模組列表。
    "functionBlocks": [
    {
      "functionBlockId": "自訂模組的唯一識別碼,模組ID。",
      "functionBlockName": "自訂模組名稱。",
      "productKey": "產品ProductKey。"
    }
  ]
}

若產品的節點類型網關子裝置,且接入網關協議為Modbus、OPC UA或自訂時,可以查看物模型擴充配置資訊。

Modbus協議產品的擴充配置可用於Modbus子裝置的物聯網邊緣計算,請參見物聯網邊緣計算文檔

Modbus協議產品的擴充配置資料結構如下:

{
    "profile": {
        "productKey": "產品ProductKey。"
    },
    "properties": [
        {
            "identifier": "屬性唯一識別碼(產品下唯一)。",
            "operateType": "(線圈狀態/離散量輸入/保持寄存器/輸入寄存器: coilStatus/inputStatus/holdingRegister/inputRegister)。",
            "registerAddress": "寄存器地址。",
            "originalDataType": {
                "type": "未經處理資料類型:int16、uint16、int32、uint32、int64、uint64、float、double、string、bool、customized data(按大端順序返回hex data)。",
                "specs": {
                    "registerCount": "寄存器資料個數,string、customized data特有。",
                    "swap16": "交換寄存器內高低位元組,把寄存器內16位元據的前後8個bit互換(byte1byte2 -> byte2byte1),除string和bool外,其他資料類型特有。",
                    "reverseRegister": "交換寄存器順序,把未經處理資料32位元據的前後16個bit互換(byte1byte2byte3byte4 -> byte3byte4byte1byte2),除string和bool外,其他資料類型特有。"
                }
            },
            "scaling": "縮放因子,除string和bool外,其他資料類型特有。",
            "trigger": "資料上報方式。1代表按時上報,2代表變更上報。",
            "writeFunctionCode":"讀寫操作,對於不同的operateType,可選的取值不同。coilStatus:5代表讀寫(讀0x01,寫0x05),15代表讀寫(讀0x01,寫0x0F),0代表唯讀0x01,6代表唯寫0x05,15代表唯寫0x0F。inputStatus:0代表唯讀0x02。holdingRegister:6代表讀寫(讀0x03,寫0x06),16代表讀寫(讀0x03,寫0x10),0代表唯讀0x03,6代表唯寫0x06,16代表唯寫0x10。inputRegister:0代表唯讀0x04。",
            "writeOnly":"是否唯寫。0代表非唯寫,1代表唯寫。",
            "pollingTime":"採集間隔,單位是ms。無需傳入,將使用裝置配置的採集間隔。",
            "bitMask":"掩碼,bool特有。取值:1、2、4、8、16、32、64、128、256、512、1024、2048、4096、8192、16384、32768,即1<<(0~15)。"
        }
    ]
}