В видеоуроке рассматривается настройка протокола OPC DA для связи контроллера REGUL с верхним уровнем. Показано добавление символьной конфигурации в проекте, выбор переменных для публикации, настройка OPC-сервера REGUL и подключение OPC DA клиента для чтения и записи данных.
- 00:18 Добавление символьной конфигурации в проект
- 01:10 Выбор переменных для публикации по OPC DA
- 02:40 Загрузка проекта на контроллер
- 03:01 Запуск и настройка OPC-сервера REGUL
- 05:54 Период чтения данных и синхронизация с задачами
- 07:13 Группы ПЛК и консистентные данные
- 12:06 Добавление экземпляров OPC-сервера
- 14:11 Подключение OPC DA клиента и чтение тегов
- 16:57 Запись значения переменной на контроллер
- OPC DA
- REGUL
- Astra.IDE
- ПЛК
- SCADA
Кому полезно: Инженерам АСУ ТП, настраивающим связь контроллеров REGUL с верхним уровнем по OPC DA.
Описание составлено автоматически по расшифровке речи в ролике.
Расшифровка видео
0:18 Здравствуйте, в этом видеоуроке мы с вами рассмотрим работу с протоколом аписи. Да, начнем, да давайте рассмотрим работу с протоколом аписи. Да 1 что нам потребуется сделать в нашем проекте, это добавить к аплекейшену. Объект символьная конфигурация. Здесь я сразу могу дополнительно включить галочку. Поддержка функции описи УА, чтобы впоследствии также эту символьную конфигурацию использовать и для описи Уа протокола. После добавления символьной конфигурации необходимо выполнить компиляцию.
1:10 После этого здесь у нас имеется полный перечень всех переменных, которые у нас есть в проекте и далее. Нам необходимо галочками пометить те переменные, которые мы собираемся. Раздавать по протоколу аписида и аписи у А. Выберем из программы МБ. Данный массив, содержащий наше значение, получаемое с модуля, а и также переменную, да и 32 в котором мы учитываем дискретные сигналы. Из программы ПЛЦ ПРГ. Мы можем выбрать переменную синтвар, которая в данный момент никак не используется, и мы сможем как читать ее значение, так и писать мне, но.
2:06 И также. Выберем наш экземпляр функционального блока Синус Икс, а именно из него нас интересует выходное значение в Илью. На данный момент нам достаточно переменных. Необходимо выполнить компиляцию, чтобы изменения вступили в силу. Теперь загрузим проект на контроллер и в общем то на стороне. Контроллера больше нам делать ничего не потребуется. Мы загрузили, теперь запустим программу Регу апельсина сервер. Как я уже рассказывал в предыдущих уроках, эту программу можно бесплатно скачать с нашего официального сайта, это наша собственная разработка.
3:23 Данная писи сервер позволяет подключаться к контроллеру, получать с него все переменные, которые были расшарены в символьной конфигурации и дальше. Уже непосредственно к этой программе может подключаться любой аписида клиент и как со стандартного описи до источника с него получать данные, например, Скада, систему. То есть в любом случае нам потребуется какая то промежуточная машина с установленной операционной системой Виндс, потому что аписи да работает только под Виндс.
4:07 Заййдем в настройки. Здесь мы видим, что у нас уже прописан ай пи адрес нашего контроллера, с которым мы сейчас работаем. Программа позволяет осуществлять взаимосвязь с контроллером сразу по 2. Каналам для надежности, и также программа изначально рассчитана на работу в режиме резервирования. Мы можем прописать по 2 айпи адреса до каждого контроллера до основного и. Резервного и программа будет автоматически между ними переключаться в зависимости от их текущего состояния для того, чтобы отслеживать состояние контроллеров и понимать, кто из. них является активным, необходимо будет на стороне контроллера в пользовательской программе завести специальные переменные. В частности, по умолчанию они называются вот так и.
5:05 В эту переменную мы должны будем помещать единицу на стороне активного полка и, соответственно, 0 на стороне полка, который находится в резерве. В данную переменную единицу будем помещать в. Тот плк, который у нас с ЦПУ, а то есть с айпи адресом резервирования, который заканчивается на единицу. И, соответственно, 0 для того паука, который имеет Ай Пи адрес, заканчивающийся на двойку.
5:34 Также для контроля регулярного исполнения цикла синхронизации мы должны завести живой счетчик, который будет регулярно изменяться и по нему описи. Сервер будет понимать, что действительно задача на контроле реактивна. Очень важным параметром является период чтения данных, дело в том, что. Когда сам описи сервер получает данные с контроллера, он это делает стандартным полингом, то есть все переменные, которые ему необходимо вычитать. Он заданный периодичностью в полном объеме каждый раз вычитывают из контроллера дальше. Анализирует их назначение на предмет того, изменились ли они относительно последнего цикла или нет выявлять те переменные, которые изменились и уже непосредственно по протоколу. Описи всем подписчикам высылает уведомления о конкретных. Изменениях, но тем не менее именно вот взаимосвязь контроллера и самого описи сервера. Она постоянно идет очень интенсивная, потому что регулярно вычитывается полный набор всех переменных, которые расшарены на стороне контроллера. Соответственно, если у нас переменных очень много, то есть они исчисляются десятками или сотнями тысяч, то, конечно же, вот этот период чтения. Нам необходимо будет увеличивать, чтобы контроллер успевал выдавать за цикл полный набор данных.
7:13 Данная галочка синхронизация с ег задачами для всех переменных имеет следующий смысл. Давайте я здесь раскрою дерево, и мы видим, что. Имеется уже фиксированная структура папок для выдачи данных на верхний уровень и смысл следующий. Каждый экземпляр нашего ПСИ сервера работает с 1 резервированной парой контроллеров соответственно ПЛК 1 и ПЛК 2 за счет тестов, про которые. Я говорил ранее, вот из этой группы описи сервер определяет, какой из полка 1 либо 2 является активным на данный момент и и именно его данные. Подставляют в сводную группу ПЛЦ то, то есть со стороны верхнего уровня. Мы можем подписаться сразу уже на итоговую группу ПЛЦ, и в нее будут. Подставляться автоматически данные именно с того контроллера, который активный в данный момент это достаточно удобно и и также мы видим, что для.
8:25 Каждой группы есть еще похожая группа с приставкой консистент. Для чего это необходимо и как это связано с галочкой, на которую я изначально обратил внимание? Если нам необходимо получать данные с контроллера в. Конкретном временном срезе то есть, чтобы не получилось такое, что часть данных изменилась в 1 цикле задачи, а другая часть данных изменилась в другом цикле задачи. То мы можем воспользоваться как раз вот этим режимом.
8:57 Консистентных данных то есть. Сам контроллер будет определять моменты времени, когда он не выполняет никакую задачу, и именно в этот момент брать сразу весь набор необходимых нам переменных и отправлять их описи серверу. Вот, но тут следует учитывать важный момент, что.
9:22 Такие моменты времени они могут быть, а могут и не быть. В зависимости от того, какова сейчас нагрузка на контроллер, то есть, если мы, например, доведем загрузку ядра до 80 она или выше, то. Скорее всего, у контроллера просто не будет таких временных окон, в которые он может поместить весь требуемый объем данных. И тогда передача может вообще не осуществляться, поэтому.
9:52 На практике, особенно при больших объемах данных, не рекомендуется использовать вот эту галочку. Потому что она заставляет контроллер представлять все теги, которые мы. Забираем и символьной конфигурации, как консистентная. Вот а можно поступать иначе, то есть мы со стороны клиента, когда подписываемся на данные и записи сервера мы. Большинство данных получаем через традиционные группы лишь небольшую часть данных, для которых нам действительно важно консистентность. Мы уже будем получать непосредственно. Вот через данные группы и тогда с высокой долей вероятности контроллер будет успевать их отправлять именно вот в эти свободные временные промежутки, то есть.
10:48 Также нужно обязательно включать вот эту галочку и указывать верный логин и пароль для нашего контроллера, чтобы описи сервера мог успешно авторизоваться на контроллере. Также если мы действительно хотим работать с консистентными данными, то нам дополнительно. В проекте давайте туда перейдем, и необходимо будет в настройках символьной конфигурации зайти в установки, настроить синхронизацию. С Мэг задачами и включить вот эту галочку. То есть если мы ее не включим, то данные в консистентном режиме передаваться не смогут.
11:32 В данном примере мы консистентный режим не будем использовать для ускорения процесса подключения описи сервера к контроллеру и вычистки. Из него конфигурации можно включить вот эту галочку. Тем самым сэкономить некоторое время остальные настройки являются не столь принципиальными, и вы можете самостоятельно с ними ознакомиться в нашей документации. Также можно обратить внимание на то, что я. Есть возможность добавлять дополнительные экземпляры нашего пси сервера. Как я уже сказал ранее, 1 Апси сервер предназначен для работы с 1 резервированной парой контроллеров. Если же у вас используется сразу множество контроллеров. С разными проектами то вам потребуется одновременно запустить несколько экземпляров описи сервера. И вот при помощи данного интерфейса вы можете по кнопочке добавить этих столько, сколько вам необходимо, и каждый экземпляр будет. Работать со своей резервированной парой и иметь соответственно свой конфигурационный файл свои журналы. Ну и быть полностью независимым от всех остальных экземпляров. Но здесь следует обратить внимание на то, что для добавления. Новых экземпляров вам необходимо будет запустить ваш описи до сервер именно от имени администратора. Сейчас он у меня запущен именно в режиме обычном, не под администратором и, соответственно, при попытке добавления возникает ошибка.
13:18 Также можно сформировать через данный пункт меню отчет по логам в него попадет также и конфигурационный файл и очень удобно этот. Отчет можно сохранить в виде епархива и сразу же отправить в техподдержку для анализа в случае возникновения тех или иных проблем.
13:42 В целом интерфейс программы достаточно простой. Если вам потребуется дополнительная информация о тех настройках, про которые я в данном видео уроке ничего не сказал. Вы можете посмотреть данную информацию в нашей официальной документации. Итак, настройка описи сервера завершена, и теперь давайте попробуем в каком нибудь клиенте получить непосредственно данные с контроллера. У меня есть вот такой квинт, клиент у вас, скорее всего, будет в качестве клиента выступать. Какая то конкретная сканы система, но сейчас для теста нас данный пример вполне устроит.
14:25 Мы создаем новое подключение. К нашему описи серверу вот у меня. Вот у меня в данном случае на машине имеется всего 1 источник аписи до данных. Кстати, для того чтобы у вас нормально работала подсистема аписи. Да, вам необходимо на компьютере установить аписи кори компонент, это стандартный. Набор библиотек, которые можно скачать из Интернет, и также он дополнительно выложен у нас на официальном сайте в разделе программного обеспечения.
15:03 И так я выбираю свой описи сервер в качестве источника данных. Далее. Создаю новую группу назову ее, например, Мейн. Буду использовать протокол аписи до 2 0. И теперь в эту группу добавлю теги, которые хочу получать с контроллером. Здесь мы уже видим, у нас вычиталась иерархия тестов со стороны нашего контроллера. Мы будем подключаться сразу же к сводной группе ПЛЦ и. В данном случае мы могли бы и к полка 1 подключиться, а в полка 2 на данный момент ничего не заведено. Итак, сводная группа В.
15:59 В программе МБ у нас присутствует 8 переменных, а и и 1 2 собираем. 9 элементов получено. Программа ПЛЦ ПРГ. Синтвар забрали. И из функционального блока забираем его в илью. Суммарно 11 переменных. Нажимаем ОК и видим непосредственно значение. Полученные с нашего контроллера. У них изменяется метка времени 2 раза в секунду, потому что мы задали период вычистки данных 500 миллиардекунд в настройках нашего сервера. И надо отметить, что метка времени присваивается именно на стороне Виндс машин.
16:57 Также у нас имеется переменная синтвар, которая в данный момент неизменно на контроллере, и мы можем попробовать записать в нее какое то значение. Вот сейчас там единица, давайте запишем, например, семерку. И проверим на контроллере.
17:39 Да, мы видим, что действительно переменная синтвар изменила значение. На то, которое мы записали, ну и в заключении, можно также отметить, что по протоколу аписи. Да, мы можем только получать данные с контроллера на скаду. Систему, но не можем использовать данный протокол для межконтроллерного обмена. На сегодня это все спасибо за внимание, увидимся в следующих видео уроках.
Расшифровка сделана автоматически (Yandex SpeechKit) и может содержать ошибки в терминах.
Стандартный проект среды разработки Astra.IDE, который упоминается в видео вы можете скачать по ссылке: https://disk.yandex.ru/d/xkwfDWGyqeePJA
Ещё по Контроллеры REGUL
все материалы
16:26▶ Урок 16. Работа с HART устройствами
Контроллеры REGUL · 16:26Стандартный проект среды разработки Astra.IDE, который упоминается в видео вы можете скачать по ссылке: https://disk.yandex.ru/d/xkwfDWGyqeePJA
26:51▶ Урок 17. Встроенная БД SQL
Контроллеры REGUL · 26:51Стандартный проект среды разработки Astra.IDE, который упоминается в видео вы можете скачать по ссылке: https://disk.yandex.ru/d/xkwfDWGyqeePJA
8:05▶ Урок 11. Работа с файлами
Контроллеры REGUL · 8:05Стандартный проект среды разработки Astra.IDE, который упоминается в видео вы можете скачать по ссылке: https://disk.yandex.ru/d/xkwfDWGyqeePJA
16:55▶ Урок 12. Работа с датой и временем
Контроллеры REGUL · 16:55Стандартный проект среды разработки Astra.IDE, который упоминается в видео вы можете скачать по ссылке: https://disk.yandex.ru/d/xkwfDWGyqeePJA
1:03:59▶ Урок 14. Настройка резервирования
Контроллеры REGUL · 1:03:59Стандартный проект среды разработки Astra.IDE, который упоминается в видео вы можете скачать по ссылке: https://disk.yandex.ru/d/xkwfDWGyqeePJA
40:27▶ Урок 15. Информационная безопасность
Контроллеры REGUL · 40:27Стандартный проект среды разработки Astra.IDE, который упоминается в видео вы можете скачать по ссылке: https://disk.yandex.ru/d/xkwfDWGyqeePJA