標籤:
PC軟體與PLC進行串口通訊傳輸速率:19200校正位:偶檢驗資料位元:8停止位:1 現象一,PC軟體向PLC可以發送1,2,4,5,7,8,但是3,6,9發送出去後,PLC無法收到二,使用虛擬串口,PC軟體與串口調試助手可以正常通訊 原因PC軟體中,校正位按照Mark(同位位元始終1)位填充。即,在上述的環境中,PC軟體用的是同位位元1發送,PLC使用偶數檢驗接收,所以根據奇偶檢驗的原理,可以解釋3,6,9無法接收的現象了。 奇偶檢驗原理 奇數同位:就是讓原有資料序列中(包括你要加上的一位)1的個數為奇數1000110(0)你必須添0這樣原來有3個1已經是奇數了所以你添上0之後1的個數還是奇數個。偶校正:就是讓原有資料序列中(包括你要加上的一位)1的個數為偶數1000110(1)你就必須加1了這樣原來有3個1要想1的個數為偶數就只能添1了 後面其中有一句開始沒看明白:奇數位誤碼能檢出,偶數位誤碼不能檢出其實是這樣的,假設使用奇數同位發送資料1,二進位表示0000 0001 發送端,計算校正位為0(資料中1的個數為奇數),加上校正位後,發送的資料是:0000 0001 0 ①奇數位誤碼的情況接收端接收到的資料為:0001 0001,接收端計算校正結果為1(資料中1的個數為偶數),接收端查看接收到資料中校正位為0,而自己計算的校正位為1,因此可以斷定接收的資料是錯誤的。 ②偶數位不能檢出的情況 接收端接收到的資料為:0001 1001,接收端計算校正結果為0(資料中1的個數為奇數),接收端一看接收到的檢驗位0與自己計算出的檢驗結果0一致,接收端認為這個接收到的資料是正確的。其實錯誤已經發生,要發送0000 0001,接收到的卻是0001 1001 這就是所謂的"奇數位誤碼能檢出,偶數位誤碼不能檢出"問題。 解釋現象一,PC軟體向PLC可以發送1,2,4,5,7,8,但是3,6,9發送出去後,PLC無法收到① PC軟體向PLC可以發送1,2,4,5,7,8以1(0000 0001)為例,校正位按照Mark(同位位元始終1)位填充,PLC偶校正結果1,PLC接收 ②3,6,9發送出去後,PLC無法收到以3(0000 0011)為例,校正位按照Mark(同位位元始終1)位填充,PLC偶校正結果0,PLC無法接收 二,使用虛擬串口,PC軟體與串口調試助手可以正常通訊此結論為猜測無法看到虛擬串口結果。虛擬串口虛擬出的串口進行串口通訊時,校正位不起作用。
PC軟體與PLC串口通訊 奇偶檢驗問題