工控隨筆_07_西門子_WinCC利用命令列實現操作log日誌
在WinCC中可以通過報警紀錄來實現操作員紀錄,這個需要WinCC的訊息系統進行組態和配置。
利用訊息系統進行實現上訴功能不但複雜而且時間久啦也不方便查詢。那麼有沒有一種簡單的方法來
實現操作員紀錄呢?
我們知道在Windows系統中可以通過批處理來實現很多功能,而且操作也比較簡單,學習起來也
沒有多大的難度。那麼我們是否可以Windows的批處理功能來實現日誌功能呢?
一、WinCC執行外部程式。
在WinCC中通過
ProgramExecute("notepad.exe");
函式可以執行外部程式。 其中函式的引數是外部程式的路徑和可執行檔名。
二、cmd直譯器的路徑和直接啟動cmd直譯器傳遞引數
1、檢視路徑
我們可以通過命令列檢視 cmd 直譯器的路徑。 預設cmd解釋程式的路徑為:%windir%\system32\cmd.exe
圖 利用命令列檢視cmd解釋的路徑和可執行檔名
2、給cmd直譯器傳遞引數
在執行對話方塊中輸入命令:
cmd /c start notepad.exe
這個命令直接就可以啟動記事本程式。
圖 利用cmd的方式啟動記事本程式。
這個命令需要解釋一下:
cmd 是命令直譯器可執行程式,後面的 /c start notepad.exe 是傳遞給cmd的引數, /c 表示後面的
字串是一個命令列,是一條命令; start 表示是要啟動一個程式, notepad.exe 是要啟動的程式。
三、利用cmd直譯器直接生成log檔案
在執行對話方塊輸入:
cmd /c echo "我是log測試行">>C:\Users\volcanol\Desktop\log.txt
如下圖所示:
點選確定執行。在桌面生成一個檔案 log.txt, 並且我們的內容也輸入到了檔案中,如下圖所示:
圖 利用cmd直譯器生成的log.txt 檔案
三、WinCC指令碼執行
結合上面說的cmd直譯器的執行和在WinCC中執行外部程式,我們就可以做成一個簡易的操作記錄
日誌了。
ProgramExecute("cmd.exe /c echo ---------------------->> E:\\我是cmd命令列log.txt"); ProgramExecute("cmd.exe /c echo %date%>>E:\\我是cmd命令列log.txt"); ProgramExecute("cmd.exe /c echo %time% >>E:\\我是cmd命令列log.txt"); //Return-Type: unsigned long int ProgramExecute("cmd.exe /c echo 我按下了按鈕 >>E:\\我是cmd命令列log.txt"); ProgramExecute("cmd.exe /c echo. >>E:\\我是cmd命令列log.txt"); ProgramExecute("cmd.exe /c echo --------------------->> E:\\我是cmd命令列log.txt");
我通過上面的程式碼,就在E碟符下面生成了一個日誌檔案。如下圖所示:
圖 WinCC中利用cmd命令生成日誌檔案
四、結語
上面的命令執行的時候有很多的命令列視窗,其實我們可以將這些寫成一個命令列指令碼,同時還可以在
WinCC中設定一個專案函式,傳遞引數的方式執行,這樣就不會有很多命令列視窗一閃而過,專案函式執行
的方式待續。
--------------------------------------------------------------分割線---------------------------------------------------------------
1、文章均為個人原創,歡迎轉載,轉載請保留出處:https://www.cnblogs.com/volcanol/
2、獲取工控PLC、變頻器、HMI、計算機、Windows、Linux、嵌入式資料點選:獲取資料
3、如果您覺得文章對您有幫助可轉至頁面上半部分打賞,或移步:打賞
4、或者在頁面右下角點推薦喲!!!
--------------------------------------------------------------分割線--------------------------------------------------------------