Как добавить gsd файл в tia portal

Обновлено: 07.05.2024

2021-03-16 Промышленное 8 комментариев

Сегодняшняя тема — обработка аналогового сигнала с датчика 4…20 мА в среде Tia Portal различными способами. Но прежде, чем мы перейдем непосредственно к основной теме, небольшое вступление — рассмотрим как вообще электрический сигнал с датчика преобразуется в ПЛК в нужную нам величину.

Русские Блоги


Стебель вопроса: Problem Statement Mr. Infinity has a string S consisting of digits from 1 to 9. Each time the date changes, this string changes as follows: Each occurrence of.


перейти на веб-сайт третьего дня примечания к изучению - mysql


Отчет о тенденциях цифрового маркетинга в Китае за 2015 год

Стандарты набора персонала Unicorn Enterprise Heavy для Python-инженеров 2019 >>> [Отчет о тенденциях цифрового маркетинга в Китае, 2015 г.] Отчет о тенденциях цифрового маркетинга в Китае за.

7-3 три цифры в обратном порядке (язык C)

Это тот, который я начал практиковать в кратчайшие сроки и сдал тест? Продолжай ↖ (^ ω ^) ↗ Прикрепите код: .

Игра головоломки (передний конец)

Обмен каждым элементом приведет к этому изменению массивов, в соответствии с этим, для завершения рендеринга страницы «Exchange» эффект, MOE анимации HTML раздел CSS Style Part. ЧАСТЬ ЧАСТ.

Вам также может понравиться

В виртуальной машине-клоне сеть не может нормально загрузиться после загрузки

Описание проблемы: При клонировании виртуальной машины сетевая карта запускается ненормально. Содержание ошибки и явление Решение первое: Измените mac-адрес eth0 на mac-адрес eth1, измените имя устрой.

Linux BlaceSing команда

Основа командной строки Некоторое существительное "Графический интерфейс" "Командная строка" "Терминал" 「shell」 「bash」 Монтаж Windws: Установите Git, Открыть Gitbash Linu.

Шаблон Angular ссылается на переменные для привязки данных. Значение данных страницы не изменяется и не обновляется.

описание проблемы Эта статья посвящена привязке данных ссылочных переменных шаблона angular При использовании шаблона angular для ссылки на переменные значение привязки страницы не обновляется после в.


Об использовании SimpleAdapter

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


org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 1 i

Причина в том, что Maven имеет встроенную версию 1.6 Tomcat Не могу скомпилировать jsp Поэтому измените версию Tomcat на более позднюю версию 1.7 или 1.8. Просто измените номер после tomcat в теге art.

Инструкция CALCULATE

Еще один способ обработки аналогового сигнала — это использование инструкции CALCULATE, с помощью которой можно задать математическую функцию, которая будет производить вычисления над входными параметрами и на выходе мы получаем необходимый результат согласно заданному уравнению.

Инструкция CALCULATE

По умолчанию инструкция CALCULATE предлагает два входных параметра и один выходной. Если необходимо добавить вход, нажмите желтую пиктограмму «Create» (Создать) рядом со входом, или правой кнопкой мыши щелкнуть на одном из входных параметров, после чего выбрать «Insert input».

Инструкция CALCULATE

Далее выбираем необходимый тип данных для входных и выходных параметров (IN и OUT должны иметь одинаковый тип данных).

Нажмем на значок «Редактировать выражение» для ввода математической функции.

Инструкция CALCULATE

В окне «Edit Calculate» введем наше выражение для масштабирования необработанного аналогового значения.

Out = ((in4 — in5) / (in2 — in3)) * (in1 — in3) + in5

  • Out — Масштабированное выходное значение
  • in1 — Аналоговое входное значение
  • in2 - Верхняя граница для масштабированного входного значения
  • in3 - Нижняя граница для масштабированного входного значения
  • in4 — Верхняя граница для масштабированного выходного значения
  • in5 — Нижняя граница для масштабированного выходного значения

После этого нажимаем «OK». Инструкция создаст указанные нами в арифметическом выражении входы и на выходе в параметре Out получим результат, согласно заданному уравнению.

Инструкция CALCULATE

Tia Portal — язык программирования SCL. Часть2

Продолжим тему изучения программирования на SCL в среде Tia Portal, начатую в прошлой статье. Сегодня мы рассмотрим работу с детекторами переднего и заднего фронтов, а также работу со счетчиками.

По аналогии с прошлым уроком, сначала напишем нашу программу на языке лестничных диаграмм LAD.

Tia Portal LAD

Инструкция P_TRIG сканирует RLO (результат логической операции) на положительный фронт, то есть, если на входе CLK будет приходить сигнал, то выход Q устанавливается в TRUE. В данном случае задействована только P_TRIG для выделения переднего фронта, но таким же образом можно добавить инструкцию N_TRIG для заднего фронта.

Также в программе задействован инкрементный счетчик CTU , то есть счетчик прямого счета. При изменении значения на входе параметра CU из 0 в 1, счетчик каждый раз будет увеличивать значение на 1. Если значение параметра CV (текущее значение счетчика) будет больше или равно значению параметра PV (заданное значение счетчика), то выход Q устанавливается в 1. Если значение параметра R (сброс) изменится с 0 на 1, то текущее значение счетчика будет сброшено в 0.

Логика работы программы следующая – при нажатии кнопки на входе In1 будет сгенерирован импульс Imp1 по переднему фронту. Этот импульс присутствует только в течение одного цикла выполнения программы. После того, как количество импульсов достигнет значения 4, активируется выход счетчика. Сброс счетчика происходит при нажатии кнопки на входе In2.

Перейдя в режим онлайн, можно увидеть количествo обнаруженных импульсов. В онлайн мы не видим прохождение импульса, но счетчик его фиксирует.

Tia Portal LAD

Перейдем теперь к написанию программы на SCL.

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

Tia Portal SCL

Поскольку imp1 и im3 находятся в логическом состоянии true (истина) только в течение одного цикла ПЛК, мы соответственно ничего не увидим в онлайн-режиме.

SCL

Поэтому для отслеживания состояния, мы добавим из библиотеки инструкций TIA Portal счетчик CTU, так же, как в программе LAD.

Tia Portal Counter

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

Tia Portal SCL Counter

Теперь можно перейти в онлайн-режиме и значение счетчика должно изменяться на единицу при каждом нажатии или отпускании кнопки.

Помимо P_TRIG и N_TRIG мы можем также использовать для обнаружения положительного и отрицательного фронтов и другие инструкции, например R_TRIG и F_TRIG .

SCL R_TRIG

SCL R_Trig

Для наглядности можно создать экран HMI, на котором будет отображаться подсчет импульсов.

Tia Portal SCL

Все очень просто — один счетчик, созданный в LAD, будет подсчитывать количество импульсов положительного фронта при нажатии на кнопку, другой в SCL – отрицательного фронта, а светодиод показывает состояние счетчиков, большее или равное указанному значению.

Функция обработки аналогового сигнала на языке SCL

И наконец третий способ — написать функцию, отвечающую за обработку аналогового сигнала на языке SCL.

Создадим новую функцию SCALE и запишем в нее наше выражение.

Обработка аналогового значения на SCL

Как видим, данное выражение соответствует тому, что мы использовали ранее в инструкции CALCULATE.

Инструкции NORM_X и SCALE_X

Для начала рассмотрим типовой метод преобразования значения аналогового входа при помощи инструкций «NORM_X» — нормализации значения и «SCALE_X» — масштабирования.

Инструкции NORM_X и SCALE_X

NORM_X нормализует параметр VALUE к диапазону значений, определенному параметрами MIN и MAX. На вход параметра VALUE приходит значение с датчика. MIN — минимальное значение в диапазоне, в данном случае 0, MAX — максимальное значение, как мы помним для 4…20 мА это значение составляет 27648. На выходе мы получаем нормализованное значение, которое заносим в переменную temp_value.

Инструкция NORM_X

Затем масштабируем полученное значение согласно диапазону измерения датчика, в нашем случае от 0 до 160 bar.

Инструкция SCALE_X

Результирующим значением выходной переменной out_value будет фактическое значение давления в bar. Таким образом мы из электрического сигнала с датчика давления получаем целочисленное значение этой переменной.

Контроллер YASKAWA MICRO, как клиент Modbus TCP

YASKAWA VIPA Controls контроллер MICRO как клиент Modbus TCP


YASKAWA VIPA Controls контроллер MICRO как клиент (Мастер) Modbus TCP

Видео презентация ПЛК MICRO:

Для начала работы в TIA Portal v14 (Siemens AG) необходимо скачать конфигурационные файлы (GSDML) и библиотеки Modbus с сайта YASKAWA VIPA Controls. Распакуйте скачанные файлы в рабочую папку.

Конфигурирование MICRO в TIA Portal

Запустите программный пакет TIA Portal, после перейдите в Project view. Выберите в Options ‘Install general station description file (GSD)’. Перейдите в рабочую папку и выберите для установки требуемый файл GSDML. По завершении установки, будет произведено автоматическое обновление каталога оборудования и TIA Portal закроется. Для того, чтобы компоненты VIPA отображались, необходимо отключить "Filter" в каталоге оборудования TIA Portal. В конфигураторе контроллер MICRO может быть выбран в Other field devices > PROFINET > IO > VIPA GmbH > VIPA MICRO PLC.

TIA Portal стойка ПЛК

Стойка ПЛК в ПО TIA Portal

Для добавления контроллера MICRO в проект перейдите в Project tree и выбирите ‘Add new device . ’. Так контроллеры VIPA Controls эмулируют контроллеры S7-300, для работы с MICRO, выберите в диалоговом окне ввода модуль ЦПУ SIMATIC S7-300 > CPU 314C-2 PN/DP (314-6EH04-0AB0 V3.3). После перейдите в Project area к ‘Network view’ и перетащите из раздела ‘Other field devices > PROFINET > IO > VIPA GmbH > VIPA MICRO PLC’ контроллер в поле Network view,и подключив ее виртуально к ЦПУ S7 через PROFINET.

TIA Portal конфигуратор сетевых подключений network view

Конфигуратор сетевых подключений Network view и добавление MICRO

В Network view кликните по линии PROFINET модуля Siemens CPU и введите требуемое значение IP-адреса в поле ‘Ethernet address’ окна ‘Properties’ раздела ‘IP protocol’. Введите в поле ‘PROFINET device name’ окна ‘PROFINET’ уникальное (в рамках подсети Ethernet) имя сетевого устройства.

Настройка порта Ethernet PG/OP MICRO

Выберите в Network view устройство ввода/вывода ‘VIPA MICRO PLC’ и перейдите в Device overview. В окне станции устройства PROFINET IO ‘VIPA MICRO PLC’ модуль ЦПУ будет размещен в слоте 0. Для конфигурирования порта Ethernet PG/OP поместите в слот 4 стойки модуль Siemens CP 343-1 (6GK7 343-1EX30 0XE0 V3.0). Двойным кликом по CP 343-1EX30 откройте диалоговое окно ‘Properties’ и в поле "Ethernet address" введите требуемый IP-адрес. Предварительно необходимо получить у администратора сети допустимый IP-адрес.

TIA Portal сетевая стойка MICRO и добавление порта Ethernet

Настройка порта Ethernet PG/OP MICRO

Подключение библиотек в ПО TIA Portal

Распакуйте ZIP-файл с библиотекой VIPA Modbus в рабочий каталог Siemens TIA Portal.

Перейдите в Project view в своем проекте и выберите вкладку "Libraries" из вертикального меню справа, выберите "Global library" и потом "Open global library", перейдите в рабочий каталог и загрузите файл . _TIA.al1x. Скопируйте нужные блоки из библиотеки в раздел "Program blocks" менеджера проектов Project tree активного проекта. Теперь специализированные функциональные блоки VIPA готовы для использования в пользовательской программе проекта.

Добавление библиотек в проект в ПО TIA Portal

Добавление библиотек в проект в ПО TIA Portal

Программа клиента Modbus TCP

Для организации связи по Modbus TCP используются функциональные блоки, разработанные YASKAWA VIPA Controls для своих контроллеров. Их мы и будем использовать в нашей программе.

FB 70 - TCP_MB_CLIENT – этот функциональный блок позволяет использовать порт Ethernet PG/OP в качестве клиента Modbus/TCP.

Параметры вызова Наименование Тип переменной Тип данных Описание
REQ ВХОД BOOL (Двоичное значение) Запуск работы блока по переходу 0-1.
ID ВХОД WORD (16-разрядное значение) ID из TCON.
MB_FUNCTION ВХОД BYTE (Байт) Modbus: Код функции.
MB_DATA_ADDR ВХОД WORD (16-разрядное значение) Modbus: Начальный адрес или код подфункции.
MB_DATA_LEN ВХОД INT (Целое) Modbus: Количество регистров/бит
MB_DATA_PTR ВХОД ANY (любой) Modbus: Буфер данных (допустима только область флагов или блок данных с типом данных BYTE) при использовании функций с кодами 03h, 06h и 10h.
DONE * ВЫХОД BOOL (Двоичное значение) Работа блока завершена без ошибок.
BUSY ВЫХОД BOOL (Двоичное значение) Задание выполняется.
ERROR * ВЫХОД BOOL (Двоичное значение) Работа блока завершена с ошибкой - Параметр STATUS содержит информацию об ошибке.
STATUS * ВЫХОД WORD (16-разрядное значение) Расширенная информация о состоянии и об ошибках.
*) Параметр сохраняет свое состояние до следующего вызова FB

Параметры DB Наименование Тип переменной Тип данных Описание
PROTOCOL_TIMEOUT STAT INT (Целое) Время блокировки до того, как пользователь может отменить активное задание. Значение по умолчанию: 3 c
RCV_TIMEOUT STAT INT (Целое) Контрольное время для задания. Значение по умолчанию: 2 с
MB_TRANS_ID STAT WORD (16-разрядное значение) Modbus: Начальное значение для идентификатора транзакции. Значение по умолчанию: 1
MB_UNIT_ID STAT BYTE (Байт) Modbus: Идентификация устройства. Значение по умолчанию: 255

Обратите внимание на следующее:

  • Параметры вызова должны быть заданы при вызове блока. Кроме параметров вызова имеются также параметры, содержащиеся в DB.
  • Предварительно коммуникационное соединение должно быть инициализировано с помощью FB 65 (TCON).
  • Для использования блока требуются FB 63 (TSEND) и FB 64 (TRCV).
  • В процессе исполнения задания DB блокируется для других клиентов.

Обратите внимание на то, что в процессе исполнения задания изменение состояния входных параметров не воспринимается.

Исполнение задания завершается или отменяется при одном из следующих условий:

  • DONE = 1 (исполнение без ошибки);
  • ERROR = 1 (исполнение с ошибкой);
  • Превышение интервала RCV_TIMEOUT;
  • REQ = FALSE после истечения времени PROTOCOL_TIMEOUT.

Если REQ сбрасывается до того, как установлен выход DONE или ERROR или истекло время PROTOCOL_ TIMEOUT, на выходе STATUS будет установлено значение 8200h. При этом текущее задание будет по-прежнему исполняться.

С помощью функции 03h с сервера Modbus/TCP должны быть считаны 100 регистров, начиная с адреса 2000, и сохраняться в области памяти флагов с начальным адресом MB200. Коды ошибок при их возникновении должны быть сохранены.

Пример программного кода

UN M 100.2
SPB ERR1
L MW 102
T MW 104

ERR1: NOP 0 U M 100.1
R M 100.0

UN M 101.2
SPB ERR2
L MW 106
T MW 108 ‘код 0000h – задание выполнено, 7004h FB готов к выполнению нового запроса, другие коды это ошибки

ERR2: NOP 0
U M 101.1
R M 101.0

При включении бита M100.0, если M100.0 автоматически сбрасывается, то это означает, что соединение установлено и ячейка памяти MW108 в этом случае содержит код 7004h.

При включении бита M101.0, посылается запрос Modbus и ожидается ответ. В случае если M101.0 сбрасывается автоматически, задание исполнено без ошибок, а считанные данные сохранены в ЦПУ в области памяти флагов, начиная с байта 200. MW108 содержит код 7004h, что сигнализирует о готовности к выполнению нового запроса. Если M101.0 не сбрасывается автоматически, а MW108 возвращает значение, отличное от 0, то это означает наличие ошибки обмена. Причину ошибки можно определить с помощью кода в MW108 (например, MW108 = 8382h, если начальный адрес 2000 отсутствует на сервере).

YASKAWA VIPA Control контроллер MICRO получил IF Award 2018

YASKAWA VIPA Control контроллер MICRO получил награду IF Award 2018

Обработка аналоговых значений в ПЛК

Аналоговые сигналы применяются для измерения значений различных изменяющихся физических величин, таких как температура, давление, расход и т.д.

Но так как различных типов сигналов очень много, для удобства используются нормирующие преобразователи, встроенные в датчик, либо выносные, которые преобразуют выходной электрический сигнал с датчика в унифицированный токовый сигнал 4…20 мА или сигнал напряжения 0…10 В. И далее этот унифицированный сигнал приходит на аналоговый вход ПЛК или модуля аналоговых входов.

Далее аналоговый сигнал с помощью АЦП (аналого-цифрового преобразователя) преобразуется в некое целочисленное значение, обычно в формате Integer (целые числа в диапазоне от -32768 до 32767). Затем это число в программе с помощью специальных инструкций необходимо перевести в реальные единицы измерения.

Ниже приведены числовые значения для диапазонов измерения напряжения и тока.

Представление аналогового входа в Tia Portal для напряжения

Представление аналогового входа в Tia Portal для тока

Как мы видим, для сигнала 4…20 мА представление аналогового сигнала изменяется от 0 до 27648. Значения, находящиеся вне диапазона представляют собой переполнение или превышение значений.

Такова, вкратце, последовательность действий, а теперь вернемся к нашей основной теме.

Для начала в параметрах модуля аналоговых входов необходимо настроить значение канала, к которому будет подключаться, предположим, датчик давления, на тип измерения и диапазон 4. 20 мА. Для этого на вкладке Device Configuration выбираем наш модуль, на вкладке General находим Analog Inputs и здесь выбираем необходимый канал. В его параметрах настраиваем тип сигнала и диапазон — токовый 4…20 мА.

Настройка аналогового канала

Подключаем датчик к нашему модулю аналоговых входов по следующей схеме:

Схема подключения аналогового датчика

Далее переходим уже к программной части.

Читайте также: