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