串口通訊基本概念

S7-1200 串行通訊

S7-1200支持的串行通信方式編程

  • 點對點(PtP)通訊
  • Modbus 主從通訊
  • USS 通訊 
名稱 CM 1241 RS232 CM 1241 RS485
定貨號 6ES7 241-1AH30-0XB0 6ES7 241-1CH30-0XB0
通信口類型 RS232 RS485
波特率(bps) 300; 600;1.2 kb; 2.4 kb; 4.8 kb; 9.6 kb;19.2 kb; 28.4 kb; 57.6 kb; 76.8 kb; 115.2 kb;
校驗方式
  • None(無校驗)
  • Even(偶校驗)
  • Odd(奇校驗)
  • Mark(校驗位始終置爲1)
  • Space(校驗位始終爲0)
流控 硬件流控;軟件流控 不支持
接收緩衝區 1KB
通信距離(屏蔽電纜) 10m 1000m
電源規範(5V DC) 220mA

S7-1200 RS232 和 RS485 通訊模塊的特徵

圖1. 串口通訊模塊緩存

  1. 由 CPU 供電,沒必要鏈接外部電源

  2. 端口通過隔離,最長距離1000 米

  3. 有診斷 LED 及顯示傳送和接收活動 LED

  4. 支持點對點協議

  5. 經過擴展指令和庫功能進行組態和編程

RS485 與 RS232 通訊模塊的LED

診斷 LED 燈安全

  • 紅閃:若是 CPU 未正確識別到通訊模塊,診斷 LED 會一直紅色閃爍
  • 綠閃:CPU 上電後已經識別到通訊模塊,可是通訊模塊尚未配置
  • 綠燈:CPU 已經識別到通訊模塊,且配置也已經下載到了CPU

發送 LED 燈網絡

  • 表明數據正在經過通訊口傳送出去

接收 LED 燈spa

  • 表明數據正在經過通訊口接收進來

注意:安裝於CPU本體上的通訊板只有發送和接收 LED 燈,而沒有診斷 LED 燈調試

RS485及RS232兩種模板支持的協議

  • ASCII
  • USS
  • Modbus RTU Master protocol
  • Modbus RTU Slave protocol

ASCII 協議的特色

  • 報文能夠由用戶本身定義,便於用戶以 ASCII 協議爲基礎開發
  • 使用簡單,能夠很好地實現與第三方系統的通信
  • 能夠進行識別報文結束設置
  • 能夠進行數據流量控制
  • 缺點:具備簡單的校驗功能(奇偶校驗),低數據安全性;數據傳輸無確認信息; 通信須要雙方協調

S7-1200 的 PTP 校驗

串口的校驗: 奇偶校驗:用於檢驗數據傳遞的正確性,是最簡單的檢錯方法。blog



圖2. 校驗設置接口

  • 偶校驗:若是每字節的數據位中「1」的個數爲奇數,則校驗位爲1,若是個數爲偶數,則校驗位爲「0」, 保證數據位和校驗位中「1」的個數是偶數
  • 奇校驗:若是每字節的數據位中「1」的個數爲奇數,則校驗位爲0,若是個數爲偶數,則校驗位爲「1」, 保證數據位和校驗位中「1」的個數是奇數
  • 傳號校驗:奇偶校驗位始終設置爲 1
  • 空號校驗:奇偶校驗位始終設置爲 0

注意:奇偶校驗能夠簡單的判斷數據的正確性,從原理上可看出當一位出錯,能夠準確判斷,當兩位或更多位誤碼就校驗不出,但因爲其實現簡單,仍獲得了普遍使用。開發

PTP 通訊的發送信息配置

定義在信息起始發送斷點及空閒線字符串

字符中斷:當接收到的數據保持爲零值的時間大於完整的字符傳輸時間時,表明字符中斷。一個完整字符傳輸時間定義爲傳輸起始位、數據位、校驗位和中止位的時間總和。

圖3. 定義在信息起始發送斷點及空閒線

常問問題:爲何發送配置中只配了2位字符中斷,而通訊夥伴卻能夠正常接收數據?
答:發送配置中設置的字符中斷小於等於16位時,系統自動發出16位的字符中斷位;設置大於16位時,則發出的中斷位與實際設置相符。下圖是設置的發送斷點及空閒線位及其實際發出的波形圖。

波形圖
斷點及空閒線設置

圖4. 斷點及空閒線波形圖

PTP 通訊接收起始條件

以任意字符開始

以特殊條件開始

  • 經過斷點識別消息開始
  • 經過空閒線識別消息開始
  • 經過單個字符識別消息開始
  • 經過字符序列識別消息開始

圖5. 通訊接收起始條件

經過字符序列識別消息開始

對於多個起始序列的組態,只要出現其中一個序列,即會知足開始條件。下圖右側即爲知足起始條件的字符串。

圖6. 經過字符序列識別消息開始

若是選擇了多個起始條件,則檢查開始條件的順序以下:

注意:檢查多個開始條件時,若是有一個條件沒有知足,則 CM 將從第一個所需的條件開始從新啓動檢查。

PTP 通訊接收結束條件

 

圖7.結束條件設置

注意:與多個起始條件的判斷不一樣,檢查多個結束條件時,任何一個條件知足,信息接收結束。

消息超時結束條件

消息超時時間從接到符合消息開始條件的第一個字符時開始計算,以下圖。

圖8.消息超時

響應超時結束條件

響應超時時間從傳送結束時開始計算,只要傳送成功完成且模塊開始接收操做,定時器就會啓動。

圖9.響應超時

注意:響應超時結束條件不能做爲單獨的結束條件的設置,不然會在編譯時報以下錯誤:

圖10.響應超時做爲單獨的結束條件報錯

從消息中讀取信息長度

圖11.從消息中讀取信息長度的設置

實際收到的數據長度= 長度偏移前的字節數+長度字節大小+讀取的實際數據長度+不計入字節長度的字節數

圖12.程序中讀到的實際數據長度

PTP 通訊接收緩存區

緩存區的數據保持

斷電後緩存區中的數據所有丟失,不能保持。

通訊模板緩存區超出20條信息

若是緩存區中的信息超過20條,後面的信息被 自動丟棄,且不報錯。

通訊模板緩存區多包數據超出1024字節

發送多個每包50個字節數據,當數據超過1024字節那包就被丟棄了,前面的能夠正常接收,且沒有任何報錯.在前面數據被成功接收之後,只要緩存區有空間,後面的數據還能夠正常收到。

通訊模板緩存區一包數據超出1024字節

若是發送數據一包就大於1024字節時,緩衝區接收到數據到1024字節時,雖然沒有收到結束字符,數據由緩存區送給CPU,但會報錯16#80E0,以下圖。

圖13. 發送數據一包大於1024字節時,緩存區報錯

圖14. 使用RST指令復位緩存區錯誤,恢復數據接收

注意:緩存區能夠存儲多條信息,限制是20條信息或最多1024字節。

爲何不能使用 PC/PPI 電纜與S7-1200 RS485 模塊進行串口調試?

答:由於 S7-1200 RS485 模塊接口不提供24V電源,不能給 PC/PPI 電纜供電,因此電纜沒法工做。

解決辦法:能夠將 S7-1200 RS485 與 S7-200 通訊口網絡鏈接,將 PC/PPI 電纜插在 S7-200 通訊口上總線鏈接器的編程口上,對S7-1200 RS485進行串口調試。此時S7-200必須上電並打到中止狀態。

 

鏈接 5 GND 邏輯地或通訊地 金屬殼 - 外殼接地

相關文章
相關標籤/搜索