Главная   Downloads   Разное  
FAQ     Поиск   Регистрация   Вход 
Текущее время: Чт мар 28, 2024 23:41

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




Начать новую тему Ответить на тему  [ 22 сообщений ]  На страницу 1, 2  Вперёд
Автор Сообщение
 Заголовок сообщения: Отправка сообщений из CX-Programmer.
СообщениеДобавлено: Ср май 06, 2009 09:07 
Не в сети

Регистрация: Вт янв 20, 2009 16:22
Сообщения: 13
Доброе время суток!

Мне надо вывисти сообщение на дисплэй панели, допустим при срабатывании автоматического выключателя QF1. Для этого я рисую РКЛ схему с контактом выключателя в начале цепи и блоком "New PLC Instruction" в конце. В блоек пишу функцию MSG(046) и мне предлагают ввести номер сообщения N и M:первое слово сообщения.

Такой вопрос: Я создал переменную строкового типа, как в нее записать сообщение (допустим: "Сработал автомат QF1", я не думаю что будет выводится комент к переменной) если сообщения вобще выводятся таким метотом.
Вобщем:
1. Где записяваются тексты сообщений (память или переменная) и каким образом?
2. Где задаётся номер сообщения?
3. М:первое слово сообщения - что оно такое и с чем его едят?

P.S.
Я ниразу не сталкивался с написанием програм для ПЛК, и ассэмблера тоже не знаю, но необходимость заставляет заняться этим, было бы неполхо услышать ответ на доступном русском языке для чайников.
Заранее всем спасибо!


В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср май 06, 2009 10:17 
Не в сети
Аватара пользователя

Регистрация: Пт сен 22, 2006 13:17
Сообщения: 175
Откуда: Novokuznetsk
Самый простой вариант:
Допустим сигнал с автомата подключен ко входу с адресом 0.00
По отсутстию бита в адресе 0.00 ставим инструкцию OUT в адрес W0.00
В программе панели пишется текстовый блок (label) "Отключен автомат".
Далее ставится условия видимости данной строки по условию, что бит по адресу W0.00 в контроллере "ON".


В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср май 06, 2009 12:48 
Не в сети

Регистрация: Вт янв 20, 2009 16:22
Сообщения: 13
Alex писал(а):
Допустим сигнал с автомата подключен ко входу с адресом 0.00

Минимальный адрес 0.01 (как вы подключаете прибор ко входу с адресом 0.00 для меня загадка).
Alex писал(а):
По отсутстию бита в адресе 0.00

Пробовал сделать инсрукцию для адреса 0.01, просит вторым параметром ввести бит, объясните чтоэто за бит и его назначание.
Alex писал(а):
ставим инструкцию OUT в адрес W0.00

Почемуто вместо OUT он мне пишет OUTB и еще вопрос почему W0.00 что означает это W?
Alex писал(а):
В программе панели пишется текстовый блок (label) "Отключен автомат".
Далее ставится условия видимости данной строки по условию, что бит по адресу W0.00 в контроллере "ON".

Как задать это условие? в Delphi есть свойство Visible которое можно задать как False, тут я такого не вижу да и само условие где задается?
И всеже мне кажется с появлением и пропаданием Label не очень удобный вариант, например если у меня программа выводит порядка 100-150 различных сообщений, писать для каждого свой Label... Може есть возможность хранить в програме переменные с готовыми сообщениями и выводить подобно дэлфи "Label1.Text:=Msg1"?

P.S.
Извеняюсь за ряд глупых вопросав, я профан в этой теме!

И еше вопрос есть ли в дизайнэре компонент на подобии Memo или RechEdit с работающим скробаром?


В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср май 06, 2009 13:39 
Не в сети
Аватара пользователя

Регистрация: Пт сен 22, 2006 13:17
Сообщения: 175
Откуда: Novokuznetsk
Давайте начнем по-порядку:
1. Какой контроллер?
2. Что за панель?

Цитата:
Минимальный адрес 0.01 (как вы подключаете прибор ко входу с адресом 0.00 для меня загадка).

Например для CJ/CS адреса дискретных входов/выходов располагаются в зоне памяти CIO. Соответственно: 1 вход(или выход) CIO 0.00, 2 вход(или выход) CIO 0.01 и т.д.
Цитата:
Пробовал сделать инсрукцию для адреса 0.01, просит вторым параметром ввести бит, объясните чтоэто за бит и его назначание.

Не инструкцию, а "закрытый контакт" для данного бита.
Цитата:
Почемуто вместо OUT он мне пишет OUTB и еще вопрос почему W0.00 что означает это W?

Можно воспользоваться OUTB (это инструкция для областей памяти, где нельзя обратиться напрямую к битам). Я неправильно выразился, имел ввиду "Coil".
Цитата:
Как задать это условие? в Delphi есть свойство Visible которое можно задать как False, тут я такого не вижу да и само условие где задается?

Если разговор идет про панели Omron, то у объекта Label есть много параметров, в том числе и этот. Достаточно поставить галочку в нужном месте.
Цитата:
всеже мне кажется с появлением и пропаданием Label не очень удобный вариант, например если у меня программа выводит порядка 100-150 различных сообщений, писать для каждого свой Label... Може есть возможность хранить в програме переменные с готовыми сообщениями и выводить подобно дэлфи "Label1.Text:=Msg1"?

А если будет несколько сообщений одновременно? Допустим 50? и что тогда? куда смотреть? как они будут отображаться.
А в контроллере сколько это будет занимать памяти?
Конечно каждый делает по своему желанию и усмотрению, можно и так сделать.
Так же в Label есть функция читать текст сообщения из текстового файла. Можно этим воспользоваться.

Я рассказываю как сам делаю. Т.е. на основном видеокадре изображения агрегатов и общая информация. По нажатию на агрегат появляется окно именно с его параметрами: отключен автомат, нажата кнопка стоп и т.д.


В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср май 06, 2009 14:29 
Не в сети

Регистрация: Вт янв 20, 2009 16:22
Сообщения: 13
Контроллер CJ1M панэлька NS10.
Программер нумерует модули входа с 0000 а сами входа с1 тоесть у меня на первом модуде входов первый вход имеет адрес 0.01.

По поводу Label его связи с контактами и видимостью на дисплэе я разобрался, спасибо за совет. Правда свойство тут называется не Visible a выставить параметр Display Inderect + адрес контакта на который он реагирует.

По поводй множетва сообщений, в том то и дело что у меня их будет много поэтому и спрашиваю про наличие компонентов на подобии Memo и RechEdit.

Память? с этой проблемой я еще не сталкнулся и надеюсь она обойдет меня стороной. )) Я просто понятия не имею сколька эта прогрпмма тянуть будет, работаю в слепую методом тыка...


В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср май 06, 2009 14:52 
Не в сети
Аватара пользователя

Регистрация: Пт сен 22, 2006 13:17
Сообщения: 175
Откуда: Novokuznetsk
Цитата:
Программер нумерует модули входа с 0000 а сами входа с1 тоесть у меня на первом модуде входов первый вход имеет адрес 0.01.

И, все-таки, я настаиваю на том, что первый вход на первом модуле входов имеет адрес 0.00. Соответственно, если модуль на 8 входов, то с 0.00 по 0.07, если 16, то с 0.00 по 0.15 и т.д.
Цитата:
По поводй множетва сообщений...

Можно сделать по-разному в терминале, но точно не в контроллере формировать сообщения.


В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср май 06, 2009 15:50 
Не в сети

Регистрация: Пт сен 22, 2006 13:44
Сообщения: 391
Откуда: Москва
Tempest писал(а):
По поводй множетва сообщений, в том то и дело что у меня их будет много поэтому и спрашиваю про наличие компонентов на подобии Memo и RechEdit.


Посмотрите в Designer объекты и их свойства: Alarm/Event Display и Alarm/Event Summary & History.


В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт май 07, 2009 14:04 
Не в сети

Регистрация: Вт янв 20, 2009 16:22
Сообщения: 13
Andy писал(а):
Посмотрите в Designer объекты и их свойства: Alarm/Event Display и Alarm/Event Summary & History.


Ползпые компоненты спасибо, давольно неплохой вариант вывода сообщений.

Но всеже может кто то объяснит мне как правильно пользоваться командой MSG(046) что то я не поладил с ней, неполучается вывисти месагу при её помощи.


В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт май 07, 2009 14:23 
Не в сети
Аватара пользователя

Регистрация: Пт сен 22, 2006 13:17
Сообщения: 175
Откуда: Novokuznetsk
Из руководства по программированию:
"По команде MSG(046) осуществляется чтение шестнадцати слов в расширенном коде ASCII и вывод сообщения в периферийное устройство, например Пульт программирования."


В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт май 08, 2009 08:39 
Не в сети

Регистрация: Вт янв 20, 2009 16:22
Сообщения: 13
Alex писал(а):
Из руководства по программированию:
"По команде MSG(046) осуществляется чтение шестнадцати слов в расширенном коде ASCII и вывод сообщения в периферийное устройство, например Пульт программирования."


Это я уже понял, можно подробнее описать ее работу? А лучше примечик её использования!


В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт май 08, 2009 11:46 
Не в сети
Аватара пользователя

Регистрация: Пт сен 22, 2006 13:17
Сообщения: 175
Откуда: Novokuznetsk
Вот простой пример:
записываем значения в адреса памяти начиная с D3000 (можно через команду MOV, либо напрямую в память)
D3000 #1546
D3001 #3120
D3002 #4F46
D3003 #4620

Пишем след программку:
Условие на входе в инструкцию ставим P_On, затем саму инструкцию MSG(046) с параметрами 1 (номер сообщения) и D3000 (первое слово сообщения).
Заливаем программу в контроллер, переключаем в режим монитор, и теперь, ВНИМАНИЕ!!!!, подключаем консоль программирования CQM1-PRO01-E (у меня такая под рукой оказалась) к контроллеру и видим следующее сообщение:
MSG
QF1 OFF


Отредактировал Alex. Дата редактирования: Пт май 08, 2009 11:48.

В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт май 08, 2009 11:47 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3510
Откуда: Москва
MSG(046) устаревшая команда для консоли программирования которой сто лет никто не пользуется, забудь про эту команду.


В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт май 08, 2009 13:54 
Не в сети

Регистрация: Вт янв 20, 2009 16:22
Сообщения: 13
Alex писал(а):
Вот простой пример:
записываем значения в адреса памяти начиная с D3000 (можно через команду MOV, либо напрямую в память)
D3000 #1546
D3001 #3120
D3002 #4F46
D3003 #4620

Пишем след программку:
Условие на входе в инструкцию ставим P_On, затем саму инструкцию MSG(046) с параметрами 1 (номер сообщения) и D3000 (первое слово сообщения).
Заливаем программу в контроллер, переключаем в режим монитор, и теперь, ВНИМАНИЕ!!!!, подключаем консоль программирования CQM1-PRO01-E (у меня такая под рукой оказалась) к контроллеру и видим следующее сообщение:
MSG
QF1 OFF


Спасибо, теперь понятно.


В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт май 08, 2009 14:08 
Не в сети

Регистрация: Вт янв 20, 2009 16:22
Сообщения: 13
Олег писал(а):
MSG(046) устаревшая команда для консоли программирования которой сто лет никто не пользуется, забудь про эту команду.


Старое/новое я не в курсе. Наткнулся, сам не понял вот и спрашиваю. Просто пытаюсь разобраться с возможностями программы.


Ещё вопрос: Я тут заметил что к некоторым адресам приписывают буквы, например W0.00 или H0.00 что означают эти буквы или это просто адресв битов в памяти? тогда почему в закладке мэмори я не вижу записей и изменений при использовании, например Coil с таким адресом??


В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт май 08, 2009 14:53 
Не в сети
Аватара пользователя

Регистрация: Пт сен 22, 2006 13:17
Сообщения: 175
Откуда: Novokuznetsk
Буква - это обозначение зоны памяти. Только CIO зона пишется без букв. В остальных зонах написание букв обязательно. Подробно об областях памяти и их назначении см. Operation Manual.


В начало
 Профиль  
 
Показать сообщения за:  Сортировка  
Начать новую тему Ответить на тему  [ 22 сообщений ]  На страницу 1, 2  Вперёд

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


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

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


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

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