API - Получение лога регистров — различия между версиями

Материал из WebHMI Wiki
Перейти к: навигация, поиск
(Новая страница: «Для получения списка всех соединений необходимо выполнить GET-запрос на URL вида '''http://192.168.…»)
 
Строка 1: Строка 1:
 
Для получения списка всех соединений необходимо выполнить GET-запрос на URL вида '''http://192.168.1.1/api/register-log'''.
 
Для получения списка всех соединений необходимо выполнить GET-запрос на URL вида '''http://192.168.1.1/api/register-log'''.
  
В заголовках запроса ноебходимо передать API key, границы интересуещего временного интервала а также список идентификаторов регистров . Например:
+
В заголовках запроса ноебходимо передать API key, границы интересуещего временного интервала а также список идентификаторов регистров. X-WH-START и X-WH-END передаются в формате UnixTime. ID регистров передаются списком разделенным запятой в заголовке X-WH-REG-IDS. Например:
 
<pre>
 
<pre>
 
X-WH-APIKEY: F3C74230818DA487BB2017CE5D0290F4DABCAFD7
 
X-WH-APIKEY: F3C74230818DA487BB2017CE5D0290F4DABCAFD7
 +
X-WH-START:1422595501
 
X-WH-END:1422599101
 
X-WH-END:1422599101
 
X-WH-REG-IDS:8,10
 
X-WH-REG-IDS:8,10
X-WH-START:1422595501
 
 
</pre>
 
</pre>
  
Строка 19: Строка 19:
 
Пример запроса списка соединений:
 
Пример запроса списка соединений:
  
'''URL''': http://192.168.1.1/api/connections<br>
+
'''URL''': http://192.168.1.1/api/register-log<br>
 
'''Method''': GET
 
'''Method''': GET
  
Строка 27: Строка 27:
 
Content-Type: application/json
 
Content-Type: application/json
 
Accept-Encoding: gzip, deflate, sdch
 
Accept-Encoding: gzip, deflate, sdch
X-WH-APIKEY:F3C74230818DA487BB2017CE5D0290F4DABCAFD7
+
X-WH-APIKEY: F3C74230818DA487BB2017CE5D0290F4DABCAFD7
 +
X-WH-START:1422595501
 +
X-WH-END:1422599101
 +
X-WH-REG-IDS:8,10
 
</pre>
 
</pre>
  
 
Пример ответа:
 
Пример ответа:
 
<pre>
 
<pre>
[
+
{
   {
+
   "1422598266": [
     "id": "1",
+
     {
     "title": "Внутренние регистры",
+
      "r": 8,
     "addr": "",
+
      "v": "6",
     "baudrate": "9600",
+
      "s": "-1"
     "parity": "e",
+
    },
     "stopbit": "1",
+
     {
     "bitscount": "8",
+
      "r": 10,
     "model": "3",
+
      "v": "",
     "protocol": "4",
+
      "s": ""
     "timeout": "100",
+
     }
     "timeout2": "",
+
  ],
     "device": "/dev/rs485",
+
  "1422598271": [
     "disabled": "0",
+
    {
     "mode": "0"
+
      "r": 8,
  },
+
      "v": "11",
   {
+
      "s": "-1"
     "id": "2",
+
     },
     "title": "S7 200",
+
    {
     "addr": "2",
+
      "r": 10,
     "baudrate": "9600",
+
      "v": "",
     "parity": "e",
+
      "s": ""
     "stopbit": "1",
+
     }
     "bitscount": "8",
+
  ],
     "model": "1",
+
  "1422598276": [
     "protocol": "3",
+
    {
    "timeout": "200",
+
      "r": 8,
     "timeout2": "",
+
      "v": "16",
     "device": "/dev/rs485",
+
      "s": "-1"
     "disabled": "1",
+
     },
     "mode": "0"
+
    {
   }
+
      "r": 10,
 +
      "v": "",
 +
      "s": ""
 +
    }
 +
  ],
 +
  "1422598280": [
 +
    {
 +
      "r": 8,
 +
      "v": "0",
 +
      "s": "-1"
 +
    },
 +
     {
 +
      "r": 10,
 +
      "v": "",
 +
      "s": ""
 +
    }
 +
  ],
 +
  "1422598285": [
 +
    {
 +
      "r": 8,
 +
      "v": "5",
 +
      "s": "-1"
 +
     },
 +
    {
 +
      "r": 10,
 +
      "v": "",
 +
      "s": ""
 +
     }
 +
  ],
 +
  "1422598290": [
 +
    {
 +
      "r": 8,
 +
      "v": "10",
 +
      "s": "-1"
 +
     },
 +
    {
 +
      "r": 10,
 +
      "v": "",
 +
      "s": ""
 +
     }
 +
  ],
 +
  "1422598295": [
 +
    {
 +
      "r": 8,
 +
      "v": "15",
 +
      "s": "-1"
 +
     },
 +
    {
 +
      "r": 10,
 +
      "v": "",
 +
      "s": ""
 +
     }
 +
  ],
 +
  "1422598300": [
 +
    {
 +
      "r": 8,
 +
      "v": "0",
 +
      "s": "-1"
 +
     },
 +
    {
 +
      "r": 10,
 +
      "v": "",
 +
      "s": ""
 +
    }
 +
  ],
 +
   "1422598305": [
 +
    {
 +
      "r": 8,
 +
      "v": "5",
 +
      "s": "-1"
 +
     },
 +
    {
 +
      "r": 10,
 +
      "v": "",
 +
      "s": ""
 +
     }
 +
  ],
 +
  "1422598310": [
 +
    {
 +
      "r": 8,
 +
      "v": "10",
 +
      "s": "-1"
 +
     },
 +
    {
 +
      "r": 10,
 +
      "v": "",
 +
      "s": ""
 +
     }
 +
  ],
 +
  "1422598315": [
 +
    {
 +
      "r": 8,
 +
      "v": "15",
 +
      "s": "-1"
 +
     },
 +
    {
 +
      "r": 10,
 +
      "v": "",
 +
      "s": ""
 +
     }
 +
  ],
 +
  "1422598320": [
 +
    {
 +
      "r": 8,
 +
      "v": "0",
 +
      "s": "-1"
 +
    },
 +
     {
 +
      "r": 10,
 +
      "v": "",
 +
      "s": ""
 +
     }
 +
  ],
 +
  "1422598325": [
 +
    {
 +
      "r": 8,
 +
      "v": "5",
 +
      "s": "-1"
 +
    },
 +
     {
 +
      "r": 10,
 +
      "v": "",
 +
      "s": ""
 +
    }
 +
  ],
 +
  "1422598330": [
 +
     {
 +
      "r": 8,
 +
      "v": "10",
 +
      "s": "-1"
 +
     },
 +
    {
 +
      "r": 10,
 +
      "v": "",
 +
      "s": ""
 +
     }
 +
  ],
 +
  "1422598335": [
 +
    {
 +
      "r": 8,
 +
      "v": "15",
 +
      "s": "-1"
 +
    },
 +
     {
 +
      "r": 10,
 +
      "v": "",
 +
      "s": ""
 +
    }
 +
  ],
 +
  "1422598340": [
 +
    {
 +
      "r": 8,
 +
      "v": "0",
 +
      "s": "-1"
 +
    },
 +
    {
 +
      "r": 10,
 +
      "v": "",
 +
      "s": ""
 +
    }
 +
   ],
 +
  "1422598345": [
 +
    {
 +
      "r": 8,
 +
      "v": "5",
 +
      "s": "-1"
 +
    },
 +
    {
 +
      "r": 10,
 +
      "v": "",
 +
      "s": ""
 +
    }
 +
  ],
 +
  и т.д.
 
]
 
]
 
</pre>
 
</pre>
 
----
 
----
  
 
+
Формат возвращаемых данных следующий:<br>
Пример запроса информации об соединений номер 2:
+
Возвращаетмя массив, где индексом является время в формате UnixTime. Элементами массива есть еще один массив объектов. <br>
 
+
У каждого объекта есть три свойства: r, v, s.
'''URL''': http://192.168.1.1/api/connections/2<br>
+
'''r''' - это ID регистра. Например, 10 <br>
'''Method''': GET
+
'''v''' - это значение регистра в указанный момент времении или пустая строка если в этот момент времени нет данных для этого регистра.<br>
 
+
'''s''' - это состояние (state) регистра, которое соответствовало ему в указанный момент времени. Unknown  = -1, Disabled = 0, Normal = 1, Warning = 2, Alert = 3 или же пустая строка если значения регистра нет.<br>
Заголовки:
+
<pre>
+
Accept: application/json
+
Content-Type: application/json
+
Accept-Encoding: gzip, deflate, sdch
+
X-WH-APIKEY:F3C74230818DA487BB2017CE5D0290F4DABCAFD7
+
</pre>
+
 
+
Пример ответа:
+
<pre>
+
{
+
  "id": "2",
+
  "title": "S7 200",
+
  "addr": "2",
+
  "baudrate": "9600",
+
  "parity": "e",
+
  "stopbit": "1",
+
  "bitscount": "8",
+
  "model": "1",
+
  "protocol": "3",
+
  "timeout": "200",
+
  "timeout2": "",
+
  "device": "/dev/rs485",
+
  "disabled": "1",
+
  "mode": "0"
+
}
+
</pre>
+
----
+
 
+
 
+
Атрибуты соединения:
+
 
+
<table>
+
<tr><td>'''id'''</td><td>int</td><td>Уникальный идентификатор соединения</td></tr>
+
<tr><td>'''title'''</td><td>string</td><td>Название соединенеия</td></tr>
+
<tr><td>'''addr'''</td><td>string</td><td>Адрес устройства на шине или сетевой адрес для TCP соединения</td></tr>
+
<tr><td>'''baudrate'''</td><td>int</td><td>Скорость обмена данными для последовательных соединений</td></tr>
+
<tr><td>'''parity'''</td><td>string</td><td>Контроль четности для последовательных соединений. e = Even, o = Odd, n = None</td></tr>
+
<tr><td>'''stopbit'''</td><td>int</td><td>Количество стоповых битов для последовательных соединений</td></tr>
+
<tr><td>'''model'''</td><td>int</td><td>Идентификатор типа устройства</td></tr>
+
<tr><td>'''protocol'''</td><td>int</td><td>Идентификатор протокола обмена</td></tr>
+
<tr><td>'''timeout'''</td><td>int</td><td>Максимальное время ожидания ответа на запрос от устройства</td></tr>
+
<tr><td>'''device'''</td><td>string</td><td>Системное имя адаптера для последовательных соединений</td></tr>
+
<tr><td>'''disabled'''</td><td>int</td><td>0 = соединение активно, 1 = соединение отключено</td></tr>
+
<tr><td>'''mode'''</td><td>int</td><td>0 = норальный режим работе. 1 = режим Virtual UART</td></tr>
+
</table>
+
----
+
 
+
 
+
Идентификаторы типа устройства:<br>
+
0 = Delta DVP<br>
+
1 = Siemens Simatic S7 200<br>
+
2 = Generic ModBus<br>
+
3 = Internal WebHMI Registers<br>
+
4 = Generic Owen<br>
+
5 = Generic DF1<br>
+
----
+
 
+
 
+
Идентификаторы протокола обмена:<br>
+
0 = ModBus ASCII<br>
+
1 = ModBus RTU (еще не доступен)<br>
+
2 = ModBus TCP<br>
+
3 = Siemens PPI<br>
+
4 = Owen<br>
+
5 = Allen Bradley DF1<br>
+
6 = Internal WebHMI Registers<br>
+

Версия 06:37, 30 января 2015

Для получения списка всех соединений необходимо выполнить GET-запрос на URL вида http://192.168.1.1/api/register-log.

В заголовках запроса ноебходимо передать API key, границы интересуещего временного интервала а также список идентификаторов регистров. X-WH-START и X-WH-END передаются в формате UnixTime. ID регистров передаются списком разделенным запятой в заголовке X-WH-REG-IDS. Например:

X-WH-APIKEY: F3C74230818DA487BB2017CE5D0290F4DABCAFD7
X-WH-START:1422595501
X-WH-END:1422599101
X-WH-REG-IDS:8,10

Также в заголовках необходимо указать желаемый формат обмена данными. Сейчас поддерживатеся работа только с форматом JSON.

Accept: application/json
Content-Type: application/json


Пример запроса списка соединений:

URL: http://192.168.1.1/api/register-log
Method: GET

Заголовки:

Accept: application/json
Content-Type: application/json
Accept-Encoding: gzip, deflate, sdch
X-WH-APIKEY: F3C74230818DA487BB2017CE5D0290F4DABCAFD7
X-WH-START:1422595501
X-WH-END:1422599101
X-WH-REG-IDS:8,10

Пример ответа:

{
  "1422598266": [
    {
      "r": 8,
      "v": "6",
      "s": "-1"
    },
    {
      "r": 10,
      "v": "",
      "s": ""
    }
  ],
  "1422598271": [
    {
      "r": 8,
      "v": "11",
      "s": "-1"
    },
    {
      "r": 10,
      "v": "",
      "s": ""
    }
  ],
  "1422598276": [
    {
      "r": 8,
      "v": "16",
      "s": "-1"
    },
    {
      "r": 10,
      "v": "",
      "s": ""
    }
  ],
  "1422598280": [
    {
      "r": 8,
      "v": "0",
      "s": "-1"
    },
    {
      "r": 10,
      "v": "",
      "s": ""
    }
  ],
  "1422598285": [
    {
      "r": 8,
      "v": "5",
      "s": "-1"
    },
    {
      "r": 10,
      "v": "",
      "s": ""
    }
  ],
  "1422598290": [
    {
      "r": 8,
      "v": "10",
      "s": "-1"
    },
    {
      "r": 10,
      "v": "",
      "s": ""
    }
  ],
  "1422598295": [
    {
      "r": 8,
      "v": "15",
      "s": "-1"
    },
    {
      "r": 10,
      "v": "",
      "s": ""
    }
  ],
  "1422598300": [
    {
      "r": 8,
      "v": "0",
      "s": "-1"
    },
    {
      "r": 10,
      "v": "",
      "s": ""
    }
  ],
  "1422598305": [
    {
      "r": 8,
      "v": "5",
      "s": "-1"
    },
    {
      "r": 10,
      "v": "",
      "s": ""
    }
  ],
  "1422598310": [
    {
      "r": 8,
      "v": "10",
      "s": "-1"
    },
    {
      "r": 10,
      "v": "",
      "s": ""
    }
  ],
  "1422598315": [
    {
      "r": 8,
      "v": "15",
      "s": "-1"
    },
    {
      "r": 10,
      "v": "",
      "s": ""
    }
  ],
  "1422598320": [
    {
      "r": 8,
      "v": "0",
      "s": "-1"
    },
    {
      "r": 10,
      "v": "",
      "s": ""
    }
  ],
  "1422598325": [
    {
      "r": 8,
      "v": "5",
      "s": "-1"
    },
    {
      "r": 10,
      "v": "",
      "s": ""
    }
  ],
  "1422598330": [
    {
      "r": 8,
      "v": "10",
      "s": "-1"
    },
    {
      "r": 10,
      "v": "",
      "s": ""
    }
  ],
  "1422598335": [
    {
      "r": 8,
      "v": "15",
      "s": "-1"
    },
    {
      "r": 10,
      "v": "",
      "s": ""
    }
  ],
  "1422598340": [
    {
      "r": 8,
      "v": "0",
      "s": "-1"
    },
    {
      "r": 10,
      "v": "",
      "s": ""
    }
  ],
  "1422598345": [
    {
      "r": 8,
      "v": "5",
      "s": "-1"
    },
    {
      "r": 10,
      "v": "",
      "s": ""
    }
  ],
  и т.д.
]

Формат возвращаемых данных следующий:
Возвращаетмя массив, где индексом является время в формате UnixTime. Элементами массива есть еще один массив объектов.
У каждого объекта есть три свойства: r, v, s. r - это ID регистра. Например, 10
v - это значение регистра в указанный момент времении или пустая строка если в этот момент времени нет данных для этого регистра.
s - это состояние (state) регистра, которое соответствовало ему в указанный момент времени. Unknown = -1, Disabled = 0, Normal = 1, Warning = 2, Alert = 3 или же пустая строка если значения регистра нет.