全部产品
Search
文档中心

IoT Platform:Parameter TSL

更新时间:Jul 06, 2025

Bagian ini menjelaskan parameter dalam file JSON yang digunakan untuk mendefinisikan model Thing Specification Language (TSL).

Catatan Untuk menunjukkan struktur lengkap model TSL, contoh berikut mencakup semua parameter. Namun, parameter dapat bervariasi tergantung pada skenario aktual. String yang mengikuti setiap parameter merupakan deskripsi dari parameter tersebut. Untuk detail penggunaan masing-masing parameter, lihat penjelasan parameter.
{
    "schema": "URL model TSL.",
    "profile": {
        "productKey": "ProductKey produk."
    },
    "properties": [
        {
            "identifier": "ID properti. ID harus unik dalam modul TSL.",
            "name": "Nama properti.",
            "accessMode": "Tingkat akses ke properti. Nilai valid: r (hanya-baca) dan rw (baca dan tulis).",
            "required": "Menentukan apakah properti diperlukan. Nilai valid: true (diperlukan) dan false (opsional).",
            "dataType": {
                "type": "Tipe data properti. Nilai valid: int, float, double, text, date (timestamp UTC dalam format string, dalam milidetik), bool (0 atau 1), enum (bilangan bulat yang didefinisikan dengan cara yang sama seperti data tipe bool), struct (sebuah struct yang dapat mencakup tujuh tipe data sebelumnya, di mana "specs": [{}] digunakan untuk mendeskripsikan objek yang termasuk), dan array (sebuah array yang dapat mencakup tipe data int, float, double, text, dan struct).",
                "specs": {
                    "min": "Nilai minimum. Parameter ini hanya tersedia untuk properti tipe int, float, dan double.",
                    "max": "Nilai maksimum. Parameter ini hanya tersedia untuk properti tipe int, float, dan double.",
                    "unit": "Opsional. Satuan properti. Parameter ini hanya tersedia untuk properti tipe int, float, dan double.",
                    "unitName": "Opsional. Nama satuan. Parameter ini hanya tersedia untuk properti tipe int, float, dan double.",
                    "size": "Jumlah elemen dalam array. Nilai maksimum: 512. Parameter ini hanya tersedia untuk properti tipe array.",
                    "step": "Ukuran langkah. Parameter ini tidak tersedia untuk properti tipe text dan enum.",
                    "length": "Panjang data. Nilai maksimum: 10240. Parameter ini hanya tersedia untuk properti tipe text.",
                    "0": "Nilai 0. Parameter ini hanya tersedia untuk properti tipe bool.",
                    "1": "Nilai 1. Parameter ini hanya tersedia untuk properti tipe bool.",
                    "item": {
                        "type": "Tipe elemen array. Parameter ini hanya tersedia untuk properti tipe array."
                    }
                }
            }
        }
    ],
    "events": [
        {
            "identifier": "ID setiap event. ID harus unik dalam modul TSL. Event post telah ditentukan sebelumnya dan digunakan untuk melaporkan properti.",
            "name": "Nama event.",
            "desc": "Deskripsi event.",
            "type": "Tipe event. Nilai valid: info, alert, dan error.",
            "required": "Menentukan apakah event diperlukan. Nilai valid: true (diperlukan) dan false (opsional).",
            "outputData": [
                {
                    "identifier": "ID unik parameter.",
                    "name": "Nama parameter",
                    "dataType": {
                        "type": "Tipe data parameter. Nilai valid: int, float, double, text, date (timestamp UTC dalam format string, dalam milidetik), bool (0 atau 1), enum (bilangan bulat yang didefinisikan dengan cara yang sama seperti data tipe bool), struct (sebuah struct yang dapat mencakup tujuh tipe data sebelumnya, di mana "specs": [{}] digunakan untuk mendeskripsikan objek yang termasuk), dan array (sebuah array yang dapat mencakup tipe data int, double, float, text, dan struct).",
                        "specs": {
                            "min": "Nilai minimum. Parameter ini hanya tersedia untuk parameter event tipe int, float, dan double.",
                            "max": "Nilai maksimum. Parameter ini hanya tersedia untuk parameter event tipe int, float, dan double.",
                            "unit": "Opsional. Satuan parameter. Parameter ini hanya tersedia untuk parameter event tipe int, float, dan double.",
                            "unitName": "Opsional. Nama satuan. Parameter ini hanya tersedia untuk parameter event tipe int, float, dan double.",
                            "size": "Jumlah elemen dalam array. Nilai maksimum: 512. Parameter ini hanya tersedia untuk parameter event tipe array.",
                            "step": "Ukuran langkah. Parameter ini tidak tersedia untuk properti tipe text dan enum.",
                            "length": "Panjang data. Nilai maksimum: 10240. Parameter ini hanya tersedia untuk parameter event tipe text.",
                            "0": "Nilai 0. Parameter ini hanya tersedia untuk parameter event tipe bool.",
                            "1": "Nilai 1. Parameter ini hanya tersedia untuk parameter event tipe bool.",
                            "item": {
                                "type": "Tipe elemen array. Parameter ini hanya tersedia untuk parameter event tipe array."
                            }
                        }
                    }
                }
            ],
            "method": "Nama metode yang dapat mengakses event. Nama dibuat berdasarkan nilai parameter identifier."
        }
    ],
    "services": [
        {
            "identifier": "ID layanan. ID harus unik dalam modul TSL. Layanan set dan get telah ditentukan sebelumnya berdasarkan nilai parameter accessMode yang ditentukan dalam properties.",
            "name": "Nama layanan.",
            "desc": "Deskripsi layanan.",
            "required": "Menentukan apakah layanan diperlukan. Nilai valid: true (diperlukan) dan false (opsional).",
            "callType": "Tipe panggilan. Nilai valid: async (panggilan asinkron) dan sync (panggilan sinkron).",
            "inputData": [
                {
                    "identifier": "ID unik parameter input.",
                    "name": "Nama parameter input.",
                    "dataType": {
                        "type": "Tipe data parameter input. Nilai valid: int, float, double, text, date (timestamp UTC dalam format string, dalam milidetik), bool (0 atau 1), enum (bilangan bulat yang didefinisikan dengan cara yang sama seperti data tipe bool), struct (sebuah struct yang dapat mencakup tujuh tipe data sebelumnya, di mana "specs": [{}] digunakan untuk mendeskripsikan objek yang termasuk), dan array (sebuah array yang dapat mencakup tipe data int, double, float, text, dan struct).",
                        "specs": {
                            "min": "Nilai minimum. Parameter ini hanya tersedia untuk parameter input tipe int, float, dan double.",
                            "max": "Nilai maksimum. Parameter ini hanya tersedia untuk parameter input tipe int, float, dan double.",
                            "unit": "Opsional. Satuan properti. Parameter ini hanya tersedia untuk parameter input tipe int, float, dan double.",
                            "unitName": "Opsional. Nama satuan. Parameter ini hanya tersedia untuk parameter input tipe int, float, dan double.",
                            "size": "Jumlah elemen dalam array. Nilai maksimum: 512. Parameter ini hanya tersedia untuk parameter input tipe array.",
                            "step": "Ukuran langkah. Parameter ini tidak tersedia untuk parameter input tipe text dan enum.",
                            "length": "Panjang data. Nilai maksimum: 10240. Parameter ini hanya tersedia untuk parameter input tipe text.",
                            "0": "Nilai 0. Parameter ini hanya tersedia untuk parameter input tipe bool.",
                            "1": "Nilai 1. Parameter ini hanya tersedia untuk parameter input tipe bool.",
                            "item": {
                                "type": "Tipe elemen array. Parameter ini hanya tersedia untuk parameter input tipe array."
                            }
                        }
                    }
                }
            ],
            "outputData": [
                {
                    "identifier": "ID parameter output.",
                    "name": "Nama parameter output.",
                    "dataType": {
                        "type": "Tipe data parameter output. Nilai valid: int, float, double, text, date (timestamp UTC dalam format string, dalam milidetik), bool (0 atau 1), enum (bilangan bulat yang didefinisikan dengan cara yang sama seperti data tipe bool), struct (sebuah struct yang dapat mencakup tujuh tipe data sebelumnya, di mana "specs": [{}] digunakan untuk mendeskripsikan objek yang termasuk), dan array (sebuah array yang dapat mencakup tipe data int, double, float, text, dan struct).",
                        "specs": {
                            "min": "Nilai minimum. Parameter ini hanya tersedia untuk parameter output tipe int, float, dan double.",
                            "max": "Nilai maksimum. Parameter ini hanya tersedia untuk parameter output tipe int, float, dan double.",
                            "unit": "Opsional. Satuan properti. Parameter ini hanya tersedia untuk parameter output tipe int, float, dan double.",
                            "unitName": "Opsional. Nama satuan. Parameter ini hanya tersedia untuk parameter output tipe int, float, dan double.",
                            "size": "Jumlah elemen dalam array. Nilai maksimum: 512. Parameter ini hanya tersedia untuk parameter output tipe array.",
                            "step": "Ukuran langkah. Parameter ini tidak tersedia untuk parameter output tipe text dan enum.",
                            "length": "Panjang data. Nilai maksimum: 10240. Parameter ini hanya tersedia untuk parameter output tipe text.",
                            "0": "Nilai 0. Parameter ini hanya tersedia untuk parameter output tipe bool.",
                            "1": "Nilai 1. Parameter ini hanya tersedia untuk parameter output tipe bool.",
                            "item": {
                                "type": "Tipe elemen array. Parameter ini hanya tersedia untuk parameter output tipe array."
                            }
                        }
                    }
                }
            ],
            "method": "Nama metode yang dapat mengakses layanan. Nama dibuat berdasarkan nilai parameter identifier."
        }
    ],
    // Model TSL dalam modul kustom memiliki parameter berikut: 
    "functionBlockId": "ID unik modul kustom.",
    "functionBlockName": "Nama modul kustom.",

    // Jika Anda membuat modul kustom untuk produk, model TSL dalam modul default memiliki parameter berikut. Parameter ini menentukan detail modul kustom. 
    "functionBlocks": [
    {
      "functionBlockId": "ID unik modul kustom.",
      "functionBlockName": "Nama modul kustom.",
      "productKey": "ProductKey produk."
    }
  ]
}

Jika tipe node suatu produk adalah sub-perangkat gateway dan protokol koneksi gateway menggunakan Modbus, OPC UA, atau protokol kustom, Anda dapat melihat informasi tambahan tentang model TSL.

Sebagai contoh, jika tipe node suatu produk adalah sub-perangkat gateway dan protokol koneksi gateway adalah Modbus, informasi tambahan tentang model TSL dapat digunakan di Link IoT Edge untuk sub-perangkat. Untuk informasi lebih lanjut, lihat Driver Modbus.

Contoh produk Modbus:

{
    "profile": {
        "productKey": "ProductKey produk."
    },
    "properties": [
        {
            "identifier": "ID properti. ID harus unik dalam modul TSL.",
            "operateType": "Tipe operasi. Nilai valid: coilStatus, inputStatus, holdingRegister, dan inputRegister.",
            "registerAddress": "Alamat register.",
            "originalDataType": {
                "type": "Tipe data asli. Nilai valid: int16, uint16, int32, uint32, int64, uint64, float, double, string, bool, dan customized (nilai hex dalam format big-endian).",
                "specs": {
                    "registerCount": "Jumlah register. Parameter ini hanya tersedia untuk properti tipe string dan customized.",
                    "swap16": "Menentukan apakah akan menukar byte tinggi dan rendah dalam register. Jika ya, 8 bit pertama dan terakhir dari bilangan bulat 16-bit dalam register ditukar, seperti dari byte1byte2 menjadi byte2byte1. Parameter ini tidak tersedia untuk properti tipe string dan bool.",
                    "reverseRegister": "Menentukan apakah akan menukar byte tinggi dan rendah dalam register. Jika ya, 16 bit pertama dan terakhir dari bilangan bulat 32-bit dalam register ditukar, seperti dari byte1byte2byte3byte4 menjadi byte3byte4byte1byte2. Parameter ini tidak tersedia untuk properti tipe string dan bool."
                }
            },
            "scaling": "Faktor zoom. Parameter ini tidak tersedia untuk properti tipe string dan bool.",
            "trigger": "Metode pelaporan data. Nilai valid: 1 dan 2. Nilai 1 menunjukkan bahwa data dikirimkan pada waktu tertentu. Nilai 2 menunjukkan bahwa perubahan data dikirimkan.",
            "writeFunctionCode": "Operasi baca/tulis. Nilai valid dari parameter ini bervariasi berdasarkan nilai parameter operateType. Jika parameter operateType disetel ke coilStatus, nilai validnya adalah: 5 (baca/tulis: baca 0x01 dan tulis 0x05), 15 (baca/tulis: baca 0x01 dan tulis 0x0F), 0 (hanya-baca 0x01), 6 (hanya-tulis 0x05), dan 15 (hanya-tulis 0x0F). Jika parameter operateType disetel ke inputStatus, nilai validnya adalah 0 (hanya-baca 0x02). Jika parameter operateType disetel ke holdingRegister, nilai validnya adalah: 6 (baca/tulis: baca 0x03 dan tulis 0x06), 16 (baca/tulis: baca 0x03 dan tulis 0x10), 0 (hanya-baca 0x03), 6 (hanya-tulis 0x06), dan 16 (hanya-tulis 0x10). Jika parameter operateType disetel ke inputRegister, nilai validnya adalah 0 (hanya-baca 0x04).",
            "writeOnly": "Menentukan apakah izinnya hanya-tulis. Nilai valid: 0 dan 1. Nilai 0 menunjukkan bahwa izinnya bukan hanya-tulis. Nilai 1 menunjukkan bahwa izinnya hanya-tulis.",
            "pollingTime": "Interval pengumpulan. Unit: milidetik. Anda tidak perlu mengonfigurasi parameter ini. Interval pengumpulan perangkat digunakan.",
            "bitMask": "Masker. Parameter ini hanya tersedia untuk properti tipe bool. Nilai valid: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, dan 32768."
        }
    ]
}