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

Форум

Ресурсы Rockwell

Product Directory

Essential Components

Literature Library

Knowledge Base

Electronic News&Magazines

Блог

Encompass Program

Product Certification

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

Одинаковые элементы мозаичного щита

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


Зарегистрирован: Aug 07, 2007
Сообщения: 34
Рейтинг: +0/-0

СообщениеДобавлено: Вт 07 Авг, 2007 13:56:58    Заголовок сообщения: Одинаковые элементы мозаичного щита Ответить с цитатой

Есть программа работающая с одним элементом МЩ,
обрабатывающая нажатия кнопок на нем, индикацию состояния, а также передачу команд другому контроллеру по RS485.
В конечном итоге требуется программа работающая с 30 аналогичными элементами.
Каждому элементу соответствуют свои адреса контактов модулей ввода/вывода и свои адреса команд для общения с другим контроллером.

Пожалуста, подскажите как бы это реализовать?
(контроллер SLC 5/04, ПО RSLogix500)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Nikolay
Частый гость
Частый гость


Зарегистрирован: Aug 07, 2007
Сообщения: 34
Рейтинг: +0/-0

СообщениеДобавлено: Ср 08 Авг, 2007 6:09:03    Заголовок сообщения: Пробы Ответить с цитатой

Размножение элементов я в принципе реализовал с помощью
создания SLC library для одного элемента, и далее вставкой
созданного элемента несколько раз и индексирования адресов
(Adress Load Mode = Indexed) массивов.

Но есть много недостатков и недоработок:

1) для реализации этого все подпрограммы (LAD2-10) пришлось
скомпоновать в одну, иначе не возможно индексирование адресов;

2) все созданные элементы остаются приписаны к одним и тем же
адресам общения с другим контроллером.

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


Зарегистрирован: Feb 20, 2006
Сообщения: 59
Рейтинг: +0/-0
Откуда: г. Мариуполь

СообщениеДобавлено: Ср 08 Авг, 2007 6:12:30    Заголовок сообщения: Ответить с цитатой

Уважаемый Николай!

Учитывая Ваш предыдущий вопрос, я понимаю, речь идет о работе с контроллерами SLC500. Если у Вас имеется 30 однотипных объектов и Вы не хотите для каждого из них тиражировать ранги, я бы посоветовал Вам следующее: Написать отдельную процедуру, в которой бы разместил необходимые к выполнению алгоритмы и вызывал ее командой JSR. А для переключения между различными входами использовал индексную адресацию. Индексная адресация работает так: в месте, где будет переменная пишем вместо, например, N7:0 #N7:0. Тогда в данном месте программы произойдет обращение к адресу, смещенному в файле N7 на величину, которая располагается в S:24. Таким образом я последовательно сначала задавал бы смещение (S:24), а затем вызывал нужную подпрограмму JSR-ом. И таким образом бы решил проблему обработки разных адресов (входов/выходов) одним и тем же алгоритмом.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Krotyuk
Постоянный участник
Постоянный участник


Зарегистрирован: Feb 20, 2006
Сообщения: 59
Рейтинг: +0/-0
Откуда: г. Мариуполь

СообщениеДобавлено: Ср 08 Авг, 2007 6:50:14    Заголовок сообщения: Ответить с цитатой

Цитата:
1) для реализации этого все подпрограммы (LAD2-10) пришлось
скомпоновать в одну, иначе не возможно индексирование адресов;

2) все созданные элементы остаются приписаны к одним и тем же
адресам общения с другим контроллером.


Не совсем понимаю, в чем, собственно, проблема? Что касается п.1, то зачем все сливать в одну подпрограмму? Если Вам удобнее, оставьте несколько подпрограмм. Внутри подпрограмм везде используйте, например, #N7:0. Таким образом, как только Вы задаете S:24, у Вас при вызове всех подпрограмм будет вызываться обработка элемента 0 + смещение. И так будет до тех пор, пока Вы не перепишете S:24, задав тем образом ссылку на другой адрес.

Что касается п.2: вообще непонятно, как так получается, что индексацию Вы используете, а адреса остаются прежние? Опишите попонятнее проблему.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
dv_
Эксперт
Эксперт


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

СообщениеДобавлено: Ср 08 Авг, 2007 8:41:19    Заголовок сообщения: Ответить с цитатой

В SLC-5/04 начиная с OS401 есть косвенная адресация, что гораздо мощнее, чем индексная (S:24).
Можно косвенно изменять слот, слово, бит. Exclamation
Например: самый полный вариант O:[N7:0].[N7:1]/[N7:2], потребует больше времени, чем индексная.
Но Exclamation Exclamation Exclamation
Можно сделать так (быстрее и безопаснее):
O:1.0/[N7:2] - N7:2 продолжает указывать на номер бита.
При:
N7:0=0 -> O:1.0/0
N7:0=16 -> O:2.0/0, если модули на 16 разрядов в слотах 1 и 2.
и так далее...

Внимание на использование инструкций OTE при косвенном и индексном методе - адрес на который идет ссылка должен существовать.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dv_
Эксперт
Эксперт


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

СообщениеДобавлено: Ср 08 Авг, 2007 8:43:52    Заголовок сообщения: Re: Пробы Ответить с цитатой

Nikolay писал(а):
А особенно, как можно спараметрировать связь между элементами и адресам общения с другим контроллером?[/u]

Что есть другой контроллер?
У вас два SLC и их надо связать между собой?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Nikolay
Частый гость
Частый гость


Зарегистрирован: Aug 07, 2007
Сообщения: 34
Рейтинг: +0/-0

СообщениеДобавлено: Чт 09 Авг, 2007 7:19:03    Заголовок сообщения: Ответить с цитатой

Другой контроллер это Sicam - насколько я понял он управляет некими механизмами. Состояние механизмов будут индицироваться на моих элементах, а также ими управляться.
Общение с Sicam происходит по IEC 101 (который тоже предстоит подробнее изучить Brick wall ).
Пока вместо Sicam на соседнем компе стоит програмка эммулирующая прием и передачу сообщений от него. Общение с ней получается (наладил прием и отправку некоторых команд).

Спасибо за информацию по методам адресации Smile
Буду пробовать.

Теперь я вижу следующий способ параметрирования:
Видимо нужно создать массив адресов Sicam,
и используя методы косвенной или индексной адресации каждый элемент (при своем проходе алгоритма) будет обращаться к Sicam по своим адресам.

Пока понятно, буду реализовывать. Информации мало, а что есть на англиском. Зато по ходу скоро и англиский выучу. Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dv_
Эксперт
Эксперт


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

СообщениеДобавлено: Чт 09 Авг, 2007 8:07:47    Заголовок сообщения: Ответить с цитатой

Для общения с SICAM:
- CH0 () перевести в режим USER
- командами из категории ASCII программировать обмен

Неудобство - теряешь связь RSLogix500<>SLC по RS-232 DF-1.
Тебе для отладки стоит иметь Online с контроллером.
Значит надо приобретать у AB карту на DH+ (накладно) или 1746-BAS-T (имеет порт RS-485 и дешевле Prosoft) или у Prosoft-Technology MVI46-GSC или MVI46-ADM (имеют порты RS-232 или RS-485).

IEC 101 это не сокращение от IEC 60870-5-101?

Prosoft-Technology производит MVI46-101M (Master) и MVI46-101S (Slave) для IEC 60870-5-101.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Nikolay
Частый гость
Частый гость


Зарегистрирован: Aug 07, 2007
Сообщения: 34
Рейтинг: +0/-0

СообщениеДобавлено: Чт 09 Авг, 2007 10:57:21    Заголовок сообщения: Ответить с цитатой

Да, полное название протокола - IEC 60870-5-101.

В состав моего контроллера входят:
- CPU SLC 5/04
- ком. модуль MVI46-101M (Master)
- и модули I/O

DF-1, DH+ - что такое в описании к CPU есть, честно что это пока для меня загадка.
Отлаживаю в Online. Одновременно общаюсь с эмулятором Sicam'a.

Мне эту работу из другого отдела перекинули, там их программист уволился. Сделано мало. Вопросов куча. До этого я только микроконтроллерами PIC от Microchip занимался.

Железо уже было выбрано до меня.
Также была написана тестовая програмка для одного элемента. Я по ней со всем разбираюсь.

Что такое CH0 () и категория ASCII пока незнаю Sad, но буду искать.
Отправить и принять команду получается. Но чуствую все не так просто. Следует еще разобраться с потверждением получения команды, ее выполнения, и т.д..


Да, пожалуй для написания общего алгоритма следует хорошенько разобраться с Sicam.
Создам-ка отдельную тему по общению с Sicam Idea
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dv_
Эксперт
Эксперт


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

СообщениеДобавлено: Чт 09 Авг, 2007 11:46:11    Заголовок сообщения: Ответить с цитатой

Nikolay писал(а):
...- ком. модуль MVI46-101M (Master)


У тебя все Ok. Online редактирование штука мощная.

CH0 - порт RS-232, протокол можно выбрать.
CH1 - коммуникационный порт, для SLC фиксирован (в твоем DH+)

DF-1 - открытый протокол, имеет подварианты.

Помни про коварство инструкции OTE, при косвенной (индексной) адресации.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Nikolay
Частый гость
Частый гость


Зарегистрирован: Aug 07, 2007
Сообщения: 34
Рейтинг: +0/-0

СообщениеДобавлено: Пт 10 Авг, 2007 8:40:27    Заголовок сообщения: Ответить с цитатой

Еще раз спасибо за инфо про адресацию. Good
Протестил возможности косвенной реализации - работает.
Два элемента управляются единым алгоритмом. Одна подпрограмма, в которой вместо номеров битов стоят переменные (слова из массива N17), перед ее вызовом лишь меняю значения этих переменных(N17).

dv_ писал(а):
Внимание на использование инструкций OTE при косвенном и индексном методе - адрес на который идет ссылка должен существовать.

Ради интереса Very Happy попробовал номер бита (который хранится в N17:1) задать равным 255 - который неопределен. При выполнений на CPU горит FLT -"ошибка". И это происходит при обращении к нему (биту) любой командой не только OTE, но и OTL и OTU. Что в принципе логично.
Единственный подвох в команде OTE в том, что она выполняется даже если условие перед ней не выполнилось(только результат разный либо бит уст. в 1, либо в 0).
Я правильно понял?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dv_
Эксперт
Эксперт


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

СообщениеДобавлено: Пт 10 Авг, 2007 9:16:50    Заголовок сообщения: Ответить с цитатой

Nikolay писал(а):
[Ради интереса Very Happy попробывал номер бита (который хранится в N17:1) задать равным 255 - который неопределен. При выполнений на CPU горит FLT -"ошибка". И это происходит при обращении к нему (биту) любой командой не только OTE, но и OTL и OTU.

Правильно так и должно быть.
Но в OTE есть "подпольное действие".
Сделай три опыта с программой в одну строку и сравни:
1) LES N17:1 255 OTL B3:0/[N17:1]
2) LES N17:1 255 OTU B3:0/[N17:1]
3) LES N17:1 255 OTE B3:0/[N17:1]

B3:0 замени на свой файл данных

Только 3-ем случае будет FLT при N17:1=255 (этого бита нет).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Nikolay
Частый гость
Частый гость


Зарегистрирован: Aug 07, 2007
Сообщения: 34
Рейтинг: +0/-0

СообщениеДобавлено: Пт 10 Авг, 2007 10:41:48    Заголовок сообщения: Извиняюсь Ответить с цитатой

В столовую позвали - сообщение не дописал. Smile По возращении подредактировал. Не знаю застал ли ты следущие строки:
Я писал(а):
Единственный подвох в команде OTE в том, что она выполняется даже если условие перед ней
не выполнилось(только результат разный либо бит уст. в 1, либо в 0).
Я правильно понял?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dv_
Эксперт
Эксперт


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

СообщениеДобавлено: Пт 10 Авг, 2007 14:49:58    Заголовок сообщения: Ответить с цитатой

Цитата:
Единственный подвох в команде OTE в том, что она выполняется даже если условие перед ней
не выполнилось(только результат разный либо бит уст. в 1, либо в 0). Я правильно понял?[/

Правильно! Не зависимо от состояния цепочки идет обращение к биту - поэтому адрес должен существовать.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dv_
Эксперт
Эксперт


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

СообщениеДобавлено: Пт 10 Авг, 2007 14:50:09    Заголовок сообщения: Ответить с цитатой

Цитата:
Единственный подвох в команде OTE в том, что она выполняется даже если условие перед ней
не выполнилось(только результат разный либо бит уст. в 1, либо в 0). Я правильно понял?[/

Правильно! Не зависимо от состояния цепочки идет обращение к биту - поэтому адрес должен существовать.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов 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.133 секунды
/n