OPCUA客户端写入一个包含中文字符串的结构体会报错!

已锁定

njyjm2006

  • 帖子

    5
  • 精华

    0
  • 被关注

    1

论坛等级:新手

注册时间:2017-06-18

普通 普通 如何晋级?

OPCUA客户端写入一个包含中文字符串的结构体会报错!

4753

5

2019-01-07 16:13:23

背景描述


PLC:S71500,CPU 1515-2 PN,固件版本2.5

客户机环境:win7 Service pack1,Visual Studio 2013


按照文档

《使用 .NET 和帮助类别创建 OPC UA 客户端》

顺利完成OPCUA服务器配置,使用压缩文件109737901_OPC_UA_Client_S7-1500_CODE_V13中的OPCUA客户端可以与OPCUA服务器通信,PLCDB块中建立一个WString类型的变量,则在客户端可以取得对应nodeID后,可以正常读写中文。


问题描述:


在结构体myStr中定义一个WString类型的变量,如果PLC程序中将该变量赋值为中文,在客户端Read/Write Struct/UDT界面中,可以将该结构体的内容读取出来,包含中文也能正常读取,但无法将包含有中文字符串的结构体正常写入PLC。


查看UAClientHelperAPI.cs文件中的WriteStructUdt方法时,发现是在将结构体中的内容转换为字节数组,处理到中文字符时,无法将中文字符放入一个无符号的八位字节中,故报错,

出错处的代码为

foreach (Char c in val[1])

                        {

                            bytesToWrite[convertIndex] = Convert.ToByte(c);

                            convertIndex += 1;

                        }

即val[1]中包含中文字符串时,变量c可能会为一个中文字符时,此时无法调用Convert.ToByte(c)方法转换为字节数组。


请各位专家给出解决在OPCUA客户端无法正常写入包含中文字符结构体问题的方案。



OPCUA客户端写入一个包含中文字符串的结构体会报错! 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有11098条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。