AspenTech InfoPlus 21 - Как подключиться и запросить данные - PullRequest
0 голосов
/ 03 марта 2019

Мне будет предоставлен доступ к конечной точке AspenTech InfoPlus 21, но системы кажутся довольно устаревшими и не очень хорошо (публично) задокументированы.Мне нужно будет запросить некоторые данные (т.е. изучить, что находится в базе данных).У меня было несколько вопросов, касающихся подключения и опроса историков InfoPlus 21.

  1. Как я могу подключиться к серверу InfoPlus 21 (в лучшем случае программно )?Я в основном использую Mac, могу использовать Linux и Windows через виртуальную машину.Действительно, и идеи для рабочих решений приветствуются.

  2. Как я могу запрашивать данные из InfoPlus 21 (в случае ставки программно) и как эти данные выглядят?Любые указатели и т. Д. Были бы очень полезны.

У меня есть некоторый опыт использования баз данных NoSQL (mongodb) и SQL (postgres и mysql), но я не смог найти что-нибудь полезное для aspentech infoplus 21 в Интернете.Любая помощь будет принята с благодарностью.

Ответы [ 3 ]

0 голосов
/ 04 марта 2019

Добро пожаловать в индустриально-IT!Для этих технологий лучшим вариантом является драйвер ODBC AspenTech SqlPlus.Тем не менее, вы говорите о конечной точке на довольно старом сервере IP21, поэтому я предполагаю, что это что-то вроде http: //.../SQLPlusWebService/SQLplusWebService.asmx.В этом случае это оболочка SOAP для SqlPlus: вам не нужно устанавливать драйвер ODBC для Windows ... Но вам все равно придется изучать синтаксис SqlPlus.Чтобы получить больше информации об этом, вы можете попросить AspenTech, также вы можете установить клиент SqlPlus 'Aspen SqlPlus' и проверить файл справки в "C: \ Program Files (x86) \ AspenTech \ InfoPlus.21 \ db21 \code \ ipsqlplus.chm "

РЕДАКТИРОВАТЬ: вот пример в c #, чтобы перечислить все записи:

    static void Main(string[] args)
    {
    const string SERVER_HOST = "SERVERHOST";
    const string SERVER_URL = "http://{0}/SQLPlusWebService/SQLplusWebService.asmx";

    const string SOAP12 =
        "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
        + "<soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">"
        + "<soap12:Body>"
        + "<ExecuteSQL xmlns=\"http://www.aspentech.com/SQLplus.WebService/\">"
        + "<command>{0}</command>"
        + "</ExecuteSQL>"
        + "</soap12:Body>"
        + "</soap12:Envelope>";

    const string SQLPLUS_COMMAND_ALLRECORDS =
        "SELECT * FROM all_records";

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(
        string.Format(SERVER_URL, SERVER_HOST));
    // If required by the server, set the credentials.
    request.Credentials = CredentialCache.DefaultCredentials;

    request.ContentType = "application/soap+xml; charset=utf-8";
    request.Method = "POST";

    XmlDocument soapEnvelopeDocument;
    soapEnvelopeDocument = new XmlDocument();
    soapEnvelopeDocument.LoadXml(string.Format(SOAP12, SQLPLUS_COMMAND_ALLRECORDS));

    byte[] bytes;
    bytes = Encoding.UTF8.GetBytes(soapEnvelopeDocument.OuterXml);
    request.ContentLength = bytes.Length;
    using (Stream stream = request.GetRequestStream())
    {
        stream.Write(bytes, 0, bytes.Length);
    }

    // Get the response.
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    // Display the status.
    Console.WriteLine(response.StatusDescription);
    // Get the stream containing content returned by the server.
    Stream dataStream = response.GetResponseStream();
    // Open the stream using a StreamReader for easy access.
    StreamReader reader = new StreamReader(dataStream);
    // Read the content.
    string responseFromServer = reader.ReadToEnd();
    // Display the content.
    Console.WriteLine(responseFromServer);
    // Cleanup the streams and the response.
    reader.Close();
    dataStream.Close();
    response.Close();

}
0 голосов
/ 15 мая 2019

Вы также можете использовать веб-API REST Aspentech Process Data.Существует собственная веб-страница Aspentech с множеством примеров, где вы можете узнать, как ее использовать.URL будет выглядеть следующим образом:

http://<your server name>/ProcessData/samples/sample_home.html

Домашняя страница примеров API-интерфейса REST Aspentech ProcessData

Если вам лучше знакома структура базы данных Aspentech IP21, вы можете использовать "SQL "вариант на изображении выше.Если нет, я предлагаю вам использовать опцию «История».История позволит вам запрашивать данные, просто передавая имя тега, карту (полезно для пользовательских тегов, где вы можете иметь несколько карт) и временной диапазон.Также доступны некоторые параметры фильтрации и тип запроса, который вы хотите сделать (POST, GET и т. Д.).Вот пример использования для этой опции «Журнала»:

Пример истории API остатка данных процесса Aspen

0 голосов
/ 04 марта 2019

InfoPlus21 - это исторический процесс, содержащий список шаблонов с различной структурой тегов, например, IP_AnalogDef, IP_DescreteDef, IP_TextDef и т. Д. На основе тегов процесса из DCS / OPC / любого другого историста создаются записи IP21, и каждая запись действует как таблица в историке.,

ANS1: Программное обеспечение Aspentech совместимо только с Windows, однако IP21 aspenONE Process Explorer - это веб-интерфейс, поэтому вы можете получить к нему доступ через любую операционную систему, используя URL-адрес хоста.

ANS2:

вы можете попробовать оператор SELECT, чтобы получить данные из IP21 Historian, используя его компонент конечного пользователя SQLPlus или надстройки Excel.например,

SELECT NAME, IP_DESCRIPTION, IP_PLANT_AREA, IP_ENG_UNITS FROM IP_ANALOGDEF  

РЕЗУЛЬТАТЫ: RESULT OF ABOVE QUERY

Надеюсь, это поможет вам лучше понять.В противном случае вам нужно сначала изучить структуру своих тегов историки IP21, чтобы построить запрос, например, если он имеет настраиваемую структуру, то вам нужно создать свою собственную.

...