2017-08-20 分類:常見問題 閱讀(1606) 評論(0) 描述 該 FAQ 描述了如何在 WinCC (TIA Portal) 運行系統(tǒng)中讀寫文件中的數(shù)據(jù)。VBS 腳本 (Visual Basic Scripting) 用于實現(xiàn)這些功能。為了保存或讀取文本文件中的信息,必須能夠訪問 Windows CE 的文件系統(tǒng)。通過“文件系統(tǒng)對象”進(jìn)行訪問。 該 FAQ 適用于 SIMATIC WinCC (TIA Portal) 的 Comfort、Advanced 和 Professional 版本的以下操作面板:Comfort 面板和277 系列面板或更高版本。 注釋 如果WinCC 標(biāo)準(zhǔn)機制(保存歸檔數(shù)據(jù),等) 不能滿足應(yīng)用要求僅能使用腳本來保存數(shù)據(jù)! 提供的機制取決于操作員面板的操作系統(tǒng)和使用的組態(tài)軟件。參考條目結(jié)尾關(guān)于處理其他配置的信息注釋。 WinCC (TIA 博途)中VBScript 命令的文檔 關(guān)于 VBScript 命令的相關(guān)信息可以參見 WinCC (TIA Portal) 幫助系統(tǒng)的 “目錄” 標(biāo)簽和 WinCC Advanced 手冊中, (條目 ID: 109091876), 位于“可視化過程> 使用系統(tǒng)函數(shù)和運行系統(tǒng)腳本“. 圖 01 目錄 保存數(shù)據(jù)到文本文件或 CSV 文件的示例 從文本文件或CSV文件讀取數(shù)據(jù)的示例 下載示例項目 說明 下面的表格說明如何在 WinCC (TIA Portal) 中組態(tài)保存和讀取文件。 使用以下文件格式: csv txt 注意 實例中只使用了內(nèi)部變量。 也可以選擇使用控制器連接的變量。 在這個實例中示范了如何讀寫存儲卡上的文件。如果使用不同的存儲介質(zhì),在腳本中必須進(jìn)行相應(yīng)的改變。 No. 步驟 1 創(chuàng)建變量 使用“項目導(dǎo)航 > HMI_1 > HMI 變量 > 顯示所有變量”打開變量編輯器。 按照下面描述添加四個內(nèi)部變量: 變量 數(shù)據(jù)類型 bExtension Boolean szMaterial WString Pressure Int Temperature Int 圖02 2 添加對象 在“項目導(dǎo)航 > 畫面” 下創(chuàng)建一個名叫 “ImportExportData” 的畫面。 在畫面上插入兩個矩形。 添加一個符號 IO 域和三個常規(guī) IO 域。 添加一個按鈕和九個文本域。 擺放好所有對象并且按照下面輸入文本: “Process values” “Pressure” “Temperature” “Material” “Text file” “mbar” “°C” “Settings” “Extension” 創(chuàng)建一個“值/范圍”類型名為“Extension”的文本列表。 添加如下條目: 0 => “.txt” 1 => “.csv” 圖03 3 建立腳本、文本列表和變量間的關(guān)聯(lián) 創(chuàng)建一個指定名稱為“Write_data”的腳本。進(jìn)入項目導(dǎo)航并且點擊“腳本> VBScripts > 添加新的VB函數(shù)”。 鏈接“Write_data”到“Save file”按鈕的“屬性 > 事件 > 點擊”下。 鏈接“Extension”文本列表到符號 IO 域“Extension”。 鏈接變量到下面相應(yīng)的對象。 變量/腳本 對象類型 對象用于 … iPressure IO field Pressure iTemperature IO field Temperature szMaterial IO field Material bExtension Symbolic IO field Extension 圖 04 4 創(chuàng)建腳本 – 第一步 在“Write_data”腳本中添加簡單代碼 (如圖. 05)。 注意 更多關(guān)于 VBScript 命令信息可以在 WinCC (TIA Portal) 幫助系統(tǒng)中找到。 源代碼描述 本地變量聲明(只在腳本中有效)。 這 “模式” 變量打開文件時被初始化(8 = Append)。 “bExtension” 變量是全局變量,它可以在整個 WinCC (TIA Portal) 項目中使用。 通過符號 IO 域使用這個變量選擇文件擴展名。 注意 “delimiter” 變量實現(xiàn)分隔符功能并且它必須根據(jù)國家的應(yīng)用而改變! 萬一腳本運行錯誤發(fā)生,“On Error Resume Next” 說明是必需的。 注意 如果沒有這個說明并且一個錯誤發(fā)生,腳本將停止。 “創(chuàng)建對象(“FileCtl.File”) 函數(shù)創(chuàng)建一個對象,允許訪問 Windows CE 文件系統(tǒng)。 運行系統(tǒng)錯誤的源代碼查錯程序。如果一個運行系統(tǒng)錯誤發(fā)生,在消息窗口一個錯誤消息被顯示并且腳本停止。 注意 如果使用“FileCtl.File”,將僅能訪問 Windows CE 文件系統(tǒng)。如果在使用其它操作系統(tǒng)的 PC 上運行該腳本,將會出現(xiàn)運行時錯誤并且腳本失敗。 圖05 5 創(chuàng)建腳本 – 第二步 對 “fo” 對象使用 “Open” 方法打開由 “path” (路徑名稱)和“mode” 參數(shù)指定的文件。 file.Open Path name, Mode, [access], [lock], [reclength] 如果相應(yīng)的文件或者路徑名稱不存在,查錯程序?qū)?zhí)行。 至于是否新文件還是已經(jīng)存在的,這部分檢查都被執(zhí)行。如果文件是新的,將被添加一個標(biāo)題。 指定的字符串將被 “fo” 對象的 “LinePrint” 方法寫入已打開的文件中。變量值和返回值也被寫到文件中。 “Now” 函數(shù)寫一個時間標(biāo)記到文件中。 “Close” 方法關(guān)閉文件。 關(guān)鍵字“Nothing” 用于分離對象變量,該變量由“Set”命令分配給該對象。 傳輸用戶自定義的系統(tǒng)消息到 HMI 消息系統(tǒng)。 圖06 6 啟動運行 將 WinCC (TIA Portal)工程傳輸?shù)讲僮髅姘宀舆\行。 注意 由于不同的文件系統(tǒng),腳本不能在組態(tài)計算機和面板之間調(diào)試。 輸入一個電壓,溫度和原材料。 然后單擊“Save data”按鈕。 在符號 IO 域選擇“.csv”并再次單擊按鈕。 終止操作面板的運行。 圖07 7 打開文本文件 如果將兩種文本文件都存到存儲卡上,那么可以在 PC 上使用讀卡器看到這些文件,并使用適當(dāng)?shù)某绦蛉ゴ蜷_。 打開擴展名為“.txt”的文本文件。 然后關(guān)閉文件。 圖08 可以使用 Microsoft Excel 打開擴展名為“.csv”的文件。 關(guān)閉 Excel 程序。 圖09 表 01 從文本文件或 csv 文件讀取信息的示例 如下表格說明文本文件或 csv 文件中的信息如何在WinCC (TIA Portal) 中顯示。 IO 域用作于顯示,只有最有一個條目被輸出。 注意 在此例中由于最后一條條目被搜索,腳本的運行系統(tǒng)會隨著文件的尺寸增長而增長。先前示例中的配置在該示例中不是必須的。但是用到的組件仍然使用。 No. 步驟 1 連接變量 使用“項目導(dǎo)航 > HMI_1 > HMI 變量 > 顯示所有變量”打開變量編輯器。 按照下面描述添加四個內(nèi)部變量: 變量 數(shù)據(jù)類型 szdate WString szString_1 WString iValue_1 Int iValue_2 Int 注意 如果沒有使用之前的項目,添加“bExtension” 變量使用 “Bool” 類型。 圖10 2 添加對象 切換到 “ImportExportData” 界面。 在畫面上插入一個矩形。 如果沒有,添加一個符號 IO 域和四個常規(guī) IO 域。 添加一個按鈕和五個文本域。 擺放好所有對象并且按照下面輸入文本 (如圖. 11)。 “Date” “Value_1” “Value_2” “String_1” “Text file” “Settings” (if not already there) “Extension” (if not already there) 如果沒有,創(chuàng)建名稱為“Extension”的文本列表,條目名稱如下: 0 => “.txt” 1 => “.csv” 圖11 3 建立腳本、文本列表和變量間的關(guān)聯(lián) 拷貝 “Write_data” 腳本并且改名為 “Read_data”(在第五點中介紹腳本修改如何處理)。 鏈接 “Read_data” 腳本到 “Read file” 按鈕的 “屬性 > 事件 > 點擊” 下。 如果之前沒有做,連接 “Extension” 文本列表到符號 IO 域 “Extension”。 連接如下的變量到相關(guān)的對象上: 變量/腳本 對象 對象用于… szDate IO field Date iValue_1 IO field Value_1 iValue_2 IO field Value_2 szString_1 IO field String_1 圖12 4 修改腳本 按照如下表述改變 “Read_data” 腳本。 源代碼描述 改變本地變量名稱(如圖.13)。 改變 “mode” 變量的初始值由 8 (Append)to 1(Input)。 刪除 “gap” 變量,它不再需要。 圖13 5 修改腳本 刪除寫入文件部分的腳本。 添加讀取文件的腳本(如圖. 14)。 圖14 6 啟動運行 將WinCC (TIA Portal) 項目傳送到操作面板并啟動運行。 注意 為了調(diào)試腳本,啟動帶腳本調(diào)試器的仿真器。 單擊“Read data”按鈕。 在符號 IO 域中選擇“.csv”并再次單擊按鈕。 中止操作面板的運行。 圖15 表 02 下載 附件中包含簡單的項目描述。 附件: Example_Project.zip ( 1183 KB ) 注意 該腳本源代碼僅能用于基于 Microsoft Windows CE 的操作面板,因為它不能訪問其它操作系統(tǒng)的文件系統(tǒng)。 附加信息 以下FAQ 提供了關(guān)于腳本保存文本文件的更多信息。 對于 WinCC flexible 和 基于 Windows 的面板。條目 ID 26107211(“對于基于 Windows 的面板,如何使用腳本將信息保存到文本文件或讀取出來??”) 對于 WinCC flexible 和 PCs::條目 ID 26107211(“在PC 使用 WinCC flexible, 如何使用腳本將信息保存到文本文件或讀取出來??”) 對于 WinCC (TIA Portal) 和 PCs:條目 ID 106501825(“如何在 WinCC (TIA Portal) PC 運行系統(tǒng)中用腳本將信息存儲成文件??”) 在 WinCC (TIA Portal) 中如何找到關(guān)于 VB 腳本編程的信息? 條目 ID: 59885894 如何使用 Comfort 面板打開 Word、Excel 或 PDF 文檔? 條目 ID: 51723931 如何導(dǎo)出或?qū)隬inCC運行系統(tǒng)數(shù)據(jù)? 條目 ID: 850338 如何在HMI 設(shè)備上通過腳本診斷是否存儲驅(qū)動器可移動存儲介質(zhì)(U盤,SD/MMC 卡)處于可寫狀態(tài)? 條目 ID: 89855157 |
|