Hello,小伙伴們大家好,最近在忙着制作新的博客及web,更新稍微慢了點,不過不要擔心,答應大家的二次開發課程一定會來的,請大家關注我們哦
今天給大家說一下WinCC OA 使用C#開發一個manager的方法,同時給大家詳解一下官方的demo
開發環境搭建
安裝 visual studio 2019 社區版,ps 社區版是免費的哦
勾選 .NET 及C++ 兩個模塊 進行安裝
創建manager
根據自己系統運行相應的命令行工具,筆者的系統環境為Win10 64 bit
(注意:安裝的2019 時候會連帶VS2017 一起安裝)
1)新增環境變量API_ROOT 指向WinCC OA安裝目錄下的api文件夾
2)使用管理員身份運行上圖命令行工具
3)切換目錄到WinCC _OA\3.**\api文件夾
4) 先使用checkAPIenv測試下開發環境 我這邊測試 環境均為good
5) 使用命令newWCCOACSharpManager.cmd新建ericTest manager
6) Now,在WinCC OA的api文件夾下 WinCC OA 幫我們創建了一個ericTest 項目
7) 使用 VS 2019 打開ericTest 項目
簡單給大家分析下 Program.cs 代碼
// 改程序作用是監聽 DPE1的值,當DPE1的值改變的時候 設置 DPE2 class Program { static void Main(string[] args) { // 創建Manager OaManager myManager = OaSdk.CreateManager(); // 初始化Manager 配置 myManager.Init(ManagerSettings.DefaultApiSettings, args); // 開啟Manager 同時連接OA 項目 myManager.Start(); //配置dpNameSet關聯ExampleDP_Arg2. 配置dpNameConnect關聯ExampleDP_Arg1. // Read from config File Section myCsTest. // ReadString(section, key, defaultval) OaConfigurationFile file = new OaConfigurationFile(); string dpNameSet = file.ReadString("myCsTest", "dpNameSet", "ExampleDP_Arg2."); string dpNameConnect = file.ReadString("myCsTest", "dpNameConnect", "ExampleDP_Arg1."); // Get Access to the ProcessValues var valueAccess = myManager.ProcessValues; // 創建valueAccess的訂閱對象 var mySubscription = valueAccess.CreateDpValueSubscription(); // 將dpNameConnect 添加到訂閱對象中 mySubscription.AddDp(dpNameConnect); // 添加訂閱觸發的代理方法 mySubscription.SingleValueChanged += (vcsender, vce) => { // vce.Value can be null in error case if(vce.Value == null) return; Console.WriteLine("Received value: " + vce.Value.DpValue.ToString() + " for DPE: " + vce.Value.DpName.ToString()); //將值設置到dpNameSet valueAccess.SetDpValue(dpNameSet, vce.Value.DpValue.ToDouble()); Console.WriteLine("Set value: " + vce.Value.DpValue.ToString() + " also on DPE: "+dpNameSet); }; // If FireChangedEventForAnswer is set to true, the ValueChanged Event is alsed fired for the first answer mySubscription.FireChangedEventForAnswer = true; // Start the subscription and as an additional option wait for the first anwer as result value mySubscription.StartAsync();} }</span></pre></div>
7) 編譯程序,將release后的程序copy 到bin文件夾
8)新建WCCOAericTest manager 設置手動啟動
9) 啟動Manager 測試ExampleDP_Arg2. /ExampleDP_Arg1.
OK 很成功 更多函數 請參閱 WinCC OA C# 二次開發手冊
更多精彩,碼上關注