詳細介紹
西門子4KW變頻器
上海盟疆工業自動化設備有限公司工業業務領域致力于為客戶提供高品質的服務,追求客戶的滿意是我們始終如一的目標。在中國,工業業務領域擁有一支技術過硬、經驗豐富的工程師隊伍,為客戶提供7x24小時全天候服務。專業的服務人員和遍布全國的服務及備件網絡將對客戶的服務需求迅速作出響應,將由設備故障引起的損失降低到小的程度。
S7-200 SMART CPU之間的以太網通信
S7-200 SMART CPU 固件版本 V2.0 及以上版本的 CPU 可實現CPU、編程設備和HMI(觸摸屏)之間的多種通信:
— CPU與編程設備之間的數據交換。
— CPU與HMI之間的數據交換。
— CPU與其他S7-200 SMART CPU之間的PUT/GET通信。
S7-200 SMART CPU 以太網連接資源如下:
— 1個連接用于與STEP7 Micro/Win SMART軟件的通信。
— 8個連接用于CPU與HMI之間的通信。
— 8個連接用于CPU與其他S7-200 SMART CPU之間的PUT/GET主動連接
— 8個連接用于CPU與其他S7-200 SMART CPU之間的PUT/GET被動連接
PUT/GET 指令格式
S7-200 SMART CPU提供了PUT/GET 指令,用于S7-200 SMART CPU之間的以太網通信(PUT/GET 指令格式見 表 1)。PUT/GET 指令只需要在主動建立連接的 CPU 中調用執行,被動建立連接的 CPU不需要進行通信編程。PUT/GET 指令中TABLE 參數用于定義遠程CPU的 IP地址、本地CPU和遠程 CPU的數據區域以及通信長度(TABLE 參數定義見 表 2)。
表 1 PUT和GET 指令:
LAD/FBD | STL | 描述 |
PUT TABLE | PUT 指令啟動以太網端口上的通信操作,將數據寫入遠程設備。PUT 指令可向遠程設備寫入多 212 個字節的數據。 | |
GET TABLE | GET 指令啟動以太網端口上的通信操作,從遠程設備獲取數據。GET 指令可從遠程設備讀取多 222 個字節的數據。 |
表 2 PUT和GET 指令的TABLE參數定義:
字節偏移量 | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
0 | D1 | A2 | E3 | 0 | 錯誤代碼4 | |||
1 |
遠程 CPU的 IP地址 | |||||||
2 | ||||||||
3 | ||||||||
4 | ||||||||
5 | 預留(必須設置為0) | |||||||
6 | 預留(必須設置為0) | |||||||
7 |
指向遠程 CPU 通信數據區域的地址指針 | |||||||
8 | ||||||||
9 | ||||||||
10 | ||||||||
11 | 通信數據長度5 | |||||||
12 |
指向本地 CPU 通信數據區域的地址指針 | |||||||
13 | ||||||||
14 | ||||||||
15 |
1 D :通信完成標志位,通信已經成功完成或者通信發生錯誤。
2 A :通信已經激活標志位。
3 E :通信發生錯誤,錯誤原因需要查詢 錯誤代碼4。
4 錯誤代碼 :見表 3 PUT 和 GET 指令TABLE 參數的錯誤代碼。
5 通信數據長度 :需要訪問遠程 CPU通信數據的字節個數,PUT 指令可向遠程設備寫入多 212 個字節的數據,GET 指令可從遠程設備讀取多 222 個字節的數據。
表 3 PUT 和 GET 指令TABLE 參數的錯誤代碼:
錯誤代碼 | 描述 |
0 | 通信無錯誤 |
1 | PUT/GET TABLE參數表中存在非法參數:
|
2 | 同一時刻處于激活狀態的 PUT/GET 指令過多(僅允許 16 個) |
3 | 無可以連接資源,當前所有的連接都在處理未完成的數據請求(S7-200 SAMRT CPU主動連接資源數為 8 個)。 |
4 | 從遠程 CPU 返回的錯誤:
|
5 | 與遠程 CPU 之間無可用連接:
|
6-9 | 預留 |
通信資源數量
S7-200 SMART CPU 以太網端口含有 8 個PUT/GET 主動連接資源和 8 個PUT/GET 被動連接資源。例如:CPU1 調用 PUT/GET 指令與 CPU2 ~ CPU9 建立8主動連接的同時,可以與 CPU10 ~ CPU17 建立8被動連接(CPU10 ~ CPU17 調用 PUT/GET 指令),這樣的話 CPU1 可以同時與16臺 CPU(CPU2 ~ CPU17)建立連接。關于主動連接資源和被動連接資源的詳細解釋如下:
1、主動連接資源和被動連接資源
- 調用 PUT/GET 指令的CPU 占用主動連接資源數;相應的遠程 CPU 占用被動連接資源。
2、8 個PUT/GET 主動連接資源
- S7-200 SMART CPU 程序中可以包含遠多于 8個PUT/GET 指令的調用,但是在同一時刻多只能激活 8 個 PUT/GET 連接資源。
- 同一時刻對同一個遠程 CPU 的多個 PUT/GET 指令的調用,只會占用本地 CPU的一個主動連接資源和遠程 CPU的一個被動連接資源。本地 CPU 與遠程 CPU之間只會建立一條連接通道,同一時刻觸發的多個 PUT/GET 指令將會在這條連接通道上順序執行。
- 同一時刻多能對8個不同 IP 地址的遠程 CPU 進行 PUT/GET 指令的調用,第9個 遠程CPU的PUT/GET 指令調用將報錯,無可用連接資源。已經成功建立的連接將被保持,直到遠程 CPU斷電或者物理斷開。
3、8 個PUT/GET 被動連接資源
- S7-200 SMART CPU 調用 PUT/GET 指令,執行主動連接的同時也可以被動地被其他遠程 CPU 進行通信讀寫。
- S7-200 SMART多可以與被8個不同 IP 地址的遠程 CPU 進行 建立被動連接。已經成功建立的連接將被保持,直到遠程 CPU斷電或者物理斷開。
指令編程舉例
在下面的例子中,CPU1 為主動端,其 IP 地址為192.168.2.100,調用 PUT/GET 指令;CPU2 為被動端,其 IP 地址為192.168.2.101,不需調用 PUT/GET 指令,網絡配置見圖 1 。通信任務是把 CPU1 的實時時鐘信息寫入 CPU2 中,把CPU2 中的實時時鐘信息讀寫到 CPU1 中。
圖 1 CPU通信網絡配置圖
1、CPU1 主動端編程
CPU1 主程序中包含讀取 CPU 實時時鐘、初始化 PUT/ GET 指令的 TABLE 參數表、調用 PUT 指令和 GET 指令等。
網絡1:讀取 CPU1 實時時鐘,存儲到 VB100 ~ VB107 。
圖 2 讀取 CPU1 實時時鐘
注:READ_RTC 指令用于讀取 CPU 實時時鐘指令,并將其存儲到從字節地址 T 開始的 8 字節時間緩沖區中,數據格式為 BCD 碼。
網絡2:定義 PUT 指令 TABLE 參數表,用于將 CPU1 的VB100 ~ VB107 傳輸到遠程 CPU2 的VB0 ~ VB7。
西門子4KW變頻器
圖 3 定義 PUT 指令 TABLE 參數表
- a.定義通信狀態字節
- b.定義 CPU2 IP 地址
- c.定義 CPU2 的通信區域 ,從 VB0 地址開始
- d.定義通信數據長度
- e.定義 CPU1 的通信區域,從 VB100 地址開始
網絡3:定義 GET 指令 TABLE 參數表,用于將遠程 CPU2 的VB100 ~ VB107 讀取到 CPU1 的 VB0 ~ VB7。
圖 4 定義 GET 指令 TABLE 參數表
- a.定義通信狀態字節
- b.定義 CPU2 IP 地址
- c.定義 CPU2 的通信區域 ,從 VB100 地址開始
- d.定義通信數據長度
- e.定義 CPU1 的通信區域,從 VB0 地址開始
網絡4:調用 PUT 指令和 GET 指令。
圖 5 調用 PUT 指令和 GET 指令
2、CPU2 被動端編程
CPU2 的主程序只需包含一條語句用于讀取 CPU2 的實時時鐘,并存儲到 VB100 ~ VB107,如圖 6 所示。
圖 6 讀取 CPU2 實時時鐘
組態保持范圍
單擊“系統塊”(System Block)對話框的“保持范圍”(Retentive Ranges) 節點組態在循環上電后保留下來的存儲器范圍。
圖1.組態數據保存范圍設置窗口
選擇要在上電循環期間保持的存儲區。 為 V 、M、T 或 C 存儲器輸入新值。
您可將下列存儲區中的地址范圍定義為保持: V 、M、T 和 C 。對于定時器,只能保持保持性定時器 (TONR) ,而對于定時器和計數器,只能保持當前值(每次上電時都將定時器和計數器位清零)。
默認情況下,CPU 中并未定義保持區域,但可組態保持范圍以保持多 10 KB 的存儲器 空間。
CPU 斷電后的數據保持
CPU 在斷電和上電時對保持性存儲器執行以下操作:
● 斷電時: CPU 將的保持性存儲器范圍保存到存儲器。
● 上電時: CPU 先將 V 、M、C 和 T 存儲器清零,將所有初始值都從數據塊復制到 V 存儲器,然后將保存的保持值從存儲器復制到 RAM 。
所有類型的 CPU,只要是在系統塊里設置了數據保持的數據,斷電后數據都會保存(不依靠于超級電容),但保存的存儲區的范圍大為10K。對于未設置為數據保持的存儲在RAM 中的數據,一旦掉電其數據就會丟失。超級電容可以用于保持實時時鐘,一般上電24小時后通常保持7天。
表1.S7-200 SMART CPU 存儲器地址保持范圍
數據類型 | 描述 | CPU SR20 | CPU CR40 | CPU SR40 CPU ST40 | CPU SR60 CPU ST60 |
---|---|---|---|---|---|
V | 數據存儲器 | VB0-VB8191 | VB0-VB8191 | VB0-VB16383 | VB0-VB20479 |
T | 定時器 | T0-T31 | T0-T31 | T0-T31 | T0-T31 |
C | 計數器 | C0-C255 | C0-C255 | C0-C255 | C0-C255 |
M | 標志位 | MB0-MB31 | MB0-MB31 | MB0-MB31 | MB0-MB31 |
從 RAM 建立數據塊
要將 CPU V 存儲器當前值保存到數據塊頁面;或者執行下載操作,擔心 RAM 區數據當前值丟失,可以在執行下載操作前,先執行從 RAM 建立數據塊,備份 V 存儲區的當前值。
操作方法如下:
1、備份好源程序,新建空白項目操作
2、選擇 PLC > 從 RAM 建立數據塊(Create Data Block from RAM)菜單命令。如圖2所示
圖2
3、PLC 處于運行狀態,執行操作時,會提示 “ 設置 PLC 為 STOP 模式 ?”,選擇是才可以繼續執行此功能,如圖3所示;如果操作前 PLC 已處于 STOP 狀態,不會出現此對話框
注意:想要執行從 RAM 建立數據塊功能,需要在 PLC 可以切換到 STOP 的情況下才可以操作!
圖3
4、圖3點擊“是”之后出現下面的對話框,如圖4所示,選擇 “是” 將執行更新,將 CPU 中 RAM 區的 V 存儲區數據當前值上傳到數據塊的數據頁中。
如果執行操作時,使用的程序文件是源程序,選擇 " Yes " 前,一定要注意源程序的備份!
圖4
5、等待一段上傳數據的時間,出現對話框,如圖5 所示,點擊" OK ",可以在數據塊中查看 V 區數據
圖5
執行從 RAM 建立數據塊,上載到數據塊中的數據有可能存放的位置
- 用戶定義1:上一次下載數據塊時,在數據塊中用戶自定義過初始值
- _PLC_DATA1:上一次下載數據塊時,未定義初始值,在程序執行過程中修改過的 V 區地址,執行"從 RAM 建立數據塊"命令時,這些已修改的地址會被給一個新的標簽名
- 向導生成的數據塊(例如 PID1_DATA):上一次下載數據塊時,包含配置完向導后自動生成的數據塊,比如 配置完 PID 后生成如 PID1_DATA 的數據塊,執行"從 RAM 建立數據塊"命令時,依然上傳到此數據塊中
6、將上傳的各個數據塊頁面中的 V 區地址復制,粘貼到要下載的程序文件的數據塊頁面中,此時,一旦下載,數據塊保存到 EEPROM 中,作為 V 存儲區數據的初始值生效。
常見問題
為什么S7-200 SMART 系統塊設置斷電保持后,數據依舊無法實現斷電保持?
可以根據以下步驟核對設置:
1.確保已設置斷電保持的程序下載到PLC。
2.如果SMART PLC 有連接HMI、上位機或者其他PLC,請先斷開相關的通訊設備,再做測試,避免這些設備給PLC相關地址不斷更新數據。
3.如果根據以上步驟測試均無效,請創建一個空項目,只做系統塊斷電保持設置,重新下載程序后通過狀態圖表給斷電保持范圍內某一地址寫入新值后將PLC斷電再上電查看。
組態數字量輸入
單擊 “系統塊” (System Block) 對話框的 “數字量輸入” (Digital Inputs) 節點組態數字量輸入濾波器和脈沖捕捉位。
圖1. 組態數字量輸入設置窗口
數字量輸入濾波器
S7-200 SMART CPU 允許為某些或所有數字量輸入點選擇一個定義時延(可在 0.2 ms 到 12.8 ms 和 0.2 μs 到 12.8 μs 之間選擇)的輸入濾波器。“系統塊”中不能修改濾波時間的其他數字量輸入通道,其濾波時間默認為12.8ms。
如果需要使用 S7-200 SMART 的高速計數器功能,需要手動修改濾波器的時間至 0.2 μs (也可根據速率設定成更長的濾波時間),否則在速率較高時將會造成高速計數器無法計數。 因為S7-200 SMART 與S7-200 不同,對于 S7-200 SMART ,用戶可以根據輸入信號速率不同自由設置濾波時間以便高速計數器過濾噪音。
通過設置輸入延時,您可以過濾數字量輸入信號。 輸入狀態改變時,輸入必須在時延期限內保持在新狀態,才能被認為有效。 濾波器會消除噪音脈沖,并強制輸入線在數據被接受之前穩定下來。默認濾波時間是 6.4 ms。
要設置輸入延遲,請按以下步驟操作:
1. 從一個或多個輸入旁的下拉列表中選擇延遲時間。
2. 單擊 “確定” (OK) 按鈕,輸入選項。
如果數字量輸入通道的濾波時間更改自以前的設置,則新的“0” 電平輸入值可能需要保 持長達 12.8 ms 的累積時間,然后濾波器才會*響應新輸入。 在此期間,可能不 會檢測到持續時間少于 12.8 ms 的短“0”脈沖事件或對其計數。 濾波時間的這種更改會引發意外的機械或過程操作,這可能會導致人員死亡、重傷和設備損壞。 為了確保新的濾波時間立即生效,必須關閉 CPU 電源后再開啟。
脈沖捕捉位
S7-200 SMART CPU 為數字量輸入點提供脈沖捕捉功能。通過脈沖捕捉功能可以捕捉高電平脈沖或低電平脈沖。此類脈沖出現的時間極短,CPU 在掃描周期開始讀取數字量輸入時,可能無法始終看到此類脈沖。
當為某一輸入點啟用脈沖捕捉時,輸入狀態的改變被鎖定,并保持至下一次輸入循環更新。 這樣可確保延續時間很短的脈沖被捕捉,并保持至 S7-200 SMART CPU 讀取輸入。
根據 CPU 型號,可按以下數字量輸入點數單獨啟用脈沖捕捉操作:
● CPU CR40: 14
● CPU SR20: 12 (14,如果存在 SB DT04 )
● CPU ST40/CPU SR40: 14 (16,如果存在 SB DT04 )
● CPU ST60/CPU SR60: 14 (16,如果存在 SB DT04 )
圖2. S7-200 SMART CPU (脈沖捕捉啟用和未啟用)的基本操作狀況
由于脈沖捕捉功能在輸入通過輸入濾波器后對輸入進行操作,您必須調整輸入濾波時間, 以防濾波器過濾掉脈沖。
圖3. 數字量輸入電路方框圖