{
  "id": "6cfa83ff-9034-49ae-9bbb-b828698022a7",
  "name": "串口I/O联网模块(C2000-A1-PDD2020-BB1)",
  "expands": {
    "deviceType": "hex",
    "batchread": [
      { "AOMin": 1, "AOMax": 14, "DOMin": 100, "DOMax": 103 },
      { "DIMin": 200, "DIMax": 201, "AOMin": 16, "AOMax": 17 },
      { "AOMin": 300, "AOMax": 301 }
    ]
  },
  "properties": [
    {
      "id": "model",
      "name": "模块型号",
      "accessMode": "r",
      "dataType": {
        "type": "int",
        "min": "0",
        "max": "10000",
        "step": "1",
        "unit": ""
      },
      "expands": {
        "readFlag": 3,
        "writeFlag": null,
        "reportMethod": 2,
        "registerAddress": 1,
        "registerNumber": 1,
        "swapByte": false,
        "swapOrder": false,
        "scalingFactor": 1
      },
      "remark": ""
    },
    {
      "id": "softwareVersion",
      "name": "模块软件版本",
      "accessMode": "r",
      "dataType": {
        "type": "int",
        "min": "0",
        "max": "10000",
        "step": "1",
        "unit": ""
      },
      "expands": {
        "readFlag": 3,
        "writeFlag": null,
        "reportMethod": 2,
        "registerAddress": 2,
        "registerNumber": 1,
        "swapByte": false,
        "swapOrder": false,
        "scalingFactor": 1
      },
      "remark": ""
    },
    {
      "id": "name",
      "name": "模块名称",
      "accessMode": "r",
      "dataType": {
        "type": "int",
        "min": "0",
        "max": "65536",
        "step": "1",
        "unit": ""
      },
      "expands": {
        "readFlag": 3,
        "writeFlag": 16,
        "reportMethod": 2,
        "registerAddress": 3,
        "registerNumber": 10,
        "swapByte": false,
        "swapOrder": false,
        "scalingFactor": 1
      },
      "remark": ""
    },
    {
      "id": "address",
      "name": "模块地址",
      "accessMode": "rw",
      "dataType": {
        "type": "int",
        "min": "1",
        "max": "255",
        "step": "1",
        "unit": ""
      },
      "expands": {
        "readFlag": 3,
        "writeFlag": 6,
        "reportMethod": 2,
        "registerAddress": 13,
        "registerNumber": 1,
        "swapByte": false,
        "swapOrder": false,
        "scalingFactor": 1
      },
      "remark": ""
    },
    {
      "id": "baudrate",
      "name": "波特率代码",
      "accessMode": "rw",
      "dataType": {
        "type": "enum",
        "elements": [
          { "value": "0", "key": "", "text": "1200" },
          { "value": "1", "key": "", "text": "2400" },
          { "value": "2", "key": "", "text": "4800" },
          { "value": "3", "key": "", "text": "9600" },
          { "value": "4", "key": "", "text": "19200" },
          { "value": "5", "key": "", "text": "38400" },
          { "value": "6", "key": "", "text": "57600" },
          { "value": "7", "key": "", "text": "115200" }
        ]
      },
      "expands": {
        "readFlag": 3,
        "writeFlag": 6,
        "reportMethod": 2,
        "registerAddress": 14,
        "registerNumber": 1,
        "swapByte": false,
        "swapOrder": false,
        "scalingFactor": 1
      },
      "remark": ""
    },
    {
      "id": "aiModel",
      "name": "AI参数恢复工厂模式",
      "accessMode": "rw",
      "dataType": {
        "type": "int",
        "min": "1",
        "max": "65534",
        "step": "1",
        "unit": ""
      },
      "expands": {
        "readFlag": null,
        "writeFlag": 6,
        "reportMethod": 2,
        "registerAddress": 15,
        "registerNumber": 1,
        "swapByte": false,
        "swapOrder": false,
        "scalingFactor": 1
      },
      "remark": ""
    },
    {
      "id": "reserveRegister",
      "name": "保留寄存器",
      "accessMode": "rw",
      "dataType": {
        "type": "int",
        "min": "1",
        "max": "65534",
        "step": "1",
        "unit": ""
      },
      "expands": {
        "readFlag": 3,
        "writeFlag": 6,
        "reportMethod": 2,
        "registerAddress": 16,
        "registerNumber": 1,
        "swapByte": false,
        "swapOrder": false,
        "scalingFactor": 1
      },
      "remark": ""
    },
    {
      "id": "parityCheckRegister",
      "name": "奇偶校验寄存器",
      "accessMode": "rw",
      "dataType": {
        "type": "int",
        "min": "1",
        "max": "65534",
        "step": "1",
        "unit": ""
      },
      "expands": {
        "readFlag": 3,
        "writeFlag": 6,
        "reportMethod": 2,
        "registerAddress": 17,
        "registerNumber": 1,
        "swapByte": false,
        "swapOrder": false,
        "scalingFactor": 1
      },
      "remark": ""
    },
    {
      "id": "parityCheckRegister",
      "name": "重启寄存器",
      "accessMode": "rw",
      "dataType": {
        "type": "int",
        "min": "1",
        "max": "65534",
        "step": "1",
        "unit": ""
      },
      "expands": {
        "readFlag": null,
        "writeFlag": 6,
        "reportMethod": 2,
        "registerAddress": 18,
        "registerNumber": 1,
        "swapByte": false,
        "swapOrder": false,
        "scalingFactor": 1
      },
      "remark": ""
    },
    {
      "id": "writeRegister",
      "name": "写保护寄存器",
      "accessMode": "rw",
      "dataType": {
        "type": "int",
        "min": "1",
        "max": "65534",
        "step": "1",
        "unit": ""
      },
      "expands": {
        "readFlag": null,
        "writeFlag": 6,
        "reportMethod": 2,
        "registerAddress": 19,
        "registerNumber": 1,
        "swapByte": false,
        "swapOrder": false,
        "scalingFactor": 1
      },
      "remark": ""
    },
    {
      "id": "do1Status",
      "name": "DO1状态",
      "accessMode": "rw",
      "dataType": {
        "type": "int",
        "min": "1",
        "max": "3",
        "step": "1",
        "unit": ""
      },
      "expands": {
        "readFlag": 1,
        "writeFlag": 5,
        "reportMethod": 2,
        "registerAddress": 100,
        "registerNumber": 1,
        "swapByte": false,
        "swapOrder": false,
        "scalingFactor": 1
      },
      "remark": ""
    },
    {
      "id": "do2Status",
      "name": "DO2状态",
      "accessMode": "rw",
      "dataType": {
        "type": "int",
        "min": "1",
        "max": "3",
        "step": "1",
        "unit": ""
      },
      "expands": {
        "readFlag": 1,
        "writeFlag": 5,
        "reportMethod": 2,
        "registerAddress": 101,
        "registerNumber": 1,
        "swapByte": false,
        "swapOrder": false,
        "scalingFactor": 1
      },
      "remark": ""
    },
    {
      "id": "do1ElecStatus",
      "name": "DO1上电状态",
      "accessMode": "rw",
      "dataType": {
        "type": "int",
        "min": "1",
        "max": "3",
        "step": "1",
        "unit": ""
      },
      "expands": {
        "readFlag": 1,
        "writeFlag": 5,
        "reportMethod": 2,
        "registerAddress": 102,
        "registerNumber": 1,
        "swapByte": false,
        "swapOrder": false,
        "scalingFactor": 1
      },
      "remark": ""
    },
    {
      "id": "do2ElecStatus",
      "name": "DO2上电状态",
      "accessMode": "rw",
      "dataType": {
        "type": "int",
        "min": "1",
        "max": "3",
        "step": "1",
        "unit": ""
      },
      "expands": {
        "readFlag": 1,
        "writeFlag": 5,
        "reportMethod": 2,
        "registerAddress": 103,
        "registerNumber": 1,
        "swapByte": false,
        "swapOrder": false,
        "scalingFactor": 1
      },
      "remark": ""
    },
    {
      "id": "di1Value",
      "name": "DI1值",
      "accessMode": "r",
      "dataType": {
        "type": "int",
        "min": "0",
        "max": "1",
        "step": "1",
        "unit": ""
      },
      "expands": {
        "readFlag": 2,
        "writeFlag": null,
        "reportMethod": 2,
        "registerAddress": 200,
        "registerNumber": 1,
        "swapByte": false,
        "swapOrder": false,
        "scalingFactor": 1
      },
      "remark": ""
    },
    {
      "id": "di2Value",
      "name": "DI2值",
      "accessMode": "r",
      "dataType": {
        "type": "int",
        "min": "0",
        "max": "1",
        "step": "1",
        "unit": ""
      },
      "expands": {
        "readFlag": 2,
        "writeFlag": null,
        "reportMethod": 2,
        "registerAddress": 201,
        "registerNumber": 1,
        "swapByte": false,
        "swapOrder": false,
        "scalingFactor": 1
      },
      "remark": ""
    },
    {
      "id": "di1Params",
      "name": "DI1滤波器参数",
      "accessMode": "rw",
      "dataType": {
        "type": "int",
        "min": "0",
        "max": "255",
        "step": "1",
        "unit": ""
      },
      "expands": {
        "readFlag": 3,
        "writeFlag": 6,
        "reportMethod": 2,
        "registerAddress": 300,
        "registerNumber": 1,
        "swapByte": false,
        "swapOrder": false,
        "scalingFactor": 1
      },
      "remark": ""
    },
    {
      "id": "di2Params",
      "name": "DI2滤波器参数",
      "accessMode": "rw",
      "dataType": {
        "type": "int",
        "min": "0",
        "max": "255",
        "step": "1",
        "unit": ""
      },
      "expands": {
        "readFlag": 3,
        "writeFlag": 6,
        "reportMethod": 2,
        "registerAddress": 301,
        "registerNumber": 1,
        "swapByte": false,
        "swapOrder": false,
        "scalingFactor": 1
      },
      "remark": ""
    }
  ],
  "functions": [],
  "events": [],
  "protocol": {
    "type": "Modbus-Rtu",
    "expands": {
      "baudRate": 9600,
      "dataBits": 8,
      "startBits": 1,
      "stopBits": 1,
      "parity": 0
    }
  }
}
