S7-1200 串行通信
S7-1200支持的串行通訊方式
點對點(PtP)通信
Modbus 主從通信
USS 通信
名稱 | CM 1241 RS232 | CM 1241 RS422/485 | CB 1241 RS485 |
---|---|---|---|
訂貨號 | 6ES7241-1AH32-0XB0 | 6ES7241-1CH32-0XB0 | 6ES7241-1CH30-1XB0 |
通訊口類型 | RS232 | RS422/RS485 | RS485 |
波特率(bps) | 300 ;600 ;1.2 k; 2.4 k; 4.8 k; 9.6 k;19.2 k; 38.4 k; 57.6 k; 76.8 k; 115.2 k | ||
校驗方式 |
None(無校驗) Even(偶校驗) Odd(奇校驗) Mark(校驗位始終置為1) Space(校驗位始終為0) |
||
流控 | 硬件流控;軟件流控 | RS422 支持軟件流控 | 不支持 |
接收緩沖區 | 1kB | ||
通訊距離(屏蔽電纜) | 10m | 1000m | 1000m |
電源消耗(5V DC) | 200mA | 220mA | 50mA |
電源消耗(24V DC) | - | - | 80mA |
S7-1200 串口通信模塊的特征
端口經過隔離,最長距離1000 米
有診斷 LED 及顯示傳送和接收活動 LED
支持點對點協議
通過擴展指令和庫功能進行組態和編程
RS485 與 RS232 通信模塊的LED
診斷 LED 燈
紅閃:如果 CPU 未正確識別到通信模塊,診斷 LED 會一直紅色閃爍
綠閃:CPU 上電后已經識別到通信模塊,但是通信模塊還沒有配置
綠燈:CPU 已經識別到通信模塊,且配置也已經下載到了CPU
發送 LED 燈
代表數據正在通過通信口傳送出去
接收 LED 燈
代表數據正在通過通信口接收進來
注意:通信板 CB1241 只有發送和接收 LED 燈,而沒有診斷 LED 燈
串口模板支持的協議
ASCII
USS
Modbus RTU 主站
Modbus RTU 從站
3964R(RS232/RS422支持)
ASCII 協議的特點
報文可以由用戶自己定義,便于用戶以 ASCII 協議為基礎開發
使用簡單,可以很好地實現與第三方系統的通訊
可以進行識別報文結束設置
可以進行數據流量控制
缺點:具有簡單的校驗功能(奇偶校驗),低數據安全性;數據傳輸無確認信息;通訊需要雙方協調
S7-1200 的 PTP 校驗
串口的校驗:奇偶校驗:用于檢驗數據傳遞的正確性,是最簡單的檢錯方法。
圖3. 校驗設置
偶校驗:如果每字節的數據位中“1”的個數為奇數,則校驗位為1,如果個數為偶數,則校驗位為“0”, 保證數據位和校驗位中“1”的個數是偶數
奇校驗:如果每字節的數據位中“1”的個數為奇數,則校驗位為0,如果個數為偶數,則校驗位為“1”, 保證數據位和校驗位中“1”的個數是奇數
傳號校驗:奇偶校驗位始終設置為 1
空號校驗:奇偶校驗位始終設置為 0
注意:奇偶校驗可以簡單的判斷數據的正確性,從原理上可看出當一位出錯,可以準確判斷,當兩位或更多位誤碼就校驗不出,但由于其實現簡單,仍得到了廣泛使用。
PTP 通信的發送信息配置
定義在信息起始發送斷點及空閑線
字符中斷:當接收到的數據保持為零值的時間大于完整的字符傳輸時間時,代表字符中斷。一個完整字符傳輸時間定義為傳輸起始位、數據位、校驗位和停止位的時間總和。
圖4. 定義在信息起始發送斷點及空閑線
常問問題:為什么發送配置中只配了2位字符中斷,而通信伙伴卻可以正常接收數據?
答:發送配置中設置的字符中斷小于等于16位時,系統自動發出16位的字符中斷位;設置大于16位時,則發出的中斷位與實際設置相符。下圖是設置的發送斷點及空閑線位及其實際發出的波形圖。
波形圖 | 斷點及空閑線設置 |
圖5. 斷點及空閑線波形圖
PTP 通信接收起始條件
以任意字符開始
以特殊條件開始:
通過斷點識別消息開始
通過空閑線識別消息開始
通過單個字符識別消息開始
通過字符序列識別消息開始
圖6. 通信接收起始條件
通過字符序列識別消息開始
對于多個起始序列的組態,只要出現其中一個序列,即會滿足開始條件。下圖右側即為滿足起始條件的字符串。
圖7. 通過字符序列識別消息開始
如果選擇了多個起始條件,則檢查開始條件的順序如下:
注意:
檢查多個開始條件時,如果有一個條件沒有滿足,則 CM 將從第一個所需的條件開始重新啟動檢查。
如果同時組態了字符和字符序列作為開始條件,則字符序列的判斷條件無效。
PTP 通信接收結束條件
通過消息超時識別:時間從接到符合消息開始條件的第一個字符時開始計算
通過響應超時識別:時間從傳送結束時開始計算,在指定時間內接收到字符,需要和其他結束條件配合使用
通過字符間隙識別:消息中兩個連續字符間的間隔超時后,視為消息結束
通過最大長度識別:在接收到組態的最大字符數后,視為消息結束
通過固定長度識別:在接收到組態的最大字符后,視為消息結束
消息本身指定消息長度,在接收到指定長度的消息后,視為消息結束
在接收到指定的字符序列后,視為消息結束
圖8.結束條件設置
注意:與多個起始條件的判斷不同,檢查多個結束條件時,任何一個條件滿足,信息接收結束。
消息超時結束條件
消息超時時間從接到符合消息開始條件的第一個字符時開始計算,如下圖。
圖9.消息超時
響應超時結束條件
響應超時時間從傳送結束時開始計算,只要傳送成功完成且模塊開始接收操作,定時器就會啟動。
圖10.響應超時
注意:響應超時結束條件不能作為單獨的結束條件的設置,否則會在編譯時報如下錯誤:
圖11.響應超時作為單獨的結束條件報錯
從消息中讀取信息長度
圖12.從消息中讀取信息長度的設置
實際收到的數據長度=長度偏移前的字節數+長度字節大小+讀取的實際數據長度+不計入字節長度的字節數 10=(2-1)+1+2+6
PTP 通信接收緩存區
圖13.接收緩沖區設置
注意:緩存區可以存儲多條信息,限制是20條信息或最多1024字節。
緩存區的數據保持
斷電后緩存區中的數據全部丟失,不能保持。
勾選“在啟動時清空接收緩沖區”,CPU停止再啟動時,緩沖區數據清空。
通信模板緩存區超出20條信息
啟用了“防止重寫”,如果緩存區中的信息超過20條,后面的信息被 自動丟棄,報錯16#81E6。
不啟用“防止重寫”,如果緩存區中的信息超過20條,后面的信息會將之前的信息覆蓋,且不報錯。
通信模板緩存區多包數據超出1024字節
發送多個每包50個字節數據,當數據超過1024字節那包就被丟棄了,前面的可以正常接收,且沒有任何報錯.在前面數據被成功接收以后,只要緩存區有空間,后面的數據還可以正常收到。
通信模板緩存區一包數據超出1024字節
如果發送數據一包就大于1024字節時,緩沖區接收到數據到1024字節時,雖然沒有收到結束字符,數據由緩存區送給CPU,但會報錯16#80E0,如下圖。
圖14. 發送數據一包大于1024字節時,緩存區報錯
通信模板緩存區復位
當緩沖區溢出報錯時,需要使用Reset指令進行清除緩沖區的操作。
圖15. 使用Reset指令復位緩存區錯誤,恢復數據接收
為什么不能使用 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 邏輯地或通信地 金屬殼 - 外殼接地
審核編輯:劉清
-
串行通信
+關注
關注
4文章
579瀏覽量
35594 -
ModBus協議
+關注
關注
3文章
178瀏覽量
33532 -
S7-1200
+關注
關注
11文章
331瀏覽量
18077 -
GND
+關注
關注
2文章
540瀏覽量
38905
原文標題:S7-1200 串行通信
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論