最近有個專案的裝置上有三臺硬體都用了串列埠通訊
分別是PLC、基恩士位移感測器GT2和梅特勒稱重模組
除了PLC是透過現成的通訊模組進行的USB直連
另外兩臺硬體都是用的串列埠轉USB
轉接線的驅動晶片分別是FTDI和PL2303GT
程式編寫除錯好 測試了一段時間
發現總是會出現連續執行0.5~2小時(約300~700次迴圈動作)後PC串列埠不響應的情況
偶發裝置上電後個別串列埠裝置找不到(裝置管理器看不到)
必須重新拔插PC上任意一個串列埠線或重啟電腦才能解決
否則不管是用哪種官方程式都通訊不上 無響應
排查處理過程:
①排查各介面連線是否鬆動,由擴充USB口換到主機板USB口(供電電壓不同)
無效
②重灌驅動程式,刪除重複驅動,減少驅動干擾的可能性
無效
③考慮程式通訊頻率太快,導致串列埠緩衝區溢位,故在PC端和程式端增加軟握手XonXoff
不可行,嚴重影響正常通訊或資料丟失
④關閉PC端串列埠高階選項中的“允許計算機關閉裝置以節約電源”,縮小“傳送緩衝區大小”和“接收緩衝區大小”,以及延時計時器數值
待觀察
其他經驗:
①首次透過遠端桌面連線工控機時,由於會佔用目標工控機的資源,導致這個過程中串列埠收發資料收到明顯影響。