|
|
S7-1200支持的串行通訊方式
名稱 | 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; | |
校驗方式 |
|
|
流控 | 硬件流控;軟件流控 | 不支持 |
接收緩沖區 | 1KB | |
通訊距離(屏蔽電纜) | 10m | 1000m |
電源規范(5V DC) | 220mA |
圖1. 串口通信模塊
診斷 LED 燈
發送 LED 燈
接收 LED 燈
注意:安裝于CPU本體上的通信板只有發送和接收 LED 燈,而沒有診斷 LED 燈
串口的校驗: 奇偶校驗:用于檢驗數據傳遞的正確性,是最簡單的檢錯方法。
圖2. 校驗設置
注意:奇偶校驗可以簡單的判斷數據的正確性,從原理上可看出當一位出錯,可以準確判斷,當兩位或更多位誤碼就校驗不出,但由于其實現簡單,仍得到了廣泛使用。
定義在信息起始發送斷點及空閑線
字符中斷:當接收到的數據保持為零值的時間大于完整的字符傳輸時間時,代表字符中斷。一個完整字符傳輸時間定義為傳輸起始位、數據位、校驗位和停止位的時間總和。
圖3. 定義在信息起始發送斷點及空閑線
常問問題:為什么發送配置中只配了2位字符中斷,而通信伙伴卻可以正常接收數據?
答:發送配置中設置的字符中斷小于等于16位時,系統自動發出16位的字符中斷位;設置大于16位時,則發出的中斷位與實際設置相符。下圖是設置的發送斷點及空閑線位及其實際發出的波形圖。
波形圖
|
斷點及空閑線設置
|
圖4. 斷點及空閑線波形圖
以任意字符開始
以特殊條件開始:
圖5. 通信接收起始條件
通過字符序列識別消息開始
對于多個起始序列的組態,只要出現其中一個序列,即會滿足開始條件。下圖右側即為滿足起始條件的字符串。
圖6. 通過字符序列識別消息開始
如果選擇了多個起始條件,則檢查開始條件的順序如下:
注意:檢查多個開始條件時,如果有一個條件沒有滿足,則 CM 將從第一個所需的條件開始重新啟動檢查。
圖7.結束條件設置
注意:與多個起始條件的判斷不同,檢查多個結束條件時,任何一個條件滿足,信息接收結束。
消息超時結束條件
消息超時時間從接到符合消息開始條件的第一個字符時開始計算,如下圖。
圖8.消息超時
響應超時結束條件
響應超時時間從傳送結束時開始計算,只要傳送成功完成且模塊開始接收操作,定時器就會啟動。
圖9.響應超時
注意:響應超時結束條件不能作為單獨的結束條件的設置,否則會在編譯時報如下錯誤:
圖10.響應超時作為單獨的結束條件報錯
從消息中讀取信息長度
圖11.從消息中讀取信息長度的設置
實際收到的數據長度= 長度偏移前的字節數+長度字節大小+讀取的實際數據長度+不計入字節長度的字節數
圖12.程序中讀到的實際數據長度
緩存區的數據保持
斷電后緩存區中的數據全部丟失,不能保持。
通信模板緩存區超出20條信息
如果緩存區中的信息超過20條,后面的信息被 自動丟棄,且不報錯。
通信模板緩存區多包數據超出1024字節
發送多個每包50個字節數據,當數據超過1024字節那包就被丟棄了,前面的可以正常接收,且沒有任何報錯.在前面數據被成功接收以后,只要緩存區有空間,后面的數據還可以正常收到。
通信模板緩存區一包數據超出1024字節
如果發送數據一包就大于1024字節時,緩沖區接收到數據到1024字節時,雖然沒有收到結束字符,數據由緩存區送給CPU,但會報錯16#80E0,如下圖。
圖13. 發送數據一包大于1024字節時,緩存區報錯
、
圖14. 使用RST指令復位緩存區錯誤,恢復數據接收
注意:緩存區可以存儲多條信息,限制是20條信息或最多1024字節。
答:因為 S7-1200 RS485 模塊接口不提供24V電源,不能給 PC/PPI 電纜供電,所以電纜無法工作。
解決辦法:可以將 S7-1200 RS485 與 S7-200 通信口網絡連接,將 PC/PPI 電纜插在 S7-200 通信口上總線連接器的編程口上,對S7-1200 RS485進行串口調試。此時S7-200必須上電并打到停止狀態。
CB1241 RS485 信號板(安裝在CPU機本體上) ,訂貨號為: 6ES7 241 1CH30-1XB0 接線如圖1
圖1 CB1241 RS485
注釋: 3號針腳--RS485信號 B(+) ;8號針腳--RS485信號A(-);5號針腳--接屏蔽等電位點。
CB1241 RS232 通訊模塊,訂貨號為: 6ES7 241 1AH30-0XB0 接線如圖2
圖2 CM1241 RS232
注釋: 2號針腳--RS232 信號輸入接收。3號針腳--RS232 信號輸出發送。 5--接地等電位
CB1241 RS232 通訊模塊,訂貨號為: 6ES7 241 1CH31-0XB0 接線如圖3
圖2 CM1241 RS422/485
注釋:
RS422 接線方法: 2號與9號針腳 -- RS422 發送信號。 3號與8號針腳 -- RS422 接收信號;SHELL接屏蔽等電位點 。
RS485 接線方法:3號針腳--RS485信號 B(+) ;8號針腳--RS485信號A(-) 1號針腳-電位點。
RS 485 終端電阻安裝方法及阻值大小,如圖4
發送指令及發送完成位:
圖1. 發送完成位
接收指令及接收完成位:
圖2.接收完成位
S7-1200字符串結構:
總字符數 | 當前字符數 | 字符1 | 字符2 | ...... | 字符256 |
如上面S7-1200字符串結構,第一個字節是總字符數,第二個字節是當前字符數,所以發送和接收真正的字符內容都應該從字符串的第三個字節開始,因此發送和接收字符串都要進行相應的轉換。
發送字符串轉換:
要將 DB3.DBB20 中的字符串發送出去,需要經過下列轉換:
圖3. 發送字符串轉換
接收字符串轉換:
要將收到的字符串送入 DB3.DBB30 中需要進行以下轉換:
圖4. 接收字符串轉換
通信任務:
主站將 P#DB3.DBX20.0 中的字符串“西門子”(注意發送緩沖區由 P#DB3.DBX22.0 開始,因為字符串前兩個字節分別是總字符數和當前字符數)發送給從站的接收緩沖區P#DB3.DBX32.0;從站 P#DB3.DBX22.0 返回“博大精深”給主站 P#DB3.DBX32.0。
主站輪詢:
圖5. 主站輪詢
從站輪詢:
圖6. 從站輪詢
通信結果:
西門子S7-1200 緊湊型PLC在當前的市場中有著廣泛的應用,作為經常與SINAMICS G120系列變頻器共同使用的PLC,其USS通信協議的使用一直在市場上有著非常廣泛的應用。本文將主要介紹如何使用USS通信協議來實現S7-1200與G120變頻器的通信。
1.控制系統原理和接線圖
下圖是本例中所使用的原理和接線圖。
圖1:控制系統原理和接線圖
2.硬件需求
S7-1200 PLC目前有3種類型的CPU:
1)S7-1211C CPU。
2)S7-1212C CPU。
3)S7-1214C CPU。
這三種類型的CPU都可以使用USS通信協議通過通信模塊CM1241 RS485來實現S7-1200與G120變頻器的通信。
本例中使用的PLC硬件為:
1)PM1207電源 ( 6EP1 332-1SH71 )
2) S7-1214C ( 6ES7 214 -1BE30 -0XB0 )
3) CM1241 RS485 ( 6ES7 241 -1CH30 -0XB0 )
4) 模擬器 ( 6ES7 274 -1XH30 -0XA0 )
本例中使用的G120變頻器硬件為:
1) SINAMICS G120 PM240 (6SL3244-0BA20-1BA0)
2) SINAMICS G120 CU240S(6SL3224-0BE13-7UA0)
3) SIEMENS MOTOR (1LA7060-4AB10)
4) 操作面板 ( XAU221-001469)
5) USS 通信電纜 ( 6XV1830-0EH10)
3.軟件需求
1) 編程軟件 Step7 Basic V10.5 ( 6ES7 822-0AA0-0YA0)
4.組態
我們通過下述的實際操作來介紹如何在Step7 Basic V10.5 中組態S7-1214C 和G120變頻器的USS通信。
4. 1 PLC 硬件組態
首先在Step7 Basic V10.5中建立一個項目,如圖1所示。
圖2: 新建S7 1200項目
在硬件配置中,添加CPU1214C和通信模塊CM1241 RS485模塊,如圖2所示。
圖3: S7 1200硬件配置
在CPU的屬性中,設置以太網的IP地址,建立PG與PLC的連接,如下圖所示。
圖4: S7 1200 IP地址的設置
4. 2 G120參數設置
變頻器的參數設置如下表所示。
序號 | 功能 | 參數 | 設定值 |
1 | 工廠設置復位 | P0010 | 30 |
2 | 工廠設置復位 | P970 | 1 |
3 | 快速啟動設置 | P0010 | 1 |
4 | 電機額定電壓 | P0304 | 380V |
5 | 電機額定功率 | P0307 | 5.5KW |
6 | 電機額定頻率 | P0310 | 50Hz |
7 | 電機額定轉速 | P0311 | 1350r/min |
8 | USS命令源 | P0700 | 5 |
9 | 頻率設定源 | P01000 | 5 |
10 | 最小電機頻率 | P1080 | 0.0Hz |
11 | 最大電機頻率 | P1081 | 50.0Hz |
12 | 啟動斜坡時間 | P1120 | 10.0S |
13 | 延遲斜坡時間 | P1121 | 10.0S |
14 | 結束快速啟動設置 | P3900 | 1 |
15 | 激活專家模式 | P0003 | 3 |
16 | 參考頻率 | P2000 | 50.0Hz |
17 | USS數據傳輸速度 | P2010 | 9 |
18 | USS從站地址 | P2011 | 1 |
19 | USS PZD長度 | P2012 | 2 |
20 | USS PKW長度 | P2013 | 4 |
21 | 通信監控 | P2014 | 0 |
22 | 在E2PROM 保存數據 | P0971 | 1 |
23 | 激活專家模式 | P0003 | 3 |
24 | 激活參數模式 | P0010 | 30 |
25 | 從G120中傳輸參數到BOP | P0802 | 1 |
表1 :G120變頻器的參數設置
注意:表1中的17,18,19,20 這四項參數值的設置必須使PLC的參數值與變頻器的參數值相一致。而19,20這兩個參數值必須設置成如表1中的值,否則有可能變頻器與S7-1200通信有如下問題:可能不能讀出從變頻器反饋回來的參數值。
5.USS通信原理與編程的實現
5. 1 S7 1200 PLC與G120 通過USS通信的基本原理
S7 1200提供了專用的USS庫進行USS通信,如下圖所示:
圖5: S7 1200 專用的USS庫
USS_DRV 功能塊是S7-1200 USS通信的主體功能塊,接受變頻器的信息和控制變頻器的指令都是通過這個功能快來完成的。必須在主 OB中調用,不能在循環中斷OB中調用。
USS_PORT功能塊是S7-1200與變頻器USS通信的接口,主要設置通信的接口參數。可在主OB或中斷OB中調用。
USS_RPM功能塊是通過USS通信讀取變頻器的參數。必須在主 OB中調用,不能在循環中斷OB中調用。
USS_WPM功能塊是通過USS通信設置變頻器的參數。必須在主 OB中調用,不能在循環中斷OB中調用。
這些專用功能塊與變頻器之間的控制關系如下圖所示:
圖6: USS 通信功能塊與變頻器的控制關系
USS_DRV功能塊通過USS_DRV_DB數據塊實現與USS_PORT功能塊的數據接收與傳送,而USS_PORT功能塊是S7-1200 PLC CM1241 RS485模塊與變頻器之間的通信接口。USS_RPM功能塊和USS_WPM功能塊與變頻器的通信與USS_DRV功能塊的通信方式是相同的。
每個S7-1200 CPU最多可帶3個通信模塊,而每個CM1241 RS485通信模塊最多支持16個變頻器。因此用戶在一個S7-1200 CPU中最多可建立3個USS網絡,而每個USS網絡最多支持16個變頻器,總共最多支持48個USS變頻器。
5. 2 S7 1200 PLC進行USS通信的編程
1.USS通信接口參數功能塊的編程
USS通信接口參數功能塊的編程如下圖所示。
圖7: USS通信接口參數功能塊的編程
USS_PORT功能塊用來處理USS網絡上的通信,它是S71200 CPU與變頻器的通信借口。每個CM1241 RS485模塊有且必須有一個USS_PORT功能塊。
PORT:指的是通過哪個通信模塊進行USS通信。
BAUD:指的是和變頻器進行通行的速率。 變頻器的參數P2010種進行設置。
USS_DB:指的是和變頻器通信時的USS數據塊。每個通信模塊最多可以有16個USS數據塊,每個CPU最多可以有48個USS數據塊,具體的通信情況要和現場實際情況相聯系。每個變頻器與S7-1200進行通信的數據塊是唯一的。
ERROR:輸出錯誤。
STATUS:掃描或初始化的狀態。
S7-1200 PLC與變頻器的通信是與它本身的掃描周期不同步的,在完成一次與變頻器的通信事件之前,S7-1200通常完成了多個掃描。
USS_PORT通信的時間間隔是S7-1200與變頻器通信所需要的時間,不同的通信波特率對應的不同的USS_PORT通信間隔時間。下圖列出了不同的波特率對應的USS_PORT最小通信間隔時間。
圖8:不同的波特率對應的USS_PORT最小通信間隔時間
USS_PORT在發生通信錯誤時,通常進行3次嘗試來完成通信事件,那么S7-1200與變頻器通信的時間就是USS_PORT發生通信超時的時間間隔。例如:如果通信波特率是57600,那么USS_PORT與變頻器通信的時間間隔應當大于最小的調用時間間隔,即大于36.1Ms而小于109Ms。S7-1200 USS 協議庫默認的通信錯誤超時嘗試次數是2次。
基于以上的USS_PORT通信時間的處理,我們建議在循環中斷OB塊中調用USS_PORT通信功能塊。在建立循環中斷OB塊時,我們可以設置循環中斷OB塊的掃描時間,以滿足通信的要求。循環中斷OB塊的掃描時間的設置如下圖所示:
圖9:循環中斷OB塊的掃描時間的設置
2.USS_DRV功能塊的編程
USS_DRV功能塊的編程如下圖所示。
圖10: USS_DRV功能塊的編程
USS_DRV功能塊用來與變頻器進行交換數據,從而讀取變頻器的狀態以及控制變頻器的運行。每個變頻器使用唯一的一個USS_DRV功能塊,但是同一個CM1241 RS485模塊的USS網絡的所有變頻器(最多16個)都使用同一個USS_DRV_DB。
USS_DRV_DB:指定變頻器進行USS通信的數據塊。
RUN: 指定DB塊的變頻器啟動指令。
OFF2: 緊急停止,自由停車。 該位為0時停車。
OFF3: 快速停車,帶制動停車。 該位為0時停車。
F_ACK: 變頻器故障確認。
DIR : 變頻器控制電機的轉向。
SPEED_SP: 變頻器的速度設定值。
ERROR: 程序輸出錯誤。
RUN_EN: 變頻器運行狀態指示。
D_DIR: 變頻器運行方向狀態指示。
INHIBIT: 變頻器是否被禁止的狀態指示。
FAULT: 變頻器故障。
SPEED: 變頻器的反饋的實際速度值。
DRIVE: 變頻器的USS站地址。變頻器參數P2011設置。
PZD_LEN: 變頻器的循環過程字。 變頻器參數P2012設置。
注意:變頻器的PKW的長度在這里是特殊需要注意的,在使用USS通信時必須是4,如果改成3或者127都將不能讀取反饋回來的過程值。
3.USS_RPM功能塊的編程
USS_RPM功能塊的編程 如下圖所示。
圖11:USS_RPM功能塊的編程
USS_RPM功能塊用于通過USS通信從變頻器讀取參數。
REQ: 讀取參數請求。
DRIVE: 變頻器的USS站地址。
PARAM: 變頻器的參數代碼。
INDEX: 變頻器的參數索引代碼
USS_DB: 指定變頻器進行USS通信的數據塊。
DONE: 讀取參數完成。
ERROR: 讀取參數錯誤。
STATUS: 讀取參數狀態代碼。
VALUE: 所讀取的參數的值。
注意:進行讀取參數功能塊編程時,各個數據的數據類型一定要正確對應。如果需要設置變量讀取參數時,注意該參數變量的初始值不能為0,否則容易產生通信錯誤。
4.USS_WPM功能塊的編程
USS_WPM功能塊的編程如下圖所示。
圖12:USS_WPM功能塊的編程
USS_WPM 功能塊用于通過USS通信設置變頻器的參數。
REQ: 讀取參數請求。
DRIVE: 變頻器的USS站地址。
PARAM: 變頻器的參數代碼。
INDEX: 變頻器的參數索引代碼。
EEPROM:把參數存儲到變頻器的EEPROM。
VALUE: 設置參數的值。
USS_DB: 指定變頻器進行USS通信的數據塊。
DONE: 讀取參數完成。
ERROR: 讀取參數錯誤狀態。
STATUS: 讀取參數狀態代碼。
注意:對寫入參數功能塊編程時,各個數據的數據類型一定要正確對應。如果需要設置變量進行寫入參數值時,注意該參數變量的初始值不能為0,否則容易產生通信錯誤。
5. 3 S7 1200 PLC進行USS通信的調試
S7-1200 PLC 通過CM1241 RS485模塊與變頻器進行USS通信時,需要注意如下幾點:
在S7-1200 PLC 與變頻器的USS通信的實際使用過程中,需要根據網絡的現場情況,對問題進行具體的解決。
關鍵詞
USS 協議,S7-1200,G120,變頻器