我正在用PLC做一个项目,即时通讯使用套接字与PLC上的服务器进行交互。我给出了ASCII格式的指令,直到127我的指令工作正常,当它超过127时,代码工作但是正确的值不会发送到PLC。如何克服这一点。
s = 130;
Query = 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 :(得分:0)
ASCII 63是问号。 127以上某些字符变成问号的主要原因是从一个代码页转换到另一个不支持该字符的代码页。所以基本上会发生一些转换。
解决方案不适用于字符串。 PLC理解字节,因此您应该使用字节数组,而不是字符串。请记住,字符在C#world中不是字节。