2010-10-27 59 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