• 電話: 010-64734946  64734947   64738638
  • 傳真: 010-64738090

當(dāng)前位置:首頁 >> 西門子PLC

S7-1200配方功能使用數(shù)據(jù)管理

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