Задержку времени вы так не реализуете - просто повесите скаду.
Вам нужно установить у ФБ периодический опрос и считать такты.
Вид для печати
Задержку времени вы так не реализуете - просто повесите скаду.
Вам нужно установить у ФБ периодический опрос и считать такты.
а что Вы можете посоветовать для реализации последовательности действий?
Заданы настройки (есть подтверждение их)
и при запуске идет процесс, который циклично повторяется (некая последовательность действий, например, открытие первого затвора, включение насоса для откачки жидкости, 2 затвора и.т.д.)
Ставите периодический опрос, заводите переменную вне метода Execute - она будет сохраняться между вызовами. Когда нужно прибавляете к ней 1, когда доходит до нужного вам значения - выполняете нужную операцию.
Добрый вечер. В проекте использую тренд (расширенный). Как при просмотре через Internet-Client (через браузер) выбрать необходимые для отображения перья, и выбрать показ значений. В браузере отображается сразу все перья. Мини-легенда показывается, но там ничего выбрать естно не получается.
Выбрать конкретные перья нельзя - тренд в интернет-клиенте это по сути скриншот.
Можно сделать несколько отдельных трендов с разными перьями.
Спасибо. А можно как то отобразить таблицу значений?
Сделать отдельный тренд, скрыть у него отображение графиков и включить отображение значений.
Почему то не получается. Всеравно отображаются графики.
Вы пробовали у тренда включить режим "только графики"?
Мне необходимо получить в браузере вид в виде таблицы поэтому в режиме разработки выбирал уровень "таблица значений". на компьютере где установлена MSCADA показывает таблицу, а на удаленном всеравно графики. Попробовал режим "только графики", естественно получил только графики :)
SCADAMaster Вы можете подсказать как получить таблицу значений в браузере через интернет-клиент! Или это невозможно.
На данный момент нельзя. Мы посмотрим можно ли исправить код, однако вряд ли это имеет смысл - получится просто скриншот таблицы.
Смысл имеет. А еще больше имеет смысл реализовать полноценную работу с графиками и таблицами в браузере. Как это сделано в вебнавигаторе wincc. Видимо снова мне придется вместо мастерскады поставить клиенту wincc.
Здравствуйте, товарищи.
Подскажите пожалуйста, возникла необходимость подключить к SCADA три климатических камеры. На одной камере установлены ПЛК100 и панель оператора, остальные две камеры работают на ТРМ210 и отправляют информацию по rs485 на ПЛК. В данной сети ПЛК мастер по отношению к ТРМ, но слэйв к панели оператора (по 232 интерфейсу). Хочу сделать следующее: редактировать уставки, времена и т.д. на ПЛК через панель или через SCADA. Предполагаю присоседиться через OPC к сетевой переменной которая записывает данные от панели в ПЛК, как бы запараллелиться. Пока еще не удалось все это протестировать, поэтому хочу заранее узнать ваше мнение, может быть моя идея не верна? То есть по Modbus панель передает информацию на записьв ПЛК и параллельно SCADA туда может писать. Не будет ли путаницы кто мастер кто слейв и чей приоритет выше, или кто последним задал переменную того как говориться и тапки?)
Если запись будет происходить по изменению, то никаких проблем не будет.
Подобные задачи достаточно возникают.
Для связи с ПЛК используйте Ehternet.
Добрый день.Подскажите где ошибка.Пытаюсь написать скрипт.В теге устройства считывается значение.Сравнивается со значением другого тега.Если есть разница, то во второй тег пишется значение первого.
Не компилируется.
-- инициализация
function OnInit()
end
-- деинициализация
function OnClose()
end
-- обработка
function OnRead()
local val,val2;
val=server.ReadCurrentTag();
val2=server.ReadTag("NodeRS.Oven P4V.Уставка");
if val~=val2 then
server.WriteTagToDevice("NodeRS.Oven P4V.Уставка";val);
end
Вы забыли еще один end
Ошибка компилирования на уровне if :(
Иногда компилятор выдает неправильную строку с ошибкой - ошибается на 1.
В вашем случае ошибка в строке ниже, вы вместо запятой поставили "точку с запятой". Посмотрите в справке как разделяются аргументы в функциях.
Спасибо,все заработало. Глаз замылился,сразу не заметил.
Добрый день. Извините за глупый вопрос. Проблема в следующем. Как избавиться от влияния часового пояса. Т.е. в С#-скрипте из ОРС сервера получаю значение и дату (дата идет как uint, так что ее я преобразую в DateTime) и записываю в архив - в результате смещение на 3 часа (можно победить, используя ToUniversalTime() ). Но опять же получая из архива значение LastItemTime опять имеем смещение на 3 часа (побеждается AddHours()). Возможно ли обойти эти моменты?
Вместо AddHours использовать метод ToLocalTime()
https://msdn.microsoft.com/ru-ru/lib...v=vs.110).aspx
Да, вроде нет такого:
http://www.opcsupport.com/link/porta...-Quality-Codes
Добрый день. Для диспетчеризации удаленных объектов (контроллер WAGO 750-852) по GSM\GPRS требуется подобрать модем для приема-передачи. Какой именно модем следует использовать? Нужно ли докупать что-либо к MasterSCADA?
Модем можно любой промышленный. Мы рекомендуем модемы Centrion.
К MasterSCADA ничего преобретать не надо - опрос будет вестись через ОРС сервер, поэтому задача связи возлагается на него. Wago поддерживает Modbus, поэтому можно использовать наш Modbus Universal MasterOPC сервер.
http://insat.ru/products/?category=399
На странице загрузки бесплатной версии есть документация по работе с модемами.
Ну это вам тогда лучше у компании ОВЕН уточнить, что он означает.
Или использовать наш Modbus Universal:
http://insat.ru/products/?category=399
спасибо.
есть еще вопросик. Динамически добавляю входы у ФБ и мне нужен тип, наследуемый от привязанного. Тип object не поддерживается. При использовании его ФБ не добавляется в masterscada.
Какой тип я должен использовать для входа, подскажите, пожалуйста ?
Root.AddPin(100, "Выбранное значение", MasterSCADA.Hlp.PinType.Pin, typeof(object), 0);
Попробуйте вот так:
Root.AddPin(100, "Выбранное значение", MasterSCADA.Hlp.PinType.Pin, null, 0);
Спасибо, получилось.
До этого свойством задавал нужный тип.
Ну и еще один вопрос)
Мне необходимо при соблюдении определенных условий добавлять(и удалять) данные в какую-нибудь таблицу, а потом (опять же при других условиях) выгружать данные таблицы в файл типа *.csv (может даже и *.mdb/*.sql) и в отчет excel.
Каким образом я могу это реализовать? Что посоветуете?
Работа с таблицами
https://msdn.microsoft.com/ru-ru/lib...vs.100%29.aspx
Выгрузка в csv
http://stackoverflow.com/questions/4...tatable-to-csv
Выгрузка в sql
http://www.codeproject.com/Articles/...erver-Database
Выгрузка в excel
http://www.cyberforum.ru/ado-net/thread42275.html
----------------
Если переменные заранее известны, то можно завести их в Тренд и настроить его на отображение только значений. После этого его можно будет выгружать в csv + указанные переменные завести в отчет, то можно будет его экспортировать, в том числе и как excel файл
Вам итогом нужна некая таблица с данными в которой, в зависимости от внешних условий будут показываться различные результаты?
Смотрите, у меня есть группа значений, скажем различные температуры, давления и расчеты - параметров 10.
Мне нужно, чтобы тренд брал из этих переменных значения по условию(скажем событие сработало или команда).
Нужно также, чтобы по команде или событию данные выгружались в .csv и строился отчет в excel
и еще нужно, чтобы по команде или событию удалялась определенная строка значений в тренде по аналогии с datagridview c#
У меня получилось добавлять данные по условию(использовал повторители), но вот метка времени изменения каждого параметра разная.
Как я могу привести к одной метке времени или сделать так, чтобы выводилась одна строка, вместо целой кучи?
http://savepic.net/7062657.htm
http://savepic.net/7062657.png
В общем решил создать свою таблицу значений, чтобы она работала так как мне надо.
Подскажите, пожалуйста, какое событие мне надо использовать в файле контрола, чтобы я мог принять данные, посланные из файла ФБ?
Посылаю команду очистки таблицы командой
VisualPins.SetValue<bool>(VisualPoutClearTable, Clear); (из файла ФБ)
и использую событие OnPinReceive(int pinID, bool valueChanged) (в файле Контрола), но данное событие не срабатывает.
Можно использовать FBConnector.PinByID(int ID)
Событие так же должно отрабатывать, если карта переменных сделана правильно.
VisualPoutClearTable - должна быть определена как
int VisualPoutClearTable =10;
-----
В xml
Код HTML:<VisualMap>
<Items>
<Pout ID="10" Name="В контрол" Type="Нет"/>
</Items>
</VisualMap>