首页 > 解决方案 > 如何在 C# 中写入 OPC UA 服务器中的字符串标签?

问题描述

我正在使用来自 Unified Automation 的 SDK,它本质上是一些创建和运行 OPC UA 服务器的 C# 源代码。目前,由于代码中写入函数的性质,我只能写入初始化为整数或双精度的数据标签。每种数据类型都有一个写入函数,如下所示:

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 中阅读它时,我得到了一个不寻常的结果: 见第一行

任何帮助表示赞赏。

标签: c#stringopcopc-uaunified-automation-sdk

解决方案


推荐阅读