close

工控界大家都知道MODBUS這個協定,最近為了完成一篇公司的官方文件,所以用了示波器看了MODBUS的通訊波形才知道原來實際的波形是長這樣...
例如,讀取站號1裝置,位址00H,讀取1個word,以RTU編碼傳送時,字串如下:
01 03 00 00 00 01 84 0A
如果換成2進制來看,則會變成:
00000001 00000011 00000000 00000000 00000001 10000100 00001010
所以以小中中簡單的腦子來思考,以上的字串波形應該是有0的為Low,有1的為High,但是,實際的波形卻是...
波形01  


怎麼會跟預期的差這麼多咧?
為了讓狀況簡單化,所以決定一次送一個Byte來測試,以下是分別送出01H、02H、03H、78H的波形。

波形02  
這樣果然一切都清楚了。
1.RS485跟RS232都是負羅輯的方式傳送,所以1會變0、0會變1。
2.每個byte在送出前都會有個start bit,start bit固定為Hi。
3.如果同時送出2個byte,AAH AAH,波形如下,每一個byte之間還存在著stop bit,stop bit可以依使用者自行定義為1或2個bit。
波形03  

 

以上訊息在自控領域不一定會用的到,但是知道一下準沒壞處的拉...。

arrow
arrow
    全站熱搜

    eden 發表在 痞客邦 留言(0) 人氣()