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

2021-08-23 Промышленное  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 – отрицательного фронта, а светодиод показывает состояние счетчиков, большее или равное указанному значению.

 

Поделиться в соц. сетях

Опубликовать в LiveJournal
Опубликовать в Яндекс

  • Roman says:

    Добрый день. А продолжение по SCL планируете делать?

    • admin says:

      Да, обязательно будет.

Комментарии

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>