- 電話: 010-64734946 64734947 64738638
- 傳真: 010-64738090
當前位置:首頁 >> 西門子PLC
S7-1200配方功能使用數據管理
西門子plc S7-1200 CPU 固件版本為 V4.0 及以上,編程軟件版本在 STEP 7 V13 以上提供配方函數功能,可實現配方數據的導入、導出,方便實際應用中使用配方數據。
使用 S7-1200 實現配方函數功能,必須創建配方數據塊,且僅“存儲在裝載存儲器”中。
可以用“RecipeExport”指令將完整的配方數據塊導出,存儲在 CPU 裝載存儲器的永久性配方數據文件中。配方數據文件按照標準 CSV 格式存儲在 S7-1200 CPU 裝載存儲器或 S7-1200 SIMATIC 存儲卡中。
可以用 S7-1200 CPU 內置的 Web 服務器、或直接讀取存儲卡“程序卡”中的文件,來管理配方數據文件,實現配方數據文件的下載、修改和刪除;使用 ASCII 文本編輯器修改 CSV 文件中的數值,再將CSV 文件通過 PC 上傳至 PLC 的裝載存儲器。
可以用“RecipeImport”指令將配方數據從裝載存儲器上的 CVS 文件導入到裝載存儲器上的配方數據塊中。此過程會覆蓋數據塊中的值。
配方數據文件按照標準 CSV 格式存儲在 S7-1200 CPU 裝載存儲器或 S7-1200 SIMATIC 存儲卡“程序卡”中。分別可通過 PLC Web 服務器或對于存儲卡文件操作,將數據文件傳送到 PC 進行管理和查看。也可將修改過后的配方數據文件上傳至PLC,再通過“RecipeImport”配方導入指令更新PLC裝載存儲器中配方數據塊的數值。
測試實例:
SIMATIC S7-1200 系列 CPU 使用配方數據功能,需要注意以下幾點:
在項目中創建的配方數據塊,必須存儲在 CPU 裝載存儲器中,可以使用內部 CPU 存儲器或外部存儲器"程序"卡
程序中必須創建一個活動配方數據塊,此 DB 塊必須在工作存儲器中,其中使用程序邏輯讀取或寫入一個活動配方記錄
為了方便配方數據的導入導出,建議建立 2 個活動配方數據塊分別用于配方的導入和導出
為方便通過外部設備對某一條配方數據實現讀取和寫入,建議創建一個 DB 塊作為數據應用接口
下面,舉例說明用 S7-1200 實現配方的寫入和讀取功能。為方便配方數據操作,按照下圖思路進行項目編程:
測試環境:
軟件:STEP 7 Professional V13 SP1
硬件:CPU1215 C DC/DC/DC 訂貨號:6ES7 215-1AG40-0XB0
實現步驟
1.定義一個 PLC 數據類型
配方數據塊必須包含一維數組,結構是 PLC 數據類型或結構。在這個配方實例中使用 PLC 數據類型創建配方數據塊,其成分的數據類型在本例中選擇是 DINT 數據類型。 成分數據類型也可以是除結構以外的任何混合數據類型(如 REAL 類型)。 在配方數據塊數組元素中,不允許 PLC 數據類型中存在結構,也不允許結構中嵌套結構。
在此,創建一個 PLC 數據類型,以定義一個配方記錄中的所有成分,如配方名稱 Name 和各成分 A、B,見圖 2 所示:
圖2.定義 PLC 數據類型
數據類型是一個數據模板,它在每個配方數據塊以及活動配方數據塊中重復使用。輸入所有實例配方共用的成分名稱和數據類型,根據分配給配方成分的數值不同而產生不同的產品配方。
2.使用 PLC 數據類型創建配方數據塊
創建一個配方數據塊,為全局數據塊,并啟用數據塊屬性"僅存儲在裝載存儲器中"。本例中,配方數據 DB 塊名稱為 “Recipe_backup”,插入數組類型變量,名稱"Recipe",數據類型為Array of “數據類型”,本例中設置數組大小 4 即是可創建的配方的最大數目。
圖3.創建配方數據塊
圖4.定義數據塊屬性
3.在工作存儲器中創建活動配方 DB,并通過“READ_DBL”和“WRIT_DBL”指令實現對裝載存儲區配方數據塊的讀寫操作
配方數據塊"僅存儲在裝載存儲器中",所以對此 DB 塊(裝載存儲區數據)的讀寫操作均需要通過指令來實現,其指令位置如圖 5 所示:
圖5.“數據塊控制”指令
因此,需要在工作存儲器中準備一個活動配方數據塊,用于配方數據的寫入和讀取。在本例中,分別為讀、寫裝載存儲區數據塊的操作,在工作存儲器中創建了兩個全局數據塊,且配方數組與配方數據塊一致。如名稱為“Recipe_read”和“Recipe_write”,其配方數組均為 Array [0..3] of "Recipe",如圖 6 所示:
圖6.用于“read”和“write”的活動配方數據塊
將這兩個 DB 塊作為與裝載存儲器中配方數據塊的接口,分別通過指令“WRIT_DBL”能實時將存于工作存儲器的活動配方數據寫入至裝載存儲器的配方數據塊,或者通過指令“READ_DBL”實時讀取裝載存儲器的配方數據塊到工作存儲區中活動配方數據。
4.創建用于設置配方數據的接口數據塊,并用指令寫入到活動配方 DB 中
考慮在實際應用中,不一定方便通過 Web 服務器等來直接更改配方文件中的數據,多采用觸摸屏或者上位機軟件對某一條數據配方進行操作。為此,分別建立寫入配方的 ARRAY 和讀取配方的 ARRAY,實際僅使用數組中的一個元素作為接口即可,即數組長度為1,如圖 7 所示:
圖7.用于設置配方數據的接口數據塊
對于變址的數據傳送,可利用簡單的“MOVE”指令編寫功能塊來實現。在 FB 中定義接口變量,作為數組中某個元素的選擇,該變量可以在外設中設置。若程序中需要使用某條配方記錄,也可如此操作。對于寫入和讀取操作,分別建立 FB 程序,如下所示:
圖8.FB1用于寫入某條配方
圖9.FB2用于讀取某條配方
在 OB1 中條件調用功能塊即可,指令的觸發條件也可以通過外設控制。
5.啟用 Web 服務器
使用"Recipe Export"指令將完整的配方記錄導出,即生成為一個 CSV 文件。未使用的配方記錄也被導出??梢酝ㄟ^ Web 服務器或者存儲卡來查看配方文件。
按照以下路徑和方法為要連接的 CPU 啟用 Web 服務器:“設備視圖”→“鼠標選中 CPU”→“屬性”→“Web 服務器”→“啟用模塊上的 Web 服務器前打鉤”。如下圖 10 所示:
圖10.啟用 Web 服務器
使用管理員權限,或者建立一個用戶賬戶,進行訪問權限設置。讀取和修改配方數據文件,需要具有“讀取文件”和“寫入/刪除文件”功能。若要求更多訪問功能,可以勾選相應權限。
6.實驗例程
本例僅為實驗測試,目的在于掌握配方函數功能,程序間相互連鎖關系并未通過例程中設置。編程部分如下所示:
程序段1,可在外設上設置參數 X,為寫入目標值。結合 FB1,即實現實時修改目標配方條目的功能。
程序段2,使用“WRIT_DBL”指令,將工作存儲區的活動配方數據塊“Recipe_write”寫到裝載存儲器的配方數據塊“Recipe_backup”中。
程序段3,使用“RecipeExport”指令將完整的配方記錄導出,按照標準 CSV 格式存儲在裝載存儲器中,名稱與配方數據塊名稱相同。
程序段4,通過 Web 服務器更改配方文件中的數據后,已經從 PC 上傳至 PLC 的裝載存儲器。再通過"RecipeImport"指令導入配方數據,即將裝載存儲器中的配方數據文件覆蓋PLC的配方數據塊。
程序段5,使用“WRIT_DBL”指令,將裝載存儲器的配方數據塊“Recipe_backup”寫到工作存儲區的DB塊“Recipe_read”中。
程序段6,可在外設上設置參數 Y,為讀取目標值。結合 FB2,即實現實時讀取目標配方條目的功能。這一功能方便在程序中調用某條配方數據用于生產使用。
圖11.程序組圖
7.使用 Web 服務器,或查看存儲卡,瀏覽配方數據文件
詳細操作步驟,請參見配方文件的使用說明。
8.修改配方 CSV 文件數據,并導入配方數據
可使用 ASCII 文本編輯器修改配方 CSV中的數值。 可以修改分配給成分的起始值,但不能修改數據類型或數據結構 。將修改的 CSV 文件從 PC 再次上傳到 CPU。
但是,在 CPU Web 服務器允許上傳操作之前,必須刪除或重命名 CPU 裝載存儲器中的舊 CSV 文件(具有相同名稱)。
將修改的 CSV 文件上傳到 CPU 后,可以使用"Recipe Import"指令將新的起始值從修改的 CSV 文件(在 CPU 裝載存儲器中)傳送到配方數據塊(在 CPU 裝載存儲器中)。 導入操作由指令的"REQ"參數觸發。 導入過程中,參數 BUSY 設置為"1"。執行該指令后,BUSY 將復位為"0",完成操作后,DONE 參數將指示為"1"。 如果執行期間出錯,ERROR 和 STATUS 參數將發出信號加以指示。
9.修改 CSV 文件的規則
只有配方數據塊中包含一個與 CSV 文件數據結構一致的結構,才能執行配方的導入操作。下面是修改 CSV 文件規則:
CSV 文件必須位于內部裝載存儲器根目錄的"Recipes"文件夾中
如果安裝了可選的外部"程序"存儲器卡,則 CSV 文件也可以位于外部裝載存儲器的相應文件夾中
CSV 文件的名稱必須與 RECIPE_DB 參數中的數據塊名稱相匹配
CSV 文件的第一行(標題)包含配方成分的名稱。導入期間會忽略第一行。導入過程中不會檢查 CSV 文件和數據塊中配方成分的名稱是否一致
任何情況下,CSV 文件各行的第一個值都作為配方的索引編號。各個配方按索引順序導入。因此,CSV 文件中的索引必須按升序排列并且不能間斷,否則,STATUS 參數中會輸出錯誤消息80B0
CSV 文件中包含的配方數據記錄數不能超過配方數據塊中提供的數量。數據記錄的最大值由數據塊中的數組限值指出。
配方數據的管理
配方數據文件以 CSV 格式存儲在永久性存儲器中。 可以使用以下兩種方法查看、管理配方數據:
1. 通過內置的 PLC Web 服務器功能;
2. 通過 PG 查看 PLC 存儲卡中的配方文件;
3. 通過上述兩種方法,可以管理配方文件中的數據;
S7-1200 SIMATIC 存儲卡如下:
使用 PLC Web 服務器查看配方數據
如果 PLC PROFINET 端口和 PC 連接到同一網絡,則可使用 PC Web 瀏覽器訪問內置 PLC Web 服務器。操作步驟如下:
1.啟用 Web 服務器
在目標 CPU 的設備配置中啟用 Web 服務器,“設備視圖”→“鼠標選中 CPU”→“屬性”→“Web 服務器”→“啟用模塊上的 Web 服務器前打鉤”。如下圖 1 所示:
圖1.啟用 Web 服務器
建立一個用戶賬戶,進行訪問權限設置。若需要讀取和修改配方數據文件,需要具有“讀取文件”和“寫入/刪除文件”功能。若要求更多訪問功能,可以勾選相應權限。如圖 2 所示:
圖2.定義 Web 服務器的用戶權限
2. 通過 PROFINET 網絡將 PC 連接到 PLC
電腦 IP 地址需與 PLC 的 IP 地址在同一網段。
3. 登錄內置 Web 服務器
在 IE 瀏覽器地址欄中,輸入 https://192.168.0.25/ 或者輸入 S7-1200 CPU 的 IP 地址(如192.168.0.25)。通過 Web 服務器的文件瀏覽器頁面來讀取配方數據文件,按照預先設置的用戶名和密碼登錄, 瀏覽器操作界面如圖 3 所示:
圖3.Web 服務器的用戶界面首頁
在左側項目欄中,選擇"文檔瀏覽器",如圖 4 所示:
圖4.Web 服務器的文件瀏覽器頁面
進入"Recipes"文件夾后,即看到與 PLC 設置的配方數據塊名稱相同的配方數據文件,如圖 5 所示:
圖5.配方數據文件名稱
可使用 Web 服務器中的文件瀏覽器頁面將現有配方 CSV 文件從 CPU 下載到 PC ,雙擊配方數據文件即彈出下載保存界面,打開后以標準的 EXCEL 格式顯示。本例中,僅設置了前兩條配方數據,未經設置的配方數據也會導出,如圖 6 所示:
圖6.在 Excel 中查看配方文件
查看 PLC 存儲卡中的數據日志
如果 S7-1200 CPU 中插入了“程序”型 S7-1200 存儲卡,則可以取出該存儲卡,然后將該卡插入 PC 或 PG 上的標準 SD 卡槽或 MMC 卡槽中。在 Windows 資源管理器中導航至存儲卡中的 \Recipes 目錄,復制配方文件到PC的本地驅動器中,使用 Microsoft Excel 打開即可。 操作步驟如下:
注意:以下第 1-2 步必須在創建配方文件之前執行!
1. 將插好 S7-1200 存儲卡的讀卡器插入 PC,在 STEP7 V13 軟件中按照以下路徑和方法打開存儲卡:“項目樹”→“讀卡器/USB 存儲器”→“鼠標選中需要打開的存儲卡盤符”(如下圖所示的 H:)→“鼠標右鍵”→屬性”,如下圖 7 所示:
圖7.打開讀卡器
2. 鼠標選中“屬性”后打開存儲卡,設置卡類型:程序。如下圖 8 所示:
圖8.設置“程序卡”
3. 通過軟件操作,向處于存儲卡中裝載項目
第一步:按照上面方法將存儲卡設定到“程序卡”。
第二步:設置 CPU 的啟動狀態:在"Project tree"中右擊 CPU 選擇“屬性”,在“屬性”窗口中點擊“Startup”,此處我們必須選擇“Warm restart-RUN”
第三步:直接拖拽 PL C設備到存儲卡盤符,如圖 9 所示:
圖9:拖拽
注意:必須拖拽 PLC項目到存儲卡盤符,而不是程序塊等其他項目內容
4. 設置完配方數據后,在 PLC 停機時,可以從 S7-1200 CPU 中取出存儲卡,插入 PC 或 PG 上的標準 SD 卡槽或 MMC 卡槽中,然后插入 PC。
5. 在 Windows 資源管理器中導航至存儲卡中 \Recipes 目錄。如下圖 10 所示:
圖10.程序卡文件夾
在 \Recipes 文件夾中的配方文件,與 PLC 裝載存儲器中的配方數據塊同一名稱,如下圖 11 所示。
圖11.打開配方文件
6. 使用 Excel 打開如上圖 11 所示的配方文件,用于查看和管理。
配方數據的管理
1. 使用 Web 服務器管理配方數據
通過 Web 服務器點擊配方 CSV 文件名稱后,自動彈出下載保存按鈕,如圖 12 所示。
圖12.保存配方文件按鈕
雙擊打開已經下載的配方文件,通過 ASCII 文本編輯器修改數值。在通過 Web 服務器的功能從 PC 上傳至 PLC,使用"Recipe Import"配方導入指令更新配方數據塊,這有步驟實現了配方數據的修改和管理。
注意:
配方 CSV 文件的名稱必須與 RECIPE_DB 參數中的數據塊名稱相匹配
僅能通過 ASCII 文本編輯器修改配方 CSV,簡單的更改 EXCEL 文件中的數據無效
若需要上傳新的配方文件,須將原配方文件刪除、或重命名
確定沒有重名文件之后,點擊“瀏覽”查詢到新的配方文件后上傳
配方文件上傳至裝載存儲區,使用"Recipe Import"配方導入指令,覆蓋配方數據塊中的數值
圖13.刪除或重命名配方文件
圖14.通過 ASCII 文本編輯器修改配方數據
圖15.上傳新的配方文件
圖16.使能"Recipe Import"配方導入指令
圖17.在線監控活動配方數據已經更新
2. 使用存儲卡管理配方數據
PLC 斷電時從 S7-1200 CPU 中取出存儲卡,插入 PC 或 PG 上的標準 SD 卡槽或 MMC 卡槽中,然后插入 PC。通過 ASCII 文本編輯器修改好后的文件(CSV 格式),直接復制粘貼至Recipes 文件夾中的配方文件,覆蓋原文件即可。
圖18.復制替換“程序卡”中的配方文件
將存儲卡插回至 PLC后,CPU上電,使用“配方導入”指令,后續操作步驟同上圖 16。