Главная   Downloads   Разное  
FAQ     Поиск   Регистрация   Вход 
Текущее время: Пт окт 19, 2018 03:32

Часовой пояс: UTC + 3 часа (Russia: MSK)




Начать новую тему Ответить на тему  [ 5 сообщений ] 
Автор Сообщение
 Заголовок сообщения: C200HE CX-One 2.0 и как это все работает?
СообщениеДобавлено: Ср апр 02, 2008 05:19 
Не в сети

Регистрация: Пт мар 21, 2008 02:03
Сообщения: 5
Откуда: Canada
Жизнь заставила пересесть с Allen Bradley на Omron. Теперь за голову хватаюсь. Вроде все почти такое, но интерфейс программирования совсем непривычный. Ну вот как мне посмотреть в online состояние всех физических входов или выходов (у AB просто, открыл Input or Output и смотри на здоровье). А куда надо в CX-Programmer щелкнуть? Как работать с битами вроде разобрался (организация памяти у омрона пока совсем непонятна), а куда integer or real/float записывать и считывать? И вообще, есть какие-то правила хорошего тона в программировании на Omron? И есть ли какое-то вводное руководсто с описанием основных "идей" программирования (но только не на 700 страниц, такие у меня есть). У AB есть такие команды для работы с sequencer? Если машина в процессе цикла работает как-бы по шагам и после каждого шага надо проверять а открылось/закрылось то что хотелось то тут без этого SEQUENCER программа раздуется на порядок. Смотрел на команды омрона и ничего похожего не нашел. Зато нашел кучу команд напрочь отсуствующих у AB и их назначение не совсем понятно. А как в процессе работы программы построить графики мониторинга отдельных битов, входов, выходом и так далее. У AB есть такая закладка Trends, а что есть у Омрона? А как посмотреть на scan time CPU? Он что и в правду 120ms (8 циклов в секунду). Тогда навороченный C200H по скорости не лучше чем 200 долларовое smartrelay.
Для начала может кто-то в двух словах описать распределение памяти. Чем например адрес 5 отличается от 15 или 115 или 515? Куда integer запихивать? Что это за блоки DM и зачем они? Это как у сименса DB? А как работать с косвенными ссылками? Например в AB можно записать N10:[N12:5] а что у Омрона? А как работать с системным таймером? Мне нужно вытаскивать секунды, минуты, часы, дни, месяцы, года...

Вопросов уйма, если кому не лень пообщаться подкиньте ответов.

Спасибо.


В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 02, 2008 09:51 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3009
Откуда: Москва
C200 снят с производства несколько лет назад, цикл в 120ms вполне возможен, если прогу писали не задумываясь о скорости контроллера. "Навороченным" его можно было назвать лет 15 назад
Короткие инструкции есть в "Файлах"

ссылки на остальные в http://cpu13.ru/viewtopic.php?t=15
Почитать их придётся, в W303/W322 подробно описаны области памяти контроллера и их свойства.(иши мануалы на русском) DM например область памяти которая сохраняет своё состояние после отключения питания, но доступ к памяти возможен только как к словам, как к битам нельзя. Наверно первое с чего нужно начинать, это разобратся со свойствами разных областей памяти, там и найдёшь данные календаря, время цикла и ещё много чего.
float этот контроллер не поддерживает, наверно раньше это было не модно. Но про остальные типы данных опять придётся почитать. Какие типы данных используешь и где их размещаешь, это лично на твоё усмотрение. Фактически программа в контроллере работает с адресами памяти а не с именами символов. Символы служат только для удобства програмирования и мониторинга (чтобы формат данных контроллера при просмотре отобразить в понятном для нас десятичном виде)


Для просмотра состояния входов или любой области памяти есть Watch Window, перетаскиваешь туда из программы или таблицы символов то что тебе нужно.

графики реализованы совсем по другому, команда меню Data Trace, данные собираются прямо в контроллере с заданным интервалом, не совсем удобно, зато можно лепить на высокой скорости и не терять данные из-за скорости связи.

Вместо SEQUENCER возможно подойдут подпрограммы или функции переходов JMP и JME, облегчают програмирование и можно сократить время цикла.


Отредактировал Олег. Дата редактирования: Вс сен 06, 2009 11:30.

В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт апр 03, 2008 06:03 
Не в сети

Регистрация: Пт мар 21, 2008 02:03
Сообщения: 5
Откуда: Canada
Спасибо!

По первой ссылке открывается длиннющий список файлов. С какого начинать изучение?
Можно поподробнее с календарем. Откуда брать часы и дни? Как реализовать косвенную адресацию к памяти? Как узнать средний scan time на PLC? Уж больно медленно все шевелится.

Тут вот пришлось еще и в старую панель NT залезть. Ужас какой, ну прямо как старенький людительский одноплатный синклер-компьютер. Только 8 цветов из которых два это белый и черный. Шрифт ужастный. Достались мне можно сказать музейные экспонаты. А ведь оборудованию не больше 8 лет.


В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт апр 03, 2008 08:57 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3009
Откуда: Москва
contents/files.php?&dir=n20

смотрим список глобальных символов на этот контроллер в программере.
P_Hour_Date................. UINT_BCD......... AR19........ Hours (00-07) & Date (08-15)
P_Month_Year............... UINT_BCD.......... AR20........ Month (00-07) & Year (08-15)
P_Sec_Min.................... UINT_BCD.......... AR18......... Seconds (00-07) & Minutes (08-15)
P_Cycle_Time_Value....UINT_BCD..........AR27..........Present Scan Time

Из мануала:

Косвенная адресация
Как правило, когда содержимое слова из области данных задано для команды, команда работает непосредственно с содержимым слова. Например, допустим, что команда MOV работает с DM 0100 как первым операндом и LR 20 как вторым операндом. При выполнении команды содержимое DM 0100 перешлется в LR 20.
Замечание Расширенные DM нельзя использовать для косвенной адресации.
Однако возможно использовать косвенные адреса в качестве операндов для многих команд. для указания косвенного адреса перед адресом операнда ставится *DM. Когда задана косвенная адресация, содержимое операнда содержит не данные, с которыми будет проводиться операция. Вместо этого там содержится адрес другого слова DM, в котором содержатся данные, которые будут использоваться в команде. Если *DM 0100 используется в следующем примере, а содержимое DM 0100 = 0324, тогда *DM 0100 фактически означает, что в качестве операнда следует использовать содержимое DM 0324, и содержимое DM 0324 будет передано в LR 00.


В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт апр 03, 2008 13:24 
Не в сети

Регистрация: Пт мар 21, 2008 02:03
Сообщения: 5
Откуда: Canada
Спасибо за помощь. Вот сегодня посмотрю что получится.


В начало
 Профиль  
 
Показать сообщения за:  Сортировка  
Начать новую тему Ответить на тему  [ 5 сообщений ] 

Часовой пояс: UTC + 3 часа (Russia: MSK)


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Переход:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская документация по phpBB 3