0

我正在使用 PLC 做一个项目,我使用套接字与在 PLC 上侦听的服务器进行交互。我以 ASCII 格式给出了指令,直到 127 我的指令工作正常,当它超过 127 时,代码工作但正确的值是不发送到PLC。如何克服这一点。

s = 130;

查询 = Convert.ToChar(00).ToString() + Convert.ToChar(00).ToString() + Convert.ToChar(00).ToString() + Convert.ToChar(00).ToString() + Convert.ToChar( 00).ToString() + Convert.ToChar(06).ToString() + Convert.ToChar(01).ToString(); // 标题查询 = 查询 + Convert.ToChar(06).ToString() + Convert.ToChar(AddrUB).ToString() + Convert.ToChar(AddrLB).ToString() + Convert.ToChar(valueUB).ToString() + 转换.ToChar(s).ToString() ;

将其转换为 char s 后成为特殊符号,而不是在 plc 中写 130 查询将其写为 63,转换中发生了什么,请帮我解决这个问题

4

1 回答 1

0

ASCII 63 是问号。127 以上的某些字符变成问号的主要原因是从一个代码页转换到另一个不支持该字符的代码页。所以基本上发生了一些转换。

解决方案是不使用字符串。PLC 理解字节,因此您应该使用字节数组,而不是字符串。请记住,字符不是 C# 世界中的字节。

于 2010-10-28T18:07:29.070 回答