Вход на форум 
В начало e-Mail

Форум

Ресурсы Rockwell

Product Directory

Essential Components

Literature Library

Knowledge Base

Electronic News&Magazines

Блог

Encompass Program

Product Certification

  
Smart Solutions VDT :: Просмотр темы - Принцип прохода программы Control Logix
 FAQFAQ   ПоискПоиск   ГруппыГруппы   ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Принцип прохода программы Control Logix

 
Начать новую тему   Ответить на тему    Список форумов Smart Solutions VDT -> Программные средства систем автоматизации
Предыдущая тема :: Следующая тема  
Автор Сообщение
IAndrey
Новичок
Новичок


Зарегистрирован: May 24, 2016
Сообщения: 9
Рейтинг: +0/-1

СообщениеДобавлено: Вт 24 Май, 2016 10:04:49    Заголовок сообщения: Принцип прохода программы Control Logix Ответить с цитатой

Здравствуйте! Такой вопрос у меня возник, релейная логика, если я последовательно поставлю два блока MOV первый будет 0 записывать в некий тег, а второй в этот же тег будет писать 1. Если запустить эту программу, то тег будет всегда в "1". Когда программа сканируется она вроде бы должна в "0" переводить тег этот, а уже потом в "1". На деле же этого не происходит (либо происходит, но очень быстро). Разъясните, как вообще программа сканируется? Измененные данные пишутся в какой то буфер, а после прохода уже в теги или сразу в теги, прямо во время сканирования?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
AlexV
Эксперт
Эксперт


Зарегистрирован: Jan 10, 2007
Сообщения: 126
Рейтинг: +6/-0
Откуда: г.Мирный, Якутия

СообщениеДобавлено: Ср 25 Май, 2016 4:19:09    Заголовок сообщения: Ответить с цитатой

Значение записывается сразу в тэг.
Проверять надо не беcсмысленными действиями, а проверкой условия
Например, mov(a ,1) - grt(a, 0) - mov (a, b)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
oldDad
Site Admin
Site Admin


Зарегистрирован: May 05, 2005
Сообщения: 2773
Рейтинг: +89/-5

СообщениеДобавлено: Ср 25 Май, 2016 7:53:22    Заголовок сообщения: Re: Принцип прохода программы Control Logix Ответить с цитатой

IAndrey писал(а):
прямо во время сканирования?


Необязательно прямо во время сканирования.
В контроллерах Logix используется мультизадачная операционная система реального времени, ресурсы в которой (задачи, программы, приоритеты и т.п.) нужно правильно и оптимальным образом планировать.

Пример: последовательное, ранг за рангом, выполнение какой-то программы в любой момент может прервать более высокоприоритетная задача, которая может изменить данные, которые прерванная более низкоприоритетная задача обрабатывала до момента передачи управления от нее к более высокоприоритетной задаче. После выполнения более приоритетной задачи процессор вернется к прерванной низкоприоритетной, и может оказаться, что результат получится не таким, как ожидалось, т.к. исходные данные были изменены более приоритетной задачей.
_________________
Обращайтесь к профессионалам.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
IAndrey
Новичок
Новичок


Зарегистрирован: May 24, 2016
Сообщения: 9
Рейтинг: +0/-1

СообщениеДобавлено: Ср 25 Май, 2016 10:26:21    Заголовок сообщения: Ответить с цитатой



Есть тег Status, который принимает целочисленное значение в зависимости от того, какой аларм сработал. Его, естественно нужно обнулять, если значение вышло из аларма. То есть, по сути у меня моргание будет в данном случае?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
oldDad
Site Admin
Site Admin


Зарегистрирован: May 05, 2005
Сообщения: 2773
Рейтинг: +89/-5

СообщениеДобавлено: Ср 25 Май, 2016 13:34:05    Заголовок сообщения: Ответить с цитатой

Если будете то обнулять тэг, то устанавливать его в единицу, то да, это называется мигание.
_________________
Обращайтесь к профессионалам.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
IAndrey
Новичок
Новичок


Зарегистрирован: May 24, 2016
Сообщения: 9
Рейтинг: +0/-1

СообщениеДобавлено: Ср 25 Май, 2016 13:47:52    Заголовок сообщения: Ответить с цитатой

А не подскажете, как тогда на релейке реализовать уход от мигания? Тэг ведь надо все равно обнулять, после пропадания аларма. Как то странно реализовано, зачем сразу тег записывать? Писалось бы в буфер, после окончания цикла из буфера переписывалось бы в теги и по новой. Удобнее ведь работать было бы.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dv_
Эксперт
Эксперт


Зарегистрирован: Sep 14, 2006
Сообщения: 776
Рейтинг: +41/-1
Откуда: Донецк

СообщениеДобавлено: Ср 25 Май, 2016 16:56:42    Заголовок сообщения: Ответить с цитатой

IAndrey писал(а):
А не подскажете, как тогда на релейке реализовать уход от мигания? Тэг ведь надо все равно обнулять, после пропадания аларма. Как то странно реализовано, зачем сразу тег записывать? Писалось бы в буфер, после окончания цикла из буфера переписывалось бы в теги и по новой. Удобнее ведь работать было бы.
Сделай промежуточный тег с которым работаешь в программе и только потом переноси в свой .Status.
SCADA может вычитать твой уже установленный "0" и еще не установленные 1, 2...
Глядя на этот код настоятельно рекомендую изучить команду ALMA. Что в сочетании с FTView SE... Exclamation Exclamation Exclamation
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
vsv1953
Частый гость
Частый гость


Зарегистрирован: Jan 21, 2009
Сообщения: 39
Рейтинг: +3/-0

СообщениеДобавлено: Ср 25 Май, 2016 17:06:14    Заголовок сообщения: Ответить с цитатой

IAndrey писал(а):
А не подскажете, как тогда на релейке реализовать уход от мигания? Тэг ведь надо все равно обнулять, после пропадания аларма. Как то странно реализовано, зачем сразу тег записывать? Писалось бы в буфер, после окончания цикла из буфера переписывалось бы в теги и по новой. Удобнее ведь работать было бы.

Вы пытаетесь организовать мигающую сигнализацию или еще что то?
Конкретно опишите.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
mp3corp
Эксперт
Эксперт


Зарегистрирован: Dec 12, 2012
Сообщения: 164
Рейтинг: +2/-0

СообщениеДобавлено: Чт 26 Май, 2016 5:26:45    Заголовок сообщения: Ответить с цитатой

Как я понимаю из куска кода, Вам необходимо сделать обработку алармов? На ST не проще ли это описывать? Когда то нечто подобное делал:

Код:
if       Out>=HiHi &  HiHiEn            & NOT Block         //сравнение значение с максимальной аварийной уставкой если *_Block=1 авария отключена
      then TimerHiHi.TimerEnable:=1;
      TimerHi.TimerEnable:=0;
        TimerLo.TimerEnable:=0;
        TimerLoLo.TimerEnable:=0;
      
else if      Out>=Hi   &  HiEn         & NOT Block               //сравнение значение с максимальной предаварийной уставкой если *_Block=1 авария отключена
      then TimerHi.TimerEnable:=1;
      TimerHiHi.TimerEnable:=0;
        TimerLo.TimerEnable:=0;
        TimerLoLo.TimerEnable:=0;

else if       Out<=LoLo & LoLoEn   & NOT Block         //сравнение значение с минимальной аварийной уставкой если *_Block=1 авария отключена
      then TimerLoLo.TimerEnable:=1;
      TimerHi.TimerEnable:=0;
        TimerLo.TimerEnable:=0;
        TimerHiHi.TimerEnable:=0;
else if       Out<=Lo   & LoEn         & NOT Block         //сравнение значение с минимальной предаварийной уставкой если *_Block=1 авария отключена
      then TimerLo.TimerEnable:=1;
      TimerHi.TimerEnable:=0;
        TimerHiHi.TimerEnable:=0;
        TimerLoLo.TimerEnable:=0;
else
TimerHiHi.TimerEnable:=0;
TimerHi.TimerEnable:=0;
TimerLo.TimerEnable:=0;
TimerLoLo.TimerEnable:=0;


end_if;end_if;end_if;end_if;

(* Проверяем выхода таймеров по уставкам  *)
if TimerHiHi.DN then Code:=1;
else if TimerHi.DN then
Code:=2;
else if TimerLo.DN then
Code:=3;
else if TimerLoLo.DN then
Code:=4;
else
Code:=0;
end_if;end_if;end_if;end_if;

Соответственно заведены необходимые таймеры, "TONR".
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
IAndrey
Новичок
Новичок


Зарегистрирован: May 24, 2016
Сообщения: 9
Рейтинг: +0/-1

СообщениеДобавлено: Сб 28 Май, 2016 7:28:08    Заголовок сообщения: Ответить с цитатой

mp3corp писал(а):
Как я понимаю из куска кода, Вам необходимо сделать обработку алармов?

Да, вы правы, именно это и нужно сделать. На другом контроллере обработку писал на С++, все отлично работало. А ST поддерживает циклы?

Сделал пока так, вроде должно работать как надо:
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
mp3corp
Эксперт
Эксперт


Зарегистрирован: Dec 12, 2012
Сообщения: 164
Рейтинг: +2/-0

СообщениеДобавлено: Сб 28 Май, 2016 10:56:35    Заголовок сообщения: Ответить с цитатой

IAndrey писал(а):
mp3corp писал(а):
Как я понимаю из куска кода, Вам необходимо сделать обработку алармов?

Да, вы правы, именно это и нужно сделать. На другом контроллере обработку писал на С++, все отлично работало. А ST поддерживает циклы?

Сделал пока так, вроде должно работать как надо:

Конечно поддерживает.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Ryzhij62
Эксперт
Эксперт


Зарегистрирован: Apr 06, 2011
Сообщения: 409
Рейтинг: +29/-2
Откуда: Россия Рязань

СообщениеДобавлено: Сб 28 Май, 2016 13:40:53    Заголовок сообщения: Ответить с цитатой

IAndrey писал(а):

Сделал пока так, вроде должно работать как надо:
[
Ничего Вам не "должно" - при невыполнении лог.условий ноль из временного тега в окончательный не перепишется.
Последний Mov выносите в отдельную ступеньку без условий, или с AllwaysTrue.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
IAndrey
Новичок
Новичок


Зарегистрирован: May 24, 2016
Сообщения: 9
Рейтинг: +0/-1

СообщениеДобавлено: Вс 29 Май, 2016 9:08:29    Заголовок сообщения: Ответить с цитатой

Ryzhij62 писал(а):
при невыполнении лог.условий

Что значит эта фраза? Смотрел, думал, ничего не понял. Покатал этот кусок в эмуляторе, все нормально обновляется и переписывается. Поясните подробнее пожалуйста.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Ryzhij62
Эксперт
Эксперт


Зарегистрирован: Apr 06, 2011
Сообщения: 409
Рейтинг: +29/-2
Откуда: Россия Рязань

СообщениеДобавлено: Вс 29 Май, 2016 11:22:46    Заголовок сообщения: Ответить с цитатой

Подумайте над операторами -]\[-, которых у Вас аж две штуки.
Если эти условия не выполняются - выходной тег не обновится.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
IAndrey
Новичок
Новичок


Зарегистрирован: May 24, 2016
Сообщения: 9
Рейтинг: +0/-1

СообщениеДобавлено: Вс 29 Май, 2016 14:09:50    Заголовок сообщения: Ответить с цитатой

Понял, спасибо!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Smart Solutions VDT -> Программные средства систем автоматизации Часовой пояс: GMT + 1
Страница 1 из 1

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

Powered by phpBB © 2001, 2005 phpBB Group
Яндекс цитирования

Smart Solutions VDT GmbH | Friedrich-List-Allee 38, D-41844 Wegberg-Wildenrath, Germany
Tel.: +49 2432 933 57 83 | e-Mail: office@vdt-solutions.de
Все товарные знаки и торговые марки являются собственностью их владельцев.
При использовании материалов сайта ссылка на данный сайт обязательна.
Открытие страницы: 0.200 секунды
/n