События аналогового сигнала

Вопросы, не попадающие в другие разделы.

События аналогового сигнала

Сообщение NewOrdered » Чт сен 10, 2015 4:05 pm

Добрый день!
В интаче создан супертэг, соответствующий аналоговому сигналу
Код: Выделить всё
TT_36\SPAN   REAL (верхний предел)
TT_36\ZERO   REAL (нижний предел)
TT_36\VAL    REAL (значение)
TT_36\SP1    REAL (уставка VHL)
TT_36\SP5    REAL (уставка VLL)
TT_36\VHL    Discreet (Alarm State = On)
TT_36\VLL    Discreet (Alarm State = On)


Вся математика и логика реализованы в PLC, на АРМ лишь выводятся значение, уставки (c возможностью редактирования) и аварии.
Задача в том, чтобы при событии TT_36\VHL == 1 в комментарий этого тэга подставить значение TT_36\SP1, т.е при каком значении уставки произошло это событие и самое главное, чтобы этот измененный комментарий попал в БД WWALMDB и журнал текущих аварий AlarmViewerCtrl.

Пока только видится такое решение:
1. Скрипт Data Change на нужный тэг
2. Вызов Quick Function с передачей ссылки на весь супертэг
3. Обработка полей нужных членов супертэга (подстановка значений в текст комментария)
NewOrdered
 
Сообщения: 232
Зарегистрирован: Пн ноя 15, 2010 7:48 am
Откуда: Kaliningrad

Re: События аналогового сигнала

Сообщение Steelman63 » Вт сен 22, 2015 5:24 am

а что раньше сработает - аларм или скрипт ?
Steelman63
 
Сообщения: 313
Зарегистрирован: Ср авг 29, 2012 3:42 pm

Re: События аналогового сигнала

Сообщение Генератор зла » Вт сен 22, 2015 12:26 pm

Steelman63 писал(а):а что раньше сработает - аларм или скрипт ?

Аларм. Проверено на морских свинках. Ни одна морская свинка во время проверки не пострадала.
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: События аналогового сигнала

Сообщение NewOrdered » Вт сен 22, 2015 1:58 pm

Генератор зла писал(а):
Steelman63 писал(а):а что раньше сработает - аларм или скрипт ?

Аларм. Проверено на морских свинках. Ни одна морская свинка во время проверки не пострадала.


То есть затея пустая?
Есть ли другие способы?
NewOrdered
 
Сообщения: 232
Зарегистрирован: Пн ноя 15, 2010 7:48 am
Откуда: Kaliningrad

Re: События аналогового сигнала

Сообщение Steelman63 » Вт сен 22, 2015 2:10 pm

Генератор зла писал(а):
Steelman63 писал(а):а что раньше сработает - аларм или скрипт ?

Аларм. Проверено на морских свинках. Ни одна морская свинка во время проверки не пострадала.


тогда вероятно в БД аларм уйдет со старым коментом
Steelman63
 
Сообщения: 313
Зарегистрирован: Ср авг 29, 2012 3:42 pm

Re: События аналогового сигнала

Сообщение Генератор зла » Вт сен 22, 2015 2:21 pm

NewOrdered писал(а):Есть ли другие способы?

Древний как прополис мамонта - через промежуточный тег.
Значение из сервера в/в поступает в промежуточный I/O-тег, там сравнивается с уставками, хранящимися в Memory-теге (основном), в зависимости от результата сравнения в нужные поля поля Memory-тега записывается что надо, после чего Memory=I/O.
Алармы проверяются в Memory-теге, естественно.
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: События аналогового сигнала

Сообщение NewOrdered » Вт сен 22, 2015 3:46 pm

Генератор зла писал(а): Древний как прополис мамонта - через промежуточный тег.
Значение из сервера в/в поступает в промежуточный I/O-тег, там сравнивается с уставками, хранящимися в Memory-теге (основном), в зависимости от результата сравнения в нужные поля поля Memory-тега записывается что надо, после чего Memory=I/O.
Алармы проверяются в Memory-теге, естественно.


Спасибо!
NewOrdered
 
Сообщения: 232
Зарегистрирован: Пн ноя 15, 2010 7:48 am
Откуда: Kaliningrad

Re: События аналогового сигнала

Сообщение NewOrdered » Чт окт 01, 2015 5:40 pm

Генератор зла писал(а):Древний как прополис мамонта - через промежуточный тег.
Значение из сервера в/в поступает в промежуточный I/O-тег, там сравнивается с уставками, хранящимися в Memory-теге (основном), в зависимости от результата сравнения в нужные поля поля Memory-тега записывается что надо, после чего Memory=I/O.
Алармы проверяются в Memory-теге, естественно.


Ваш способ отлично работает.
Я переделал структуру тэга
Код: Выделить всё
TT_36\SPAN   REAL (верхний предел)
TT_36\ZERO   REAL (нижний предел)
TT_36\VAL    REAL (значение)
TT_36\SP1    REAL (уставка VHL)
TT_36\SP5    REAL (уставка VLL)
TT_36\VHL    I/O Discrete (Alarm State = None)
TT_36\VLL    I/O Discrete (Alarm State = None)
TT_36\VHLAlarm    Memory Discrete (Alarm State = On)
TT_36\VLLAlarm    Memory Discrete (Alarm State = On)


И в Data Change TT_36\VHL или TT_36\VLL вызываю обработку соответствующих полей с помощью Quick Function. В базу и в журнал заносятся соответственно
TT_36\VHLAlarm и TT_36\VLLAlarm.

В связи с этим вопрос: как при большом количестве (более 200) аналоговых сигналов обойтись без многочисленных Data Change скриптов?
NewOrdered
 
Сообщения: 232
Зарегистрирован: Пн ноя 15, 2010 7:48 am
Откуда: Kaliningrad

Re: События аналогового сигнала

Сообщение Генератор зла » Пт окт 02, 2015 12:26 pm

NewOrdered писал(а):как при большом количестве (более 200) аналоговых сигналов обойтись без многочисленных Data Change скриптов?

Сделать всё в одном Application Script :)
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: События аналогового сигнала

Сообщение NewOrdered » Пт окт 02, 2015 3:03 pm

Генератор зла писал(а):Сделать всё в одном Application Script :)


Хотелось бы также избежать over 200 конструкций IF-THEN-ELSE в этом скрипте
NewOrdered
 
Сообщения: 232
Зарегистрирован: Пн ноя 15, 2010 7:48 am
Откуда: Kaliningrad

Re: События аналогового сигнала

Сообщение NewOrdered » Пт окт 02, 2015 4:18 pm

Генератор зла писал(а):Сделать всё в одном Application Script :)


И да, почему Application Script?
Выполнение вышеуказанных манипуляций должно быть привязано к определенному событию, а не выполняться циклически.
NewOrdered
 
Сообщения: 232
Зарегистрирован: Пн ноя 15, 2010 7:48 am
Откуда: Kaliningrad

Re: События аналогового сигнала

Сообщение Генератор зла » Пт окт 02, 2015 5:37 pm

NewOrdered писал(а):Хотелось бы также избежать over 200 конструкций IF-THEN-ELSE в этом скрипте

Дайте два! (Киса)
NewOrdered писал(а):Выполнение вышеуказанных манипуляций должно быть привязано к определенному событию, а не выполняться циклически.

Кому должно?
Vita est dolor.
Генератор зла
 
Сообщения: 2860
Зарегистрирован: Вс янв 23, 2011 5:08 pm

Re: События аналогового сигнала

Сообщение NewOrdered » Пт окт 02, 2015 6:09 pm

Генератор зла писал(а):
NewOrdered писал(а):Выполнение вышеуказанных манипуляций должно быть привязано к определенному событию, а не выполняться циклически.

Кому должно?


Не кому, а почему. По определению. Потому что вся логика сравнения уставок с текущим значением, включая задержки, гистерезис и пр., реализована в PLC. В InTouch подтягиваются уже готовые флаги (TT_36\VHL и TT_36\VLL для моего примера). При изменении значений этих флагов я бы хотел подставлять соответствующие значения в комментарии тэгов. А в связи с большим их количеством и возник вопрос: нельзя ли их обрабатывать группой, а не по отдельности?
NewOrdered
 
Сообщения: 232
Зарегистрирован: Пн ноя 15, 2010 7:48 am
Откуда: Kaliningrad


Вернуться в Другое

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3