1 G120 PROFIBUS通信功能概述
SINAMICS G120第二代控制單元CU240B-2 DP、CU240E-2 DP、CU240E-2 DP F支持基于PROFIBUS的周期過程數據交換和變頻器參數訪問。
> 周期過程數據交換--通過西門子全新的611D伺服軸卡6SN1118-0DJ21-0AA2進口現貨該通信PROFIBUS主站可將控制字和主設定值等過程數據周期性的發送至變頻器,并從變頻
器周期性的讀取狀態字和實際轉速等過程數據。G120最多可以接收和發送8個過程數據。該通信使用周期性通信的
PZD通道(過程數據區),變頻器不同的報文類型定義了不同數量的過程數據(PZD)。
> 變頻器參數訪問--提供PROFIBUS主站訪問變頻器參數的接口,有兩種方式能夠訪問變頻器參數:
-
周期性通信的PKW通道(參數數據區):通過PKW通道主站可以讀寫變頻器參數,每次只能讀或寫一個參數,PKW通道的長度固定為4個字。
-
非周期性通信:主站采用PROFIBUS-DPV1通信訪問變頻器數據記錄區,每次可以讀或寫多個參數。
本文通過示例介紹S7-1200與CU240E-2 DP F的PROFIBUS 非周期通信,介紹如何通過非周期通信讀寫多個變頻器參數。
2 非周期通信
非周期通信工作模式:主站調用“WRREC” 指令將“參數請求”寫入從站,從站內部處理后,主站調用“RDREC”指令讀取包含“參數應答”數據記錄!皡嫡埱蟆焙汀皡祽稹钡臄祿䞍热輵裾誔ROFIdrive參數通道(DPV1)數據集DS47(非周期參數通道結構)!皡嫡埱蟆卑ㄗx參數和寫參數請求,其數據結構參考表2-1。參數請求結構字段的說明參考表2-2!皡祽稹卑ㄗx參數和寫參數應答,其數據結構參考表2-3。參數應答結構字段說明參考表2-4。參數應答中的故障值說明1、參數應答中的故障值說明2參考表2-5和表2-6。使用非周期通信對讀寫參數數量沒有限制,但每個讀寫任務最大為240個字節。
表2-1 參數請求數據結構
|
字節n
|
字節n+1
|
n值
|
報文頭
|
請求參考
|
請求ID
|
0
|
驅動對象ID
|
參數數量m
|
2
|
參數1
|
屬性
|
索引的數量
|
4
|
參數號
|
|
6
|
第一個索引的編號
|
|
8
|
參數2
|
…
|
…
|
…
|
…
|
…
|
參數m
|
…
|
…
|
參數1的值*
(*只有寫任務)
|
數據格式
|
參數值數量
|
|
參數值
|
…
|
參數2的值*
|
…
|
|
…
|
…
|
|
參數m的值*
|
…
|
|
表 2-2 參數請求結構字段說明
字段
|
數據類型
|
數值(十六進制)
|
說明
|
請求參考
|
8位無符號數
|
01….FF
|
用于區分對應的請求和應答。主站改變每個新的請求的索引號,從站在相應的應答中返回請求的索引號。
|
請求ID
|
8位無符號數
|
01
02
|
區分請求的類型
讀任務
寫任務
|
驅動對象ID
|
8位無符號數
|
01
|
用于區分驅動對象,固定為01hex
|
參數數量m
|
8位無符號數
|
01….27
|
訪問的參數的個數
|
屬性
|
8位無符號數
|
10
20
|
訪問參數元素的類型
數值
描述(只有讀任務)
|
索引數量
|
8位無符號數
|
00….EA
|
要訪問的參數中多個索引的數量
(參數無索引時00hex)
|
參數號
|
16位無符號數
|
0001….FFFF
|
訪問的參數號
|
索引編號
|
16位無符號數
|
0000….FFFF
|
要訪問的參數中多個索引的第一個索引的下標(參數無索引時0000hex)
|
數據格式
|
8位無符號數
|
02
03
04
05
06
07
08
10
13
41
42
43
|
通過數值判斷參數值的數據類型
8位整型
16位整型
32位整型
8位無符號數
16位無符號數
32位無符號數
浮點數
8位數據串(Octet String)(長度16bit)
時間差(Time Difference)(長度32bit)
字節
字
雙字
|
參數值數量
|
8位無符號數
|
00….EA
|
說明隨后的參數值的個數
|
參數值
|
16位無符號數
|
0000….FFFF
|
參數值
|
表2-3參數應答數據結構
|
字節n
|
字節n+1
|
n值
|
報文頭
|
請求參考映射
|
應答ID
|
0
|
驅動對象ID映射
|
參數數量m
|
2
|
參數1的值*
(*只有讀任務)
|
數據格式
|
參數值數量
|
4
|
參數值或錯誤值
|
6
|
…
|
…
|
參數2*
|
…
|
…
|
…
|
…
|
…
|
參數m*
|
…
|
…
|
表 2-4 參數應答結構字段說明
字段
|
數據類型
|
數值(十六進制)
|
說明
|
請求參考映射
|
8位無符號數
|
01….FF
|
返回請求參考與請求相同
|
應答ID
|
8位無符號數
|
01
81
02
82
|
讀任務
讀任務沒有完整執行
寫任務
寫任務沒有完整執行
|
驅動對象映射
|
8位無符號數
|
00….FF
|
驅動對象號與請求相同
|
參數數量m
|
8位無符號數
|
01….27
|
返回的參數的個數與請求相同
|
數據格式
|
8位無符號數
|
02
03
04
05
06
07
08
10
13
41
42
43
44
|
通過數值判斷參數值的數據類型
8位整型
16位整型
32位整型
8位無符號數
16位無符號數
32位無符號數
浮點數
8位數據串(Octet String)(長度16bit)
時間差(Time Difference)(長度32bit)
字節
字
雙字
錯誤
|
參數值數量
|
8位無符號數
|
00….EA
|
說明隨后的參數值的個數
|
參數值或錯誤值
|
16位無符號數
|
0000….00FF
|
參數值或錯誤時的錯誤號
|
表 2-5 參數應答中的故障值說明1
表 2-6 參數應答中的故障值說明2
3 S7-1200與CU240X-2 DP的PROFIBUS 非周期通信實例
3.1 S7-1200組態
CU240E-2 DP F非周期通信與所選擇的報文結構無關,選擇任何一種報文格式都可以進行非周期通信,在使用系統功能“RDREC”和“WRREC”讀寫變頻器數據記錄時需要使用西門子全新的611D伺服軸卡6SN1118-0DJ21-0AA2進口現貨報文標識符。本示例以組態353報文為例。
S7-1200與CU240X-2 DP的PROFIBUS通信基本組態過程以及變頻器通信參數設置請參考《S7-1200與G120 CU240X-2 DP的PROFIBUS PZD通信》文檔,在此不做詳細介紹。
? 組態與CU240E-2 DP F通信報文
1) 將硬件目錄中“SIEMENS telegr 353, PKW+PZD-2/2”模塊拖拽到“設備概覽”視圖的第1個插槽中,系統自動分配了輸入輸出地址。
2)為方便編程將插槽1的PKW區重命名為“PKW”(在調用系統功能“RDREC”和“WRREC”時將用到此名字),將插槽2的PZD區重命名為“PZD”。

圖3-1組態與CU240E-2 DP F通信報文
? 編程:在S7-1200中調用擴展指令“RDREC”讀取從站數據記錄區,調用擴展指令“WRREC”寫入從站數據記錄區。
1) 雙擊項目樹下的“Main(OB1)”打開OB1程序編輯窗口;
2) 擴展指令目錄中“分布式I/O -> 其它 -> 驅動器 -> RDREC和WRREC”指令拖拽到程序編輯窗口中;
3) 分別指定“RDREC和WRREC”的背景數據塊,使用系統自動分配即可,點擊“確認”按鈕。

圖3-2 S7-1200編程
? 為系統功能“RDREC”和“WRREC”分配硬件標識:
1) 單擊塊參數“ID”;
2) 在下拉列表中選擇“PKW[AI/AO]”。

圖3-3分配硬件標識符
? 為系統功能“RDREC”和“WRREC”分配其它參數:
1) 塊參數INDEX = 47
2) M10.0上升沿觸發寫任務,M20.0上升沿觸發讀任務。
3) WRREC寫入緩沖區從MB100開始的40個字節;
4) RDREC讀取緩沖區從MB200開始的40個字節;
5) 其它參數分配請參考右圖。
注意:也可以使用DB塊作為緩沖區,創建DB時請將塊訪問模式定義為“標準-與S7-300/400兼容”模式。

圖3-4分配其它參數
3.2示例1:讀取P2900、P2902[2]~P2902[5]多個參數值
通過非周期通信讀P2900、P2902[2]~P2902[5]參數值,變量表模擬程序參考圖3-5。
-
按照讀參數請求結構將數據寫入“WRREC”數據緩沖區MB100~MB115的16個字節中,數據格式參考表3-1 ;
-
設置寫數據記錄長度16個字節,MW16 = 16;
-
設置M10.0 = 1,啟動“WRREC”寫從站數據記錄任務;MD12指示“WRREC”指令執行狀態,具體狀態含義請參考TIA PORTAL在線幫助;
-
寫數據記錄完成后,設置M20.0 = 1,啟動“RDREC”讀從站數據記錄任務;
-
MW26中指示讀取從站數據記錄的長度28字節,MD22指示“RDREC”指令執行狀態;
-
按照讀參數應答結構分析MB200~MD227中28字節的數據,數據格式參考表3-2,讀取到的P2900=33.0,P2902.2=10.0,P2902.3=20.0,P2902.4=50.0,P2902.5=100.0;

圖3-5 S7-1200讀取P2900、P2902[2]~P2902[5]多個參數值
表3-1 讀參數 - 寫數據記錄請求
|
字節n
|
字節n+1
|
地址
|
報文頭
|
請求參考
|
01hex
|
請求ID
|
01 hex
|
MW100
|
驅動對象ID
|
01 hex
|
參數數量m
|
02 hex
|
MW102
|
參數1
|
屬性
|
10 hex
|
索引的數量
|
00 hex
|
MW104
|
參數號 = 0B54 hex
|
MW106
|
第一個索引的編號 = 0000 hex
|
MW108
|
參數2
|
屬性
|
10 hex
|
索引的數量
|
04 hex
|
MW110
|
參數號 = 0B56 hex
|
MW112
|
第一個索引的編號 = 0002 hex
|
MW114
|
表3-2讀參數 - 讀數據記錄應答
|
字節n
|
字節n+1
|
地址
|
報文頭
|
請求參考映射
|
01hex
|
應答ID
|
01 hex
|
MW200
|
驅動對象ID映射
|
01 hex
|
參數數量m
|
02 hex
|
MW202
|
參數1的值
|
數據格式
|
08 hex
|
參數值數量
|
01hex
|
MW204
|
參數值 = 33.0(浮點數)
|
MW206
|
MW208
|
參數2的值
|
數據格式
|
08 hex
|
參數值數量
|
04hex
|
MW210
|
參數值 = 10.0(浮點數)
|
MW212
|
MW214
|
參數值 = 20.0(浮點數)
|
MW216
|
MW217
|
參數值 = 50.0(浮點數)
|
MW220
|
MW222
|
參數值 = 100.0(浮點數)
|
MW224
|
MW226
|
3.3示例2:修改P2900、P2901參數值
通過西門子全新的611D伺服軸卡6SN1118-0DJ21-0AA2進口現貨非周期通信設置P2900=11.0、P2901=22.0,變量表模擬程序參考圖3-6。
-
按照寫參數請求結構將數據寫入“WRREC”數據緩沖區MB100~MB127的28個字節中,數據格式參考表3-3;
-
設置寫數據記錄長度28個字節,MW16 = 28;
-
設置M10.0 = 1,啟動“WRREC”寫從站數據記錄任務;MD12指示“WRREC”指令執行狀態,具體狀態含義請參考TIA PORTAL在線幫助;
-
寫數據記錄完成后,設置M20.0 = 1,啟動“RDREC”讀從站數據記錄任務;
-
MW26中指示讀取從站數據記錄的長度4字節,MD22指示“RDREC”指令執行狀態;
-
按照寫參數應答結構分析MB200~MD3中4字節的數據,數據格式參考表3-4,正確寫入P2900=11.0、P2901=22.0。

圖3-6 S7-1200寫P2900、P2901參數值
表3-3 寫參數 - 寫數據記錄請求
|
字節n
|
字節n+1
|
地址
|
報文頭
|
請求參考
|
01hex
|
請求ID
|
02 hex
|
MW100
|
驅動對象ID
|
01 hex
|
參數數量m
|
02 hex
|
MW102
|
參數1
|
屬性
|
10 hex
|
索引的數量
|
01 hex
|
MW104
|
參數號 = 0B54 hex
|
MW106
|
第一個索引的編號 = 0000 hex
|
MW108
|
參數2
|
屬性
|
10 hex
|
索引的數量
|
01 hex
|
MW110
|
參數號 = 0B55 hex
|
MW112
|
第一個索引的編號 = 0000 hex
|
MW114
|
參數1數值
|
數據格式
|
08hex
|
參數值數量
|
01hex
|
MW116
|
參數值 = 11.0(浮點數)
|
MW118
|
MW120
|
參數2數值
|
數據格式
|
08hex
|
參數值數量
|
01hex
|
MW122
|
參數值 = 22.0(浮點數)
|
MW124
|
MW126
|
表3-3 寫參數 – 讀數據記錄應答
|
字節n
|
字節n+1
|
地址
|
報文頭
|
請求參考映射
|
01hex
|
應答ID
|
01 hex
|
MW200
|
驅動對象ID映射
|
01 hex
|
參數數量m
|
02 hex
|
MW202
|