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

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

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - Botsmall

Страницы: [1] 2 3
1
Добрый день.
Появился вопрос.
Имеются переменные, которые при нулевом своем значении должны инициализировать сообщение об аварии.
Соответственно, для того чтобы журнал аварий не забивался сообщениями при потери связи с устройствами, в настройках проекта стоит галка "игнорировать переменные с плохим качеством...".
Одновременно с этим существуют переменные (Bacnet переменные), которые наоборот инициализируют сообщения при значении отличном от нуля. Но, эти переменные при возникновении аварии
меняют свое качество на "sensor_failure". Появляется дилемма:
при выключенной опции: "игнорировать переменные с плохим качеством..." журнал будет забиваться сообщениями от первого списка аварий при потере связи.
при включенной опции: "игнорировать переменные с плохим качеством..." журнал не будет забиваться сообщениями, но от второго списка не будет вообще никаких сообщений.

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

2
Добрый день.
Вопрос.
По ряду обстоятельств в OPC сервере переменная int, хранится в формате string [0.######]. Изменить этот формат нельзя.
В SS есть поле, которая взаимодействует с этой переменной (чтение/запись).
Проблема в том, что как я бы не объявлял эту переменную в SS (string, int, single и т.д; менял формат в свойствах переменной) на входе я имел [0.######].
Все бы ничего, но пользователь в итоге, в редактируемом поле SS видит число, допустим, 35.00000, а должен просто 35.
Помогите разобраться.

3
В очередной раз большое спасибо. Вы меня поняли :-[
Не особо дружелюбно это выглядит, оставлю я эту затею ((=

4
Цитировать
Визуализация трендов возможна только через меню Тренды, компонент "Временные тренды" и через систему отчетов. Каждый тренд записывается по какой-то переменной, на графике откладывается точка соответствующая значению переменной и моменту времени (когда переменная приняла это значение). Как-то дополнительно отредактировать линию тренда, или динамически изменять её - нельзя.
Вы меня неправильно поняли. Тренды мне не нужны.
Есть некая линейная функция, которая описана двумя (или более) координатами. Координаты точек хранятся в plc.
"Визуализация" этого графика упростило бы задачу восприятия и более "вдумчивого" редактирования этой самой функции (графика).

5
Добрый день.
Имеется ли какой-нибудь инструмент визуализации и редактирования графиков, предположим, отопления?
К примеру, как это реализовано в одноименном продукте:


Если нет, то каким наилучшим образом решить задачу. Заранее спасибо.

6
Добрый вечер.
Волей случая назвал один из скриптов именем "Delete".
Компилятор настойчиво ругался на другой скрипт, который до этого исправно работал, но в котором есть строковая функция "Delete".
Довольно долго пытался понять откуда растут ноги ((=

7
Большое спасибо за развернутый ответ.

8
Спасибо за советы, буду экспериментировать.

Цитировать
Для решения данной задачи нужно, чтобы все ПЛК и скада работали в одном потоке (синхронно)
Могли бы вы пояснить, на каком-нибудь примере, необязательно касающегося моего вопроса. Просто чтобы привести мысли в порядок.

9
Цитировать
Это условие противоречит первому. Если на ПЛК уставка может измениться вручную, то это уже не общая уставка.
Имеется ввиду, что при изменении "общей" уставки на одном из PLC, уставки на других PLC так же приняли это значение и отобразились на SS.
А при отсутствии связи PLC c SS, уставка на PLC будет иметь локальный характер.

Цитировать
Для такой задачи проще будет вывести в скаду все уставки с 10 ПЛК
Как раз хотел избавиться от 10 значений ввода, чтобы пользователю не вводить в 10 полей одно и тоже значение. (в действительности их больше).

Как я вижу решение этого вопроса:
1. каждые, предположим 10 сек, сервер SS будет записывать постоянно всем 10 plc значение "общей" уставки.
2. при изменении на каком либо PLC "общей" уставки, SS по скрипту "изменились переменные" отправляет в следующей итерации (10 сек.) обновленное значение "общей" уставки всем 10 plc.
3. при восстановлении связи одного из PLC, SS игнорирует, предположим в течение 30 сек, измененное от этого PLC значение "общей" уставки, тем самым позволяя записать эту уставку  по пункту 2.

Если я где-то ошибся, поправьте пожалуйста.

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

Имеются, допустим 10 plc. На каждом крутится своя программа, в которой есть некая уставка (2 переменные на запись/чтение). Эти уставки (10 шт.) отвечают за один алгоритм однотипных устройств (10 шт. - 1 на каждый PLC).
Задача вывести на Scade одно "общую" уставку на все 10 plc. Так же эту уставку "общую" можно поменять и вручную на каждом PLC.
При потере связи PLC со Scadой, уставка в PLC должна работать в "ручном" режиме и меняться, получается, только для соответствующего PLC.
При восстановлении связи PLC со Scadoй уставка должна принимать "общее" значение.
Если принять во внимание, что значение общей уставки будет крутиться на сервере Scadы, как быть?

11
Большое спасибо за ответы, будем разбираться.

12
Большое спасибо за ответ.
Именно к тому выводу я пришел. Решение рабочее.
Есть еще момент.
Если я использую свойство "максимальное число открытых окон" на странице в которой есть возможность открыть окно в окне
(к примеру в моем случае двойная вложенность, - окно в окне), возникает ситуация: если я использую значение "1" этого свойства, я не могу открыть вложенное окно в окне. Если же я использую значение "2" у меня появляется возможность открыть 2 "корневых" окна, но тогда теряется смысл происходящего. Проконтролировать это дело у меня не получилось, так как не нашел возможности с помощью скрипта закрыть шаблонное окно:
Цитировать
Функция GetWindowByName предназначена для поиска и работы с обычными окнами

13
1. В приведенном примере https://simple-scada.com/help/manual/templandtemplwnd.html, из шаблона вызывается одно конкретное шаблонное окно с разными вводными.
Моя же задача, заключается в том, чтобы по нажатию на насос разных экземпляров одного шаблона, в зависимости от подставновки %название окна% (обычный текст внутри шаблона), открывалось то или иное шаблонное окно (не экземпляр конкретного шаблонного окна, а именно совершенно разные шаблонные окна).
Не смог найти решения.
2. Разобрался, моя ошибка.

14
Жаль, была бы очень полезная функция.

Еще вопросики.
1. Имеется шаблон, в нем есть кнопка, которая в зависимости от подстановки в шаблон %название окна%, открывает шаблонное окно с именем %название окна%.
Проблема в том, что в скрипте по нажатию той самой кнопки мне не найти шаблонное окно. Функции GetTemplateObj, GetWindowByName = nil.

2. Есть шаблонное окно в шаблонном окне. Во втором шаблоне есть скрипт по событию OnInit.  Его задача скрыть элементы, если привязанные к ним переменные отсутствуют в таблице переменных. Изначально все переменные были объявлены, все элементы видны. По мере удаления переменных реакция не изменяется:
GetVariableByName(Str) <> nil (для проверки в скрипте изменил GetVariableByName(Str + 'такой переменной нет') => элементы из второго шаблонного окна исчезли.)

Прошу помощи.

15
Снова добрый день. И снова прошу помощи.
Появились вопросы по импорту тегов.
1. Имеется ли функция "обновить теги" в редакторе переменных?(если тег существует в SS, ничего не делать, если его нет, добавить).
Т.е. допустим в проекте уже существует набор импортированных тегов. Программа PLC меняется=> набор тегов меняется (что-то добавляется, что-то удаляется, - непрерывный процесс ((: ). С набором импортированных тегов уже произведены манипуляции (изменения свойств архивирования, период опроса и т.д.).
Наталкиваюсь на проблему: либо мне все удалять, добавлять теги заново, и опять изменять вручную их свойства, либо вручную выискивать какие-же теги добавились в PLC и добавлять их стандартным способом...с большими объемами очень тяжело, либо вручную смотреть две эксельки: до изм., после изм., тоже тяжко...

2. Есть ли функция "purge" для тегов: те теги которые никак не участвуют в проекте, удаляются. Я конечно понимаю, что это проблематично реализовать, но на всякий случай спрошу ((;

Страницы: [1] 2 3