WinCC OA-C#-开发一个EricManager
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# 二次开发手册
更多精彩,码上关注