Мне нужно создать небольшое приложение HMI/SCADA WPF, которое использует WCF

StackOverflow https://stackoverflow.com/questions/4497954

  •  12-10-2019
  •  | 
  •  

Вопрос

Я должен создать простое приложение, которое будет соответствовать примеру использования WPF и WCF для создания экранов HMI.

Я не уверен, что WCF должен делать в таком приложении, я думаю, должен быть сервер OPC, к которому подключается мое приложение. Подключается ли приложение к серверу OPC с помощью службы WCF и находится ли служба WCF внутри приложения или снаружи?

Предназначена ли служба WCF для использования только в качестве подключения к серверу OPC? Я еще не совсем уверен, какой процесс имитировать, мне нужно что -то простое.

Пожалуйста, любые идеи приветствуются.

Спасибо

Это было полезно?

Решение

Похоже, что у вас будет приложение WPF, которое будет действовать как HMI, содержащее все элементы пользовательского интерфейса. Приложение WPF создаст клиентский прокси для службы WCF, используя адрес (адрес хоста, на котором работает служба), привязки (вероятно, TCP или HTTP) и контракт (интерфейс) службы.

Служба WCF будет размещена где -то (адрес хоста) и разместит конечную точку, которая указывает обязательство и контракт. Это то, с чем будет общаться прокси -сервер клиента вашего приложения WPF. Методы, реализованные в контракте Сервиса, будут создавать создание классов OPC и при необходимости записывать или читать элементы OPC.

В самой простой форме у вас, вероятно, будет одно решение с двумя проектами: одно для приложения WPF (с клиентским прокси) и одно для службы WCF (с реализациями OPC).

Другие советы

Взгляните на www.opcsystems.net, отличный комплект для создания приложений WPF SCADA, используя OPC быстро и легко.

Взгляни на OPC Connect и используйте некоторые бесплатные или коммерческие компоненты для вашего предпочтительного языка, чтобы поговорить с некоторым сервером OPC и визуализировать данные.

Если вы хотите создать потребителя WPF, ваш лучший путь WCF-использовать новые реализации OPC-UA.

Например, сервер Kepwareex реализует эти спецификации и выявляет конечную точку WCF из коробки.

У меня нет никакой связи с Kepware, но мы много использовали их продукты.

больше информации об их UA РУКОВОДСТВО Это показывает то, о чем я говорю. Вы можете поддерживать этот клиент, чтобы разрешить интеграцию XAML (я этого не сделал).

Кроме того, стоит изучить архитектурные описания парней в Статусное видение, кто выходит с инструментарием OPC UA -> Silverlight/XAML ...

Когда вы упоминаете OPC, я предполагаю, что вы говорите о OPC DA. OPC - это просто протокол связи, и вы, вероятно, захотите создать обертку для вашей системы. Это свободный пример того, как вы можете реализовать простое чтение OPC DA с помощью C# и управляемой обертки.

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 Software WPF HMI .NET, который использует WCF для связи с источниками данных от Modbus, AB, Siemens, OPC, MQTT, AWS и т. Д.https://www.openautomationsoftware.com/products/hmi-cada-for-net/wpf-hmi-net/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top