詳細介紹
西門子6FC5357-0BB23-0AA0
6FC5357-0BB23-0AA0
SINUMERIK 840D/DE NCU 572.3,400MHz,64MB 不帶系統軟件 存儲器:NC 0.5MB,PLC 96KB PROFIBUS-DP 準備 符合 IEC 61508
問題:
如何為S7-22x編程一個時間控制的中斷?
解答:
下列CPU可以處理一個時間控制的中斷:
中斷 | CPU221 | CPU222 | CPU224 | CPU226 | CPU226XM |
支持的時間控制中斷的個數 | 2 | 2 | 2 | 2 | 2 |
中斷個數 | 0 和 1 | 0 和 1 | 0 和 1 | 0 和 1 | 0 和 1 |
可能的中斷程序的個數 | INT 0 | INT 0 | INT 0 | INT 0 | INT 0 |
S7-200 支持一個或更多的時間控制的中斷??梢杂脮r間控制中斷來定義要在周期中執行的動作。定義的周期時間以 1 毫秒為單位。范圍在 1毫秒(1)至 255 毫秒(255)間。在特殊標志字節SMB34中寫入中斷 0 的周期時間,在SMB35中寫入中斷 1的周期時間。
每當延時時間到達時,時間控制中斷事件就會調用相應的中斷程序。通??梢允褂脮r間控制中斷控制模擬量輸入的定期采樣。當把一個中斷程序分配給一個時間控制中斷事件時,時間控制中斷就被激活后并開始計時。在樣例中,這是啟動子程序“SBR 0”所做的一的事情。系統確定該周期時間使后續的修改不會影響到該周期時間。如果想要修改周期時間,必須為周期時間一個新值然后重新將中斷程序賦予該時間控制的中斷。重新賦予時,函數會刪除以前賦予中累計的時間值并以新值開始運行時間。
命令的作用 | Command | Operand | Example of |
主程序 |
|
|
|
網絡 1 |
|
|
|
通過查詢只在*個周期里置“1”的標志,給該事件分配一個少有的中斷程序號 | LD | SM 0.1 | SM 0.1 |
在*個循環中調用子程序“0” | CALL | 0 |
|
主程序結束 | MEND |
|
|
啟動子程序“0” | SBR | 0 |
|
使用“確定為“ 1 ”的系統標志SM 0.1 ”,設置時間控制段的時間間隔為 100 * 1ms = 100 ms | LD | SM 0.1 |
|
允許使用所有中斷 | ENI |
|
|
分配時間控制中斷“0”到中斷程序“0” | ATCH | INT,EVENT | 0,10 |
終止子程序 | RET |
|
|
啟動中斷程序 | INT | 0 |
|
現在可以寫想要每隔 100 毫秒處理一次的程序 | ....... | .... | .... |
從中斷程序返回 | RETI |
|
|
注意事項:
- CPU根據中斷發生的次序和它的優先級狀態對其進行處理。因此對于中斷處理始終只能有 一個程序是激活的。如果一個中斷程序正在被處理,那么它就會首先被處理完畢。它不會被后面出現的中斷程序所打斷即使這個程序有更高的優先級。當另一個中斷正在被處理時,發生了一個中斷,那么后面的中斷就會被放入隊列中等待以后的處理。時控中斷隊列中多可放入8個中斷。
- 有可能發生出現的中斷要多于隊列里可容納的中斷個數的情況,這樣,系統就會發出隊列溢出標志,而該標志指出不能被包括在隊列里的中斷事件的類型。下面的表格為發生隊列溢出時所設置的特殊標志。只能在中斷程序中使用位 SM 4.0 至 4.2,因為當中斷隊列處理完畢后,主程序的處理繼續進行時它們會被復位。
隊列 | 特殊標志 |
通訊中斷的隊列溢出 | SM 4.0 |
I/O中斷的隊列溢出 | SM 4.1 |
時間控制中斷的隊列溢出 | SM 4.2 |
西門子6FC5357-0BB23-0AA0
1. 說明
本條目描述了在 S7-200 程序塊中那些參數需要設置來接收其他站點的 GPRS 數據。
兩個或多個包含 S7-200 CPU 和 調制解調 SINAUT MD 720-3 模塊的遠程站通過 GPRS 連接到一個中心站。中心站采用 SINAUT MICRO SC 來管理與所有已組態的遠程站的通訊(圖 1 )。
圖 1 :結構圖
2. WDC_SEND 和 WDC_RECEIVE 功能塊
SINAUT MICRO SC 庫內的功能塊 WDC_SEND 和 WDC_RECEIVE 負責發送和接收數據。數據的接收由調制解調模塊上 LED 燈“C”的閃爍來指示。如果塊的參數設置錯誤,接收的數據就會被舍棄不會寫入 CPU。下列參數決定數據的交換:
WDC_SEND:
- DATA_STAR:*個數據字節的起始地址,比如 VB100 就是“100”
- DATA_LENGTH:發送數據的長度,比如 10 個字節就是“10”
WDC_RECEIVE:
- DATA_START:接收數據的起始地址(接收的數據自動更新)
- DATA_LENGTH:接收數據的長度(接收的數據自動更新)
- RECVBUFFER_START 和 RECVBUFFER_LENGTH 說明了接收地址區,該區域會被CPU中接收到的數據覆蓋。
發送地址區 DATA_START 和 DATA-LENGTH 必須適合接收地址區以保證接收 CPU 所發送的數據都是可以訪問的。
3. 接收的數據被舍棄并不寫入 CPU
下面舉例說明當 WDC_RECEIVE 參數設置錯誤時發生的問題:
圖 2:沒有數據寫入 CPU
- 遠程站 1 發送起始地址為 VB100 長度為 10 字節的數據
- 遠程站 2 允許起始地址為 VB200 長度為 10 字節的接收區
- 發送的數據在 WDC_RECEIVE 所允許的范圍之外,數據沒有寫入 CPU,發送請求被告知出錯。
圖 3:沒有數據寫入 CPU
- 遠程站 1 發送起始地址為 VB100 長度為 20 個字節的數據
- 遠程站 2 允許起始地址為 VB100 長度為 10 個字節的接收區
- 部分發送數據在 WDC_RECEIVEP 允許的范圍之外,數據沒有寫入 CPU,發送請求被告知出錯。
4. 接收數據準確寫入 CPU
WDC_RECEIVE 的接收區必須至少和發送數據區一樣大。
4.1 允許的區域準確匹配
圖 4:允許的地址區準確匹配
- 遠程站 1 發送起始地址為 VB100 長度為 10 個字節的數據
- 遠程站 2 允許起始地址為 VB100 長度為 10 個字節的接收區
- 發送的數據在 WDC_RECEIVE 允許的地址區之內,從 VB100 開始的 10 個字節寫入 CPU,發送請求被告知“完成”。
4.2 允許區域大于接收的數據
圖 5:允許的地址區大于接收的數據
- 遠程站 1 發送起始地址為 VB100 長度為 10 個字節的數據
- 遠程站 2 允許起始地址為 VB50 長度為 100 個字節的數據區
- 發送的數據在 WDC_RECEIVE 允許的地址區之內,從 VB100 開始的 10 個字節寫入 CPU,發送請求被告知“完成”。
6GK17061NX003AE0
6GK17061NX003AE1
6GK17061NX003AL0
6GK17061NX081AA0
6GK17061NX082AA0
6GK17061NX633AB0
6GK17061NX643AA0
6GK17061NX643AE0
6GK17061NX713AA0
6GK17061NX713AC0
6GK17061NX803AA0
6GK17061NX803AC0
6GK17111EW081AA0
6GK17135CB003AE0
6GK17135CB003AE1
6GK17135CB003AL0
6GK17135CB003AN0
6GK17135CB003MA0
6GK17135CB081AA0
6GK17135CB633AB0
6GK17135CB643AA0
6GK17135CB643AE0
6GK17135CB713AA0
6GK17135CB803AA0
6GK17135DB003AE0
6GK17135DB003AE1
6GK17135DB003AL0
6GK17135DB003AN0
6GK17135DB003AR8
6GK17135DB003MA0
6GK17135DB633AB0
6GK17135DB643AA0
6GK17135DB643AE0
6GK17135DB713AA0
6GK17135DB803AA0
6GK17135FB003AE0
6GK17135FB003AE1
6GK17135FB003AL0
6GK17135FB003AN0
6GK17135FB003MA0
6GK17135FB633AB0
6GK17135FB643AA0
6GK17135FB643AE0
6GK17135FB713AA0
6GK17160HB003AE0
6GK17160HB003AE1
6GK17160HB003AL0
6GK17160HB003AN0
6GK17160HB003MA0
6GK17160HB081AA0
6GK17160HB081AC0
6GK17160HB082AA0
6GK17160HB082AC0
6GK17160HB633AB0
6GK17160HB633AD0
6GK17160HB643AA0
6GK17160HB643AC0
6GK17160HB643AE0
6GK17160HB703AC0
6GK17160HB713AA0
6GK17160HB713AC0
6GK17160HB803AA0
6GK17160HB803AC0
6GK17161CB003AE0
6GK17161CB003AE1
6GK17161CB003AN0
6GK17161CB003MA0
6GK17161CB081AA0
6GK17161CB082AA0
6GK17161CB633AB0
6GK17161CB643AA0
6GK17161CB643AE0
6GK17161CB713AA0
6GK17161CB803AA0
6GK17161PB003MA0
6GK17161TB003AE0
6GK17161TB003AE1
6GK17161TB003AL0
6GK17161TB003MA0