Файл: Внедрение промышленных логических контроллеров на предприятиях.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 20.03.2024
Просмотров: 8
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
"Архитектура автоматизированной системы".
Большинство параллельных и последовательных шин контроллеров являются одномастерными, поскольку многомастерные шины существенно сложнее и дороже.
Обмен данными с модулем выполняется по адресу, который обычно записывается в ПЗУ модуля. Иногда адресом является номер слота, в который вставляется модуль или положение микропереключателя.
Цепи входов и выходов модулей ввода должны иметь гальваническую изоляцию, назначение которой подробно описано в разделе "Защита от помех". Гальваническая изоляция может быть поканальная, когда каждый канал изолирован от остальных, или групповая. Обычно используется групповая изоляция. В удаленных модулях распределенных ПЛК может быть использована индивидуальная гальваническая изоляция интерфейса RS-485 каждого модуля или групповая изоляция интерфейсов нескольких модулей с помощью одного модуля развязывающего повторителя интерфейсов. Для передачи напряжения питания в изолированную часть модуля используются DC-DC преобразователи, построенные с применением развязывающих миниатюрных трансформаторов.
Современные модули ввода-вывода могут выполнять кроме функций ввода некоторую обработку вводимой информации и дополнительные функции: компенсацию температуры холодного спая термопар, линеаризацию нелинейных датчиков, диагностику обрыва датчика, автоматическую калибровку, ПИД-регулирование, управление движением. Перенос части функций контроллера в модули ввода-вывода является современной тенденцией, направленной на увеличение степени распараллеливания задач управления, обеспечение независимости локальных модулей (которые по своим функциям приближаются к ПЛК) и уменьшение потока информации между параллельно работающими процессорами в модулях ввода-вывода. По такому принципу построены, в частности, модули RealLab! фирмы Reallab!.
Переменные могут быть объявлены либо как локальные в разделе определений POU, либо как глобальные - в списке глобальных переменных.
Внимание: Глобальная и локальная переменные могут иметь одинаковое имя. В POU, где объявлена такая локальная переменная, она оказывается "сильнее" одноименной глобальной. Использовать одноименные глобальные переменные нельзя (например, объявленные в конфигурации контроллера и в списке глобальных переменных).
Имя переменной (идентификатор) не должно содержать пробелов и спецсимволов, не должно объявляться более одного раза и не должно совпадать с ключевыми словами. Регистр символов не учитывается, это означает, что VAR1, Var1 и var1 - это одна и та же переменная.
Символ подчеркивания является значимым, т.е. "A_BCD" и "AB_CD" - это разные имена.
Имя должно включать не более одного символа подчеркивания. Ограничений на длину имени нет. Область применения переменной задается ее типом. Список всех объявленных переменных в CoDeSys доступен через Ассистент ввода.
ЛОГИКА
AND
Побитное И. Операция применима к типам BOOL, BYTE, WORD или DWORD.
Побитное ИЛИ. Операция применима к типам BOOL, BYTE, WORD или DWORD.
Побитное исключающее ИЛИ. Операция применима к типам BOOL, BYTE, WORD или DWORD.
Внимание: Допускается расширяемая форма, т.е. XOR имеет более двух входов. В этом случае входы обрабатываются попарно, затем к результатам опять применяется XOR. Такой алгоритм определен стандартом
только одно должно сработать
Побитное НЕ. Операция применима к типам BOOL, BYTE, WORD или DWORD.
АРИФМЕТИКА
Сложение переменных типов: BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL и LREAL.
Две переменных типа TIME можно складывать (напр. t#45s + t#50s = t#1m35s). Результат имеет тип TIME.
Вычитание значений переменных типов: BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL и LREAL.
Переменной TIME можно присвоить результат вычитания двух других переменных типа TIME. Отрицательное время не определено.
Перемножение значений переменных типов: BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL и LREAL.
Деление значений переменных типов: BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL и LREAL.
Остаток от деления значений переменных типов: BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT. Результат всегда целое число.
Присвоение значения одной переменной другой соответствующего типа. В графических редакторах CFC и LD существует возможность управлять разрешением работы блока (разрешать или запрещать операцию) с помощью входов EN/EN0. В FBD этого делать нельзя.
Пример применения EN/EN0 в CFC:
Только если значение en_i равно TRUE, значение переменной var1 будет присвоено var2.
ОПЕРАТОРЫ СРАВНЕНИЯ
Больше
Двоичный оператор возвращает TRUE, если значение первого параметра больше второго.
Операнды могут быть типов BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME и STRING.
Меньше
Двоичный оператор возвращает TRUE, если значение первого параметра меньше второго.
Операнды могут быть типов BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME и STRING.
Меньше или равно
Двоичный оператор возвращает TRUE, если значение первого параметра меньше или равно второму.
Операнды могут быть типов BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME и STRING.
Больше или равно
Двоичный оператор возвращает TRUE, если значение первого параметра больше или равно второму.
Операнды могут быть типов BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME и STRING.
Равно
Двоичный оператор возвращает TRUE, если значение первого параметра равно второму.
Операнды могут быть типов BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME и STRING.
Не равно
Двоичный оператор возвращает TRUE, если значение первого параметра не равно второму.
Операнды могут быть типов BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME и STRING.
Пример: терморегулятор.
Необходимо реализовать:
Большинство параллельных и последовательных шин контроллеров являются одномастерными, поскольку многомастерные шины существенно сложнее и дороже.
Обмен данными с модулем выполняется по адресу, который обычно записывается в ПЗУ модуля. Иногда адресом является номер слота, в который вставляется модуль или положение микропереключателя.
Цепи входов и выходов модулей ввода должны иметь гальваническую изоляцию, назначение которой подробно описано в разделе "Защита от помех". Гальваническая изоляция может быть поканальная, когда каждый канал изолирован от остальных, или групповая. Обычно используется групповая изоляция. В удаленных модулях распределенных ПЛК может быть использована индивидуальная гальваническая изоляция интерфейса RS-485 каждого модуля или групповая изоляция интерфейсов нескольких модулей с помощью одного модуля развязывающего повторителя интерфейсов. Для передачи напряжения питания в изолированную часть модуля используются DC-DC преобразователи, построенные с применением развязывающих миниатюрных трансформаторов.
Современные модули ввода-вывода могут выполнять кроме функций ввода некоторую обработку вводимой информации и дополнительные функции: компенсацию температуры холодного спая термопар, линеаризацию нелинейных датчиков, диагностику обрыва датчика, автоматическую калибровку, ПИД-регулирование, управление движением. Перенос части функций контроллера в модули ввода-вывода является современной тенденцией, направленной на увеличение степени распараллеливания задач управления, обеспечение независимости локальных модулей (которые по своим функциям приближаются к ПЛК) и уменьшение потока информации между параллельно работающими процессорами в модулях ввода-вывода. По такому принципу построены, в частности, модули RealLab! фирмы Reallab!.
Переменные
Переменные могут быть объявлены либо как локальные в разделе определений POU, либо как глобальные - в списке глобальных переменных.
Внимание: Глобальная и локальная переменные могут иметь одинаковое имя. В POU, где объявлена такая локальная переменная, она оказывается "сильнее" одноименной глобальной. Использовать одноименные глобальные переменные нельзя (например, объявленные в конфигурации контроллера и в списке глобальных переменных).
Имя переменной (идентификатор) не должно содержать пробелов и спецсимволов, не должно объявляться более одного раза и не должно совпадать с ключевыми словами. Регистр символов не учитывается, это означает, что VAR1, Var1 и var1 - это одна и та же переменная.
Символ подчеркивания является значимым, т.е. "A_BCD" и "AB_CD" - это разные имена.
Имя должно включать не более одного символа подчеркивания. Ограничений на длину имени нет. Область применения переменной задается ее типом. Список всех объявленных переменных в CoDeSys доступен через Ассистент ввода.
ЛОГИКА
AND
Побитное И. Операция применима к типам BOOL, BYTE, WORD или DWORD.
OR
Побитное ИЛИ. Операция применима к типам BOOL, BYTE, WORD или DWORD.
XOR
Побитное исключающее ИЛИ. Операция применима к типам BOOL, BYTE, WORD или DWORD.
Внимание: Допускается расширяемая форма, т.е. XOR имеет более двух входов. В этом случае входы обрабатываются попарно, затем к результатам опять применяется XOR. Такой алгоритм определен стандартом
только одно должно сработать
NOT
Побитное НЕ. Операция применима к типам BOOL, BYTE, WORD или DWORD.
АРИФМЕТИКА
ADD
Сложение переменных типов: BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL и LREAL.
Две переменных типа TIME можно складывать (напр. t#45s + t#50s = t#1m35s). Результат имеет тип TIME.
SUB
Вычитание значений переменных типов: BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL и LREAL.
Переменной TIME можно присвоить результат вычитания двух других переменных типа TIME. Отрицательное время не определено.
MUL
Перемножение значений переменных типов: BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL и LREAL.
DIV
Деление значений переменных типов: BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL и LREAL.
MOD
Остаток от деления значений переменных типов: BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT. Результат всегда целое число.
MOVE
Присвоение значения одной переменной другой соответствующего типа. В графических редакторах CFC и LD существует возможность управлять разрешением работы блока (разрешать или запрещать операцию) с помощью входов EN/EN0. В FBD этого делать нельзя.
Пример применения EN/EN0 в CFC:
Только если значение en_i равно TRUE, значение переменной var1 будет присвоено var2.
ОПЕРАТОРЫ СРАВНЕНИЯ
GT
Больше
Двоичный оператор возвращает TRUE, если значение первого параметра больше второго.
Операнды могут быть типов BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME и STRING.
LT
Меньше
Двоичный оператор возвращает TRUE, если значение первого параметра меньше второго.
Операнды могут быть типов BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME и STRING.
LE
Меньше или равно
Двоичный оператор возвращает TRUE, если значение первого параметра меньше или равно второму.
Операнды могут быть типов BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME и STRING.
GE
Больше или равно
Двоичный оператор возвращает TRUE, если значение первого параметра больше или равно второму.
Операнды могут быть типов BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME и STRING.
EQ
Равно
Двоичный оператор возвращает TRUE, если значение первого параметра равно второму.
Операнды могут быть типов BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME и STRING.
NE
Не равно
Двоичный оператор возвращает TRUE, если значение первого параметра не равно второму.
Операнды могут быть типов BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME и STRING.
Пример: терморегулятор.
Необходимо реализовать:
-
Измерение температуры с датчика Рt500 (r385_500) на аналоговом входе (temp). -
Сигнализацию (lamp) о выходе за заданную уставку (ust1). Значение уставки по умолчанию 150 гр. -
Отключение сигнализации (lamp) после уменьшения температуры ниже уставки (ust2). Значение уставки по умолчанию 100 гр.