Pregunta

Tengo que crear una aplicación sencilla, que se adapte como un ejemplo del uso de WPF y WCF para crear pantallas HMI.

No estoy seguro de lo que WCF se supone que debe hacer en tales aplicaciones, supongo que debe ser un servidor OPC que mis conecta a la aplicación. No conecte aplicación de servidor OPC utilizando el servicio WCF y lo hace el servicio de WCF residen dentro de la aplicación o en el exterior?

WCF servicio es destinado a ser utilizado sólo como una conexión al servidor OPC? Todavía no estoy muy seguro de qué proceso para simular, necesito algo sencillo.

Por favor, todas las ideas son bienvenidas.

Gracias

¿Fue útil?

Solución

Parece que lo que tenemos es una aplicación de WPF que actuará como el HMI, que contiene todos los elementos de interfaz de usuario. La aplicación de WPF creará un proxy cliente para un servicio WCF utilizando la dirección (la dirección de host que el servicio se está ejecutando en), vinculante (probablemente TCP o HTTP) y el contrato (una interfaz) del servicio.

El servicio de WCF será conducido en alguna parte (la dirección de host) y exponer un punto final que especifica una unión y un contrato. Esto es lo proxy de cliente de su WPF aplicación va a comunicar. Los métodos implementados en el contrato del servicio de instancias de clases se OPC y escribir o leer artículos OPC según sea necesario.

En su forma más simple, que probablemente tendría una solución con dos proyectos:. Uno para la aplicación de WPF (con el proxy cliente) y una para el servicio WCF (con implementaciones OPC)

Otros consejos

Para consultar todas www.opcsystems.net, gran poco de juego en la oferta para la creación de aplicaciones WPF SCADA utilizando OPC rápido y fácil.

Tome un vistazo a OPC Conectar y el uso de algunos componentes libres o comerciales para su idioma preferido para hablar con algunos datos del servidor OPC y visualizar.

Si desea crear WPF consumidor, la mejor manera de WCF para ir es el uso de las nuevas implementaciones OPC-UA.

Por ejemplo, la KepwareEx implementos servidor aquellos spec y expone WCF de punto final de la caja.

No tenemos ninguna afiliación con Kepware pero usamos sus productos mucho.

más información en su UA documento Orientaciones que muestra lo que estoy hablando de . Puede plataforma ello cliente para permitir la integración xaml (no he hecho).

Además, es digno de mirar en las descripciones arquitectónicas de los chicos de Estado Visión , que son saliendo con un OPC UA -> Silverlight / XAML conjunto de herramientas ...

Cuando se menciona OPC, estoy asumiendo que su hablando de OPC-DA. OPC es sólo un protocolo de comunicaciones y es probable que quieren crear un contenedor para su sistema. Este es un ejemplo floja de cómo puede implementar una sencilla OPC DA leer usando C # y el contenedor administrado.

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;
        }
    }
}

Puede utilizar WPF producto HMI de .NET abierto software de automatización que utiliza WCF para las comunicaciones con las fuentes de datos de Modbus, AB, Siemens, OPC, MQTT, AWS, etc. https://www.openautomationsoftware.com/products / HMI-SCADA-para-net / WPF-HMI-net /

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top