ClientAce

常見問題

問題: 專案在Visual Studio (VS) 2010 或 2012 Development PC上進行編譯和測試。因此需要.Net 4.0 Framework。當.Net4.0Framework被設置在其他台電腦上就是發生崩潰並且顯示下列未處理的錯誤訊息。 System.IO.FileNotFoundException: 無法讀取文件或是程式。 'Kepware.ClientAce.OpcClient.dll' 或是其他的元件。無法找到指定的板塊。 檔案名稱: 'Kepware.ClientAce.OpcClient.dll' at Kepware.ClientAce.DA_Junction.ClientAceDA_Junction.DisconnectAllServers() at Kepware.ClientAce.DA_Junction.ClientAceDA_Junction.Connector_Closing(Object sender, CancelEventArgs e) at System.ComponentModel.CancelEventHandler.Invoke(Object sender, CancelEventArgs e) at System.Windows.Forms.Form.OnClosing(CancelEventArgs e) at System.Windows.Forms.Form.WmClose(Message& m) at System.Windows.Forms.Form.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) 發生此錯誤的可能原因: 最有可能導致錯誤的原因是ClianrtAce函式庫中Runtime dependency。由於ClientAce中OPC DA 的COM是由C++所編寫的。在CleintAce 4.0版本,適用於VS 2010的C++。且C++的編碼會依從VS 2010中的C++ 可轉散發套件: • msvcr100.dll • msvcp.dll 解決方法: 安裝VS 2010 C++ 可轉散發套件
     支援Visual Studio的版本   .Net版本 Notes
2003 2005 2008 sp1 2010 2012 2013
ClientAce 1.1 Yes Yes Yes Yes Yes No   .Net 1.0, 2.0 1, 2, 5, 6
ClientAce 3.5 No No Yes Yes Yes No   .Net3.5 1, 2, 3, 5.6
ClientAce 4.0 No No No Yes Yes Yes   .Net 4.0, 4.5 1, 2, 4, 5, 6

注意1:要使用ClientAce時需要在C#環境下新增ClientAce ToolBox和Menu items。所以使用者一定要在C#開發環境之下安裝ClientAce才能順利執行。

注意2:為了避免安裝時出現問題,必須先配置Visual Studio環境再進行安裝。

注意3: Visual Studio 2008 SP1支援.Net 3.5的框架,因此要運行ClientAce 3.5請先安裝Visual Studio 2008 SP1。

注意4:Runtime要求Visual Studio 2010 C++可轉散發套件。此套件在安裝ClientAce V4.0.3時會自動安裝。

注意5:ClientAce只有支援C#和VB.Net的開發。

注意6:Runtime專案在散發至PC時是不會要求在任何的OPC Server或Client產品中安裝OPC Foundation可再轉散發套件。

問題:

Client應用程式被設計成在從連上Server到斷線之前每一個小時會取得資料交換。在第一個連接Server時,應用程式會取得一筆全部監控Item的資料交換事件。在下一次連接Server時,應用程式會取得兩筆全部監控Item的資料交換事件。每一次連接成功會就增加取得監控Item的資料交換事件之次數。儘管ClientAce應用程式在每一個循環中增加新的獨立連接,應用程式仍然會在每一個循環中創建一個事件處理器。因為這些事件處理器並非是Server物件的一部分,當應用程式與Server連線中斷的時候也不會破壞事件處理器的結構。也就是說先前建立好的事件處理器仍然會存在於每一個新建的連線裡面。

問題:

當建立 ClientAce專案時,Visual Studio輸出視窗顯示類似以下之一的錯誤:“錯誤:找不到檔案(C:\ My Documents \ Visual Studio 2005 \ Projects \ ... \ EXEname.vshost.exe )“或”錯誤:Wrong License Key“。

 

可能的原因:

  1. 簽署工具正在PC上使用,且此PC具有來自不同PC的 license key 檔案。 ClientAce只能會授權給一台開發用PC,而不能再次被授權給另一台PC。
  2. 預設情況下,該簽署按鈕將加入一行代碼到專案的 post-build 事件。第一行代碼簽署專案可執行檔案。第二行代碼標記專案的debug 主機環境版本。例如,名為“MyProject.exe”的專案將有一個名為“MyProject.vshost.exe”的 debug 專案。

 

解決方法:

  1. 從之前的 PC 中刪除 license 。
  2. 打開post-build 事件並刪除以下命令行事件:“C:\ Program Files(x86)\ Kepware Technologies \ ClientAce \ Sign \ sign.exe”“$(TargetDir)$(TargetName).vshost.exe “”$(TargetName).vshost.lic“。

注意:這些解決方案適用於 C#和 VB.Net 專案。

不支援。 ClientAce是用於在Visual Studio for .NET 4.0 Framework中開發OPC DA,OPC UA和OPC XML-DA Client 的工具包。 OPC .Net或Xpress接口(Xi)是不同的 Client /Server 規範。

一個DLL是一個類別函式庫。 它可以透過 ClientAce 物件或API 調用建立,但不可能對DLL進行簽章。

 

使用DLL建立的每個應用程式都需要簽章。 例如,如果有三個應用程式調用顯示Server狀態資訊的DLL,三者儘管使用相同的DLL,但每個應用程式都需要簽章。

可以。ClientAce 4.0版支援帶有.NET 4.0 Framework的Visual Studio 2012開發環境。

升級到ClientAce 4.0版時,使用者必須獲得新的 license 並更新專案的 * .dll檔案。有關詳細信息,請參閱以下說明。

注意:此過程僅在專案首次使用新的ClientAce 4.0 函式庫執行時才需要。

 

  1. 首先,請確保Visual Studio已關閉。然後,安裝ClientAce 4.0,以管理員身份執行。
    注意:ClientAce 4.0版需要.NET 4.0 Framework和Visual Studio 2010或2012。如果專案繼續使用.NET 3.5 Framework或Visual Studio 2008或更早版本,則無需更新到ClientAce 4.0。
  2. 接下來,選擇支援的.NET版本和Visual Studio環境,目前僅支持Visual Studio 2008、2010和2012。接著完成安裝。
  3. ClientAce 4.0需要新的license。首先,備份現有專案。然後,打開license utility 並以管理員身份執行。
  4. ClientAce 專案將需要引用新的 * .dll檔案,這意味著與專案分發的先前檔案必須被刪除和替換,請打開專案中 Debug 和 Release 的輸出Bin資料夾並刪除所有現有檔案。
  5. 打開Visual Studio 2010或2012並載入專案,如果需要請轉換它。
  6. 刪除對舊版 ClientAce 函式庫檔案的專案參考,並替換為 ClientAce 4.0 函式庫檔案的專案參考。
  7. 打開專案,從主選單中選擇 Build|清除方案。 8.編譯專案並確保它正常執行。

不,這已經測試過,產品不應該有問題。

問題:

Client應用程式被設計成在從連上Server到斷線之前每一個小時會取得資料交換。在第一個連接Server時,應用程式會取得一筆全部監控Item的資料交換事件。
在下一次連接Server時,應用程式會取得兩筆全部監控Item的資料交換事件。每一次連接成功會就增加取得監控Item的資料交換事件之次數。

儘管ClientAce應用程式在每一個循環中增加新的獨立連接,應用程式仍然會在每一個循環中創建一個事件處理器。因為這些事件處理器並非是Server物件的一部分,當應用程式與Server連線中斷的時候也不會破壞事件處理器的結構。也就是說先前建立好的事件處理器仍然會存在於每一個新建的連線裡面。

問題:

安裝ClientAce時收到錯誤“Setup requires a Minimum of Microsoft Visual C# Language Installed to complete the install”。

 

可能的原因:

ClientAce 註冊工具和工具箱中使用的一些元件取決於C#。

 

解決方法:

安裝C#,然後重新安裝ClientAce。

使用者必須將ClientAce .lic文件加入安裝項目中,然後設定項目相依性,以便每次建立安裝項目時都會產生一個當前的.lic文件。

有關建立 Visual Studio 安裝項目以使ClientAce應用程式將以授權模式部署的資訊,請參閱以下說明 :

注意:這些步驟僅需要為每個 ClientAce 專案設定一次。

 

  1. 首先,簽署ClientAce EXE 專案。然後,建立它產生一個.lic文件。
  2. 接下來,將安裝項目加入包含EXE項目的 Visual Studio 方案中。在方案管理中,右鍵點擊方案,然後點擊加入|新專案。或者,在方案管理中選擇方案或專案
  3. 點擊文件|加入... | Visual Studio選單中的新專案。
  4. 在增加新專案中,選擇其他專案類型|安裝和部署|安裝工程
  5. 在方案管理中,右鍵點擊安裝項目,然後選擇加入|專案產出
  6. 在“增加項目輸出組”中,找到“項目”字段,然後選擇ClientAce EXE 專案。
  7. 在對話框中間的列表視窗中,確保至少選擇了“主輸出”。點擊確定。
  8. 接下來,右鍵點擊安裝項目,然後選擇加入|文件。
  9. 在加入文件中,瀏覽到ClientAce EXE專案的“bin \ Release”子文件夾(或根據將部署的建立設定的其他子文件夾)。然後選擇.lic文件。
  10. 在專案管理中,右鍵點擊方案,然後選擇專案相依性。
  11. 接下來,找到“相依性”選項,選擇安裝專案。
  12. 在對話視窗中間的列表中,選ClientAce EXE專案複選視窗。然後,點擊確定。
  13. 接下來,右鍵點擊該方案,然後選擇Configuration Manager。在位於左上角的列表中,選擇要建立的設定。
  14. 在對話框中間的表格中找到安裝專案,並選中“產生”複選視窗。接著點擊確定。

 

注意1:當使用者建立和部署安裝專案時,* .lic文件將包含在* .EXE中。這將以授權方式執行應用程式。
注意2:上述說明已經在Visual Studio 2005中使用Windows應用程式專案進行測試。對於其他類型的項目,步驟應該相同或相似。

建立系統帳戶(或特定使用者的後台)執行的服務,請使用者執行以下作業:

 

  • 開發ClientAce專案作為控制台應用程式,以便它可以在桌面上執行並在Debug模式下進行測試。
  • 確保沒有彈出式窗口或使用者介面與應用程式產生互動。這些介面將掛起程序,因為當應用程式作為服務執行時將無法與之互動。
  • 關閉Visual Studio託管,這會允許在 Runtime 時Debug應用程式。這將使應用程式以使用者的憑證執行:它不能作為服務執行。有關詳細訊息,請參閱以下說明。

1. 在VB .NetC# 開發環境中,打開專案屬性。然後,選擇Debug

2. 接下來,找到Enable Debuggers,並取消選取Enable the Visual Studio hosting process

3. 將控制台應用程式轉換為服務應用程式,並在Release Mode下編譯專案。

 

注意1當執行的作業系統啟用了使用者存取控制(UAC)時,可以修改應用程式清單以強制應用程式升高權限。

 

注意2詳細訊息請參閱附加的 建立ClientAce服務應用程式

不支援。 Microsoft Visual Studio Express 版本適用於非商業用途,不包括專業版或企業版的所有開發工具。由於 ClientAce 是用於開發商業 OPC DA Client 的工具包,因此它不支持也不適用於Express版本。

ClientAce DA Junction允許使用者連接到Server並讀取/寫入資料,而無需編寫任何與OPC相關的程式碼。

 

DA Junction 支持 OPC DA 和 OPC UA 連接。 使用者應檢查Server製造商的文件,了解 OPC DA 連接的 DCOM 設定要求和 OPC UA 端點安全性要求。

注意:Visual Basic .NET 或 C# 中的 OPC 連接需要具備該語言中級或更高級的編譯能力。

問題:

當ClientAce安裝在Windows Vista或更高版本的作業系統上時,DA_Junction無法連接到OPC Server 。

 

可能的原因:

  1. 已啟用使用者存取控制(UAC)。 在開發和設計環境中使用ClientAce的系統應禁用UAC以確保所有元件正常執行。 UAC限制物件存取設計階段所需的資料夾和檔案; 它不會在 Runtime 環境中影響這些物件。
  2. DA_Junction正在進行OPC DA請求以連接和瀏覽OPC專案,但可能沒有適當的權限。

 

解決方法:

1.禁用UAC。

2.以管理員身份執行Visual Studio。

使用者必須將ClientAce .lic文件加入安裝項目中,然後設定項目相依性,以便每次建立安裝項目時都會產生一個當前的.lic文件。

有關建立 Visual Studio 安裝項目以使ClientAce應用程式將以授權模式部署的資訊,請參閱以下說明 :

注意:這些步驟僅需要為每個 ClientAce 專案設定一次。

 

  1. 首先,簽署ClientAce EXE 專案。然後,建立它產生一個.lic文件。
  2. 接下來,將安裝項目加入包含EXE項目的 Visual Studio 方案中。在方案管理中,右鍵點擊方案,然後點擊加入|新專案。或者,在方案管理中選擇方案或專案
  3. 點擊文件|加入... | Visual Studio選單中的新專案。
  4. 在增加新專案中,選擇其他專案類型|安裝和部署|安裝工程
  5. 在方案管理中,右鍵點擊安裝項目,然後選擇加入|專案產出
  6. 在“增加項目輸出組”中,找到“項目”字段,然後選擇ClientAce EXE 專案。
  7. 在對話框中間的列表視窗中,確保至少選擇了“主輸出”。點擊確定。
  8. 接下來,右鍵點擊安裝項目,然後選擇加入|文件。
  9. 在加入文件中,瀏覽到ClientAce EXE專案的“bin \ Release”子文件夾(或根據將部署的建立設定的其他子文件夾)。然後選擇.lic文件。
  10. 在專案管理中,右鍵點擊方案,然後選擇專案相依性。
  11. 接下來,找到“相依性”選項,選擇安裝專案。
  12. 在對話視窗中間的列表中,選ClientAce EXE專案複選視窗。然後,點擊確定。
  13. 接下來,右鍵點擊該方案,然後選擇Configuration Manager。在位於左上角的列表中,選擇要建立的設定。
  14. 在對話框中間的表格中找到安裝專案,並選中“產生”複選視窗。接著點擊確定。

 

注意1:當使用者建立和部署安裝專案時,* .lic文件將包含在* .EXE中。這將以授權方式執行應用程式。
注意2:上述說明已經在Visual Studio 2005中使用Windows應用程式專案進行測試。對於其他類型的項目,步驟應該相同或相似。

這是在Visual Studio 2008,2010和2012中很多人詢問的一個議題。在這些案例裡,當簽名工具註冊新的新增條件失敗時就會發生這種情況。

使用者可以藉由手動去註冊簽名工具。第一次下載和解壓縮 Manual VS Add-in Install檔案。然而,依照教學引導ManualVSAddinInstall.txt"去手動註冊簽名工具。

是的,可以使用ClientAce建立一個Windows Presentation Foundation(WPF)專案。 雖然建立WPF Form時,ClientAce安裝提供的控制項將被禁用,但這是因為控制項是標準的Windows視窗控制項,而不是WPF視窗控制項。 ClientAce API將在WPF For中正常運作。

 

注意:雖然本文是使用ClientAce版本3.5編寫的,但是ClientAce 4.0版也可以使用相同的步驟。 有關Demo和更多訊息,請下載附件ClientAce WPF專案範例和WPF API範例

ClientAce DA Junction允許使用者連接到Server並讀取/寫入資料,而無需編寫任何與OPC相關的程式碼。

 

DA Junction 支持 OPC DA 和 OPC UA 連接。 使用者應檢查Server製造商的文件,了解 OPC DA 連接的 DCOM 設定要求和 OPC UA 端點安全性要求。

注意:Visual Basic .NET 或 C# 中的 OPC 連接需要具備該語言中級或更高級的編譯能力。

Please publish modules in offcanvas position.