FAQ

Конкретные решения, лайфхаки, подказки и объяснение неочевидных вещей, "маленькие хитрости"

Обсуждение SCADA-систем: Citect SCADA, Vijeo Citect, CitectSCADA, CitectFacilities, PowerLogic SCADA, PowerSCADA, MX4SCADA, Desigo Insight.
Аватара пользователя
alex
Администратор
Сообщений в теме: 40
Сообщения: 1745
Зарегистрирован: 05 апр 2010, 21:58
Откуда: Москва
Благодарил (а): 47 раз
Поблагодарили: 102 раза
Контактная информация:

FAQ: Vijeo Citect Runtime. Решение проблемы с некорректным отображением текстов на кириллице

#31

Сообщение alex » 16 сен 2014, 14:36

Если вы сталкиваетесь с такой проблемой как некорректное отображение текстов набраных на кириллице на графических страницах, для примера приведена картинка ниже

badfonts.png

то знайте, существует штатное решение в Vijeo Citect, какое, смотрим под спойлером...

FAQ: Vijeo Citect Runtime. Решение проблемы с некорректным отображением текстов на кириллице
Для этого необходимо в файле Citect.ini вписать следующее:

Код: Выделить всё

[Language]
LocalLanguage = Russian(Russia)

и получаем в результате:

goodfonts.png

p.s. В случае с текстами на других языках, можно обратиться к описанию данной секции и данного параметра во встроенной помощи Computer Setup Editor или
онлайн-помощи
Чтобы увидеть ссылку зарегистрируйтесь или войдите под своим логином.
.
У вас нет необходимых прав для просмотра вложений в этом сообщении.



Аватара пользователя
alex
Администратор
Сообщений в теме: 40
Сообщения: 1745
Зарегистрирован: 05 апр 2010, 21:58
Откуда: Москва
Благодарил (а): 47 раз
Поблагодарили: 102 раза
Контактная информация:

FAQ. Vijeo Citect v7.40. Citect Graphics Builder. Не отображается список переменных тегов

#32

Сообщение alex » 10 ноя 2014, 10:46

Если вы начали использовать Vijeo Citect или CitectSCADA версии 7.40 и выше, то столкнетесь с такой ситуацией, при привязке свойств графических объектов к тегам, как... отсутствие тегов в соответствующем списке, при этом если вы вводите имена известных вам тегов вручную, то проект компилируется и все работает как и ожидается... Почему так происходит?

FAQ. Vijeo Citect v7.40. Citect Graphics Builder. Не отображается список переменных тегов
Оказывается все достаточно просто и логично. Как известно, начиная с версии Vijeo Citect/CitectSCADA 7.20 SP3, в SCADA системах начала развиваться новая парадигма создания систем диспетчеризации, которая основывается в объектно-ориентированном подходе (ООП). Эта парадигма развивалась через ряд версий и в версии 7.40 она стала основной и рекомендуемой к использованию, поэтому, по умолчанию, приоритет отдан отображению свойств сконфигурированных экземпляров объектов, хотя если вы создали обычные переменные теги вы можете вводить их в поля свойств графических объектов "вручную" все будет работать как и прежде.
Но что если вы решили в силу ряда причин не использовать парадигму ООП, в этом случае вы можете включить отображение "обычных" переменных тегов. Это можно сделать через Citect Project Editor, меню Tools->Options... очистив опцию Display equipment items when populating tag list (см. рис. ниже, опция выделена красным прямоугольником).

Vijeo Citect v7.40. Citect Project Editor. Включение отображения переменных тегов.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.



Аватара пользователя
alex
Администратор
Сообщений в теме: 40
Сообщения: 1745
Зарегистрирован: 05 апр 2010, 21:58
Откуда: Москва
Благодарил (а): 47 раз
Поблагодарили: 102 раза
Контактная информация:

FAQ: Cicode Editor. Как использовать двойные кавычки в строке в скриптах на Cicode

#33

Сообщение alex » 17 сен 2015, 14:32

Так или иначе, при работе со строками на Cicode, встречаются ситуации, когда необходимо сформировать строку подобно этой:

Код: Выделить всё

STRING sMyFirstString = "Привет, это моя "первая" строка на Cicode!";

Конечно такой вариант при компиляции не пройдет и выдаст ошибку компиляции, да и такой вариант (как например на С/С++) тоже не пройдет:

Код: Выделить всё

STRING sMyFirstString = "Привет, это моя ""первая"" строка на Cicode!";

А как же сформировать такую строку правильно на Cicode? Ответ ниже под спойлером...

FAQ: Cicode Editor. Как использовать двойные кавычки в строке в скриптах на Cicode

Код: Выделить всё

STRING sMyFirstString = "Привет, это моя ^"первая^" строка на Cicode!";
p.s. Более подробно об этом написано во встроенной помощи Vijeo по следующему пути: Citect Cicode Programming Reference > Using Cicode Functions > Using the Caret Escape Sequence Character.



Аватара пользователя
alex
Администратор
Сообщений в теме: 40
Сообщения: 1745
Зарегистрирован: 05 апр 2010, 21:58
Откуда: Москва
Благодарил (а): 47 раз
Поблагодарили: 102 раза
Контактная информация:

FAQ: Citect Graphics Builder. Точное позиционирование графических объектов

#34

Сообщение alex » 26 апр 2016, 23:31

Обычное дело, что когда компоновка графической страницы уже соответствует тому что было задумано, надо сделать последний штрих... "навести красоту", отчасти часть этой работы связанно с точным позиционированием графических объектов друг относительно друга. Набор инструментов для этого как и в большинстве SCADA-систем, но есть нюансы и поэтому требует пояснения...

Citect Graphics Builder. Точное позиционирование графических объектов
  • Режим попиксельного позиционирования. Чтобы войти в режим попиксельного позиционирования, помимо выделения графического объекта, необходимо еще на клавиатуре нажать клавишу Enter. Теперь вы можете пользоваться курсорными клавишами, чтобы попиксельно перемещать графический объект. Как только позиционирование завершено, необходимо опять нажать на клавиатуре клавишу Enter, чтобы выйти из режима попиксельного позиционирования графического объекта (Примечание №1: Как видно, при перемещении графического объекта, перемещается, если так можно назвать, его "образ", реальной же объект остается на месте. Так вот, если в процессе перемещения объекта нажимается клавиша Esc, образ исчезает, а реальный объект остается на своем месте. Если нажимается клавиша Enter, то реальный объект перемещается на место образа. Если нажимается клавиша Enter, при удерживаемой клавише Ctrl, то на месте образа создается копию объекта; Примечание №2: В режиме попиксильного позиционирования, перемещаемый графический объект "прилипает" к курсору мышки, поэтому для быстрого изменения позиции объекта можно переместить курсор мышки вместе с объектом, а затем добиться точной позиции курсорными клавишами);
  • Режим увеличения участка графической страницы. Когда изображение достаточно плотное и используется экран с высоким разрешением, но небольшой диагональю, достаточно сложно позиционировать элементы друг относительно друга. В данной ситуации может помочь окно масштабирования/зуммирования, которая вызывается через меню Citect Graphics Builder -> View -> Show Zoom, или по горячей клавише F10. Участок графической страницы в области курсора мышки увеличивается в n-ое количество раз (можно регулировать масштаб увеличения клавишами "+"/"-" на цифровой клавиатуре);
  • Выравнивание графических объектов друг относительно друга. Дополнительными инструментами точного позиционирования графических объектов является инструменты выравнивания, которые находится в меню Citect Graphics Builder -> Arrange -> Align, данные инструменты помогут выровнять и отцентрировать графические объекты друг относительно друга с минимальными усилиями.



Аватара пользователя
alex
Администратор
Сообщений в теме: 40
Сообщения: 1745
Зарегистрирован: 05 апр 2010, 21:58
Откуда: Москва
Благодарил (а): 47 раз
Поблагодарили: 102 раза
Контактная информация:

FAQ: Vijeo Citect 2015. Запуск серверов в отсутствии сетевого линка

#35

Сообщение alex » 07 ноя 2016, 12:57

Ни для кого не секрет, что при проектировании клиент-серверных или распределенных архитектур для систем диспетчеризации на Vijeo Citect/CitectSCADA каждый сервер системы диспетчеризации идентифицирует свою роль на основании IP-адресе компьютера, на котором он запускается, а связывание IP-адреса компьютера с ролью задается во время конфигурирования системы диспетчеризации. Это просто, понятно и логично. Но... здесь может возникнуть нюанс, если при запуске сервер системы диспетчеризации не смог получить IP-адрес компьютера, то сервер превращается... в клиента :) Как не дать серверу превратиться в клиента показано в серии видео под спойлером.

Vijeo Citect 2015. Запуск серверов в отсутствии сетевого линка
Vijeo Citect 2015. Запуск серверов в отсутствии сетевого линка. Часть 1. Подготовка сетевого окружения:

Vijeo Citect 2015. Запуск серверов в отсутствии сетевого линка. Часть 2. Подготовка симулятора modbus-устройства:

Vijeo Citect 2015. Запуск серверов в отсутствии сетевого линка. Часть 3. Подготовка резервированной архитектуры c одним клиентом:

Vijeo Citect 2015. Запуск серверов в отсутствии сетевого линка. Часть 4. Введение в проблематику:

Vijeo Citect 2015. Запуск серверов в отсутствии сетевого линка. Часть 5. Решение задачи:



Аватара пользователя
alex
Администратор
Сообщений в теме: 40
Сообщения: 1745
Зарегистрирован: 05 апр 2010, 21:58
Откуда: Москва
Благодарил (а): 47 раз
Поблагодарили: 102 раза
Контактная информация:

FAQ: Citect Studio. Связь с ПЛК SIEMENS SIMATIC S7-300, S7-400, S7-1200 и S7-1500 по протоколу PROFINET

#36

Сообщение alex » 16 мар 2017, 06:22

Вопрос связи Vijeo Citect и Citect SCADA с контроллерами SIEMENS SIMATIC S7-300, S7-400, S7-1200 и S7-1500 по протоколу PROFINET достаточно частый и однозначный ответ в сети Интернет достаточно сложно найти даже на официальных ресурсах по SCADA. И так, можно ли связаться с SIEMENS SIMATIC S7 по протоколу PROFINET или нет? Ответ и да и нет, подробности под спойлером...

Связь с ПЛК SIEMENS S7-300, S7-400, S7-1200 и S7-1500 по PROFINET
Да, действительно, в Vijeo Citect и Citect SCADA нет драйвера для обеспечения связи с ПЛК SIEMENS SIMATIC S7 по протоколу PROFINET. Но... есть следующие подходы к решению данного вопроса:
  1. Использовать стандартный драйвер OPC Client, но в этом случает необходимо иметь установленным на каждой машине, где работает серверы ввода-вывода Vijeo Citect/Citect SCADA, коммуникационный пакет SIEMENS SIMATIC NET, коммуникация SCADA с SIEMENS SIMATIC S7 осуществляется через SIMATIC NET OPC SERVER, который в свою очередь использует стандартный программный промышленный интерфейс OPC;
  2. Использовать стандартный драйвер S7NT, в этом случае также должен быть установлен коммуникационный пакет SIEMENS SIMATIC NET на каждой машине, где работает сервер ввода-вывода Vijeo Citect/Citect SCADA, коммуникация SCADA с SIEMENS SIMATIC S7 осуществляется через SIMATIC NET, используя программный интерфейс SIEMENS SOFTNET S7 API;
  3. Использовать драйвер PSDIRECT ETH, в этом случае устанавливать SIEMENS SIMATIC NET на каждой машине, где работает сервер ввода-вывода Vijeo Citect/Citect SCADA, нет необходимости, т.к. коммуникация между SCADA и SIEMENS SIMATIC S7 происходит через программный протокол S7 Function. Причем важно отметить, что все процессорные модули SIEMENS SIMATIC S7, которые поддерживают работу по протоколу PROFINET, также поддерживают работу по программному протоколу S7 Function, причем через один и тот же порт.
Т.е., подводя итог выше сказанному, технически, драйвера протокола PROFINET в Vijeo Citect/Citect SCADA нет, но от и не нужен, т.к. выше названные 3 подхода полностью решают вопрос связи с контроллерами SIEMENS SIMATIC S7 по протоколу PROFINET.



Аватара пользователя
alex
Администратор
Сообщений в теме: 40
Сообщения: 1745
Зарегистрирован: 05 апр 2010, 21:58
Откуда: Москва
Благодарил (а): 47 раз
Поблагодарили: 102 раза
Контактная информация:

FAQ: Citect Studio. Связь Citect SCADA с ОВЕН ПЛК100 по протоколу MODBUS TCP

#37

Сообщение alex » 19 дек 2017, 09:13

Связь Citect SCADA с отечественными ПЛК, например, ОВЕН ПЛК100, возникает часто, примеры конфигурирования связи с ПЛК тоже имеются, но в применении к Citect SCADA/Vijeo Citect/CitectSCADA не встречал. Восполняем пробел...

Citect Studio. Связь Citect SCADA 2016 с ОВЕН ПЛК100 по протоколу MODBUS TCP
Собственно ниже два проекта. Один проект Owen PLC100 - Citect SCADA 2016 Example Modbus TCP Connection (CodeSys) - это простой проект в CodeSys v2.3 для ОВЕН ПЛК100 с простейшей программой на ST и настроенным протоколом обмена данными через MODBUS TCP. Другой простой проект Owen PLC100 - Cltect SCADA 2016 Example Modbus TCP Connection (Citect SCADA 2016) - это простой проект в Citect SCADA 2016 , также с настроенным протоколом MODBUS TCP для получения данных с ОВЕН ПЛК100.

p.s. Без сомнения все это будет работать и для CitectSCADA и Vijeo Citect, т.к. используется стандартный для всех драйвер MODNET. Что касается ОВЕН ПЛК100, то здесь аналогичная ситуация, настройки связи применимы к широкому набору ПЛК 100 и думаю 110 серии.

Owen PLC100 - Cltect SCADA 2016 Example Modbus TCP Connection (Citect SCADA 2016).rar

Owen PLC100 - Cltect SCADA 2016 Example Modbus TCP Connection (CodeSys).rar
У вас нет необходимых прав для просмотра вложений в этом сообщении.



Аватара пользователя
alex
Администратор
Сообщений в теме: 40
Сообщения: 1745
Зарегистрирован: 05 апр 2010, 21:58
Откуда: Москва
Благодарил (а): 47 раз
Поблагодарили: 102 раза
Контактная информация:

FAQ: Vijeo Citect. Какие TCP/IP порты используются по умолчанию?

#38

Сообщение alex » 23 янв 2018, 10:56

Для достаточно многих задач требуется знать TCP/IP порты, которые использует приложение, это и для правильная настройка правил для брандмауэра, это и диагностика конфликта между разными сетевыми приложениями, работающими на одном компьютере и для ряда других задача. Ниже под спойлером список TCP/IP портов используемых Vijeo Citect...

Vijeo Citect. Какие TCP/IP порты используются по умолчанию?
  • Файловый сервер - 20/21;
  • Сервер отчетов - 2075;
  • Сервер алармов - 2076;
  • Сервер трендов - 2077;
  • Сервер времени - 2081;
  • Веб-сервере - 2079;
  • Веб-клиент - 20/21/2079;
  • Внутренние коммуникации с сервером ввода/вывода - 2078;
  • Коммункации стандартного клиента с сервером ввода/вывода - 2082;
  • Опубликованные теги алармов - 2080;
  • Обмен данными через CtAPI по сети - 2027;
  • Удаленный отладчик Cicode - 2074;
  • Доступ к данным через ODBC - 20222.
Последний раз редактировалось alex 23 янв 2018, 11:16, всего редактировалось 1 раз.



Аватара пользователя
alex
Администратор
Сообщений в теме: 40
Сообщения: 1745
Зарегистрирован: 05 апр 2010, 21:58
Откуда: Москва
Благодарил (а): 47 раз
Поблагодарили: 102 раза
Контактная информация:

FAQ: Cicode. Как исключить зависимость качества результата функции от качества ее аргументов?

#39

Сообщение alex » 09 июл 2018, 20:36

Прецедент может возникнуть самым неожиданным образом... У вас есть функция, которая принимаете в качестве аргументов несколько тегов, делает вычисления и возвращаете результат на графической странице, например, в текстовом поле... Но вот ситуация, качество значений тегов по какой-то причине стало плохим и на графической странице в текстовом поле появилось значение ошибки #COM, например, или #BAD... но вам надо отобразить совсем другие значения, например, просто значение 0 или последнее значение, когда качество значений тегов было хорошее. Ваши попытки сделать рефакторинг кода функции не приводя к успеху, функция всеравно возвращает плохое качество возвращаемого значения. Как с этим справиться?

FAQ: Cicode. Как исключить зависимость качества результата функции от качества ее аргументов?
Удивительная вещь, но даже в такой простой функции как:

INT FUNCTION foo (INT nTag)

    INT i = 0;

    RETURN i;

END
 

в качестве результата вернется значение с плохим качеством, если тег nTag тоже имеет плохое качество несмотря на то, что с nTag никаких вычислений не производилось и это факт! По сути получается достаточно нетривиальная задача, чтобы обойти такую системную вещь. Но решение все же есть, для решения данной задачи необходимо использовать в качестве аргумента не сам тег, а соответствующие элементы расширения тега, т.е. те элементы расширения тега, которые необходимы для вычислительной логики функции, как результат этого мы получим следующую функцию:

INT FUNCTION foo (INT nTag.V, QUALITY nTag.Field.Q)

    INT i = 0;

    RETURN i;

END
 

Собственно это и все, т.е. решение - это
использование расширений тегов
Чтобы увидеть ссылку зарегистрируйтесь или войдите под своим логином.
и дополнительно конечно
инфомрация о качестве тегов
Чтобы увидеть ссылку зарегистрируйтесь или войдите под своим логином.
и
функциях работы с ним
Чтобы увидеть ссылку зарегистрируйтесь или войдите под своим логином.
.



Аватара пользователя
alex
Администратор
Сообщений в теме: 40
Сообщения: 1745
Зарегистрирован: 05 апр 2010, 21:58
Откуда: Москва
Благодарил (а): 47 раз
Поблагодарили: 102 раза
Контактная информация:

FAQ: Cicode. Экспорт исторических данных тегов трендов Citect SCADA в Wonderware Historian

#40

Сообщение alex » 11 июл 2018, 22:56

Обычно это отдельная задача для разработчика, разобраться с форматом хранения исторических данных в Citect SCADA написать ПО для экспорта и импорта данных в Wonderware Historian, разобраться с форматом хранения данных в Wonderware Historian и так далее. Но кое-что сделано, что существенно облегчит задачу, смотрите под спойлером...

FAQ: Cicode. Экспорт исторических данных тегов трендов Citect SCADA в Wonderware Historian
Собственно вот ссылка на скритп Экспорт исторических данных тегов трендов Citect SCADA в Wonderware Historian, который решает эту задачу, это готовое к использованию ПО и можно сказать решение.




Если эта тема может быть полезна другим, поделитесь ссылкой:

Вернуться в «Citect SCADA, Vijeo Citect, CitectSCADA, CitectFacilities, PowerLogic SCADA, PowerSCADA, MX4SCADA, Desigo Insight»