我必须创建一个简单的应用程序,这将适合使用WPF和WCF创建HMI屏幕的示例。

我不确定WCF在此应用程序中应该做什么,我想我的应用程序必须有一个OPC服务器。应用程序是否使用WCF服务连接到OPC服务器,WCF服务是否位于应用程序内部或外部?

WCF服务是否仅仅用作与OPC服务器的连接?我还不确定要模拟哪个过程,我需要简单的东西。

请欢迎任何想法。

谢谢

有帮助吗?

解决方案

听起来您将拥有的是WPF应用程序,它将充当HMI,其中包含所有UI元素。 WPF应用程序将使用地址(服务正在运行的主机地址),绑定(可能是TCP或HTTP)和服务的合同(接口)创建WCF服务的客户端代理。

WCF服务将托管在某个地方(主机地址),并公开指定绑定和合同的端点。这就是您的WPF应用程序的客户代理将与之通信的。服务合同中实现的方法将实例化OPC类,并根据需要编写或读取OPC项目。

在最简单的形式中,您可能会有一个解决方案,其中有两个项目:一个用于WPF应用程序(带有客户端代理),另一个用于WCF服务(使用OPC实现)。

其他提示

请查看www.opcsystems.net,提供了一件大量的套件,可快速轻松地使用OPC创建WPF SCADA应用程序。

看一眼 OPC连接 并为您喜欢的语言使用一些免费或商业组件与某些OPC服务器交谈并可视化数据。

如果您想创建WPF消费者,那么最好的WCF方法就是使用新的OPC-UA实现。

例如,kepwareex服务器实现这些规格,并将WCF端点公开。

我与KEPware没有任何隶属关系,但我们经常使用他们的产品。

有关他们的更多信息 UA指导文件 这显示了我在说什么。您可以钻机该客户端以允许XAML集成(我还没有这样做)。

此外,值得研究这些家伙的建筑描述 状态视觉, ,谁带有OPC UA-> Silverlight/XAML Toolkit ...

当您提及OPC时,我假设您谈论OPC DA。 OPC只是一个通信协议,您可能需要为系统创建包装器。这是一个宽松的示例,说明如何使用C#和托管包装器实现简单的OPC DA读取。

namespace ScadaServiceLibrary
{
    [ServiceContract]
    public interface IDataClass
    {
        [OperationContract]
        string RetrieveValues(string OpcPath);
    }

    public class DataClass : IDataClass
    {

        ....

        public string RetrieveValue(string OpcPath)
        {
            // Retrieve data here. ScadaServer is a Opc.Da.Server type.
            // Example assumes you have a dictionary of the item handles keyed 
            // to the path.

            string value = null;

            Opc.Da.Item item = new Opc.Da.Item();

            item.ItemName = OpcPath;
            item.ClientHandle = Handles[OpcPath];
            item.Active = true;
            item.ActiveSpecified = true;

            Opc.Da.Item[] items = new Opc.Da.Item[1];
            items[0] = item;
            Opc.Da.ItemValueResult[] results = ScadaServer.Read(items);

            if (results != null && results.Length > 0)
            {
                Opc.Da.ItemValueResult result = results[0];
                value = result.Value.ToString();
            }

            return value;
        }
    }
}

您可以使用Open Automation软件的WPF HMI .NET产品,该产品使用WCF与Modbus,AB,Siemens,OPC,MQTT,AWS等的数据源进行通信。https://www.openautomationsoftware.com/products/hmi-scada-for-net/wpf-hmi-net/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top