Как написать строковый тег на сервере OPC UA в C#?

Я использую SDK от Unified Automation, который по сути представляет собой некоторый исходный код C#, который создает и запускает OPC UA Server. На данный момент я могу писать только в теги данных, которые либо инициализируются как целые числа, либо удваиваются из-за особенностей функций записи в коде. Существует функция записи для каждого типа данных, как показано:

private void Write(int blockAddress, int offset, int value)
    {   
        byte[] bytes = BitConverter.GetBytes(value);
        Array.Copy(bytes, 0, m_registers, blockAddress + offset, bytes.Length);
    }
private void Write(int blockAddress, int offset, double value)
    {  
        byte[] bytes = BitConverter.GetBytes((float)value);            
        Array.Copy(bytes, 0, m_registers, blockAddress + offset, bytes.Length);
    }

Проблема заключается в BitConverter, так как преобразование строки не так просто. До сих пор я пытался использовать:

 private void Write(int blockAddress, int offset, string value)                 
    {

       byte[] bytes = Encoding.ASCII.GetBytes(value);
        Array.Copy(bytes, 0, m_registers, blockAddress + offset, bytes.Length);

    }

Однако позже, читая его в Kepware, я получаю необычный результат: см. Первую строку

Любая помощь приветствуется.

0 ответов

Другие вопросы по тегам