西門子IM 154-2PROFIBUS-DP 接口模塊 西門子IM 154-2PROFIBUS-DP 接口模塊
潯之漫智控技術(shù)(上海)有限公司 上海詩慕自動化設(shè)備有限公司
本公司銷售西門子自動化產(chǎn)品,*,質(zhì)量保證,價格優(yōu)勢
西門子PLC,西門子觸摸屏,西門子數(shù)控系統(tǒng),西門子軟啟動,西門子以太網(wǎng)
西門子電機,西門子變頻器,西門子直流調(diào)速器,西門子電線電纜
我公司大量現(xiàn)貨供應(yīng),價格優(yōu)勢,*,德國*
問題:
如何通過 ST 語言實現(xiàn) SIMOTION 的 DP從站地址修改?
回答:
通過執(zhí)行_setDpSlaveAddress程序可以實現(xiàn)SIMOTION的DP從站地址修改。
實現(xiàn)方法:
(1)首先打開HW config 硬件組態(tài),配置接口為DP從站:
圖01. 設(shè)置DP 接口為從站
(2)配置DP從站通信的IO地址如下圖:
西門子IM153-2接口模塊
圖02. 配置DP從站通信的IO地址
(3)查詢DP 診斷地址用于后續(xù)編程時填寫參數(shù)使用:
圖03. 查詢該接口的診斷地址
(4)編寫如下程序
VAR_GLOBAL
locDpSlaveAddress : SINT := 8; // 需要使用的PROFIBUS地址
retDpSlaveAddress : structRetDpSlaveAddress; // 返回值變量
locRetVal : DINT;
neededSetDpAddress : DINT := 0;
startChange :BOOL;
END_VAR
END_INTERFACE
IMPLEMENTATION
PROGRAM bkgChangDPaddress
IF startChange THEN
// 讀取當前的DP從站地址
retDpSlaveAddress := _getActiveDpSlaveAddress (
logicalAddressCommunicationAdapter := 16382 // 步驟3查詢的接口診斷地址
);
IF (0 = retDpSlaveAddress.functionResult) THEN
// 檢查是否需要更新DP地址,如果當前地址與地址locDpSlaveAddress 不相同,則執(zhí)行更新
IF (retDpSlaveAddress.dpSlaveAddress <> locDpSlaveAddress) THEN
neededSetDpAddress := 1;
ELSE
;
END_IF;
END_IF;
IF (1 = neededSetDpAddress) THEN
// 設(shè)置新的DP地址
locRetVal := _setDpSlaveAddress (
logicalAddressCommunicationAdapter := 16382, // 步驟3查詢的接口診斷地址
dpSlaveAddress := locDpSlaveAddress
// PROFIBUS address of the local slot
);
IF (0 = locRetVal) THEN
locRetVal := _activateDpSlaveAddress (
logicalAddressCommunicationAdapter := 16382 // 步驟3查詢的接口診斷地址
);
ELSE
;
END_IF;
END_IF;
END_IF;
(5)修改startChange為1,程序執(zhí)行成功會導(dǎo)致SIMOTION重新啟動,隨后新的DP地址生效。
描述:
SFC14 "DPRD_DAT"
使用 SFC 14“DPRD_DAT”(讀取 DP 標準從站的*數(shù)據(jù))可讀出DP標準從站/PROFINET IO 設(shè)備的數(shù)據(jù)。 如果在數(shù)據(jù)傳送過程中沒有發(fā)生錯誤,讀出的數(shù)據(jù)就被輸入到由RECORD 建立的目標域。目標域必須與在 STEP 7 組態(tài)中所選的模塊的長度相同。 當調(diào)用 SFC14 時,只能在所配的起始地址下訪問一個模塊/DP標識的數(shù)據(jù)。
SFC15 "DPWR_DAT"
使用 SFC 15“DPWR_DAT”(將*數(shù)據(jù)寫入 DP 標準從站)可將 RECORD 中的數(shù)據(jù)*地傳送到所尋址的DP標準從站/PROFINET IO 設(shè)備中。 源區(qū)域必須與在 STEP 7 組態(tài)中所選的模塊的長度相同。 對于模塊化結(jié)構(gòu)的標準DP從站只能訪問一個DP從站模塊。
PROFIBUS DP用戶*性數(shù)據(jù)區(qū)大長度和尋址
西門子IM153-2接口模塊
下面的手冊中可以找到更多關(guān)于PROFIBUS DP用戶*性數(shù)據(jù)區(qū)大長度和尋址的信息。
表 01
PROFINET IO用戶*性數(shù)據(jù)區(qū)大長度和尋址
下面的手冊中可以找到更多關(guān)于PROFINET IO用戶*性數(shù)據(jù)區(qū)大長度和尋址的信息。
表 02
對于通信處理器(CP)子模塊的*性數(shù)據(jù)區(qū)域的大小明確如下:
CP | MLFB | 上限 |
CP 443-1 | 6GK7443-1EX20-0XE0 | 240 bytes |
CP 443-1 | 6GK7443-1EX30-0XE0 | 240 bytes |
CP 443-1 Advanced | 6GK7443-1EX40-0XE0 | 128 bytes |
CP 443-1 Advanced | 6GK7443-1EX41-0XE0 | 240 bytes |
CP 443-1 Advanced | 6GK7443-1GX20-0XE0 | 240 bytes |
CP 443-1 Advanced | 6GK7443-1GX30-0XE0 | 240 bytes |
CP 343-1 | 6GK7343-1EX21-0XE0 | 128 bytes |
CP 343-1 | 6GK7343-1EX30-0XE0 | 240 bytes |
CP 343-1 Advanced | 6GK7343-1GX21-0XE0 | 128 bytes |
CP 343-1 Advanced | 6GK7343-1GX30-0XE0 | 240 bytes |
CP 343-1 Advanced | 6GK7343-1GX31-0XE0 | 240 bytes |
表 03
注意事項:
PROFIBUS DP 標準定義了*性用戶數(shù)據(jù)傳送的數(shù)量上限。當前的 DP 標準從站遵守這些上限,但早期的CPU(1999年前),對*性用戶數(shù)據(jù)的傳送,不同的 CPU 有特定的限制。
這些 CPU 對 DP 標準從站*性讀寫數(shù)據(jù)的大長度在“DP主站 - 每個 DP 從站的用戶數(shù)據(jù)”下的技術(shù)數(shù)據(jù)中給出。根據(jù)這些數(shù)值,使用該值,新近的CPU可支持超出DP標準從站 所提供或接收的數(shù)據(jù)長度。
重要事項:
分散讀寫*性數(shù)據(jù)(小于 4 字節(jié)),不調(diào)用系統(tǒng)函數(shù) SFC14 和 SFC15 時,也是可行的。支持此功能的模塊可參考條
下表給出了超過過程映像之外的*性數(shù)據(jù)的訪問方式。
數(shù)據(jù)區(qū)長度 | 讀/寫訪問 | 數(shù)據(jù)*性 |
1 字節(jié) | 裝載/傳送 | 單元*性 |
2 字節(jié) | 字裝載/字傳送 | 總長*性 |
3 字節(jié) | SFC14 / SFC15 | 總長*性 |
4 字節(jié) | 雙字裝載/雙字傳送 | 總長*性 |
5 字節(jié) | SFC14 / SFC15 | 總長*性 |
表 04
舉例:
在下面的例子中,一個S7-400 CPU作為DP主站,一個CP342-5作為從站。
DP從站的輸入和輸出*性數(shù)據(jù)區(qū)域設(shè)定如下:
- 對于輸出,設(shè)定傳輸50個字節(jié)的總長*性數(shù)據(jù)。這50個字節(jié)在S7-400CPU的過程影像分區(qū)3中數(shù)據(jù)是*的,所以可以用 load/transfer 命令進行讀操作。
- 對于輸入,設(shè)定傳輸20個字節(jié)的總長*性數(shù)據(jù)。這20個數(shù)據(jù)不存儲在過程映像或過程映像區(qū)中,只能通過系統(tǒng)功能SFC14/15進行寫操作。
圖 01
在過程映像的更新過程中,操作系統(tǒng)*性地傳送此數(shù)據(jù)??墒褂眉虞d和傳送指令訪問過程映像中的數(shù)據(jù)。對于 S7-400 CPU ,還可以使用 SFC 26 "UPDAT_PI" 或 SFC 27 "UPDAT_PO" 在程序中的任意點更新過程映像,但此 TPA 在系統(tǒng)側(cè)可能并未進行更新。如果沒有或不能把數(shù)據(jù)放入過程映像,那么就應(yīng)該使用 SFC14 和 SFC15 進行數(shù)據(jù)通信。