指南)
先說個實在話我當初在Win10 22H2上折騰WinCC 8.0和STEP 7 V5.7 SP1的時候差點把手里的工程電腦干成板磚。不是因為軟件本身安裝有多難而是新舊組件互相拖后腿——裝上WinCC 8.0之后STEP 7 V5.7的授權管理器莫名其妙失效把STEP 7調試完WinCC的畫面運行又變得卡頓。最后我索性把所有工控軟件全部搬進虛擬機宿主系統(tǒng)只保留一個干凈Win10 22H2問題一次性解決。這篇就把我這次搭建基于WinCC 8.0與STEP 7 V5.7 SP1的PLC編程虛擬機的全過程寫出來包括虛擬機怎么配置、兩個軟件安裝的先后順序、以及與PLC通訊調試時最容易踩的坑尤其適合需要同時維護舊設備和新建項目的調試工程師參考。1. 為什么非要用虛擬機來跑WinCC和STEP 71.1 我踩過的宿主直裝慘案最早我也是圖省事直接在實機Win10 22H2上裝了STEP 7 V5.7 SP1。安裝過程倒是一路順風授權用Simatic EKB的對應版本也能認。當時我還覺得網(wǎng)上那些說STEP 7和WinCC環(huán)境沖突的人是危言聳聽結果等我把WinCC 8.0裝上去之后事情就開始不對勁了。第一個現(xiàn)象是WinCC 8.0自帶的SQL Server安裝過程反復回滾提示實例名稱沖突。后來查了半天發(fā)現(xiàn)是STEP 7安裝時帶入的SIMATIC NET組件占用了一些環(huán)境變量和系統(tǒng)服務。第二個現(xiàn)象更讓我頭疼我用WinCC 8.0打開之前V7.3版本做的項目時畫面編輯器里經(jīng)常出現(xiàn)控件注冊失敗而同樣的安裝包在同事的干凈電腦上完全正常。其實這已經(jīng)不是個例了。西門子官方對WinCC和STEP 7版本組合一向有兼容清單但清單列的是可以裝在同一臺機器實際使用時授權服務、SQL Server實例、COM組件注冊這些底層東西互相干擾的概率遠比想象中大。對于咱們這種既要寫PLC程序、又要做上位機畫面的工程師一臺機器上干干凈凈只有一個工控環(huán)境比什么都重要。1.2 虛擬機方案帶來的四個實打實好處第一環(huán)境隔離。虛擬機里裝的WinCC 8.0、STEP 7、SIMATIC NET、KEPServerEX這些東西所有的注冊表修改和服務安裝都在虛擬磁盤上完成宿主機的Win10 22H2不會沾到半點。我現(xiàn)在的宿主機連殺毒軟件都沒裝就一個系統(tǒng)干凈得跟剛安裝完一樣。第二快照回滾。安裝STEP 7 V5.7 SP1之前打一個快照裝完軟件、激活完授權、做一次與S7-1200或者S7-300的通訊測試后再打一個快照。后面萬一軟件崩潰、授權文件損壞、或者調試過程中系統(tǒng)被搞壞直接恢復到可用狀態(tài)十分鐘就搞定不用重裝系統(tǒng)。第三硬件獨立性。虛擬機內部網(wǎng)卡的MAC地址是固定的軟件授權綁定的是虛擬硬件信息換宿主機的時候直接把虛擬機文件復制過去不需要重新激活。這一點對于經(jīng)常換電腦的工程師來說太重要了。第四方便備份和遷移。整個虛擬機就是一個文件夾加幾個vmdk文件壓縮之后拷到移動硬盤里隨時可以在另一臺電腦上繼續(xù)干活。比起重新安裝一整套西門子軟件省下來的時間足夠把整個項目重新梳理一遍。1.3 網(wǎng)絡熱詞里那些疑難雜癥其實多數(shù)和宿主環(huán)境有關我看最近工控圈子里很多人在搜WinCC歷史趨勢曲線腳本KEPServerEX和WinCC通訊STEP7使用上傳程序覆蓋之類的話題。實際上這些問題的根源有很大一部分并不在軟件本身而在運行環(huán)境。舉一個典型例子WinCC的在線趨勢控件和歷史趨勢控件運行時需要調用系統(tǒng)的Windows圖形組件和數(shù)據(jù)庫接口。如果宿主系統(tǒng)里裝了其他大型軟件尤其是.net環(huán)境被改過、或者顯卡驅動不兼容趨勢曲線要么不刷新要么歷史數(shù)據(jù)組件直接空白。而在虛擬機里顯卡可以虛擬化操作系統(tǒng)純凈這類組件沖突的概率會顯著降低。所以我個人對虛擬機性能不行、工控軟件跑不動這個說法持保留態(tài)度。WinCC 8.0和STEP 7 V5.7 SP1都不是什么吃硬件的怪物關鍵在于環(huán)境穩(wěn)定。實際測試下來虛擬機運行WinCC 8.0的響應速度和實機幾乎沒有肉眼可感知的差別。2. 硬件評估與虛擬機平臺選型2.1 什么樣的電腦適合做虛擬機宿主機先別急著下載VMware先評估一下手上的電腦配置。我用的是一臺i5-12400F處理器、32GB內存、1TB NVMe固態(tài)的臺式機虛擬機分配了8GB內存和4核CPU給WinCCSTEP 7環(huán)境同時還會偶爾跑一個Win10 LTSC虛擬機做HMI組態(tài)測試宿主整體負載在60%左右沒有任何卡頓。最低配置的話我的建議是CPU至少6核內存最少16GB固態(tài)硬盤必須安排上。為什么固態(tài)硬盤是硬性要求因為WinCC 8.0的工程文件動輒幾個GB項目歸檔、趨勢數(shù)據(jù)存儲、SQL Server日志寫入都涉及大量隨機讀寫機械硬盤在這種負載下會成為明顯的瓶頸。另外要注意一個容易被忽略的點CPU要在BIOS里開啟VT-x/AMD-V虛擬化技術?,F(xiàn)在的電腦默認基本都開著但某些品牌機為了安全默認關閉。如果發(fā)現(xiàn)VMware創(chuàng)建虛擬機后提示此主機支持Intel VT-x但Intel VT-x處于禁用狀態(tài)就需要重啟進BIOS開啟。這個坑導致VMware安裝Win10時直接藍屏的人不在少數(shù)。2.2 VMware Workstation 17的設置細節(jié)虛擬機平臺我選的是VMware Workstation 17 Pro界面清爽對新版Win10 22H2的支持也到位。創(chuàng)建虛擬機時有幾個參數(shù)不要圖省事用默認值內存設8GB最穩(wěn)Win10 22H2開完機至少要占2GBWinCC 8.0運行時再吃掉2-3GB剩下給STEP 7和SQL Server操作空間。如果宿主機內存足夠大可以給到12GB但沒必要超過16GB。處理器先設4核。WinCC的變量采集和歸檔寫入是多線程的4核比較均衡。設置時右側的虛擬化引擎選項保持默認即可不要勾選虛擬化Intel VT-x/EPT或AMD-V/RVI因為你不需要在虛擬機里再套一層虛擬化。硬盤分配120GB。STEP 7 V5.7 SP1安裝完大概占20GBWinCC 8.0裝完加SQL Server大概25GB加上頁面文件和未來工程文件120GB夠用三年。不建議用單文件選將虛擬磁盤存儲為單個文件性能稍好一些。網(wǎng)絡先選NAT模式后面講PLC通訊時會詳細展開為什么要這樣選以及什么時候改橋接。關于VMware Workstation 17的安裝過程網(wǎng)上已經(jīng)有非常成熟的教程。需要提醒的是安裝完VMware后先別急著建虛擬機先在宿主機上跑一次系統(tǒng)更新把Win10 22H2的補丁打全否則虛擬機里裝系統(tǒng)時可能會遇到奇怪的USB驅動或顯卡驅動問題。2.3 老通訊卡CP5611/PC Adapter的直通問題如果你調試的還是S7-300/400這種老家伙通訊方式大概率還是DP網(wǎng)卡或者PC Adapter。這就涉及虛擬機的USB設備直通和PCI設備直通。USB方式的PC Adapter直通比較簡單虛擬機設置里添加USB控制器然后插上PC AdapterVMware會彈出對話框詢問連接到主機還是虛擬機選擇虛擬機即可。實測MPI下載、S7-300的PG/PC通訊都很穩(wěn)定沒有明顯延遲。DP網(wǎng)卡CP5611就麻煩一點。它是一張PCI卡VMware Workstation支持PCI直通但前提是宿主機網(wǎng)卡支持VT-dIntel或AMD-ViAMD。而且把PCI卡直通給虛擬機后宿主機就完全無法使用這張卡了上下虛擬機間切換需要重啟。我的建議是如果需要大量調試老設備最好還是用USB口的PC Adapter靈活度大得多。如果實在要用CP5611可以考慮用虛擬機軟件抓走整塊PCI設備但這需要BIOS里開啟VT-d且容易引發(fā)藍屏不推薦新手嘗試。3. Win10 22H2虛擬機的系統(tǒng)安裝與瘦身配置3.1 鏡像選擇與安裝要點虛擬機里裝Win10 22H2鏡像一定要選MSDN原版不要用各種修改版和精簡版。因為WinCC 8.0在安裝時會檢查系統(tǒng)組件完整性精簡版系統(tǒng)往往缺少某些系統(tǒng)級庫文件導致安裝到一半報無法安裝所需的組件錯誤。安裝系統(tǒng)這一步?jīng)]什么特別之處VMware引導ISO后跟著提示走就好。注意安裝分區(qū)時不要貪心100GB的虛擬硬盤全部作為C盤即可不要手動分區(qū)。裝完系統(tǒng)之后我習慣做三件事設置計算機名、安裝VMware Tools、打滿Windows更新。VMware Tools很重要它提供虛擬顯卡驅動和拖拽文件功能WinCC 8.0的畫面編輯器對顯卡驅動極其敏感沒有Tools的虛擬機打開畫面時如果出現(xiàn)黑色塊或者控件閃爍優(yōu)先考慮更新Tools。3.2 必關的系統(tǒng)坑自動更新、休眠、Windows Defender實時保護這一步非常重要直接決定后面安裝西門子軟件的成敗。關閉Windows自動更新。虛擬機里的系統(tǒng)不需要通過更新補丁來保證安全性更多的是要保證工控軟件運行環(huán)境的穩(wěn)定性。Windows更新經(jīng)常會偷偷替換系統(tǒng)文件而西門子軟件和這些系統(tǒng)文件的兼容性是經(jīng)過嚴格測試的第三方補丁替換后很容易出問題。設置方法WinR輸入services.msc找到Windows Update服務雙擊啟動類型改為禁用。關閉休眠。WinCC的數(shù)據(jù)庫服務會持續(xù)占用內存休眠功能會把內存數(shù)據(jù)寫入磁盤又無法完全斷點恢復容易導致SQL Server下次啟動時數(shù)據(jù)不一致。在管理員命令行執(zhí)行powercfg -h off即可。關閉Windows Defender實時保護。這一步爭議比較大但我實測下來WinCC 8.0的授權服務和STEP 7 V5.7 SP1的編程過程中Defender的實時掃描確實會偶發(fā)地鎖定正在寫出的文件導致編譯或保存工程時出現(xiàn)文件被占用的報錯。我處理的方式是控制面板-系統(tǒng)和安全-Windows安全中心-病毒和威脅防護把實時保護關掉。如果你不想關至少在安裝和首次編譯項目時臨時關閉等環(huán)境穩(wěn)定后再放行。3.3 顯卡與顯示設置對WinCC畫面性能的影響很多人低估了WinCC運行系統(tǒng)對顯卡的要求。WinCC畫面里的動畫、趨勢控件、報警列表刷新其實都依賴圖形渲染。在虛擬機里默認的虛擬顯卡驅動只能保證能顯示但刷新率和內存帶寬有限。裝完VMware Tools之后我記得設置里有一個加速3D圖形選項這里一定要勾上。另外還有兩個顯示相關的坑第一屏幕分辨率不要追求太高。虛擬機窗口模式運行WinCC時如果切換窗口頻繁偶發(fā)會出現(xiàn)畫面刷新不全的情況。我實測比較穩(wěn)的方案是把分辨率設為1366x768或者1920x1080用縮放功能調整并且在虛擬機設置里固定分辨率顯示而不是讓它自動適配宿主窗口大小。第二WinCC 8.0運行系統(tǒng)的畫面瀏覽器如果遇到畫面加載一半就白屏的情況往往不是網(wǎng)絡問題而是虛擬機顯卡驅動沒打全。檢查一下設備管理器里顯示適配器是不是出現(xiàn)了Microsoft基本顯示適配器如果是說明VMware Tools沒裝成功需要重新安裝。3.4 快照基準裝軟件前先留一個干凈底等系統(tǒng)補丁、VMware Tools、字體庫這些基礎都搞完之后第一件事不是裝STEP 7而是先做一次快照。我給這個快照起名叫基礎環(huán)境_純凈系統(tǒng)作為整個工控環(huán)境的基準點。這個快照的意義在于后面無論裝哪個軟件出了問題都可以回到這個狀態(tài)重新開始不用從頭裝系統(tǒng)。我見過不少同事裝WinCC裝到SQL Server那一步失敗后直接重裝系統(tǒng)然后又要花一個下午打補丁、配置網(wǎng)絡效率極低。其實一個快照的事。打了快照之后建議把快照名字和時間寫進項目筆記里以后工程做完歸檔時可以把虛擬機連同快照文件一起壓縮留檔方便以后通過同一個環(huán)境復現(xiàn)問題。4. STEP 7 V5.7 SP1安裝順序、授權與常見報錯4.1 安裝順序為什么不能亂這個部分是我在整個過程中最有心得的地方。西門子軟件的安裝順序真的是牽一發(fā)而動全身。正確順序是先安裝STEP 7 V5.7 SP1再裝WinCC 8.0中間還有一個不能跳過的步驟——安裝升級包和工具集。為什么先裝STEP 7因為WinCC 8.0在安裝時會檢測系統(tǒng)中是否已經(jīng)安裝了SIMATIC NET組件并決定是否自動安裝它自己的通信組件。如果你先裝了WinCC后面再裝STEP 7STEP 7自帶的SIMATIC NET版本可能會和WinCC自帶的通信組件沖突導致兩者之間無法通過內部接口通信典型表現(xiàn)是WinCC變量管理里找不到SIMATIC S7 PROTOCOL SUITE通道。具體到STEP 7 V5.7 SP1的安裝有幾個小細節(jié)值得注意。第一安裝包建議先解壓到本地硬盤再執(zhí)行setup.exe。不要直接從光盤或者網(wǎng)絡共享目錄安裝。I/O密集環(huán)境下安裝程序可能偶發(fā)讀取錯誤導致某些文件未復制等問題。第二安裝過程中建議選擇自定義安裝把SIMATIC NET所有組件勾上尤其是Industrial Ethernet和PG/PC接口。很多人為了省事選擇典型安裝結果后面需要用到Profibus通訊時發(fā)現(xiàn)PG/PC接口里沒有對應設備只能痛苦地增量安裝。第三授權問題。STEP 7 V5.7 SP1需要一個與版本匹配的授權文件。我把話放在這里simatic ekb或者正版授權都可以但要注意兼容性V5.6的授權不一定能被V5.7 SP1識別。確保授權加載到帶加密狗的磁盤之后再用ALMAutomation License Manager檢查一下授權狀態(tài)確認顯示為綠色即可。4.2 關于上傳程序覆蓋和程序塊解鎖的處理經(jīng)驗我看熱搜詞里有兩個很典型的STEP 7使用問題一個是STEP7使用上傳程序覆蓋另一個是西門子STEP7程序塊解鎖這兩個我在實際調試中都遇到過。上傳程序覆蓋的完整操作是這樣的打開STEP 7新建或打開一個空項目點擊菜單欄的PLC - Upload Station to PG選擇合適的通訊接口一般是PC Adapter或以太網(wǎng)點擊執(zhí)行上傳前系統(tǒng)會提示目標項目是否為空如果目標項目里已有同名程序塊會詢問是否覆蓋。很多人在第4步會卡住提醒源站中的塊與目標項目中的塊簽名不一致。這其實是正常的因為站里程序的版本比你項目中新。此時不要急著點覆蓋先確認目標項目中是否有需要保留的符號表或注釋。如果只是單純備份現(xiàn)場程序建議先在目標項目里把原有塊全部刪除再重新上傳避免殘留塊導致編譯錯誤。程序塊解鎖的問題本質是因為老版本STEP 7項目中的塊如果設置了Know-How Protection上傳到新項目中也會保持保護狀態(tài)無法查看邏輯。要解開它只有在原站程序里事先用Edit - Know-How Protection - Remove Protection解除保護然后重新下載。如果手上只有受保護的上傳文件沒法直接解開只能通過反匯編或者邏輯推測實用性很差。所以凡是客戶的現(xiàn)場設備我都在合同里寫明需要提供未加密原程序這是后話。4.3 STEP 7 V5.7 SP1的常見安裝報錯我在虛擬機環(huán)境下安裝時遇到過兩個比較典型的報錯。第一個是SIMATIC NET Setup has detected that some of your settings are not optimal提示虛擬內存不足。這其實不是真不足而是系統(tǒng)自動管理頁面文件時虛擬機的初始頁面文件太小。解決方法是右鍵計算機-屬性-高級系統(tǒng)設置-性能設置-高級把虛擬內存改為自定義初始大小和最大值都設為系統(tǒng)內存的1.5倍以上。第二個是安裝進度到70%左右時彈出無法注冊DLL文件。這個一般是Windows Defender實時掃描或者UAC賬戶控制過度干預導致的。我前面建議關閉Defender原因就在這里。如果已經(jīng)出現(xiàn)這個報錯建議先關掉Defender卸載已經(jīng)安裝的部分組件退回基準快照重新安裝。5. WinCC 8.0安裝與工程環(huán)境的搭建細節(jié)5.1 SQL Server自動安裝的等待與重啟問題WinCC 8.0安裝過程自帶SQL Server一般會自動安裝SQL Server 2019 Express或者更高版本具體看安裝包版本。這個步驟看起來很傻瓜但隱藏著兩個坑。第一時間極長。SQL Server安裝加后續(xù)組件配置經(jīng)常要等40-60分鐘期間看起來像卡住了。我第一次裝的時候以為死機了差點強制關機。后來給虛擬機配置了SSD硬盤之后全程大概30分鐘。如果你看到安裝日志停在某個組件超過15分鐘沒有進展不要急著動可以打開任務管理器查看CPU和磁盤IO是否還在活動如果磁盤有大流量讀寫就說明還在干活。第二SQL Server安裝完成后必須要重啟虛擬機一次。這個重啟不是安裝程序提示的重啟而是為了確保數(shù)據(jù)庫服務正常啟動。如果跳過重啟直接進入WinCC安裝的下一步后續(xù)創(chuàng)建項目時訪問數(shù)據(jù)庫會報錯類似無法啟動數(shù)據(jù)庫實例。5.2 WinCC 8.0界面變化與V7.3舊工程遷移WinCC 8.0的組態(tài)界面和V7.x相比變化不小特別是項目管理器的樹形結構做了調整畫面對象屬性表默認不顯示離散量過程值列表。但最大的變化是安裝包自帶的Simatic Shell功能它把WinCC和STEP 7統(tǒng)一放在一個控制器視圖中從同一個入口打開PLC編程和畫面組態(tài)。我最初用WinCC 8.0打開V7.3項目時項目轉換向導會自動啟動這個過程基本不需要干預。但要注意轉換后的項目會在原項目旁邊生成一個帶V8_Backup字樣的原版本備份文件夾不要去動它。萬一新項目運行有問題還能回到舊版環(huán)境重新導出修改。關于老項目轉換中最容易出現(xiàn)的顏色丟失問題V7.3項目里使用的自定義顏色對象在V8.0中會被映射成RGB值但部分顏色在項目的全局顏色管理器中并不存在轉換后畫面里有些線條變成黑色。解決辦法是在轉換前檢查V7.3項目全局庫里的顏色標準盡量用標準色卡里的顏色。5.3 歷史趨勢曲線腳本很多人問這個熱搜詞里有WinCC歷史趨勢曲線腳本這是個典型需求。我在這個虛擬機上做過一個完整的趨勢曲線記錄報警項目用下來核心腳本就兩類一類是在線趨勢控件的動態(tài)化另一類是歷史數(shù)據(jù)查詢導出。在線趨勢控件推薦用WinCC自帶的在線趨勢控件不需要額外腳本只要在畫面編輯器中拖入控件設置變量連接和時間窗口即可。但它的缺陷是數(shù)據(jù)只保留在內存里重啟運行系統(tǒng)后歷史數(shù)據(jù)丟失。如果需要長期保存歷史數(shù)據(jù)并支持檢索推薦使用歸檔數(shù)據(jù)瀏覽器功能結合SQL數(shù)據(jù)庫。在WinCC變量管理里配置好歸檔變量后歷史趨勢控件會直接讀取SQL Server里的歷史值。這一步往往需要寫一小段C腳本或VBS腳本來實現(xiàn)時間范圍動態(tài)查詢核心代碼大概是這樣的以C腳本為例#pragma code(useadmin) #include apdefap.h int gs_query_time_range(char* lpszVariableName, DWORD lStartTime, DWORD lEndTime) { // 設定歷史趨勢控件的時間范圍 return 0; } #pragma code()這個腳本邏輯不復雜但有個容易踩的坑查詢時區(qū)問題。虛擬機的系統(tǒng)時區(qū)必須和項目中設置的歷史數(shù)據(jù)記錄時區(qū)一致否則查出來的時間軸整體偏移8小時。很多同事查歷史趨勢發(fā)現(xiàn)曲線和實際記錄時間對不上第一反應是腳本錯了其實檢查虛擬機時間和項目時區(qū)就能解決。5.4 WinCC Flexible打開工程無顯示的解法和預防另外一個高頻問題WinCC Flexible打開工程時無顯示。這個問題的完整描述一般是打開軟件能正常進入但點擊工程文件界面上什么都沒有也不報錯。我之前在這個虛擬機上用WinCC Flexible 2008 SP4打開Smart 700 IE的觸摸屏項目就遇到過一次。排查下來根因多半是OpenGL渲染模式?jīng)_突。解決辦法很直接在WinCC Flexible的安裝目錄下找到SimaticHMI.ini文件把UseOGL1改成UseOGL0保存后重新打開工程即可。注意修改前把軟件關掉否則配置會被覆蓋。預防這個問題的辦法是安裝WinCC Flexible之后第一次打開工程前先在控制面板里確認顯卡渲染模式是否正常?;蛘吒唵沃苯涌催\行系統(tǒng)的啟動參數(shù)關閉硬件加速以后就不太可能再冒出來。6. 虛擬機與PLC的通訊鏈路網(wǎng)絡規(guī)劃與故障排查6.1 三種網(wǎng)絡連接模式怎么選虛擬機連接PLC第一個關鍵就是網(wǎng)絡模式。我在VMware里給出三種選擇每種都有明確的適用場景。NAT模式。這是默認選項虛擬機通過宿主機共享網(wǎng)絡上行傳輸數(shù)據(jù)。如果你調試的目標PLC是通過以太網(wǎng)連到你的路由器或者你要用S7通訊訪問遠程設備NAT模式最穩(wěn)。它不需要額外配置網(wǎng)絡段虛擬機里的IP地址由VMware的DHCP自動分配宿主的網(wǎng)卡也能正常訪問外部網(wǎng)絡。但NAT模式有個致命限制外部的PLC如果要主動發(fā)數(shù)據(jù)到虛擬機里的上位機例如第三方設備作為Modbus客戶端來讀WinCC的數(shù)據(jù)NAT模式下通常沒法直接訪問到虛擬機內部IP。這種情況必須用橋接模式。橋接模式。設置成橋接后虛擬機直接使用物理網(wǎng)卡擁有和宿主同一個網(wǎng)段的獨立IP。S7-1200/1500的Profinet通訊、S7-300的TCP/IP連接都建議用這個模式。唯一的麻煩是如果你經(jīng)常換網(wǎng)絡環(huán)境用筆記本調試橋接模式每次切換網(wǎng)絡都要重新確認IP是否被占用。僅主機模式Host-Only。這個模式主要用于使用虛擬網(wǎng)卡仿真測試的情況。如果要在虛擬機和宿主機之間進行OPC測試、用KEPServerEX做模擬通訊僅主機模式能保證數(shù)據(jù)流量不經(jīng)過真實物理網(wǎng)絡純粹在內存中交換速度極快且不會干擾現(xiàn)場網(wǎng)絡。缺點是外部設備訪問不到這個網(wǎng)絡。6.2 S7通訊、OPC UA/Modbus的橋梁KEPServerEX思路熱搜詞里有KEPServerEX和WinCC通訊這其實是絕大部分上位機和第三方設備通訊的通用方案。在虛擬機里跑WinCC做上位機如果現(xiàn)場設備不是西門子PLC而是三菱、臺達、ABB變頻器或者是一些傳感器儀表WinCC自帶的驅動通道不一定夠用。這個時候KEPServerEX就作為通訊網(wǎng)關把各種協(xié)議Modbus RTU、Modbus TCP、OPC UA統(tǒng)一轉換成OPC DA或OPC UA數(shù)據(jù)再交給WinCC。我現(xiàn)在的虛擬機里就固定安裝了一套KEPServerEX 6。具體配置時CIP或Modbus驅動作為設備驅動然后新建一個Channel再創(chuàng)建Device配置IP和寄存器類型。WinCC這邊則不需要裝額外驅動只要用WinCC的OPC通道連接本地KEPServerEX即可。注意WinCC和KEPServerEX必須使用相同賬戶權限啟動否則OPC DA的連接會因權限問題失敗。實測下來這個方案讀取數(shù)控機床的狀態(tài)數(shù)據(jù)、傳感器采集速度都非常穩(wěn)定。而且KEPServerEX在虛擬機里同樣工作得很好因為它本質上就是走TCP或串口通訊虛擬機網(wǎng)絡模式只要跟PLC在同一個可達網(wǎng)段完全沒有問題。6.3 常見連不上CPU的排查順序我在調試過程中遇到最多的問題就是虛擬機里的STEP 7 Micro/WIN Smart或者TIA Portal其實TIA Portal在這篇不展開但排查邏輯類似搜索不到PLC CPU。以下是標準的排查順序按順序做90%的問題都能解決檢查IP網(wǎng)段。打開cmdping一下PLC的IP。如果ping不通優(yōu)先看虛擬機的網(wǎng)絡模式是NAT還是橋接確認雙方是否在同一個廣播域內。最常見的是PLC是192.168.0.x虛擬機是172.16.x.xNAT默認網(wǎng)段兩個網(wǎng)段根本不通。檢查防火墻。虛擬機的Windows防火墻默認會阻斷S7通訊使用的端口102、102等。最簡單的方法是在調試期間臨時關閉防火墻或者放行規(guī)則。我一般直接在控制面板把系統(tǒng)防火墻全部關閉反正這個虛擬機不接外網(wǎng)。檢查PG/PC接口設置。STEP 7軟件里面選項-設置PG/PC接口必須把訪問節(jié)點設置為TCP/IP-網(wǎng)卡名稱并且指定給虛擬機網(wǎng)卡對應的以太網(wǎng)接口。很多人在全新系統(tǒng)里忘記改這個設置默認的ISO Ind. Ethernet根本連不上S7-1200。檢查SIMATIC NET服務。如果按上面三步還搜索不到CPU檢查Windows服務列表里是否啟動了SIMATIC NET相關服務。這兩個服務經(jīng)常在系統(tǒng)重啟后沒能自動啟動手動啟動后再試一次一般就好了。6.4 操作系統(tǒng)時間同步問題很多人不知道虛擬機和PLC通訊過程中系統(tǒng)時間如果偏差太大某些CPU帶有時間戳功能時通訊會被拒絕或者數(shù)據(jù)寫入異常。尤其是S7-1500這種帶SNMP和NTP同步功能的PLC上位機的時間不準歷史報警的時區(qū)就對不上。每次開機后我是建議自動同步一次虛擬機時間。如果虛擬機一直和宿主時鐘同步而宿主電腦長時間不關機虛擬機內部時鐘可能漂移。解決思路安裝VMware Tools并勾選時間同步選項。然后在虛擬機里關閉Windows時間自動更新改成手動定期檢查。這樣才能保證歸檔數(shù)據(jù)的時間戳可靠。7. 快照、克隆與大工程遷移的實操建議7.1 快照策略什么時候打、怎么還原我給自己定了一套簡單的快照規(guī)則這套規(guī)則在虛擬機里已經(jīng)用了快兩年非常靠譜基礎系統(tǒng)快照剛裝完Win10 22H2、VMware Tools、所有驅動打完系統(tǒng)補丁之后打第一個快照。軟件安裝點快照裝完STEP 7 V5.7 SP1完成授權激活后打第二個快照命名STEP7_Ready。裝完WinCC 8.0并完成授權、項目轉換測試后打第三個快照命名WinCC_Ready。工程節(jié)點快照每個項目調試開始前打一個快照項目調試完成后打一個快照命名帶上日期。為什么要三個快照因為萬一WinCC 8.0后續(xù)做某個功能測試時系統(tǒng)崩潰我恢復的是WinCC_Ready快照而不是STEP7_Ready這樣能少損失一大段安裝和配置時間。如果是STEP 7側出了問題回退到STEP7_Ready即可WinCC和系統(tǒng)底子都還在。關于快照的保存位置記住一個原則不要把所有快照都堆在同一個vmdk文件鏈里快照越多磁盤越慢。每次做重要節(jié)點快照之前我會清掉上一個可丟棄的快照保持快照鏈短而穩(wěn)定。7.2 克隆與備份換電腦/遷移到PVE等平臺如果之后要換宿主機最簡單的方式是用VMware的導出OVF模板功能。把虛擬機關機菜單欄文件-導出為OVF模板導出后得到OVA文件。新電腦上打開VMware Workstation文件-打開直接導入OVA即可。注意導入后重新安裝一次VMware Tools以適配新宿主硬件。另外有人會提到把VMware虛擬機遷移到PVE或者Proxmox VE這類開源虛擬化平臺。官方?jīng)]有直接支持VMware vmdk轉qcow2的工具但我們可以用qemu-img轉換命令來處理vmdk文件格式。常見做法是把磁盤從單文件改成多文件再轉換或者直接用qemu-img convert。實踐下來可行但要注意轉換前先把快照合并否則容易丟失數(shù)據(jù)。如果你是往PVE上遷移建議先把虛擬機里所有快照刪除只留最終狀態(tài)然后用qemu-img convert -f vmdk -O qcow2 disk.vmdk disk.qcow2。轉換完成后導入PVE再重新安裝一下virtio驅動。不過說實話日常工程調試場景下同一臺電腦用快照就夠了換電腦這種需求一年都遇不到幾次。真要換最穩(wěn)的還是導出OVAPVE轉換這塊作為備選方案了解一下就行。7.3 把虛擬機VMDK轉成物理U盤/硬盤的思路有網(wǎng)友問過DiskGenius轉虛擬機為U盤的問題這個場景一般是工程師想把做好的上位機運行環(huán)境封裝成可直接啟動的U盤或者拷到一臺工控機上。大致思路是先用WinPE制作啟動U盤再把虛擬機里的VMDK磁盤通過DiskGenius的磁盤克隆功能克隆到U盤但實際操作中會遇到驅動缺失的問題。因為虛擬機里用的是虛擬顯卡、VMware虛擬SCSI控制器直接裸機啟動Windows時會因為缺驅動藍屏。所以如果真想這樣操作我建議在虛擬機里先用Sysprep工具重置Windows通用化再在虛擬機里安裝好實體機的萬能網(wǎng)卡和存儲控制器驅動。這個過程比較折騰而且實體機的驅動兼容性不可控。我的看法是如果目標機是固定的工業(yè)現(xiàn)場工控機不如直接在實體機上全新安裝一套系統(tǒng)然后把虛擬機里的工程文件和數(shù)據(jù)庫導入。省心得多穩(wěn)定得多。8. 關于WinCC V7.3 SE安裝包與V8.1激活的一些補充熱搜詞里還有兩個相關度高的WinCC V7.3 SE安裝包和WinCC V8.1激活。雖然本文建的是8.0環(huán)境但這些問題往往是一起出現(xiàn)的。如果你手上既有V7.3 SE的舊工程又用V8.0做新環(huán)境建議注意以下幾點。V7.3 SE安裝包本身在Win10 22H2上直接安裝是有兼容性風險的特別是SQL Server 2012的實例很可能裝不上或者無法連接。當年WinCC V7.3 SE的數(shù)據(jù)庫組件和Win10的新版系統(tǒng)內核兼容性不佳要么打補丁要么用兼容模式安裝要么就直接選擇在虛擬機里裝一個Win7或Win10 LTSB來做V7.3環(huán)境這也是不少人采用的方式。V8.1激活的問題其實和8.0大同小異授權服務必須在系統(tǒng)啟動時自動運行且授權文件里必須有針對V8.1的條目。有時候我遇到8.1的授權不生效不是授權本身壞了而是系統(tǒng)時間被改動了或者授權服務沒有在正確賬戶下運行。先檢查這兩點別急著折騰授權。整體來說我這套基于Win10 22H2宿主虛擬機的WinCC 8.0STEP 7 V5.7 SP1方案用下來最舒服的一點就是不怕折騰了。軟件層出問題就回快照項目數(shù)據(jù)丟不了硬件層也因為有快照和克隆機制風險被壓得很低。如果你也有工控開發(fā)環(huán)境混亂、新舊版本軟件互相干擾的困擾建議果斷試試虛擬機方案按這篇的順序一步步搭下來整個開發(fā)調試流程會順很多。最后再分享一個小技巧別把虛擬機里的工程文件夾放在C盤系統(tǒng)盤放到D盤單獨建一個Projects目錄配合快照使用更靈活以后備份虛擬機時也能單獨把項目目錄存檔找資料會方便得多。