西門子模塊6SE7031-5ES87-1FE0
RS485 網(wǎng)絡(luò)為采用屏蔽雙絞線電纜的線性總線網(wǎng)絡(luò),總線兩端需要終端電阻。RS485 網(wǎng)絡(luò)允許每一個(gè)網(wǎng)段的最大通信節(jié)點(diǎn)數(shù)為 32 個(gè),允許的最大電纜長(zhǎng)度則由通信端口是否隔離以及通信波特率大小等兩個(gè)因素所決定,見表 3. RS485 網(wǎng)段電纜的最大長(zhǎng)度所示。
表 3. RS485 網(wǎng)段電纜的最大長(zhǎng)度
波特率(bit/s) | S7-200 SMART CPU 端口 | 隔離型 CPU 端口 |
9.6K~187.5K | 50m | 1000m |
500K | 不支持 | 400m |
1M~1.5M | 不支持 | 200m |
3M~12M | 不支持 | 100m |
S7-200 SMART CPU 集成的 RS485 端口以及 SB CM01 信號(hào)板都是非隔離型通信端口,允許的最大通信距離為 50m,該距離為網(wǎng)段中第一個(gè)通信節(jié)點(diǎn)到最后一個(gè)節(jié)點(diǎn)的距離。如果網(wǎng)絡(luò)中的通信節(jié)點(diǎn)數(shù)大于 32 個(gè)或者通信距離大于 50m 則需要添加 RS485 中繼器拓展網(wǎng)絡(luò)連接。
注意:
● S7-200 SMART CPU 集成的 RS485 端口以及 SB CM01 信號(hào)板都是非隔離型,與網(wǎng)段中其它節(jié)點(diǎn)通信時(shí)需要做好參考點(diǎn)電位的等電位連接或者使用 RS485 中繼器為網(wǎng)絡(luò)提供隔離。參考點(diǎn)電位不同的節(jié)點(diǎn)通信時(shí)可能會(huì)導(dǎo)致通信錯(cuò)誤或者端口燒壞。
● S7-200 SAMRT CPU 與其它節(jié)點(diǎn)聯(lián)網(wǎng)時(shí),可以將 CPU 模塊右下角的傳感器電源的 M 端與其它節(jié)點(diǎn)通信端口的 0V 參考點(diǎn)連接起來做到等電位連接。
RS485 中繼器
RS485 中繼器可用于延長(zhǎng)網(wǎng)絡(luò)距離,電氣隔離不同網(wǎng)段以及增加通信節(jié)點(diǎn)數(shù)量。中繼器的作用如下:
1.延長(zhǎng)網(wǎng)絡(luò)距離:
網(wǎng)絡(luò)中添加中繼器允許將網(wǎng)絡(luò)再延長(zhǎng) 50m ,如果兩臺(tái)中繼器連接在一起,中間無其它節(jié)點(diǎn),則可將網(wǎng)絡(luò)延長(zhǎng) 1000m ,一個(gè)網(wǎng)絡(luò)中最多可以使用 9 個(gè)西門子中繼器。如圖 4. 使用 RS485 中繼器拓展網(wǎng)絡(luò)所示。
圖 4. 使用 RS485 中繼器拓展網(wǎng)絡(luò)
注意:
S7-200 SMART CPU自由口通信、Modbus RTU通信和USS通信時(shí),不能使用西門子中繼器拓展網(wǎng)絡(luò)。
2.電氣隔離不同網(wǎng)段:
隔離網(wǎng)絡(luò)可以使參考點(diǎn)電位不相同的網(wǎng)段相互隔離,從而確保通信傳輸質(zhì)量。
3.增加網(wǎng)絡(luò)設(shè)備:
在一個(gè) RS485 網(wǎng)段中,最多可以連接 32 個(gè)通信節(jié)點(diǎn)。使用中繼器可以向網(wǎng)絡(luò)中拓展一個(gè)網(wǎng)段,可以再連接 32 個(gè)通信節(jié)點(diǎn),但是中繼器本身也占用一個(gè)通信節(jié)點(diǎn)位置,所以拓展的網(wǎng)段只能再連接 31 個(gè)通信節(jié)點(diǎn)。
RS485 網(wǎng)絡(luò)連接器
西門子提供了兩種類型的 RS485 網(wǎng)絡(luò)連接器(如圖 5. RS485網(wǎng)絡(luò)連接器所示),可使用它們輕松地將多臺(tái)通信節(jié)點(diǎn)連接到通信網(wǎng)絡(luò)上。一種是標(biāo)準(zhǔn)型網(wǎng)絡(luò)連接器,另一種則增加了可編程接口。帶有可編程接口的網(wǎng)絡(luò)連接器可以將 S7-200 SMART CPU 集成的 RS485 端口所有通信引腳擴(kuò)展到編程接口,其中 2 號(hào)、7 號(hào)引腳對(duì)外提供 24VDC電源,可以用于連接 TD400C 。
圖 5. RS485網(wǎng)絡(luò)連接器
網(wǎng)絡(luò)連接器上兩組連接端子,用于連接輸入電纜和輸出電纜。網(wǎng)絡(luò)連接器上具有終端和偏置電阻的選擇開關(guān),網(wǎng)絡(luò)兩端的通信節(jié)點(diǎn)必須將網(wǎng)絡(luò)連接器的選擇開關(guān)設(shè)置為 On ,網(wǎng)絡(luò)中間的通信節(jié)點(diǎn)需要將選擇開關(guān)設(shè)置為 Off 。典型的網(wǎng)絡(luò)連接器終端電阻和偏置電阻接線如表 4. 網(wǎng)絡(luò)連接器終端和偏置電阻所示。
表 4. 網(wǎng)絡(luò)連接器終端和偏置電阻
使用 SB CM01 信號(hào)板可用于連接 RS485 網(wǎng)絡(luò),當(dāng)信號(hào)板為終端通信節(jié)點(diǎn)時(shí)需要接終端電阻和連接偏置電阻,典型的電路圖如圖 6. SB CM01 信號(hào)板終端和偏置電阻接線圖所示。
圖 6. SB CM01 信號(hào)板終端和偏置電阻接線
注意:
● 終端電阻用于消除通信電纜中由于特性阻抗不連續(xù)而造成的信號(hào)反射。信號(hào)傳輸?shù)骄W(wǎng)絡(luò)末端時(shí),如果電纜阻抗很小或者沒有阻抗的話,在這個(gè)地方就會(huì)引起信號(hào)反射。消除這種反射的方法,就是在網(wǎng)絡(luò)的兩端端接一個(gè)與電纜的特性阻抗相同的終端電阻,使電纜阻抗連續(xù)。
● 當(dāng)網(wǎng)絡(luò)上沒有通信節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),網(wǎng)絡(luò)總線處于空閑狀態(tài),增加偏置電阻可使總線上有一個(gè)確定的空閑電位,保證了邏輯信號(hào) “0"、“1" 的穩(wěn)定性
西門子模塊6SE7031-5ES87-1FE0
1.概述
本章描述了FM 350-1功能模塊 (FBs) 參數(shù)分配的數(shù)據(jù)結(jié)構(gòu),控制及調(diào)試。
功能塊必須在用戶程序中循環(huán)調(diào)用。
包含下述功能模塊:
? _FM3501_control
? _FM3501_diagnostic
SIMOTION SCOUT 包含需要的 FBs 功能塊及FM 350-1的數(shù)據(jù)結(jié)構(gòu)“ Struct_FM3501_fmData"。功能模塊用于控制一個(gè)或多個(gè)FM 350-1模塊。
2.功能塊“_FM3501_control"
“_FM3501_control"功能塊用于FM 350-1模塊的控制及狀態(tài)的掃描。
LAD表示方式:
參數(shù)描述:
periIn:
輸入,數(shù)據(jù)類型:ARRAY [0 to 15] of BYTE ,傳送FM 的 I/O 輸入給FB。
enableSwGate:
輸入,數(shù)據(jù)類型:BOOL,使能計(jì)數(shù)器控制的軟件門。
enableStopGate:
輸入,數(shù)據(jù)類型:BOOL,停止計(jì)數(shù)器控制的軟件門。
cntrRange:
輸入,數(shù)據(jù)類型:BOOL,F(xiàn)M計(jì)數(shù)范圍的限制設(shè)置:
FALSE:
-231≤ count value < 231-1
TRUE:
0 ≤ count value < 232-1
execResetOpError:
輸入,數(shù)據(jù)類型:BOOL,通過此信號(hào)的上升沿確認(rèn)運(yùn)行錯(cuò)誤。
data
輸入/輸出,數(shù)據(jù)類型:Struct_FM3501_fmData
setStartValue
輸入/輸出,數(shù)據(jù)類型:BOOL,傳送 "direct loading"的觸發(fā)位。將預(yù)置值傳送到裝載存貯器并且直接用于計(jì)數(shù)。
setPrepStartValue
輸入/輸出,數(shù)據(jù)類型:BOOL,傳送"preparatory loading"的觸發(fā)位。
僅將預(yù)置值傳送到裝載存貯器。存貯器中的預(yù)置值在下次觸發(fā)時(shí)被傳送 (FM input "DI set" - set counter),需滿足下述條件:
- enableReverseSetting = TRUE (數(shù)據(jù)結(jié)構(gòu) "truct_FM3501_fmData"中的元素)
或
- enableForwardSetting = TRUE (數(shù)據(jù)結(jié)構(gòu) "truct_FM3501_fmData"中的元素)
setCmpValue1
輸入/輸出,數(shù)據(jù)類型:BOOL,傳送"comparison value1"的觸發(fā)位。
setCmpValue2
輸入/輸出,數(shù)據(jù)類型:BOOL,傳送"comparison value2"的觸發(fā)位。
resetSyncState
輸入/輸出,數(shù)據(jù)類型:BOOL,刪除"synchronization"狀態(tài)位。
resetCntrState
輸入/輸出,數(shù)據(jù)類型:BOOL,刪除"zero crossing"狀態(tài)位。
periOut
輸入/輸出,數(shù)據(jù)類型:ARRAY [0 to 15] of BYTE,用于FM的I/O輸出的FB的準(zhǔn)備數(shù)據(jù)。
注意: periOut 參數(shù)必須定義為數(shù)組類型ARRAY [0..15] of BYTE的變量,此變量必須在用戶程序中創(chuàng)建為一個(gè)本地或全局的變量(在程序的VAR下面創(chuàng)建),而不要?jiǎng)?chuàng)建一個(gè)臨時(shí)變量(在VAR_TEMP下面創(chuàng)建)。在 FB 被調(diào)用后,此數(shù)組必須被分配給用于模塊I/O輸出的 I/O 變量,請(qǐng)參看示例程序。
errorOperation
輸出,數(shù)據(jù)類型:BOOL,運(yùn)行錯(cuò)誤產(chǎn)生指示。
startup
輸出,數(shù)據(jù)類型:BOOL,指示FM模塊的運(yùn)行開始。
功能
“_FM3501_control"功能塊周期性地從類型為“Struct_FM3501_fmData"的數(shù)據(jù)結(jié)構(gòu)傳送數(shù)據(jù)給FM 350-1。它還從FM 350-1 讀取數(shù)據(jù)并將其寫入數(shù)據(jù)結(jié)構(gòu)。
注意:
“cntrRange"輸入?yún)?shù)必須按照FM 350-1模塊分配的計(jì)數(shù)范圍限制來進(jìn)行設(shè)置:
? cntrRange: = FALSE,計(jì)數(shù)范圍為 -231 ≤ count value < 231 – 1:
– loadValue1, cmpValue1_1, cmpValue2_1 從 FB 寫入到 FM模塊中。
– 從FM模塊中讀取actValue1, actCntrValue1。
? cntrRange: = TRUE, 計(jì)數(shù)范圍為0 ≤ count value < 232 – 1:
– loadValue2, cmpValue1_2, cmpValue2_2從 FB 寫入到 FM模塊中。
– 從FM模塊中讀取 actValue2, actCntrValue2。
在高速計(jì)數(shù)器的參數(shù)化工具中必須選擇與其相同的計(jì)數(shù)范圍。
任務(wù)調(diào)用
“_FM3501_control"功能塊必須在“BackgroundTask"或“TimerInterruptTask"中周期性調(diào)用,不允許在“SystemInterruptTask"中進(jìn)行調(diào)用,出于運(yùn)行時(shí)間的原因不建議在“IPOSynchronousTask"中進(jìn)行調(diào)用。
對(duì)于FM 350-1,可通過適當(dāng)?shù)膮?shù)(setStartValue,setPrepStartValue, setCmpValue1, setCmpValue2,resetSyncState, resetCntrState, execResetOpError, enableStopGate, enableSwGate)來開始某一項(xiàng)工作。在每次調(diào)用前應(yīng)根據(jù)相應(yīng)的工作在數(shù)據(jù)結(jié)構(gòu)中輸入裝載值或比較值。
啟動(dòng)行為
當(dāng)“_FM3501_control"功能塊監(jiān)測(cè)到 FM 350-1 正在啟動(dòng),任何未決的工作被延期直到起動(dòng)被確認(rèn)。FM 350-1的啟動(dòng)通過輸出參數(shù)startup=TRUE指示。一旦起動(dòng)完成后再執(zhí)行未決工作。
調(diào)用 FB 期間的錯(cuò)誤信息
如果在調(diào)用 FB 期間有錯(cuò)誤產(chǎn)生,它在“errorOperation" 參數(shù)中指示??稍跀?shù)據(jù)結(jié)構(gòu)的“errorIdOperation"元素中讀出錯(cuò)誤信息??墒褂谩癳xecResetOpError"參數(shù)確認(rèn)錯(cuò)誤。
錯(cuò)誤代碼
在數(shù)據(jù)結(jié)構(gòu)的“errorIdOperation"元素中顯示錯(cuò)誤代碼