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

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

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

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

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

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