Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 33

Тема: Создание ActiveX компонента для MasterSCADA.

  1. #11

    По умолчанию

    Сделал почти по вашему. Только добавил присвоение в конец. На то он и сеттер)
    Код:
            [DispId(3),
            DisplayName("Кнопка нажата")]
            public bool BtnState
            {
                get { return state; }
                set {
                    if (value == false)
                    {
                        pictureBox.ImageLocation = ImageOFF;
                    }
                    else
                    {
                        pictureBox.ImageLocation = ImageON;
                    }
                    state = value; }
            }
    Вообщем наблюдается такая ситуация. С переменной проекта Команда1 всё заработало правильно.
    Но если использовать на входе и на выходе ОРС тег, всё по старому.
    Есть конечно выход. Добавить в проект переменную Значение1. Связать Значение1 с ОРС тегом. На ВХОД динамизации компонента подать переменную Значение1. А на ВЫХОД динамизации компонента связать с ОРС тегом.
    Тогда всё работает так как мне надо. Но это как-то странно) Или я хочу странного?
    42 is the answer

  2. #12

    По умолчанию

    На сколько я понял Load вызывается (компонент загружается) до того как СКАДА присваивает входам значения.
    42 is the answer

  3. #13

    По умолчанию

    Опять оффтоп: выскажу пожелание.
    Есть стандартный компонент "Мультфильм".
    В него можно загрузить несколько изображений и он их последовательно воспроизводит когда вход Работа принимает значение ИСТИНА.

    Вот например, хочу я отрисовать анимацию открытия клапана. Есть у меня рисунков штук пять. Использовать вход Работа нельзя. Потомучто он будет крутить анимацию бесконечно. Мне же надо чтобы он при появлении признака воспроизвёл картинки в порядке 1-2-3-4-5, а при исчезновении в порядке 5-4-3-2-1.
    Это ничего. Я просто пишу ST в котором перебираю картинки при появлении признака на входе. И в компонент "Мультфильм" на вход подаю номер отображаемого кадра.
    Довольно удобно.

    Но мне опять хочется использовать красивую картинку с прозрачным фоном. Компонент "Мультфильм" видит .png файлы, но когда добавляешь .png файл с прозрачным фоном, он заменяет фон на ЧЁРНЫЙ!.
    Приходится перегонять .png в .jpg. Делать например зелёный фон, и в компоненте "Мультфильм" устанавливать цвет прозрачности. При этом хоть фон и становится прозрачным, но края изображения неровные получаются.

    Выход: Использовать для анимации компонент "Рисунок". Назвать файлы "valve001", "valve002" и так далее. И на ST писать блок у которого на выходе строка с именем файла.
    В принципе нормально. Но хотелось бы как-нибудь попроще.
    Последний раз редактировалось 42ia; 28.04.2012 в 11:12.
    42 is the answer

  4. #14

    По умолчанию

    Цитата Сообщение от 42ia Посмотреть сообщение
    Стандартный компонент "Рисунок" может отображать .png. Можно было бы использовать его, но он не обрабатывает события нажатие.
    Можно перекрыть его сверху контролом "Зона выбора" - данный контрол появляется у события, если вытащить правой кнопкой мыши. Можно задать фиксацию
    Перекрываете данным контролом ваш рисуноков, а через входы динамизации меняете состояние рисунка.

    Цитата Сообщение от 42ia Посмотреть сообщение
    Но если использовать на входе и на выходе ОРС тег, всё по старому.
    Есть конечно выход. Добавить в проект переменную Значение1. Связать Значение1 с ОРС тегом. На ВХОД динамизации компонента подать переменную Значение1. А на ВЫХОД динамизации компонента связать с ОРС тегом.
    Так и нужно делать. Мы не советуем связывать ОРС переменные с элементами мнемосхемы напрямую - это затрудняет тиражирование. Лучше создавать в дереве вспомогательные элементы (значения, повторители, команды).


    Цитата Сообщение от 42ia Посмотреть сообщение
    На сколько я понял Load вызывается (компонент загружается) до того как СКАДА присваивает входам значения.
    Попробуйте использовать метод Paint.
    Спасибо.

  5. #15

    По умолчанию

    Цитата Сообщение от SCADAMaster Посмотреть сообщение
    Можно перекрыть его сверху контролом "Зона выбора" - данный контрол появляется у события, если вытащить правой кнопкой мыши. Можно задать фиксацию
    Перекрываете данным контролом ваш рисуноков, а через входы динамизации меняете состояние рисунка.
    Я делал что-то подобное когда делал красивую кнопку без фиксации. Брал рисунок, накрывал его сверху "Кнопкой объекта".

    Но опять же, что это вообще ""Зона выбора" - данный контрол появляется у события, если вытащить правой кнопкой мыши".

    Всё что нужно - сделать такой компонент в которой можно загрузить любую картинку, в том числе .png, и у которого не будет никаких рамок. У компонента должен быть выход который реагирует на нажатие. И свойство, в котором можно задать нужно фиксировать выход, или нет.
    Возможно имеет смысл сделать свойства "Изображение", "Изображение2", как у "Кнопки с фиксацией".
    42 is the answer

  6. #16

    По умолчанию

    Цитата Сообщение от 42ia Посмотреть сообщение
    Но опять же, что это вообще ""Зона выбора" - данный контрол появляется у события, если вытащить правой кнопкой мыши".
    Добавляете в объект "Событие" тащите его на мнемосхему правой кнопкой мыши, выбираете "Зона выбора", появится прозрачная рамка. При щелчке на нее в режиме исполнения на выходе события будет "Вкл". В свойствах рамки можно задать фиксацию.
    Спасибо.

  7. #17

    По умолчанию

    Да я понял всё. Попробовал.
    Я имел ввиду что это не удобно.
    42 is the answer

  8. #18

    По умолчанию

    А чем неудобно? Тиражировать сложно?
    Это можно легко решить. Создаете объект, у него создаете изображение на изображение кладете "Выбор изображения" и "Зона выбора" от события. Настраиваете динамизацию.
    Теперь можно этот объект тиражировать и вытаскивать на мнемосхему изображение.
    Пример в приложении
    Вложения Вложения
    Спасибо.

  9. #19

    По умолчанию

    Спасибо. Сейчас посмотрю.

    Мы очень ценим вашу оперативность и желание помочь.
    42 is the answer

  10. #20

    По умолчанию

    Тут вы меня убедили. Будем пользоваться вариантом, который вы предлагаете.

    Но всё равно, я так и не понял как сделать AciveX который будет работать так, как я хочу. В последнем варианте на котором мы сошлись тоже есть проблемы. Иногда (довольно часто), происходит следующие: я нажимаю на мою кнопку. Меняется изображение, меняется значение в ОРС, и тут же, очень резко компонент видимо прочитывает ВХОД из переменной Значение1, которая не успела ещё обновиться из ОРС. Переменная state компонента опять меняет значение, меняется картинка. ВЫХОД идёт в ОРС.
    42 is the answer

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя

Похожие темы

  1. Создание кнопки
    от VanoKing в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 26.08.2011, 15:54
  2. создание ОТЧЁТА
    от evgnik в разделе Master SCADA 3
    Ответов: 4
    Последнее сообщение: 07.07.2011, 14:10
  3. Создание документации
    от АлексPetr в разделе Трёп (Курилка)
    Ответов: 11
    Последнее сообщение: 20.02.2011, 10:32
  4. Создание сети RS-485
    от Kotov666 в разделе Сервисное ПО
    Ответов: 3
    Последнее сообщение: 09.04.2009, 16:52
  5. создание файла PLCFileopen
    от Антон в разделе ПЛК1хх
    Ответов: 16
    Последнее сообщение: 25.03.2008, 10:53

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •