Mikhail

Созданные ответы форума

Просмотр 15 сообщений - с 5,311 по 5,325 (из 7,889 всего)
  • Автор
    Сообщения
  • в ответ на: Контроль связи с устройством #9877
    Mikhail
    Модератор

    Добрый день!

    Если данные не будут поступать от Коммуникатора, то через заданное в настройках SCADA-Сервера время (5 минут по умолчанию) статус значений изменится на недостоверный. На схеме это будет видно, если использовать компонент Светодиод, а не Динамический рисунок.

    Но остановка Коммуникатора — это не нормальная ситуация пропадания связи. Пропала связь, когда Коммуникатор опрашивает устройство, а оно не отвечает.

    Mikhail
    Модератор

    Надо проверить, что при обрыве связи в журнале линии связи и на странице Данные КП.

    в ответ на: Объявление переменных в KpLogic #9875
    Mikhail
    Модератор

    Все объекты, которые Вы создадите из экземпляра KpXXLogic, будут Вам доступны именно из этого объекта КП.

    Если понадобится обмениваться данными с другими КП этого же типа (например, между КП 101 и КП 102), то для этого в драйвере предусмотрены специальные общие переменные. Ну или просто static использовать, только аккуратнее, т.к. при многопоточности могут быть чудеса.

    в ответ на: Объявление переменных в KpLogic #9874
    Mikhail
    Модератор

    А не заниматься его копированием, передачей при каждом вызове.

    При передаче объекта в метод передаётся ссылка на объект, данные не копируются.

    в ответ на: Ошибка обработки событий #9873
    Mikhail
    Модератор

    Добрый день!
    Параметр недостоверен — если от устройства нет новых данных более заданного времени. Это время можно установить в настройках SCADA-Сервера.

    По какому протоколу идёт общение? Модем является TCP-сервером или TCP-клиентом?

    в ответ на: Может ли Rapid SCADA работать с SQLite? #9872
    Mikhail
    Модератор

    Можно, если поднять свой OPC

    Работать будет, но так много прослоек получится…

    в ответ на: Объявление переменных в KpLogic #9843
    Mikhail
    Модератор

    Получается что весь код необходимо писать в KpMbusLogic.cs и по другому никак ?

    Безусловно лучше разбить на классы.

    Либо я не понимаю как это реализовать ?

    Нужно создавать экземпляры классов с помощью new MyClass()

    Делать static классы для вспомогательных вычислений можно, но при этом нежелательно в них хранить данные, то есть в них делать только методы и константы, по аналогии с ScadaUtils

    в ответ на: Может ли Rapid SCADA работать с SQLite? #9842
    Mikhail
    Модератор

    Да нет, мне наоборот необходимо импортировать данные из SQLite, то есть что бы данные из SQLite попали в «Скаду».

    В этом году планируется разработка драйвера, который будет затягивать данные из баз данных. Подключение к SQLite будет, скорее всего через OleDB. На данный момент драйвер, к сожалению, не существует. Если Вы программист, то можете сами разработать. Если не делать универсальный драйвер, то будет несложно.

    в ответ на: Объявление переменных в KpLogic #9824
    Mikhail
    Модератор

    Например, ссылки на объекты КП хранятся в объекте линии связи, который является частью Коммуникатора.

    Если Вы создадите новый класс из своего объекта КП, то именно этот объект будет видеть новый класс, а другие КП не будут его видеть (за исключением static).

    в ответ на: Объявление переменных в KpLogic #9823
    Mikhail
    Модератор

    как передать private bool в другой cs

    Передача происходит не в cs, а между объектами. Одному классу описанному в cs могут соответствовать как один так и множество созданных объектов. Ссылка на эти объекты есть у того объекта, который их создал. Чтобы разобраться, можно почитать по ссылке.

    в ответ на: Объявление переменных в KpLogic #9822
    Mikhail
    Модератор

    Нужно уточнить, какие классы драйвера должны видеть Ваш объект, о котором идет речь? Он должен быть виден из нескольких КП на линии связи или как-то ещё?

    Mikhail
    Модератор

    Заведите, например, тип
    public class TagDescriptor
    {

    }

    и создайте словарь Dictionary<int, TagDescriptor> myTags;
    Где ключ — номер сигнала.

    Внутри ConvertTagDataToStr обращайтесь к информации о тегах — переменной myTags

    в ответ на: Объявление переменных в KpLogic #9803
    Mikhail
    Модератор

    Нужно в KpXXLogic объявить копию глобального класса так, чтобы все остальные cs имели доступ к этим переменным только в пределах одного вызова dll и не влияли на другой, третий и так далее.

    Нужен
    public class A {…}
    И создание экземпляра класса A внутри Вашего КП:
    private A a = new A();

    в ответ на: Объявление переменных в KpLogic #9802
    Mikhail
    Модератор

    public — возможность использовать класс, метод или свойство из других классов и библиотек. Имеет значение экземпляр класса (ещё называется объект). Если создать 2 разных экземпляра одного класса, то каждый экземпляр будет независимым.

    public static — глобальная переменная для всех библиотек.

    в ответ на: Потоковое видео с веб камеры #9799
    Mikhail
    Модератор

    Попробуйте существующий компонент Ссылка.

Просмотр 15 сообщений - с 5,311 по 5,325 (из 7,889 всего)