PDA

Просмотр полной версии : Вопросы начинающего



Страницы : 1 [2] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Aleksandr
10.10.2012, 23:03
Здравствуйте! в проекте используются два компьютера с сетевыми версиями MS. В проекте два объекта. Один объект исполняется на одном компьютере, а на втором компьютере исполняются оба объекта (необходимо чтобы приходили сообщения с 1го объекта). Проблема в том, что не получается корректно настроить права доступа. Для оператора 2го компьютера необходимо запретить управление первым объектом. ( кнопка на мнемосхеме нажимается с подтверждением., но запись переменной в OPC-сервер 1го компьютера не производиться). Вроде бы не управляется, но не корректно. когда 1-й объект исполнялся только на 1-ом компьютере, для оператора на 2м компьютере, при попытке управления, появлялось сообщение о недостаточности прав.
И наоборот, для пользователя со всеми правами на 2м копьютере необходимо разрешить управление 1м объектом. а на деле происходит как и с пользователем оператор (кнопка нажимается, а запись переменной на 1м компьютере не происходит). Возможно ли такое осуществить?
С настройками прав доступа что только не делал.

SCADAMaster
11.10.2012, 08:10
Настройки прав доступа осуществляются на закладке "Права доступа" у компьютера (Системы, объекта, переменной). Есть две настройки - локально (лок.) и глобально (глоб.). Локальные действия - это когда оператор пытается осуществить действие на объекте который исполняется на своем компьютере. Глобальные действия - это когда операторы осуществить действие на объекте который исполняется на другом компьютере.



Для оператора 2го компьютера необходимо запретить управление первым объектом. ( кнопка на мнемосхеме нажимается с подтверждением., но запись переменной в OPC-сервер 1го компьютера не производиться).
То есть в этом случае вам нужно у оператора на втором компьютере, в настройке прав доступа нужные галочки глобально (установить значение и др).

Если не сможете настроить - приложите проект.

S.A.D.
18.10.2012, 12:46
доброго времени суток. Возникла проблемка. Вытаскиваю через OPC сервер значение типа string содержащее номер телефона например +375291234567. но оно записано задом на перед, т.е. 765432192573+. Как его перевернуть в нормальный вид?

PS: Моя мысль заключается в том чтобы написать ST скрипт который будет раскладывать эту строку на массив состоящий из отдельных символов. А затем из этих элементов собрать выходную переменную. Вроде все нормально, но как разложить строку на элементы массива в ST? Как я понимаю ФБ "Разбор строки" ничем не поможет.

конечно можно использовать для вытаскивания каждого символа ФБ "Разбор строки", но это уже извращение. 14 ФБ на каждый из 8 номеров.

SCADAMaster
18.10.2012, 13:01
доброго времени суток. Возникла проблемка. Вытаскиваю через OPC сервер значение типа string содержащее номер телефона например +375291234567. но оно записано задом на перед, т.е. 765432192573+. Как его перевернуть в нормальный вид?

Попробуйте изменить чередование байт. В MasterOPC есть специальная настройка - "Перестановка байтов в значении".

S.A.D.
18.10.2012, 13:14
Попробуйте изменить чередование байт. В MasterOPC есть специальная настройка - "Перестановка байтов в значении".

да, в OPC действительно проще переделать.

S.A.D.
19.10.2012, 12:13
Добрый день. Возможно ли в блоке визуализации "Список" сделать прозрачный фон и изменить цвет выделения выбранной строки?

SCADAMaster
19.10.2012, 13:42
Нет, прозрачный фон и выделение сделать нельзя.

drvlas
22.10.2012, 20:42
Здравствуйте!

Впервые подключаю ПЛК100 к вашему ОРС-серверу. До этого произвел такой подвиг с собственным устройством - получилось. Там связь была через СОМ-порт.
А теперь нужно подключить ПЛК, тоже Модбас, но на ТСР. Не получается пока.
Прилагаю 8 скриншотов, если будете так добры их посмотреть и прочесть мои комментарии, то надеюсь сможете ткнуть, где я нахомутал.

Номер 0: С помощью браузера ПЛК изменил заводские установки, задав IP-адрес и шлюз из подсети моего рутера. Обращаю внимание, что я понятия не имею, какие нужно было выбрать числа. Первое 192.168.1.111 - просто из той области, которую рутер использует для динамического присвоения адресов (мой ПК связан с ПЛК через рутер). Вторую - вообще от балды поставил, видя, что обычно шлюз делают как-то рядом с айпи.
Ну, мож и ошибка. Но см. ниже номер 2 - вроде пингуется...

Номер 1: В конфигураторе создан слейв, там 4 32-битных регистра, порт 502, как по умолчанию.

Номер 2: пингуется ПЛК. Выключаю его питание - не пингуется. Значит, думаю я радостно, это таки его видит комп под адресом 192.168.1.111 :)

Номер 3: В настройках ОРС-сервера видно адрес и порт.

Номер 4: Модбас адрес моего ПЛК есть 1
Номер 5: ...это же задано и в ОРС-сервере

Номер 6: В ОРС-сервере задано опрашивать один регистр
Номер 7: ...а он не опрашивается

Очень прошу, отвечайте с учетом того, что я как-то в сетевых соединениях очень уж слаб.

Заранее спасибо!

SCADAMaster
22.10.2012, 21:38
OPC не может открывать установить соединение.
Попробуйте отключить фаервол - возможно он блокирует соединение.

drvlas
22.10.2012, 21:41
Попробуйте отключить фаервол - возможно он блокирует соединение.Допустим, я найду, как это сделать.
И, если это подтвердится, то что дальше? С какой радости эта вражина может блокировать соединение в нашей дружно подсети?

SCADAMaster
22.10.2012, 21:43
Фаервол блокирует исходящее соединение на вашем компьютере.
Вам нужно отключить стандартный Windows-брэндмауэр (фаервол) и попробовать подключиться к контроллеру.

drvlas
22.10.2012, 21:52
Вам нужно отключить стандартный Windows-брэндмауэр (фаервол) и попробовать подключиться к контроллеру.Попробовал. Результат тот же.

drvlas
22.10.2012, 22:13
Может как-то помочь такая инфо: до этого я работал с КоДеСис через ДЕБАГ-порт ПЛК (соответственно, СОМ-порт компа). Теперь изменил Параметры связи в меню "Онлайн" и установил там тот же TCP/IP канал что и указанный для ОРС-сервера.
Иначе говоря, я обращаюсь от КоДеСис и от ОРС-сервера к одному IP-адресу, но к разным портам (1200 и 502).
Вижу при этом, что КоДеСис прекрасно подключается к ПЛК. А ОРС-сервер - нет. Для верности отключился от КоДеСис - те же и чацкий...

Следует ли из этого, что виндозные защитники тут не причем, а я просто что-то неверно настроил в ОРС-сервере?

Добавлено: запустил все через СОМ-порт. Работает. Так что проблема в моих настройках TCP/IP ОРС-сервера. Ну, буду рыться понемногу...

Добавлено: Итак, можно утверждать, что ПК видит ПЛК в режиме работы ОРС-сервера. Настроек (как я понимаю) немного: IP-адрес (192.168.1.111), непонятный GATES (192.168.1.110), маска 255.255.0.0 и порт (502). При изменении номера порта в ПЛК наш ОРС-сервер сразу ругается, не может открыть порт. А при нормальных (одинаковых) адресах и портах в ПК и в ПЛК мы видим постоянно идущие от ПК запросы, на которые ПЛК не отвечает.
Загрузка в ПЛК программы от КоДеСис по этому же адресу (но с портом 1200) идет нормально. Значит, физически с етернетным оборудованием все в порядке.

Что же еще может влиять?

SCADAMaster
23.10.2012, 08:06
Следует ли из этого, что виндозные защитники тут не причем, а я просто что-то неверно настроил в ОРС-сервере?

Не следует.
Фаервол может блокировать конкретную программу и конкретный порт.



Добавлено: Итак, можно утверждать, что ПК видит ПЛК в режиме работы ОРС-сервера. Настроек (как я понимаю) немного: IP-адрес (192.168.1.111), непонятный GATES (192.168.1.110), маска 255.255.0.0 и порт (502).
Установите маску 255.255.255.0



А при нормальных (одинаковых) адресах и портах в ПК и в ПЛК мы видим постоянно идущие от ПК запросы, на которые ПЛК не отвечает.
То есть теперь ОРС устанавливает соединение, но ПЛК не отвечает на запросы?
Если фаервол все таки не блокирует соединение, то вам нужно обратится в техническую поддержку ОВЕН.

drvlas
23.10.2012, 08:32
Установите маску 255.255.255.0Пробовал, но сегодня на свежую голову попробую еще раз. К сожалению, чистота экспериментов прихрамывает. Например, после того, как успешно работал по СОМ-порту, стал "подмешивать" и этернетный канал - вижу, запросы идут от обоих коммуникационных узлов, а ответы - только к узлу СОМ-порта. Потом убираю узел СОМ-порта - остаются запросы только от узла ТСР. Начинаю варьировать параметры настройки - пропадает соединение, после чего идет какая-то борьба с ветряными мельницами, пока вдруг снова соединение не восстанавливается... Но при этом запросы все равно без ответов.


То есть теперь ОРС устанавливает соединение, но ПЛК не отвечает на запросы?Очень похоже именно на это.
А что техподдержка? Вы же понимаете, физически порт работает, ведь я по нему подключился к КДС, загружаю и отлаживаю программу ПЛК. Ну, я могу физически поменять ПЛК, но слабо верится.
Другое дело, если настройки 502 порта в чем-то неверны... Ладно, обращусь.
В любом случае, общение с Вами позволило
а) решить задачу при работе узла по СОМ-порту
б) конкретизировать ситуацию перед обращением у ОВЕНу

Спасибо огромное!

З.Ы. Все это проделывается для того, чтобы специалист заказчика мог подключить мое оборудование на ПЛК100 к своей системе. У него там достаточно простая задача - снимать с ПЛК данные (почти как со счетчика-учетчика). Никакого (пока) управления и прочее. Решение в виде простой Мастер-СКАДовской программы, получающей данные от ОРС - это нормально? Или сделать напрямую в программу от ПЛК, без ОРС? Или можно получать данные в его (не знаю какую) программу из вашего ОРС?
Конечно, я утверждаю, что использование связки ОРС-МастерСКАДА есть наилучшее решение и имеет перспективу развития. Никакой лести в данном случае, мне очень нравится ваша система. Но хочу также понимать, как можно использовать ее часть (ОРС), если дальше у аборигенов свои програмульки. Ведь у меня не уникальное оборудование, оно повторяется на разных объектах.

SCADAMaster
23.10.2012, 09:16
А что техподдержка? Вы же понимаете, физически порт работает, ведь я по нему подключился к КДС, загружаю и отлаживаю программу ПЛК.
Вы подключаетесь к контроллеру через Codesys, а у вас не функционирует Modbus TCP - это разный функционал.



Решение в виде простой Мастер-СКАДовской программы, получающей данные от ОРС - это нормально?

Да - нормальное, распространенное решение.

drvlas
23.10.2012, 14:26
Уважаемый коллега! Вынужден снова Вас побеспокоить с тем же вопросом.
Как показано в той ветке (http://www.owen.ru/forum/showthread.php?p=94129&posted=1#post94129), мой ПЛК все же связался с компом по TCP/IP, но для этого пришлось использовать программу Modbus Poll. В ней не задаются (как я понимаю, не имеющие значения) параметры вроде GATE и MASK. Там меня спросили IP-адрес, порт и протокол. Я выбрал, как показано:
7221
и все весело побежало из ПЛК в комп.

Это меня очень радует, конечно. Но мне хотелось бы сообщать клиентам о возможности работать с моими установками через МастерСКАДу. Может давайте все же вернемся к тому, почему мой ПЛК не отвечает на запросы от MasterOPCserver, но отвечает на запросы от Modbus Poll? Я готов предоставить Вам 100500 скриншотов, если нужно.

С надеждой,

SCADAMaster
23.10.2012, 14:35
Увидел на скриншоте вашу ошибку.
Вы включили режим "Modbus поверх TCP" - этот режим предназначен для специальных конвертеров TCP-COM, например Moxa NPort5150.
http://www.insat.ru/prices/info.php?pid=4225
Вам нужно отключить этот режим. Тогда обмен будет идти через обычный Modbus TCP.

Вам нужно посмотреть видеопримеры:
http://www.masteropc.ru/prices/info.php?pid=6944
Там есть пример про Modbus TCP. И момент про настройку "Modbus поверх TCP" специально оговаривается.

drvlas
23.10.2012, 14:46
Увидел на скриншоте вашу ошибку.
Вы включили режим "Modbus поверх TCP" Это недостаток понимания. Я ж в потьмах.
Уря! Спасибо огромное! Все работает, причем (что я и ожидал, конечно, но уже ставил под сомнение) - одновременно и установлена связь с КДС, и по этому же адресу, но с другим портом, работает связь с ОРС.

А видеопримеры... Смотрел. Они у вас чудесные, но разве все запомнишь?

SCADAMaster
23.10.2012, 14:51
Все работает, причем (что я и ожидал, конечно, но уже ставил под сомнение) - одновременно и установлена связь с КДС, и по этому же адресу, но с другим портом, работает связь с ОРС.

Если используются разные порты, то возможно одновременная связь.

Можно и Modbus TCP использовать одновременно с несколькими "мастерами" - в PLC Configutaion добавляете в Modbus [Fix] еще один TCP модуль и задаете ему другой порт.
Оба мастера будут обращаться по одному IP, но по разным портам.

S.A.D.
02.11.2012, 11:18
как очистить журнал? А то за время тестирования и отладки накопилось всяких сообщений, которые заказчику будут только мешать

SCADAMaster
02.11.2012, 11:25
Самый простой способ - выполнить экспорт проекта (Проект - Экспортировать).
Проект экспортируется без данных и сообщений.
Экспортируете проект, удаляете проект с данными на его место кладете экспортированный.

S.A.D.
02.11.2012, 11:37
А может можно какие-то файлы встроенной БД журнала удалить вручную?

SCADAMaster
02.11.2012, 12:01
Можно. Архив журнала хранится в папке проекта, в папке объекта, в папке _Event (архив данных в папке _Data). Нужно удалить содержимое этих папок.
Через экспорт проще.

S.A.D.
02.11.2012, 12:14
вариант с удалением содержимого что-то не работает. Видимо придется экспортом...

приборист
13.11.2012, 14:35
Здравствуйте. подскажите как правильно организовать связь ТРМ132м - ИП320 -МастерСкада

SCADAMaster
13.11.2012, 14:56
У ТРМ132М два интерфейса связи - RS-232 и RS-485.
Лучше всего сделать так:
ИП-320 в режиме Master опрашивает ТРМ по RS-232 по протоколу Modbus.
MasterSCADA в режиме Master опрашивает ТРМ по RS-485 по протоколу Modbus. Для опроса ТРМ используете ОРС сервер на протокол Modbus - например можно использовать наш Modbus Universal MasterOPC Server
http://www.masteropc.ru/products/?category=399
Бесплатную версию на 32 точки, а также видеопримеры по созданию конфигурации можно скачать здесь:
http://www.masteropc.ru/prices/info.php?pid=6944

приборист
13.11.2012, 15:02
спасибо за оперативный ответ, но в добавляемых приборах Modbus Universal MasterOPC Server я не увидел ТРМ132, прописывать нужно самому ?

SCADAMaster
13.11.2012, 16:28
Да, в ТРМ132 очень много параметров - готовой конфигурации мы не делали.
Добавьте необходимые вам параметры - это не долго. На странице загрузки есть видеоинструкции по созданию конфигураций.

Ильнур
14.11.2012, 14:34
Хотел спросить.В мастер скаде есть элементы насос, клапан, и т.д. которые имеют входа: Вход Открыть,Вход Закрыть,Открыт,Закрыт и т.д. Возможно ли создать свои элементы, которые имеют Состояние закрыт,открыт и вход закрыть и открыть и состояние аварии.

SCADAMaster
14.11.2012, 14:44
Не совсем понятно что вам нужно.
Вам нужно ФБ с таким же функционалом но другим рисунком? Используйте "2-поз мех с выб изобр".
Если вам нужно отключить ненужные входы и выходы - это делается через настройку ФБ.
Если вам нужен полностью оригинальный ВФБ с собственным функционалом, то его можно написать на языке C#. Инструкция по написанию ФБ прилагается к MasterSCADA

Ильнур
14.11.2012, 16:41
Мне нужно сделать так: разместить клапан на мнемосхеме. Этот клапан имеет состояние открыт и закрыт и когда он открывается или закрывается.Допустим нажали мы на этот клапан на мнемосхеме и он из состояние закрыто(красный) переходит в состояние открывается (допустим желтый цвет), затем в состояние открыт (зеленый). И еще есть насос турбомолекуряный ,который имеет тоже множество состояний (разгоняется,вышел на режим,авария,неисправность и т.д.).Я как понял то для решения этой задачи писать скрипт на С#.Или есть другие варианты?

SCADAMaster
14.11.2012, 16:47
Мне нужно сделать так: разместить клапан на мнемосхеме. Этот клапан имеет состояние открыт и закрыт и когда он открывается или закрывается.Допустим нажали мы на этот клапан на мнемосхеме и он из состояние закрыто(красный) переходит в состояние открывается (допустим желтый цвет), затем в состояние открыт (зеленый).
Для этого можно использовать ФБ "2-поз мех с выб изобр".


И еще есть насос турбомолекуряный ,который имеет тоже множество состояний (разгоняется,вышел на режим,авария,неисправность и т.д.).Я как понял то для решения этой задачи писать скрипт на С#.Или есть другие варианты?
Можно использовать контрол мнемосхемы "Выбор изображения", раздел "Мультимедиа".
Создаете набор значений или ФБ "Повторитель" на которые будут поступать сигналы состояния насоса. Затем при помощи модуля "Расчет" анализируете значения, и выдаете на выход какое то число.
Например насос стоит - 0, работает - 1, разгоняется 2 и т.д.
Связываете расчет с контролом "Выбор изображения" и задаете изображения для каждого номера.
Можно сделать это как изображение объекта, тогда можно будет легко тиражировать.

Ильнур
14.11.2012, 17:01
Для этого можно использовать ФБ "2-поз мех с выб изобр".


Можно использовать контрол мнемосхемы "Выбор изображения", раздел "Мультимедиа".
Создаете набор значений или ФБ "Повторитель" на которые будут поступать сигналы состояния насоса. Затем при помощи модуля "Расчет" анализируете значения, и выдаете на выход какое то число.
Например насос стоит - 0, работает - 1, разгоняется 2 и т.д.
Связываете расчет с контролом "Выбор изображения" и задаете изображения для каждого номера.
Можно сделать это как изображение объекта, тогда можно будет легко тиражировать.

А управление насосом будет возможным при такой схеме?Т.е. через мнемосхему.

Ильнур
14.11.2012, 17:14
Или можно сделать так, создать команду тип Выкл/ВКл разместить ее на мнемосхеме и сделать прозрачной?

SCADAMaster
14.11.2012, 17:33
А управление насосом будет возможным при такой схеме?Т.е. через мнемосхему.
Можно. Добавьте команды, задайте тип дискретный - вытащите их на мнемосхему. Сможете управлять.


Или можно сделать так, создать команду тип Выкл/ВКл разместить ее на мнемосхеме и сделать прозрачной?
Можно. Тогда нужно добавить модуль "Событие". Вытаскиваете его правой кнопкой мыши и выбираете пункт "Зона выбора". В режиме исполнения она прозрачная, но если пользователь по ней щелкнет - то событие перейдет в состояние "Истина". Можно сделать фиксацию.

Ильнур
16.11.2012, 16:45
Что-то не могу понять.Поместил на мнемосхему ФБ 2-поз мех с выб изобр.Захожу в свойства и меняю картинку для открыт и закрыт.Нажимаю ОК. Снова захожу в свойтсва-картинок нет.Может эти картинки в корень мастер скады надо помещать?

SCADAMaster
16.11.2012, 16:53
Попробуйте положить их в \MasterSCADA Projects\Pictures\

Ильнур
16.11.2012, 18:20
Попробуйте положить их в \MasterSCADA Projects\Pictures\

Проблема была в разрешении картинки

Ильнур
16.11.2012, 19:04
Хотел бы еще уточнить.В Мастер Скаде есть ФБ Программа ST.Какой там синтаксис?Как в кодесис V2.3?

SCADAMaster
16.11.2012, 19:06
Почти такой же. У нас стандартный МЭК, у Codesys - с расширениями.

Ильнур
19.11.2012, 12:16
Как можно повернуть рисунок но мнемосхеме на 90 градусов?

SCADAMaster
19.11.2012, 13:00
Штатной возможности нет.
Поверните рисунок любым графическим редакторов и вставьте его на мнемосхему.

Ильнур
19.11.2012, 13:06
Понятно,спасибо

Ильнур
20.11.2012, 16:50
Можно ли увеличить какой нибудь участок мнемосхемы в режиме разработки?Т.е. масштаб.

SCADAMaster
20.11.2012, 17:33
Нет, масштабирования пока что нет.

Ильнур
22.11.2012, 08:33
Как можно реализовать набодобие выбор текста? Т.е. я создаю текст и каждой строке с текстом присваивается значение. И по значению я вывожу нужную мне строку.

SCADAMaster
22.11.2012, 10:40
Есть специальный ВФБ "Выбор строки" на закладке "Работа с архивом".
Есть контрол мнемосхемы "Выпадающий список" из закладке "Элементы диалога"

Ильнур
22.11.2012, 12:12
Есть контрол мнемосхемы "Выпадающий список" из закладке "Элементы диалога"[/QUOTE]
Мне скорее это не подойдет.Мне надо выводить текст в соответсвии со значением.Т.е. есть переменная, созданная в дереве объектов,ей присваивается определенное значение.И смотря какое значение пришло выбирается соответсвующая строка, т.е. это происходит программно, и список не подойдет, нужен обычный пункт вывода строки, без каких либо стрелок "вниз".

SCADAMaster
22.11.2012, 12:59
Так может вам тогда нужна перечислимая шкала?
Система - Шкалы - перечислимые

Ильнур
27.11.2012, 12:10
Создал переменную в дереве объектов.Тип перечислимый.Создал шкалу перечислимые и возможные значения.У переменной выбрал состояние=шкалу которую создал.Вытащил данную переменную на мнемосхему.Мне надо чтобы при присваивании допустим 0 показывалось одно сообщение, при 1 другое сообщение.Что-то в этом роде.Как это можно реализовать.Просто пробывал привязать к переменной(тип перечислимый)значение(тип целый),то тут тип просто наследовался.

Ильнур
27.11.2012, 12:27
ФБ Состояние окна сообщений относиться к текущему открытому окну или его можно как-то привязать к нужному окну?

SCADAMaster
27.11.2012, 12:42
Просто пробывал привязать к переменной(тип перечислимый)значение(тип целый),то тут тип просто наследовался.
Поставьте галочку "Запрет наследования типа" или используйте ФБ "Повторитель" (закладка "обработка сигналов").


ФБ Состояние окна сообщений относиться к текущему открытому окну или его можно как-то привязать к нужному окну?
Оно относится к окну сообщений.
Если вам нужно отслеживать состояние конкретного окна, то используйте ФБ "Управление документом" (закладка "Служебные").

Ильнур
27.11.2012, 14:37
В мастер скаде есть ФБ Таблица.Что-то не пойму,как задать наименование колонок?Т.е.там название параметра, потом значение параметра находятся на одной строке, как можно сделать, чтобы они находились друг под другом т.е.в одном столбце?

SCADAMaster
27.11.2012, 15:31
Ну колонок там три и они не меняются.
Первая колонка - название строки (параметра).
Вторая - значение
Третья - единицы измерения (прописывается если у параметра есть шкала, или в свойствах контрола - вручную).

Вообщем таблицу при необходимости можно сделать самостоятельно - из значений. Вытаскиваете значение на мнемосхему, включаете у него границу, стыкуете несколько значений.
Можно сделать изображение объекта и использовать шаблоны - тогда можно быстро строить очень крупные таблицы.

Ильнур
29.11.2012, 13:43
Хотел бы спросить совета.Из контроллера в скаду шлю три параметра:
состояние клапана;
управляющий параметр (вкл/выкл клапана);
параметр сообщений.
С первыми двумя параметрами понятно, а вот насчет параметра сообщений....Здесь имеются ввиду аварийные сообщения и сообщения блокировки.Просто задумал сделать так.Шлю в этот параметр число, а по числу выбирается нужное сообщение.(приоретет тоже учитывается) .Как лучше почтупить?Может разнести сообщения блокировки и аварийные сообщения по разным переменным?

SCADAMaster
29.11.2012, 14:34
Может разнести сообщения блокировки и аварийные сообщения по разным переменным?
Лучше разнести по разным переменным.
Можно конечно в одной - шифровать число в определенных битах, но в разных переменных будет проще.
Потом генерируйте сообщения при помощи модуля "Событие".

Ильнур
29.11.2012, 14:36
Понятно,спасибо!

Ильнур
29.11.2012, 15:02
Еще один как можно сделать блок, на который подаешь 1 на выходе через 1сек 0-1-0 т.д.Думал через ФБ программа на ST сделать, но не могу понять как сделать таймер.

SCADAMaster
29.11.2012, 15:09
Есть ФБ с помощью которых можно реализовать - Задний фронт, передний фронт (закладка "Обработка сигналов"), "Выдержка времени", "Задержка по времени" (закладка "Работа со временем").
Например можно использовать ФБ "Передний фронт", только расположить его в дереве выше чем команда которая генерирует импульс - тогда сигнал выходе ФБ появится на следующем такте опроса (по умолчанию он 1 секунда).

Ильнур
30.11.2012, 09:46
Для организации таймера в 1 сек пробывал сделать так:
Программа ST:
PROGRAM MAIN_PROGRAM

VAR_INPUT
in:bool;
front_out:bool;
END_VAR

VAR_OUTPUT
out:bool;
front_in:bool;
END_VAR

(*TODO: TYPE PROGRAM CODE HERE*)
if in = true then
if front_in = false and front_out = false then
front_in := true;
out := true;
elsif front_in = true and front_out = false then
front_in := false;
out := false;
end_if;
end_if;
END_PROGRAM
и ФБ Передний фронт.Связь Вход-front_in, передний фронт-front_out.
Схема в принципе работает, но не 1 сек, а примерно в 2.Это и понятно,потому что 1 такт программы 1сек. Пробывал уменьшить время опроса объектов. Не помогло. Что еще можно сделать?

SCADAMaster
30.11.2012, 10:13
Вот такой код попробуйте. Опрос у ФБ "Скрипт ST" поставьте периодический (опрос остальных объектов можно не менять)
PROGRAM MAIN_PROGRAM

VAR_INPUT
in:bool;
END_VAR

VAR_OUTPUT
out:bool;
END_VAR

var
m:bool:=false;
Trig1:R_Trig;
end_var

(*TODO: TYPE PROGRAM CODE HERE*)
Trig1(Clk:=in);
if out=true then
out:=false;
end_if;
if m=true then
out:=true;
m:=false;
end_if;
if Trig1.Q=true then
m:=true;
end_if;
END_PROGRAM

Ильнур
30.11.2012, 10:37
Это код я как понял будет так.Поменялось in с 0 на 1 через 1сек поменялся out. и все.Чтобы опять out стал равен 1, а потом 0 надо in снова поменять на 0, а потом на 1.Мне же надо сделать так.Если на in пришла 1,то out поочередно сам меняется с 0 на 1. и меняется до тех пор,пока in равен 1, как только in равен 0, out перестает менятся.

Ильнур
30.11.2012, 10:50
сделал так:
PROGRAM MAIN_PROGRAM

VAR_INPUT
in:bool;
END_VAR

VAR_OUTPUT
out:bool;
END_VAR

VAR
timer:TON;
timer1:TON;
END_VAR

(*TODO: TYPE PROGRAM CODE HERE*)
if in = true then
timer();
timer1();
if not timer.in then
timer1(in:=false);
timer(in:=true,PT :=T#1s);
out := true;
end_if;

if timer.Q then
out := false;
timer1(in:=true,PT:=T#1s);
end_if;

if timer1.Q then
timer(in:=false);
end_if;
end_if;
END_PROGRAM
Насколько можно(оптимально) уменьшить время цикла программы?

Ильнур
30.11.2012, 10:58
Можно вопрос.Я так думаю что Время цикла программы должно быть таким же как время цикла опроса ОРС сервера, иначе если время программы будет меньше время цикла ОРС, то могут пойти ошибки.А можно ли время для ОРС задать 20 мс?Не произойдут ли какие нибудь сбои из-за времени?

SCADAMaster
30.11.2012, 11:33
20 мс слишком мало. Сам ОРС за это время не успеет устройство опросить.
Мы не рекомендуем снижать цикл опроса ОРС и объектов ниже 500 мс. Тем более что ниже этого значения - это бессмысленно, все равно оператор не успеет среагировать с такой скоростью.

Ильнур
30.11.2012, 11:37
А тогда можно сделать так:время цикла программы одно допустим 50мс, а время опроса ОРС оставить 1000мс?Или все таки они должны быть одинаковы?

SCADAMaster
30.11.2012, 11:46
В принципе можно, но тогда объекты будут исполняться в разных потоках.
Может получится что слишком короткие импульсы которые вы будете передавать из "быстрого" объекта в "медленный" могут не пройти.
А зачем вам такой маленький цикл?

Ильнур
30.11.2012, 12:10
Просто надо было отобразить аварийное состояние клапана.Это состояние состоит из 2 изображений. И надо переключать эти изображения с переодичностью 1 сек. при аварии.Сделал Программу ST:
PROGRAM MAIN_PROGRAM

VAR_INPUT
in:bool;
END_VAR

VAR_OUTPUT
out:bool;
END_VAR

VAR
timer:TON;
timer1:TON;
END_VAR

(*TODO: TYPE PROGRAM CODE HERE*)
if in = true then
timer();
timer1();
if not timer.in then
timer1(in:=false);
timer(in:=true,PT :=T#1s);
out := true;
end_if;

if timer.Q then
out := false;
timer1(in:=true,PT:=T#1s);
end_if;

if timer1.Q then
timer(in:=false);
end_if;
end_if;
END_PROGRAM
этот код зависит от времени выполнения цикла.Если поставить 1000мс, то out меняется с периодичностью 2 сек.Вот для этого уменьшил.

Ильнур
30.11.2012, 12:24
Попробовал сделать отдельный объект Таймер и перенес Программу ST.Поставил Собственный цикл и выставил 20мс. Так в принципе можно сделать?Если объект Таймер входит в объект с периодом 1000мс.

SCADAMaster
30.11.2012, 13:23
Просто надо было отобразить аварийное состояние клапана.Это состояние состоит из 2 изображений. И надо переключать эти изображения с переодичностью 1 сек. при аварии.
Тогда можно сделать проще.
Возьмите ФБ "Пульсатор", задайте у него на входах длительность. Выход пустите через ФБ "Логическое И". На второй вход логического И - ваш сигнал аварии, выход "Логическое И" - на управление изображения.

Ильнур
30.11.2012, 14:20
Все спасибо, получилось.

Ильнур
03.12.2012, 11:51
Есть ли в Мастер Скаде наподобие кнопки с индикацией.Или самому проще сделать?

SCADAMaster
03.12.2012, 11:56
Что значит с индикацией? Поясните вашу задачу

Ильнур
03.12.2012, 12:41
Ну допустим нажатая кнопка ярко-красная,отжатая темно-красная

SCADAMaster
03.12.2012, 12:53
Цвет кнопки можно изменить в режиме исполнения через входы динамизации.

Ильнур
03.12.2012, 13:39
А есть возможность реализовать события при наведении мыши?

SCADAMaster
03.12.2012, 13:46
В принципе можно. У нас есть специальный ФБ "Координаты мыши". С его помощью можно отслеживать положение мыши.
А что именно вам нужно? Если просто всплывающую подсказку, то это можно настроить в свойствах кнопки.

Ильнур
03.12.2012, 13:47
Чтобы кнопка меняла цвет при наведении мыши

SCADAMaster
03.12.2012, 13:52
Ну через ФБ "Координаты мыши" такое сделать можно.
Но нам кажется что оно того не стоит...

Ильнур
04.12.2012, 09:59
Не подскажите как можно сделать, чтобы состояние окна сообщений отслеживалось с помощью "Управление документом"?Может пример есть?

SCADAMaster
04.12.2012, 10:42
Окно сообщений при помощи данного ФБ отследить нельзя.
Для контроля за состоянием окна сообщений, есть другой ФБ - "Состояние окна сообщений" (закладка "Служебные").

service
04.12.2012, 18:16
что такое точка скады?

SCADAMaster
04.12.2012, 18:21
Лицензионная точка скады - это переменная ОРС сервера добавленная в дерево системы, задействованный выход хранимой процедуры, связь с другим компьютером в сетевом проекте.
В автономное проекте играет роль только переменные OPC сервера.
Подробнее можно посмотреть здесь:
http://www.insat.ru/products/faq_scada_opc/?q=masterscada#MS3
и здесь
http://www.insat.ru/products/faq_scada_opc/Configuration/

Дмитрий
06.12.2012, 12:08
Добрый день. Не могу решить проблемку с опросом МДВВ . При снятии питания на блоке и последующем его включении не восстанавливаются состояния выходов пока не вкл\выкл например насос в окне объекта. Сижу эксперементирую с опросами в мастерской ничего не получается. Опрашиваю по родному ОРС ОВЕН.

SCADAMaster
06.12.2012, 19:14
Пока что единственным вариантом это выполнить действие (у модуля "Событие" или команды типа "Дискретный") - "Присвоить". Присваиваете нужной ОРС переменной значение какого то тега.
В качестве события можно например использования появление связи.

В будущем мы сделаем механизм который бы позволил осуществлять запись в таких ситуациях.

Дмитрий
07.12.2012, 11:50
Пока что единственным вариантом это выполнить действие (у модуля "Событие" или команды типа "Дискретный") - "Присвоить". Присваиваете нужной ОРС переменной значение какого то тега.
В качестве события можно например использования появление связи.

В будущем мы сделаем механизм который бы позволил осуществлять запись в таких ситуациях.

Ну я так примерно и сделал. Спасибо.

Ильнур
09.12.2012, 11:08
Возможно ли организовать в МастерСкаде собитие у элемента "При двойном нажатии мыши".Например делаем двойной щелчок мыши на значении и выполняется определенное действие.Или надо писать это самому?

SCADAMaster
09.12.2012, 12:30
Штатных контролов для этого нет.
Вам нужно или написать свой контрол, или оформить действие по другому.

Andrew_Stranger
16.12.2012, 11:03
Добрый день. Возник следующиий вопрос. В проекте на мнемосхемах обьектов расположены тренды. Можно ли каким-то образом создать свои пользовательские настройки и тиражировать их на все тренды. Настраивать каждый тренд весьма трудоемкий процесс(всего около 10 трендов). Пробовал использовать кнопку "сохранить как умолчания" но она работает в рамках одного объекта.

SCADAMaster
16.12.2012, 14:14
На данный момент функция "Сохранить как умолчания" выключена - в этом случае графики строятся быстрее.
Возможно для вашей задачи подойдет использование механизма шаблонов - вы сможете настроить один объект, а потом быстро применить настройки к остальным объектам. Подробнее про шаблоны можно посмотреть в наших видеопримерах (второй видеопример):
http://www.masterscada.ru/?additional_section_id=233

Можно также вручную копировать файл настроек тренда в папке проекта. Файл вида:
D:\MasterSCADA Projects\Projects\Сохранение тренда\Сохранение тренда\Объект\Объект 1\Тренды~Тренд\content.xml

_Pavel_
17.12.2012, 23:53
Подскажите, пожалуйста, как в MasterScada работать с точным временем, например, как реализовать инкремент некоторого значения строго каждые 100 мс?
Выставляю период опроса расчёта в котором выполняется инкремент равным 100 мс, но значение запаздывает...

SCADAMaster
18.12.2012, 08:04
На Windows в принципе нельзя добиться точного времени.
А что вы вообще хотите сделать? Вероятно вы пытаетесь на скаду отгрузить задачи которые должен решать ПЛК.

Sohatyi
19.12.2012, 10:12
Добрый день. Есть проект со следующей структурой: Завод - Цех - Корпус - Узел учета. С вычислителей собираются архивные данные о расходах и т.д(OPC HDA). Необходимо рассчитать суммарные значения по корпусам, цехам и в целом по заводу, с соответствующими метками времени. Можно ли это сделать стандартными средствами в дереве объектов? Пытался использовать расчет, но возникла проблема с тем, что данные приходят не единовременно, соответственно корректное значение будет, если расчет наследует метку времени от того значения, которое приходит последним. Так как связь нестабильна, то с уверенностью сказать какой вычислитель опросится последним нельзя.
И еще один вопрос: Есть шаблон, у которого создан тренд, способ открытия - "Новое окно", при применении к экземплярам, способ открытия становится "Документ". Каким образом это можно исправить?

SCADAMaster
19.12.2012, 10:44
Добрый день. Есть проект со следующей структурой: Завод - Цех - Корпус - Узел учета. С вычислителей собираются архивные данные о расходах и т.д(OPC HDA). Необходимо рассчитать суммарные значения по корпусам, цехам и в целом по заводу, с соответствующими метками времени. Можно ли это сделать стандартными средствами в дереве объектов? Пытался использовать расчет, но возникла проблема с тем, что данные приходят не единовременно, соответственно корректное значение будет, если расчет наследует метку времени от того значения, которое приходит последним. Так как связь нестабильна, то с уверенностью сказать какой вычислитель опросится последним нельзя.

Именно в дереве объектов? В редакторе отчетов не устраивает?
В модуле расчет есть функции для работы с архивными переменными (AbsArchIntegral( ) и подобные) вам нужно использовать их.
Но скорее всего вам все таки нужен редактор отчетов. В этом случае посмотрите видеопримеры (есть цикл примеров по редактору):
http://www.masterscada.ru/?additional_section_id=233
И документацию:
http://www.masterscada.ru/services/support/art_step_by_step/Otchet.ZIP
Можем еще дать новую документацию (пока не опубликованную).



И еще один вопрос: Есть шаблон, у которого создан тренд, способ открытия - "Новое окно", при применении к экземплярам, способ открытия становится "Документ". Каким образом это можно исправить?
Опишите подробнее ваши действия.

Sohatyi
19.12.2012, 12:08
Именно в дереве объектов? В редакторе отчетов не устраивает?
Хотелось создать итоговые суммарные значения для корпусов, потом использовать их для расчета суммы по цеху и далее по заводу. В отчете, насколько я понимаю, придется каждый раз сумму рассчитывать заново, при большом количестве переменных велика вероятность что-нибудь пропустить.


Можем еще дать новую документацию (пока не опубликованную).
буду благодарен


Опишите подробнее ваши действия.
Создаю объект, во вкладке "Тренды" создаю тренд, тип "Новое окно". Делаю этот объект шаблоном. После применения шаблона к экземпляру, у экземпляра во вкладке "Тренд" у созданного тренда тип получается "Документ"

SCADAMaster
19.12.2012, 13:01
Хотелось создать итоговые суммарные значения для корпусов, потом использовать их для расчета суммы по цеху и далее по заводу. В отчете, насколько я понимаю, придется каждый раз сумму рассчитывать заново, при большом количестве переменных велика вероятность что-нибудь пропустить.

Это все можно сделать и в редакторе отчетов.
Пропустить - ничего не пропустится, только если при создании отчета не ошибетесь.



буду благодарен

Напишите письмо на support(собка)insat.ru



Создаю объект, во вкладке "Тренды" создаю тренд, тип "Новое окно". Делаю этот объект шаблоном. После применения шаблона к экземпляру, у экземпляра во вкладке "Тренд" у созданного тренда тип получается "Документ"
Проблема подтвердилась. Мы записали данную ошибку.

Sohatyi
19.12.2012, 13:24
Это все можно сделать и в редакторе отчетов.
Пропустить - ничего не пропустится, только если при создании отчета не ошибетесь.
В том-то и дело, что боюсь ошибиться, при количестве узлов учета 300 штук это не сложно. К тому же в отчетах придется создавать много источников данных и повторять одни и те же действия сначала для корпусов, потом для цехов и в целом по заводу.
А можно каким-нибудь образом передавать значения из рассчитываемых колонок в отчете в переменные в дереве объектов?

SCADAMaster
19.12.2012, 13:40
К тому же в отчетах придется создавать много источников данных и повторять одни и те же действия сначала для корпусов, потом для цехов и в целом по заводу.

Источник данных можно и один - а в него все ваши переменные. Но процесс добавления и настройки переменных действительно будет долгим.
Посмотрите тогда на возможности работы с архивом у модуля "Расчет".
Можно при помощи модулей "Расчет" вычислять расход для корпусов, а затем в редакторе отчетов сводить результаты в общую форму (вам ведь скорее всего нужен лист со сводными данными).



А можно каким-нибудь образом передавать значения из рассчитываемых колонок в отчете в переменные в дереве объектов?
Штатных средств для возврата значений нет.
Теоретически задачу можно решить при помощи модуля "Скрипт C#".

Sohatyi
19.12.2012, 14:03
Посмотрите тогда на возможности работы с архивом у модуля "Расчет".
Можно при помощи модулей "Расчет" вычислять расход для корпусов, а затем в редакторе отчетов сводить результаты в общую форму (вам ведь скорее всего нужен лист со сводными данными).C#".
С Расчетом пока тоже не получается, как я уже писал данные приходят не одновременно, соответственно иногда возникает такая ситуация складываются 1 значение с нужной меткой времени и 2-е с предыдущей

SCADAMaster
19.12.2012, 14:13
А зачем вам метки времени?
Вы смотрели описание функции AbsArchIntegral( ) в справке? Вам нужно указать начало вычисления интеграла (например начало прошлого месяца), конец вычисления интеграла (начало текущего месяца), интеграл будет вычислен по архиву этих значений.
Данную операцию вам нужно выполнять по окончанию месяца - когда все данные получены.

Sohatyi
19.12.2012, 15:30
заказчик хочет видеть все данные за выбранный интервал времени

SCADAMaster
19.12.2012, 15:37
В модуле "Расчет" можно задать интервал времени за который будет рассчитан интеграл - главное чтобы в этот промежуток времени был архив данных.
Посмотрите справку к данной функции

Sohatyi
19.12.2012, 15:41
в интеграле получается одно значение, а нужно просматривать динамику за сутки или за несколько дней, сколько выдает поставщик ресурсов и тратится у потребителей. Похоже, что все-таки придется делать через отчеты.
Спасибо

Andrew_Stranger
20.12.2012, 13:22
Доброго времени суток. Возник следующий вопрос. На тренде расположенном на мнемосхеме объекта рисуется пять графиков. При включении - выключении графиков через легенду через какое-то время пропадает подпись возле вертикальной шкалы отображаемого параметра. Из-за чего это может происходить? Пользуюсь версией 3.4.
Спасибо.

SCADAMaster
20.12.2012, 15:45
Вероятно в какой то момент времени - когда вы отключаете все графики, ось перестает быть привязанной к активному графику.
Если графики у вас все одинаковой шкалы (например температура), то можно в продвинутом режиме в настройках оси значений в разделе "Связанные параметры" задать "Внешний вид" и "Окно Y" задать не активный график а какой то конкретный график.

Andrew_Stranger
20.12.2012, 18:08
Шкалы разные. Если я вас правильно понимаю, то что нельзя отключать Все графики в легенде?

SCADAMaster
20.12.2012, 18:16
Почему - можно, отключайте.
Просто потом когда активируете один из них, щелкните по строке пера (или по самому графику), чтобы к оси применилась шкала.

Andrew_Stranger
20.12.2012, 18:21
Я уже второй день щелкаю везде. Результат отрицательный.

SCADAMaster
20.12.2012, 18:28
Вы щелкаете по имени пера в легенде, и ось не получает шкалу?
У вас ключевая версия или Demo?

Andrew_Stranger
20.12.2012, 18:34
Щелкаю везде, и по графику, и по названию пера.
Версия на 32 точки.

Andrew_Stranger
20.12.2012, 18:35
Шкалу получаю, но она без названия. Удивительно, но сегодня поднялась такая же тема с 2011 года.

SCADAMaster
21.12.2012, 19:36
Это ошибка - мы ее исправили.
Исправление будет доступно в следующей стабильной версии.

Ильнур
24.12.2012, 12:33
Как можно в редакторе формул (у элемента событие) сделать так:
Если перем = 0 Тогда
перем1 = 0,
перем2 = 0,
перем3 = 0
КонецЕсли?

SCADAMaster
24.12.2012, 12:56
Расчет не может присваивать значения - он может только возвращать значения на свой выход.
Какую именно задачу вам нужно решить?

Ильнур
24.12.2012, 18:08
У меня есть 3 события и 1 значение.Когда значение равно 1 включается 1 событие, 2-2 событие,3-3 событие.Но когда значение становиться равным 0, тогда все события должны выключаться.

SCADAMaster
24.12.2012, 18:23
В смысле если значение равно 1, то включается Событие 1, если 2, то Событие 1 и Событие 2, если 3, то событие 1, 2 и 3?

Пропишите в формулах. У События 1:
Значение>=1
У события 2:
Значение>=2
У события 3:
Значение>=3

Ильнур
24.12.2012, 18:31
Спасибо я разобрался.Просто мне надо было если значение равно 1,то выполняется Событие 1, при этом 2 и 3 отключены
если значение 2, то выполняется событие 2,при этом 1 и 3 событие отключены
если значение 3, то выполняется событие 3, при этом 1 и 2 событие отключены.
если значение равно 0, то отключены все события

rumiantsev_nv
26.12.2012, 13:47
Здравствуйте, не буду плодить темы и спрошу здесь. Подскажите как решить два вопроса:
1. Как в режиме Run time осуществлять смену пользователей. Т.е. нужна кнопка, по нажатию на которую будет выводиться форма, в которую операторы будут вводить свой логин и пароль. Верхняя панель в режиме исполнения скрыта.
2. Как в трендах осуществить выбор тегов среди тех переменных, которые имеют аналоговый шаблон архивирования. Т.е. хочется избежать выбора определенных тегов из всего дерева объектов. Можно ли как-то реализовать заранее определенные группы перьев, которые так же можно выбирать с использованием combobox.

SCADAMaster
26.12.2012, 13:59
1. Как в режиме Run time осуществлять смену пользователей. Т.е. нужна кнопка, по нажатию на которую будет выводиться форма, в которую операторы будут вводить свой логин и пароль. Верхняя панель в режиме исполнения скрыта.

Создайте команду типа "Дискретный", перейдите на закладку "Действия". Создайте действия типа "Системное" - "Завершение сеанса".
Команду можно вытащить на мнемосхему - нажатие на нее в режиме исполнения, приведет к завершению сеанса пользователя и появится окно с выбором оператора



2. Как в трендах осуществить выбор тегов среди тех переменных, которые имеют аналоговый шаблон архивирования. Т.е. хочется избежать выбора определенных тегов из всего дерева объектов. Можно ли как-то реализовать заранее определенные группы перьев, которые так же можно выбирать с использованием combobox.
Пока что нельзя настроить в тренде фильтрацию по шаблону архивирования - только по имени.
У конкретной переменной, на закладке "общие" можно снять галочку видимости в тренде.

rumiantsev_nv
26.12.2012, 14:03
Спасибо за оперативность)

Ильнур
27.12.2012, 11:36
Хотел уточнить один вопрос:
Создал шкалу тип перечислимый и значения:
0 общая авария
1 авария насоса
Создал значение1 тип выбрал созданную шкалу.Затем создал значение2 и связал ее со значением 1.При отладке все нормально.Если значение2 = 0, то значение1= общая авария и т.д.Теперь потребовалось, чтобы в значении1 выводилась пустая строка, когда значение2 = 2.Пробывал создать в шкалах пустую строку, но тогда при значении2 = 2, значение 1 = 0.Как можно сделать что при значении2 = 2, выводилась пустая строка?

SCADAMaster
27.12.2012, 11:50
Пропишите не пустую строку, а поставьте в строку "Пробел".

Ильнур
27.12.2012, 11:57
С пробелами появляется полоса внизу.Ну если по другому не получается, то придется сделать с пробелами.

SCADAMaster
27.12.2012, 16:08
По другому пока что нельзя.
В будущем мы поправим эту ошибку.

lomtik
27.12.2012, 23:54
Здравствуйте, подскажите как сделать:
в мастер скада есть переменная, которая считает импульсы со счетчика электроэнергии, т.е. фактически ее значение - это есть показание счетчика электроэнергии (активная мощность в кВт*ч). По показаниям счетчика, например за час, я хочу узнать подключенную активную мощность, которая будет определятьсяпо временным срезам за час, за полчаса.., примерно так:
Ра = Пок-е счетчика (15-00) - Показание счетчика (14-00)
или так
Ра=(Пок-е счетчика (15-00) - Показание счетчика (14-30))*2

Так вот, 1-й вопрос - как мне достать из архива скады значение этой переменной например в 15-00 или в 14-00, чтобы вычислить у них разницу. Информация будет отображаться графически в виде тренда, поэтому текстовый отчет не нужен. Думал сделать расчет, понимаю, что это как-то очень просто, но ни как не соображу. И 2-й вопрос: не много не понял как в формуле расчета использовать условие ЕСЛИ. Все время выскакивает ошибка синтаксиса. Как правильно писать условия с ЕСЛИ?

SCADAMaster
28.12.2012, 08:47
в мастер скада есть переменная, которая считает импульсы со счетчика электроэнергии, т.е. фактически ее значение - это есть показание счетчика электроэнергии (активная мощность в кВт*ч). По показаниям счетчика, например за час, я хочу узнать подключенную активную мощность, которая будет определятьсяпо временным срезам за час, за полчаса.., примерно так:
Ра = Пок-е счетчика (15-00) - Показание счетчика (14-00)
или так
Ра=(Пок-е счетчика (15-00) - Показание счетчика (14-30))*2

Информацию нужно выводить на монитор, или же сохранять куда либо в файл?



Так вот, 1-й вопрос - как мне достать из архива скады значение этой переменной например в 15-00 или в 14-00, чтобы вычислить у них разницу. Информация будет отображаться графически в виде тренда, поэтому текстовый отчет не нужен.
Обычно требуется месячный отчет профиля мощности, с почасовым срезом. Недавно мы выпустили ОРС сервер для счетчика "Меркурий", к которому также выпустили проект-шаблон MasterSCADA для построения систем АСКУЭ, в котором в том числе есть отчет профиля мощности. Посмотрите - вероятно вам это требуется.
http://www.insat.ru/products/?category=1250



И 2-й вопрос: не много не понял как в формуле расчета использовать условие ЕСЛИ. Все время выскакивает ошибка синтаксиса. Как правильно писать условия с ЕСЛИ?
В общем виде:
ЕСЛИ (условие, возвращаемое_значение_если_условие_истинно, возвращаемое_значение_если_условие_ложно)
Например
ЕСЛИ (значение=10, 20, 30)
Если значение будет равно 10, то на выходе расчета будет 20, иначе 30.

lomtik
29.12.2012, 13:49
ого, спасибо, вот это тема.
но, у меня уже стоит универсальный инсатовский модбас сервер на 2,5к, им я опрашиваю плк-100, и давно рассматриваю вопрос подключение меркурия к плк не по импульсному выходу как сейчас, а через CAN. Если использовать этот опс, то ПЛК как промежуточное звено вообще выпадает, так?

SCADAMaster
29.12.2012, 13:52
Да, он больше будет не нужен.
Насчет CAN - там только через преобразователь, который поставляет Меркурий. Либо используйте модели с RS-485.

lomtik
29.12.2012, 21:57
Да, он больше будет не нужен.

вот в этом то и проблема, что к плк подцеплены еще счетчик газа и воды. ПЛК считает их импульсы, переводя их потом в объемы потребления и передает по сети, физически разбросанной на неск. километров и без плк никак.
Адаптер меркурий 221 у меня есть, подключался им выборочно к счетчикам, программку использовал штатную, шла в комплекте, здесь не проблема.
А вот контроллеров у меня уже более 200 штук (если помните), на каждого адаптером не запасешься, тем более что его цена одного кажется в районе 2-х тыс. руб. кажется, т.е. как пол-счетчика.

lomtik
30.12.2012, 00:32
все разобрался, нашел функциональный блок звено запаздывания, подаю на его вход импульсы со счетчика электроэнергии, ставлю время задержки равное времени за которое хочу подсчитать мощность, например 5 мин., получаю на выходе кол-во импульсов, которое было 5 минут назад. Считаю разность между текущим значением количества импульсов и количеством импульсов 5 мин. назад , получаю расход электроэнергии за 5 мин. , далее умножаю полученное значение на 20 и получаю активную мощность которая была бы за час в этом пяти-минутном срезе.

SCADAMaster
30.12.2012, 09:18
А вот контроллеров у меня уже более 200 штук (если помните), на каждого адаптером не запасешься, тем более что его цена одного кажется в районе 2-х тыс. руб. кажется, т.е. как пол-счетчика.
Адаптер можно использовать один на несколько счетчиков. Если конечно конфигурация системы это позволяет.

rumiantsev_nv
09.01.2013, 15:11
Нашел в библиотеке скрипт, который квитирует все события данного объекта. А можно ли как-то квититровать все события в дереве объектов (включая события во всех вложенных объектах)? Возможно тривиальный вопрос, но увы не силен в c#.

SCADAMaster
10.01.2013, 16:27
Скрипт из библиотеки квитирует сообщения которые находятся в объекте, в котором находится скрипт, а также сообщения из всех вложенных объектов.
Просто положите этот скрипт в объект первого уровня

A9A
23.01.2013, 09:26
Здравствуйте!
Можно ли сделать в трендах одну динамическую шкалу для всех перьев, которая будет менять диапазон в зависимости от максимальных и минимальных значений перьев?

SCADAMaster
23.01.2013, 14:42
А использование автомасштаба вас не устраивает?

Сема
23.01.2013, 15:39
Здравствуйте, Я хочу узнать, а где OPC-сервер от второго видеоурока, где насосы с баками??

Сема
23.01.2013, 15:56
Можно мне на все видеоуроки, которые там есть OPC-сервера и все их конфигурации.

SCADAMaster
23.01.2013, 16:26
На странице с видеопримерами, помимо самих видеопримеров есть и готовые проекты MasterSCADA и OPC конфигурации.
OPC сервер можно использовать Modbus Universal MasterOPC Server
http://www.masteropc.ru/products/?category=399
Бесплатную версию на 32 точки, а также видеопримеры по созданию конфигурации можно скачать здесь:
http://www.masteropc.ru/prices/info.php?pid=6944

Сема
23.01.2013, 16:44
Спасибо огромное!!

princesska21
27.01.2013, 14:03
Здравствуйте,
Возможно, нам понадобится внешнее управление реле при помощи скада, чтобы протестировать набрали формулу
ЕСЛИ( темп <> уставка, r_oUt=1 , r_oUt=0)
не корректно работает - когда уставка=темп происходит постоянное переключение с 0 на 1
режим работы выставлен r-L=1 т.е на ручном управлении ...
значения темп и уставка целые
когда значении не равны реле срабатывает нормально

Василий Кашуба
27.01.2013, 14:14
Здравствуйте,
Возможно, нам понадобится внешнее управление реле при помощи скада, чтобы протестировать набрали формулу
ЕСЛИ( темп <> уставка, r_oUt=1 , r_oUt=0)
не корректно работает - когда уставка=темп происходит постоянное переключение с 0 на 1
режим работы выставлен r-L=1 т.е на ручном управлении ...
значения темп и уставка целые
когда значении не равны реле срабатывает нормально

Сделайте так ЕСЛИ( темп < уставка, r_oUt=1 , темп => уставка, r_oUt=0)
или так ЕСЛИ( темп < уставка, r_oUt=1) ИНАЧЕ r_oUt=0

SCADAMaster
27.01.2013, 21:28
Здравствуйте,
Возможно, нам понадобится внешнее управление реле при помощи скада, чтобы протестировать набрали формулу
ЕСЛИ( темп <> уставка, r_oUt=1 , r_oUt=0)
не корректно работает - когда уставка=темп происходит постоянное переключение с 0 на 1
режим работы выставлен r-L=1 т.е на ручном управлении ...
значения темп и уставка целые
когда значении не равны реле срабатывает нормально
Как мы понимаем вы используете модуль "Расчет". В модуле расчет нельзя выполнять присваивание переменным. ЕСЛИ возвращает результат на выход расчета, поэтому писать r_out=1 неверно.
Во вторых, неправильно писать темп <> уставка - должен быть хоть какой нибудь гистерезис.
Если вам нужно получить "Истина" если значение отклонилось от уставки, и "Ложь" если оно в нужных пределах, то тогда используйте не модуль "Расчет", а модуль "Событие", а формула будет такая:
темп<уставка-1 ИЛИ темп>уставка+1
+1 и -1, это примерные значения гистерезиса - задайте те, которые вам нужны

princesska21
27.01.2013, 22:31
Спасибо, поменяв на событие все нормально заработало

A9A
28.01.2013, 11:43
Здравствуйте!
Подскажите можно ли как-то менять логику отображения сообщений(жирный шрифт, курсив, величину кегля)?
Возможно всё правиться в общих настройках журнала сообщений, но если открыть журнал сообщений на продвинутом уровне, в панели настроек кликнуть общие настройки, то ничего не происходит.

SCADAMaster
28.01.2013, 13:01
Есть такая ошибка - в продвинутом уровне, при нажатии на "Общие настройки" настройки не появляются.
Активизируйте панель "Графики" - тогда она появится.
В общих настройках в разделе "Таблица сообщений" есть настройки шрифта (его размер).
Управлять курсивом и жирным шрифтом нельзя - стилями определяется статус сообщения

A9A
28.01.2013, 14:52
Спасибо! Всё заработало!

Andrey(TSO)
28.01.2013, 14:58
а как в OPC-сервере в скрипте паузу в миллисекундах реализовать?
PS: os.time() миллисекунды не возвращает

SCADAMaster
28.01.2013, 15:26
Зачем вам вообще нужна пауза?
os.time возвращает количество секунд

Andrey(TSO)
29.01.2013, 07:26
делаю паузу в опросе между приборами, ибо если вести опрос подряд опрос нередко "затыкается" из-за неответа одного из приборов, не знаю с чем связано, но введя 2сек через os.time() паузу это явление пропадает. При том на деле такая задержка не 2 сек, а от 1 до 2 сек, как повезёт, а я бы хотел и 0,5сек уметь делать и 0,1.

Видел функции про timestamp, они из готовой строки могут извлечь кол-во мс, но откуда взять строку с текущим временем неясно.

SCADAMaster
29.01.2013, 08:19
Так может вам просто установить смещение фазы в настройках устройства?

Andrey(TSO)
29.01.2013, 13:19
Не понял где эта настройка.
Если речь о параметре "начальная фаза" в настройках усройства в opc-сервере так это не влияет на паузу между опросами двух устройств

Ильнур
29.01.2013, 16:11
Созрел вопрос. Есть общая переменная, которая может изменять сама скада, т.е. нажали например кнопку и эту же переменную может менять ПЛК через ОРС сервер.Можно ли сделать такое, чтобы определить кто именно изменил переменную?

SCADAMaster
29.01.2013, 17:05
А для чего вам это нужно? Может быть лучше тогда завести по отдельной переменной?

S.A.D.
29.01.2013, 18:07
Подскажите пожалуйста как сделать на мнемосхеме кнопку выхода из режима исполнения (типа как кнопка стоп на основной панели) в режиме документа без основной панели?

SCADAMaster
29.01.2013, 18:14
Для этого можно использовать команду типа "Дискретный" у них есть закладка "Действия". Добавьте действие типа "Системное" - "выход". вытащите команду на мнемосхему - она станет кнопкой. Нажатие на эту кнопку вызовет действие выхода из режима исполнения.
Используя действия также можно завершать сеанс пользователя, сохранять документы, присваивать значения переменным

Andrey(TSO)
30.01.2013, 11:41
Так может вам просто установить смещение фазы в настройках устройства?
не понял, а где это смещение задается?

S.A.D.
30.01.2013, 12:45
Для этого можно использовать команду типа "Дискретный" у них есть закладка "Действия". Добавьте действие типа "Системное" - "выход". вытащите команду на мнемосхему - она станет кнопкой. Нажатие на эту кнопку вызовет действие выхода из режима исполнения.
Используя действия также можно завершать сеанс пользователя, сохранять документы, присваивать значения переменным

спасибо. Что-то я про "действие" забыл совсем)

mkv
30.01.2013, 14:07
SCADAMaster
Добрый день. Скажите пожалуйста, если проект сделан из под WindowsXP - будет ли он работать из под семёрки?

SCADAMaster
30.01.2013, 14:24
Да, будет.

mkv
30.01.2013, 15:41
SCADAMaster
Получили новый компьютер специально для проекта SCADA. Соответственно с новым монитором. Старый монитор был 17" с отношением сторон 4:3. Новый монитор 21" с отношением сторон 16:9. Скажите, это мне теперь наверно придётся в программе на каждом тренде менять разрешение или в Скаде есть возможность как то это сделать автоматически?
P.S. В трендах есть и фоновые картинки.
Спасибо.

CamAvt
30.01.2013, 15:43
Добрый день.
В ФБ Расчёт некое значение делю на показание с датчика. Если датчик не подключен, то делится на 0 и скада закрывается. Как обойти это? Использовать блок Ограничитель?

SCADAMaster
30.01.2013, 16:43
А у вас какая версия MasterSCADA?
На одной из версий действительно была проблема с зависанием при делении на ноль - сейчас эта проблема устранена. Попробуйте скачать с FTP текущую Demo и проверить на ней.

CamAvt
30.01.2013, 16:48
А у вас какая версия MasterSCADA? ...


Версия 3.5.0.39464 3.5(Demo)_12_10_08_12_07
3.5 ещё версия на 500 точек используется. На ней тоже вылетает...

SCADAMaster
30.01.2013, 17:16
Напишите письмо на scada(собака)insat.ru, сообщите номер ключа и попросите обновление

Ильнур
30.01.2013, 17:46
Как можно в скаде вывести число с одним числом после запятой?Т.е. выбор количества цифр после запятой?

SCADAMaster
30.01.2013, 17:56
делаю паузу в опросе между приборами, ибо если вести опрос подряд опрос нередко "затыкается" из-за неответа одного из приборов, не знаю с чем связано, но введя 2сек через os.time() паузу это явление пропадает. При том на деле такая задержка не 2 сек, а от 1 до 2 сек, как повезёт, а я бы хотел и 0,5сек уметь делать и 0,1.

Задача решается при скрипта Luа.
На уровне устройства вам нужно разместить в теле функции OnBeforeReading() такую функцию:
server.Sleep(3000);
Аргумент в скобках - задержка в миллисекундах.

SCADAMaster
30.01.2013, 18:04
Как можно в скаде вывести число с одним числом после запятой?Т.е. выбор количества цифр после запятой?
Если вы используете шкалы, то Система - Шкалы - поле "Формат". Число - это количество знаков после запятой.
Если шкалы не используются то указать количество знаков можно в свойствах самого контрола (закладка "Значение").

CamAvt
31.01.2013, 09:51
Напишите письмо на scada(собака)insat.ru, сообщите номер ключа и попросите обновление
Скачал обновление демоверсии, проблема исчезла. Отправил запрос на обновление коробочной версии...

Ильнур
31.01.2013, 13:46
Где можно изменит размер выводимого с помощью события сообщения?

SCADAMaster
31.01.2013, 13:49
Где изменить размер окна сообщений?
Система - Сообщения - Каналы - канал "Сообщение" - секция "Положение"

Ильнур
31.01.2013, 13:54
Все спасибо!!!

S.A.D.
31.01.2013, 14:04
вынужден задать очередной вопрос. Не работает журналирование вещественных величин. События пишутся отлично, а вот значения не пишутся почему-то. хотя в фильтре галка на них стоит. Есть объект и в нем подобъекты. Журнал создан в главном объекте и в фильтре указаны события и несколько значений вещественных переменных подобъектов. Переменные нужно писать раз в минуту, но это уже второй вопрос. Пока они никак вообще не пишутся, даже по изменению. Архивирование на переменных стоит раз в минуту.

SCADAMaster
31.01.2013, 14:34
Не совсем понятно какая связь между журналами и вещественными числами.
Журнал - это журнал событий, в который записываются сообщения от различных источников (системные ошибки, плохие признаки качества, пользовательские сообщения).
Вещественные числа записываются в архив данных, и отображаются они в трендах.
Что именно вам требуется?

S.A.D.
31.01.2013, 14:59
Не совсем понятно какая связь между журналами и вещественными числами.
Журнал - это журнал событий, в который записываются сообщения от различных источников (системные ошибки, плохие признаки качества, пользовательские сообщения).
Вещественные числа записываются в архив данных, и отображаются они в трендах.
Что именно вам требуется?

все, теперь понятно) Значит журнал в принципе не может обрабатывать значения и их нужно подтягивать трендом из архива данных. Это меня вобщем устраивает. Спасибо за ответ.

SCADAMaster
31.01.2013, 15:04
Значения можно отображать и в журнале тоже - можно составить пользовательское сообщение с переменным значением. То есть например нужно записать в журнал сообщение, что была изменения уставка и значение уставки.
Для этого у События, на закладке "Сообщение" есть таблица для перетаскивания переменных.
В наших видеопримерах по работе с журналами показывалось как это делать.
http://www.masterscada.ru/?additional_section_id=233

Ильнур
31.01.2013, 18:06
Возможно ли добавлять в список (из палитры) строки программным путем?

SCADAMaster
31.01.2013, 18:38
Имеется ввиду ВФБ "Список строк"?
Данный ФБ подгружает список из файла. Соответственно меняя файл, и добавляя в него строки можно добавлять строки и ФБ.

Константинов Сергей
01.02.2013, 07:41
Здравствуйте, расскажите как соединить ПЛК304 с MasterScada по Ethernet порту (по тому порту, по которому происходит соединение с кодесисом)? Что нужно сделать в самом ПЛК и в скада системе для настройки связи между ними? Или соединять нужно только по RS-232/485?

SCADAMaster
01.02.2013, 08:25
ПЛК304 у вас под управлением Codesys?
В этом случае вам нужно использовать ОРС сервер - либо Codesys OPC либо наш Modbus Universal MsaterOPC:
http://www.masteropc.ru/products/?category=399
Как произвести настройку в самом ПЛК, лучше уточнить у техподдержки ОВЕН

Константинов Сергей
01.02.2013, 08:53
ПЛК304 у вас под управлением Codesys?
В этом случае вам нужно использовать ОРС сервер - либо Codesys OPC либо наш Modbus Universal MsaterOPC:
http://www.masteropc.ru/products/?category=399
Как произвести настройку в самом ПЛК, лучше уточнить у техподдержки ОВЕН

Да ПЛК под управлением Кодесиса.

Пробовал соеденится через ОПК кодесис, соединение есть, но не могу сообразить как вытащить переменные с самого ПЛК

SCADAMaster
01.02.2013, 09:23
Как настраивать ОРС Codesys вам лучше уточнить у техподдержки ОВЕН - в разделе ПЛК.

A9A
01.02.2013, 15:44
Здравствуйте!
Подскажите, можно ли сделать окно, в котором будет написано имя пользователя, который сейчас работает в системе? Соответственно если зайдёт другой человек в систему, то имена сменятся.

SCADAMaster
01.02.2013, 15:58
Чтобы определить имя текущего пользователя воспользуйтесь ФБ "Служебная информация" (закладка "Служебные" палитры ФБ).
У нее есть выход на который и выдается имя оператора. Этот выход можно вытащить на мнемосхему.

A9A
01.02.2013, 16:07
Большое спасибо!

CamAvt
01.02.2013, 16:12
СКАДАМастер, добрый день!

Ситуация следующая:
При использовании на мнемосхеме элемента диалогов "Переключатели" соединяю из Дерева объектов команду с выходом "Выбранная строка".
После запуска режима исполнения Команда в Дереве объектов не инициализирована (не присвоено значение). Значение выбранной строки присваивается только после выбора значения в блоке Переключатели.
Можно ли изначально Команде присвоить значение выбранной по умолчанию строки?

SCADAMaster
01.02.2013, 16:28
Перетащите эту же команду на вход динамизации "Начальный выбор".
Во втором видеопримере это показывалось:
http://www.masterscada.ru/?additional_section_id=233

Andrey(TSO)
04.02.2013, 15:23
вопрос по тренду, вытаскиваю две переменные на тренд, у каждой будет своя шкала значений, можно ли для них сделать одну общую шкалу? Зачем это мне: чтобы при включенном автомасштабе не получалось, что оба графика сходятся в максимальном значении в одной точке, хотя на самом деле у одной переменной сейчас значение равно 1, а у другой еще только 0,8

SCADAMaster
04.02.2013, 15:31
Можно.
Переключите тренд в "продвинутый" уровень. Выделите нужное вам перо, активизируйте панель настроек, в разделе "Связанные свойства" укажите "Окно Y" и "Разметка сетки Y" - ту команду, к которой вы хотите привязать.

Ильнур
04.02.2013, 16:15
Имеется ввиду ВФБ "Список строк"?
Данный ФБ подгружает список из файла. Соответственно меняя файл, и добавляя в него строки можно добавлять строки и ФБ.

А что за файл?

SCADAMaster
04.02.2013, 20:04
Обычный текстовый файл.

Ильнур
05.02.2013, 16:36
Имеется ввиду ВФБ "Список строк"?
Данный ФБ подгружает список из файла. Соответственно меняя файл, и добавляя в него строки можно добавлять строки и ФБ.

Имеется ввиду список из палитры.Т.е. Палитра->Элементы диалога->Список

SCADAMaster
05.02.2013, 17:50
Ну и мы про него. Данный ФБ сохраняет вводимые пользователем значения в файл, и соответственно загружает их из него.

Ильнур
05.02.2013, 18:01
Мне просто нужно было сделать список с названиями процесса.Оператор выбирает название процесса и в котроллер передаются параметры этого процесса.ЕСли нужного процесса нет, то он его создает и сохраняет. И этот сохраненный процесс появляется в списке.Такое возможно сделать с помощью данного ФБ?

SCADAMaster
05.02.2013, 19:00
Конечно - для этого он и предназначен.
Оператор вводит текст в поле, оно сохраняется. Если нужно оператор может выбрать ранее введенные значения из списка, либо создать новое.

CamAvt
05.02.2013, 20:30
Подскажите, для сохранения данных которые ввели в таблицу нужно настроить архивацию с помощью ФБ "Сохранение в файл"? Данные в формате вещественных чисел.
Или это можно сделать через галочку Восстановление при рестарте?

CamAvt
05.02.2013, 20:43
Перетащите эту же команду на вход динамизации "Начальный выбор".
Во втором видеопримере это показывалось:
http://www.masterscada.ru/?additional_section_id=233

У команды обязательно должна быть галочка "Восстановление при рестарте"?
Ещё такой вопрос. Будет работать отчёт в Excel 2010?
Если имеется уже готовая, довольно сложная форма в Экселе можно ли её экспортировать в МастерРепорт?

SCADAMaster
05.02.2013, 21:00
Подскажите, для сохранения данных которые ввели в таблицу нужно настроить архивацию с помощью ФБ "Сохранение в файл"? Данные в формате вещественных чисел.
Или это можно сделать через галочку Восстановление при рестарте?
Вы имеете ввиду ВФБ "Таблица"?


У команды обязательно должна быть галочка "Восстановление при рестарте"?

Если нужно восстановление после перезапуска, то да.



Если имеется уже готовая, довольно сложная форма в Экселе можно ли её экспортировать в МастерРепорт?
Нет, импортировать не получиться - Excel и MasterReport очень сильно отличаются архитектурно.
В MasterReport также можно построить сложные формы отчетов.

CamAvt
05.02.2013, 21:12
Вы имеете ввиду ВФБ "Таблица"?

Да, таблица.



Нет, импортировать не получиться - Excel и MasterReport очень сильно отличаются архитектурно.
В MasterReport также можно построить сложные формы отчетов.


В отчёте Excel в ячейках, куда перенёс переменные пишутся "???"

SCADAMaster
05.02.2013, 21:21
Да, таблица.

На данный момент у ВФБ "Таблица" не сохраняется введенные значения. Мы поправим это в следующей версии.




В отчёте Excel в ячейках, куда перенёс переменные пишутся "???"
В режиме исполнения или в режиме разработки? Вы добавляли просто команды или ФБ "Данные для рапорта"?
Лучше использовать для создания отчетов MasterReport. Для создания отчетов Excel в будущем поддерживаться не будет

CamAvt
05.02.2013, 21:22
Использовал команды

SCADAMaster
05.02.2013, 21:35
В режиме разработки или в режиме исполнения? У команды есть значение?
Мы проверили на Microsoft Office 2012 - все корректно. Значения команд в отчет передаются.
Попробуйте переустановить MasterSCADA.

Владимир Евдокимов
06.02.2013, 12:32
Здравствуйте!
У меня есть два МДВВ (МДВВ c RS485) "ОВЕН", ПК, необходимо что бы от двух контроллеров на компьютере отображалось состояние входов. Информация передается через радио модем РМ433. Пробовал подключить один МДВВ работает , но в прилогаемой программе нет возможности видеть входо второго МДВВ.
Я звонил на фирму ОВЕН мне сказали нужна программа Master SCADA. Подскажите где можно ее скачать.

Заранее спасибо.

SCADAMaster
06.02.2013, 12:56
Ответили вам личным сообщением.

Ильнур
06.02.2013, 15:40
Конечно - для этого он и предназначен.
Оператор вводит текст в поле, оно сохраняется. Если нужно оператор может выбрать ранее введенные значения из списка, либо создать новое.

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

SCADAMaster
06.02.2013, 18:51
При помощи скрипта.
Пример в приложении.

Ильнур
06.02.2013, 19:37
При помощи скрипта.
Пример в приложении.

Спасибо! Буду разбираться.

CamAvt
06.02.2013, 19:49
В режиме разработки или в режиме исполнения? У команды есть значение?
Мы проверили на Microsoft Office 2012 - все корректно. Значения команд в отчет передаются.
Попробуйте переустановить MasterSCADA.

Отчёт в итоге сформировал с нормальными значениями.

Каким блоками можно воспользоваться для сохранения значений с импульсного входа? Значения необходимо считать за определённое время (30 секунд к примеру), затем подставлять в формулу и сбрасывать по команде. Использовал счётчик времени, выход "пробег времени" сравнивал с уставкой (30 сек), после чего с блока сравнения должна была подаваться команда на сброс. Но её нету.. Что подскажите для решения задачи?

SCADAMaster
06.02.2013, 20:22
Опишите вашу задачу более комплексно.
Для подсчета количества импульсов можно использовать функцию модуля "Расчет" - AbsArchDiscreteCounter( ). Описание функции есть в справке. Переменная, количество импульсов которой нужно подсчитать, должна архивироваться.

CamAvt
06.02.2013, 20:24
Опишите вашу задачу более комплексно.
Для подсчета количества импульсов можно использовать функцию модуля "Расчет" - AbsArchDiscreteCounter( ). Описание функции есть в справке. Переменная, количество импульсов которой нужно подсчитать, должна архивироваться.


Импульсы считает расходомер а их их значение передаётся в скаду.

SCADAMaster
06.02.2013, 21:35
Обычно расходомер передает в скаду расход, или пропорциональное расходу значение (которое нужно привести к реальному расходу). С этим, действующим расходом уже и оперируют дальше в скаде - вычисляют интеграл, выводят в отчет и т.д.
Какие данные передает в скаду ваш расходомер?

CamAvt
07.02.2013, 18:21
Частотные модули ввода/вывода умеют вычислять как частоту на входе, так и работать в режиме счёта импульсов. Для данной задачи мне нужны оба варианта. С первым (частота) проблем нет. Со второго (счётного) за определённый промежуток времени необходимо получать импульсы и по истечении заданного интервала времени дождаться 1ого импульса и сохранить текущее значение.

SCADAMaster
07.02.2013, 18:46
Ну тогда да, производите подсчет времени при помощи ФБ "Счетчик дискретных импульсов".


Значения необходимо считать за определённое время (30 секунд к примеру), затем подставлять в формулу и сбрасывать по команде. Использовал счётчик времени, выход "пробег времени" сравнивал с уставкой (30 сек), после чего с блока сравнения должна была подаваться команда на сброс. Но её нету.. Что подскажите для решения задачи?
Чего именно нет?
Задача решается тремя ФБ - "Счетчик", "Счетчик пробега", "A > B". При помощи ФБ "A > B" сравниваете величину пробега с установкой, а результат направляете на сброс счетчика пробега и импульсов.
Если также перетащить выход ФБ "A > B" в событие, то будет генерироваться импульс, которым можно вызывать действие. Которым можно например сохранить накопленное за 30 секунд счетчиком значение.

CamAvt
07.02.2013, 19:01
Спасибо за помощь.
Использовал "А = Б" для сравнения - не работало. Из-за большого тика?

SCADAMaster
07.02.2013, 19:10
Скорее всего из-за того, что на выходе ФБ "Счетчик пробега" выдается не целое число секунд, а небольшими дробями. Из-за этих дробей сравнение и не происходило.

rumiantsev_nv
08.02.2013, 11:14
Добрый день! Подскажите как решить вопрос с фоном. Почему-то одинаковый фон разных объектов отображается по-разному. То есть у меня есть документ с фоном RGB (208,200,212). Поверх него постоянно открываются окна с таким же фоном. Так как у этих окон отключена рамка, то всё это должно видеться как одна рабочая область, но на деле фон окон немного отличается. Соответственно, если я на окно добавлю какое-нибудь изображение объекта, то фон изображения так же будет отличаться от фона окна.

SCADAMaster
08.02.2013, 16:09
Пришлите скриншот и пример такого проекта.

Ильнур
11.02.2013, 14:02
Подкажите как добавить НDA сервер? В проекте вставил Компьютер.Жму пр.кнопки мыши на Компьютер и всплывает подменю, в котором отсутствует пункт меню Поиск ОРС HDA серверов...

SCADAMaster
11.02.2013, 15:00
А у вас ключевая версия или Demo?
Если ключевая - то скорее всего у вас отсутствует данная опция.

Ильнур
11.02.2013, 16:34
Да ключевая, т.е. с USB ключом. В какой версии эта опция есть?

SCADAMaster
11.02.2013, 17:45
Вы хотите просто попробовать работу HDA? Тогда скачайте Demo версию.
Опция HDA также входит в бесплатную версию MSRT-32

Ильнур
11.02.2013, 19:41
Я хотел бы спросить, почему она отсутствует в ключевой версии?

SCADAMaster
11.02.2013, 20:13
Потому что это опция:
http://www.insat.ru/prices/info.php?pid=2972

S.A.D.
12.02.2013, 18:11
как в masteropc запретить многократные попытки дозвона? Ситуация: OPC пытается дозвониться до объекта на котором нет денег, в этот момент надо записать переменную на другой объект. И вместо того чтобы прекратить звонить на недоступный объект и начать звонить на объект куда надо записать переменную он продолжает долбить недоступный объект пока не подойдет очередь по периоду опроса до нужного объекта. Как запретить постоянно звонить на недоступный объект? двух-трех попыток вполне достаточно.

SCADAMaster
13.02.2013, 18:35
Эту ситуацию отследить затруднительно.
Можем только предложить чтобы оператор сам отключал ненужные узлы. Для этого нужно использовать функцию скрипта server.SetNodeToOnOff( );

Sohatyi
14.02.2013, 10:47
Добрый день.
Можно как-нибудь выгрузить из проекта список связей между деревом системы и деревом объектов?

SCADAMaster
14.02.2013, 11:05
На данный момент нельзя, но в версии 3.5 SP1 будет доступен функционал "Внешние связи", используя который можно экспортировать связи в csv.

Ильнур
25.02.2013, 10:39
Сделал закрытие окна через событие,т.е. команда вызывает событие на закрытие текущего окна, а есть ли другие способы?

SCADAMaster
25.02.2013, 10:58
Можно через саму команду - у дискретной команды также есть закладка "Действия".
Можно через ФБ "Управление документом", но через команду и событие - проще всего.

Ильнур
25.02.2013, 11:07
Все спасибо

Ильнур
25.02.2013, 14:10
Как в скрипте можно получить количество строк в списке?

SCADAMaster
25.02.2013, 14:25
А для чего вам это нужно? В примере "Сохранение и загрузка набора команд", окончание файла проверяется операцией
line!=null

Ильнур
25.02.2013, 14:37
Мне нужно получать кол-во записей в списке для автоматической нумерации.Т.е. если в списке 3 записи и если мы добавляем еще, то параметр № увеличился бы на 1, а не начинался заново.

SCADAMaster
25.02.2013, 14:54
Код будет примерно такой:
using System;
using MasterSCADA.Script.FB;
using MasterSCADA.Hlp;
using FB;
using System.Linq;
using System.Windows.Forms;
using MasterSCADALib;
using System.IO;
using MasterSCADA.Documents;
using System.Collections.Generic;
using System.Text;
using InSAT.Library;


public partial class ФБ : ScriptBase
{
public override void Execute()
{
var FilePathName = HostFB.TreeItemHlp.Parent.FolderPath+"Список строк\\file.txt"; //путь к файлу
if (!File.Exists(FilePathName)) //проверка существования файла
{
Количество=0; //файла нет - количество строк=0
return;
}
Количество = File.ReadAllLines(FilePathName).Length; //получаем количество строк

}
}


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

Ильнур
25.02.2013, 15:32
А как можно вытащить событие при открытии окна или закрытии.Т.е. количество подсчитывалось только при открытии окна?

SCADAMaster
25.02.2013, 15:46
В смысле выполнять подсчет когда будет открываться окно?
Можно отслеживать состояние окна при помощи ФБ "Управление документом". Можно также открывать окно при помощи действий команды или события, и одновременно с этим выполнять чтение файла.

Ильнур
25.02.2013, 16:16
Хотел бы поинтересоваться, есть ли какие нибудь учебные пособия для изучения C# в MasterScada.Я как понимаю в мастерскаде свои классы и методы, свойства объектов. Где можно почитать про классы, которые создавались для мастерскады. Я как понимаю эта строка
var file = new StreamWriter(FilePathName, true,Encoding.GetEncoding("windows-1251")) создает объект класса. Тогда какие классы отвечают за другие компоненты, созданные в мастерскаде?

SCADAMaster
25.02.2013, 16:36
Специальной документации нет. Есть справка "Объектная модель MasterSCADA".
В остальном - используйте обычные учебники по C#.



var file = new StreamWriter(FilePathName, true,Encoding.GetEncoding("windows-1251")) создает объект класса. Тогда какие классы отвечают за другие компоненты, созданные в мастерскаде?
Это стандартный класс для работы с файлом
http://msdn.microsoft.com/ru-ru/library/system.io.streamwriter.aspx

Ильнур
26.02.2013, 11:21
А как тогда добавить строку в Список из Палитры?

qawaq
26.02.2013, 11:25
Я только начинаю во всем этом разбираться, и есть несколько вопросов:
1) Есть контролер, к нему подключается opc сервер, я так понимаю в программе контролера нужно указать какие переменные он может передавать через опц сервер?
2) Опц сервер устанавливается на ПК?
3) Где должна быть установлена скада система для работы с этим опц сервером?
4) Вот я разработал, программу для управления контролером через скада, как будет выглядеть эта программа? скада система скомпилирует программу( обычный ехе файл?) или запуск из среды разработки будет?

SCADAMaster
26.02.2013, 13:17
1) Есть контролер, к нему подключается opc сервер, я так понимаю в программе контролера нужно указать какие переменные он может передавать через опц сервер?

Смотря какой контроллер.
Если работать с ОВЕН ПЛК через ОРС codesys, то в настройках проекта указывается какие переменные доступны.
В контроллерах сегнетикс, например, каким то переменным проекта присваиваются Modbus регистры.



2) Опц сервер устанавливается на ПК?

Да, ОРС сервер - это программа которая устанавливается на компьютер.
http://www.insat.ru/products/?category=14


3) Где должна быть установлена скада система для работы с этим опц сервером?

Обычно SCADA и ОРС устанавливают на одном компьютере. Но можно установить ОРС на другом компьютере и работать с ним в удаленном режиме (потребуется настроить DCOM на компьютерах).



4) Вот я разработал, программу для управления контролером через скада, как будет выглядеть эта программа? скада система скомпилирует программу( обычный ехе файл?) или запуск из среды разработки будет?
Это будет проект MasterSCADA. Вы запускаете этот проект и он запускается в режим исполнения, т.е. режим разработки можно пропустить и перейти сразу в режим исполнения.

Ильнур
26.02.2013, 14:26
А как тогда добавить строку в Список из Палитры?

SCADAMaster
26.02.2013, 14:35
Не совсем понятно что вы имеете ввиду.
Вы имеете ввиду "Список строк"? А причем здесь тогда палитра?

Ильнур
26.02.2013, 14:43
В палитре мнемосхемы есть элемент Список(Не выпадающий список). как сюда добавить программно строку?

SCADAMaster
26.02.2013, 15:11
В него программно строку добавить нельзя. В данный контрол строки добавляются только в режиме разработки

Ильнур
26.02.2013, 15:20
Значит строку можно добавить только в Список строк(Выпадающий списко)?

SCADAMaster
26.02.2013, 15:49
Да, в ВФБ "Список строк"

qawaq
26.02.2013, 15:59
5) С помощью скада системы возможно изменять параметры контроллера? например при определенной температуре контролер должен что то открыть, вот эту температуру можно задавать с помощью системы?

6) Если контроллер настроен для работы со скадой, то в случае отключения пк с системой и опц сервером, контроллер продолжит работать в заданном режиме?

7) Возможно-ли настроить контролер, что бы он работал в автоматическом режиме, если пк отключен, а если включен, то в ручном ?

SCADAMaster
26.02.2013, 16:05
5) С помощью скада системы возможно изменять параметры контроллера? например при определенной температуре контролер должен что то открыть, вот эту температуру можно задавать с помощью системы?

Да, можно. При помощи команды посылаете на ОРС переменную поддерживающую запись значение, и контролер его принимает.



6) Если контроллер настроен для работы со скадой, то в случае отключения пк с системой и опц сервером, контроллер продолжит работать в заданном режиме?

Да.



7) Возможно-ли настроить контролер, что бы он работал в автоматическом режиме, если пк отключен, а если включен, то в ручном ?
В принципе можно. Посылаете от скады сигнал, что она работает. Контроллер его анализирует - и в зависимости от этого использует ручной или автоматический режим.
Но обычно скаду все таки не выключают, а в каком режиме контроллеру работать - в ручном или автоматическом, задает операторов со скады

qawaq
26.02.2013, 16:11
В принципе можно. Посылаете от скады сигнал, что она работает. Контроллер его анализирует - и в зависимости от этого использует ручной или автоматический режим.
Но обычно скаду все таки не выключают, а в каком режиме контроллеру работать - в ручном или автоматическом, задает операторов со скады

В принципе скада нужна только для того, что бы пользователь смог изменить пару настроек контролера с пк, или для этого есть способ проще, чем скада?