Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Вопросы по скриптам в Simple-Scada 2  (Прочитано 1227961 раз)

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3215
    • Просмотр профиля
    • Simple-Scada
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #570 : 21 Января 2018, 18:47:34 »
Victor_P., можно не использовать свойство "Бит" которое есть у кнопок, а вместо этого записывать в переменную Val число в котором включен только один бит. Возьмем двоичные числа в которых включен только один бит и посмотрим чему они равны:
00000001 = 1
00000010 = 2
00000100 = 4
00001000 = 8
00010000 = 16
...и так далее. Т.е. чтобы включить второй бит и выключить все остальные достаточно записать в переменную Val число 2. Чтобы включить четвертый бит и выключить остальные нужно записать число 8. Поэтому можно не использовать свойство кнопок "Бит", а вместо этого просто оставить у кнопок одно состояние с нужным значением. Кнопка bt0 должна присваивать значение равное 1. Кнопка bt1, значение 2. Кнопка bt2, значение 4. Кнопка bt3, значение 8. Кнопка bt4, значение 16. Т.е. нажатие на любую кнопку оставит включенным только один бит. Правда в этом случае нужно поставить на событие OnDataChange кнопок один универсальный скрипт для "подсветки" включенного бита. Ещё вместо пяти кнопок можно использовать один компонент "Список", который отлично подойдёт в роли переключателя (он им и является по сути). Посмотрите пример во вложении, в нём реализован переключатель битов на основе кнопок и на основе списка. Напишите, если что-то непонятно.

* перед запуском демо-проекта откройте его в редакторе и пересохраните.
« Изменён: 22 Января 2018, 11:25:24 от Simple-Scada »

Victor_P.

  • Пользователь
  • **
  • Сообщений: 69
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #571 : 22 Января 2018, 09:33:51 »
pan2000, спасибо, работает.
Simple-Scada, я сначала так и делал, только записывал кнопками значение в переменную 1, 2, 3, ... (мне не принципиально что записывать биты или значения),
но в этом случае при нажатии одной кнопки остальные становились не активными (прикрепил скриншоты).
Я так понял, вы предлагаете вообще не привязывать переменную к кнопкам, а значение присваивать скриптом.
Пример ваш не открылся, пишет сделан в версии 2.2.7.1, а у меня 2.2.7.0
Кстати, а почему кнопки становятся не активными, если привязання к ним переменная принимает значение не равному одному из состояний кнопки.
« Изменён: 22 Января 2018, 09:34:54 от Victor_P. »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3215
    • Просмотр профиля
    • Simple-Scada
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #572 : 22 Января 2018, 09:46:25 »
Цитировать
но в этом случае при нажатии одной кнопки остальные становились не активными (прикрепил скриншоты).
Правильно, потому что у этих кнопок нет состояния для текущего значения переменной. Т.е. кнопка находится в одном из недопустимых состояний, поэтому она блокируется.

Цитировать
Пример ваш не открылся, пишет сделан в версии 2.2.7.1, а у меня 2.2.7.0
Скачать последнюю версию можно с сайта. Если у Вас лицензионная версия, то напишите на support@simple-scada.com.

Цитировать
Я так понял, вы предлагаете вообще не привязывать переменную к кнопкам, а значение присваивать скриптом.
Нет, все делается как обычно, только у кнопок оставляется только одно состояние. Проще понять если посмотреть пример, он очень простой.
« Изменён: 22 Января 2018, 09:47:52 от Simple-Scada »

Victor_P.

  • Пользователь
  • **
  • Сообщений: 69
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #573 : 22 Января 2018, 11:14:17 »
Спасибо, с примером стало понятно.
Сделал аналогичным образом у себя в проекте, все работает.
А вот сам пример ведет себя не адекватно (возможно только у меня на машине),- при выборе в комбобоксе все норм,
а вот при клике по кнопке вываливается с ошибкой, при этом при попытке нажать PrintScreen уводит винду в BSOD.

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3215
    • Просмотр профиля
    • Simple-Scada
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #574 : 22 Января 2018, 11:23:53 »
Цитировать
А вот сам пример ведет себя не адекватно (возможно только у меня на машине),- при выборе в комбобоксе все норм,
а вот при клике по кнопке вываливается с ошибкой, при этом при попытке нажать PrintScreen уводит винду в BSOD.
Это из-за того что мы сохранили его своей отладочной версией редактора. Откройте проект и пересохраните его в Редакторе на Вашем ПК. Тогда он должен работать корректно.

Victor_P.

  • Пользователь
  • **
  • Сообщений: 69
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #575 : 22 Января 2018, 11:41:43 »
Пересохранение не помогло.
Заметил, что в свойствах кнопок состояние указано как "Отпущена", хотя включен английский интерфейс и остальные свойства как кнопок так и других обьектов указываются на английском. Переключил систему на русский (думал, что причина в этом), но это тоже не помогло.
Собственно работоспособность данного примера мне и не нужна, что мне было в нем нужно я увидел, но если есть желание разобраться в причине такого поведения, то можем попробовать что-нибудь еще :) Если есть варианты.
« Изменён: 22 Января 2018, 11:42:23 от Victor_P. »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3215
    • Просмотр профиля
    • Simple-Scada
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #576 : 22 Января 2018, 13:57:25 »
Victor_P., исправили ошибку с отображением кнопок с одним состоянием. Архив со скадой обновили.

deldemo

  • Старожил
  • ****
  • Сообщений: 308
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #577 : 22 Января 2018, 14:30:31 »
Здравствуйте.
Уважаемые разработчики, возможно ли добавить выделение цветом строки в таблице с автозаполнением.

Мое видение:
Есть таблица с автозаполнением. В этой таблице есть управляющий столбец который отвечает за выдиление цветом строки .
Если в этом столбце имеется ячейка со значением TRUE значит строка выделяется цветом
« Изменён: 22 Января 2018, 14:52:20 от deldemo »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3215
    • Просмотр профиля
    • Simple-Scada
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #578 : 24 Января 2018, 10:10:59 »
Здравствуйте.
Мы планируем расширение возможностей таблицы, но только после внедрения веб и OPC-UA. Ваше предложение рассмотрим.

serg

  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #579 : 08 Февраля 2018, 11:19:59 »
Подскажите ! А можно ли на один объект с одной булевой переменной написать 2 или более скрипта ? Например - при переменной = 1 начинает моргать и воспроизводит звуковой файл . Или лучше от доп. переменной ?

И ещё . Есть где скачать  изображения и анимации ?

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1407
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #580 : 09 Февраля 2018, 10:48:37 »
Здравствуйте!

Цитировать
А можно ли на один объект с одной булевой переменной написать 2 или более скрипта ? Например - при переменной = 1 начинает моргать и воспроизводит звуковой файл . Или лучше от доп. переменной ?
Можно, но для описанной Вами задачи это не имеет смысла. Если нужно, чтобы объект при изменении значения связанной с ним переменной начинал мигать цветом, то Вам необходимо написать скрипт на событие OnDataChange объекта - пример скрипта мигания цветом можно найти здесь. Воспроизвести/остановить воспроизведение звукового файла можно при помощи процедур для работы со звуком.

Цитировать
И ещё . Есть где скачать  изображения и анимации ?
В этой и этой темах можно найти изображения и анимацию, которыми поделились пользователи форума.
« Изменён: 09 Февраля 2018, 10:50:21 от Simple_Scada »

serg

  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #581 : 09 Февраля 2018, 18:20:21 »
Спасибо . А можно ли сделать звуковую сигнализацию при потере связи с контроллером ( ПЛК100 Ethernet ) ?

deldemo

  • Старожил
  • ****
  • Сообщений: 308
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #582 : 10 Февраля 2018, 21:08:01 »
Цитировать
А можно ли сделать звуковую сигнализацию
Код: (delphi)
begin
  if MyVar.IsGoodQuality = False then // Где MyVar Ваша переменная на ПЛК
  AddMessage(Now, mkAlarm, 'Нет связи с ПЛК!', True, True);
end.
https://simple-scada.com/help/script/varisgoodquality.html
https://simple-scada.com/help/script/addmessage.html
« Изменён: 26 Мая 2018, 10:15:27 от Simple-Scada »

Victor_P.

  • Пользователь
  • **
  • Сообщений: 69
    • Просмотр профиля
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #583 : 16 Февраля 2018, 14:28:23 »
Код на событие OnDataChange:
Код: (delphi)
var
  aImg: TM_Image;

begin
  if not (Sender is TM_Image) then Exit;
  aImg := Sender as TM_Image;

  if aImg.AsBool then aImg.AnimSpeed := 12
  else
    begin
      aImg.AnimSpeed := 0;
      aImg.Frame := 4;
    end;
end.
не выставляет рисунок в 4 кадр при остановке анимации.
Почему?
« Изменён: 26 Мая 2018, 10:15:40 от Simple-Scada »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3215
    • Просмотр профиля
    • Simple-Scada
Re: Вопросы по скриптам в Simple-Scada 2
« Ответ #584 : 17 Февраля 2018, 22:04:44 »
Victor_P., спасибо, исправили. Обновление опубликуем на след. неделе.