2010-10-27 35 views
0

我正在做一个PLC项目,即时通讯使用套接字与PLC上的服务器进行交互。我给出了ASCII格式的说明,直到127条指令工作正常,超过时127,代码正常工作,但没有正确的值发送到PLC。如何克服这一点。使用扩展ASCII值时的问题

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(); // Headder Query = Query + Convert.ToChar(06).ToString()+ Convert.ToChar(AddrUB).ToString()+ Convert.ToChar(AddrLB).ToString()+ Convert.ToChar(valueUB).ToString( )+ Convert.ToChar(s).ToString();

将其转换为char年代后成为一个特殊的符号,而不是在PLC编写130 查询写为63,什么在转换发生的事情,请大家帮我解决这个

+0

举一个例子,发送给PLC的是什么,PLC接收了什么。 – Dialecticus 2010-10-27 10:42:15

+0

您给出的代码很好,但您能给我们一个例子,说明发送给PLC的实际字节串,以及PLC实际看到的实际字节串。 – Dialecticus 2010-10-28 12:34:43

回答

0

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

解决方案是不使用字符串。 PLC了解字节,所以你应该使用字节数组,而不是字符串。请记住,字符在C#世界中不是字节。

+0

嗨dialecticus,谢谢你的答复,但我已经发现这一天本身我问这个问题,无论如何非常感谢你 – karthikeyan 2010-11-02 13:41:32