我是不太想使用IPE50 PANEL重量顯示器這項產品,卻又不得不用。因為從代理商那邊無法得到令人滿意的技術支援,相關的通訊資料只有英文版,重點的部分交待不清。不過還是完成一個勉強可用的程式

 


基本上有支援MODBUS通訊協定的通訊方法大同小異


通訊流程幾乎相同:寫入控制命令→等待回應→讀取回傳字串


整個程式除了打開、關閉通訊埠之外,其餘使用順序結構寫在迴圈內。其實應該可以不用放在迴圈內,會這麼做是有原因的,後面會說明

 

 


首先寫入控制命令


打開通訊埠的設定寫在程式最左邊的外側,參數完全按照手冊上的設定不要更改


關閉通訊部寫在程式右邊的外側


讀取重量的命令:[CC]READ<CRLF>


命令的括號和箭頭要照打;要注意的是CRLF照手冊所寫是ASCII碼的13和10,這2個字元是無法用鍵盤打出的不可見字元,要用程式轉換數值。轉換數值使用Type Cast元件,要轉換的數值一定要設定為U8格式

20131108-01  

 


等待回應的延遲時間設定為200,也就是0.2秒。經過實測設定時間加長也不會改善讀取的結果,但太短是一定讀不到正確的字串

20131108-02  

 


最後讀取回傳字串


這邊有3成的機率會讀到殘缺不全的字串、亂碼或是讀取錯誤。試過更改上一步的延遲時間,完全沒有改善。真不知道是重量顯示器的問題還是電腦的問題,換過幾台電腦情況沒有改善


回傳字串在手冊中只有寫說是標準字串,什麼是標準字串?內容格式有什麼?手冊沒有交代清楚


經過測試成功讀取的回傳字串:ST,GS, 18.5,kgCRLF


其中CRLF是ASCII碼,用文字元件只會看到2個空白字元


為了確保讀回的是重量,所以字串要再處理。首先以","為判斷條件,單獨將包含" 18.5"有重量數值的字串取出,再將字串前的空白去除,然後判斷字串是否為阿拉伯數字,若是就停止迴圈,若不是就不停止迴圈再通訊擷取。最後將字串再轉換為數值輸出

20131108-03  

 

20131108-04  

 


實測這個程式讀取到正確重量的平均時間約0.2~0.6秒之間,雖然不太滿意但已可應付設備的需求

,

未出師的小工程師 發表在 痞客邦 PIXNET 留言(0) 人氣()