cpu13.ru - форум OMRON http://cpu13.ru/ |
|
Отправка сообщений из CX-Programmer. http://cpu13.ru/viewtopic.php?f=4&t=538 |
Страница 1 из 2 |
Автор: | Tempest [ Ср май 06, 2009 09:07 ] |
Заголовок сообщения: | Отправка сообщений из CX-Programmer. |
Доброе время суток! Мне надо вывисти сообщение на дисплэй панели, допустим при срабатывании автоматического выключателя QF1. Для этого я рисую РКЛ схему с контактом выключателя в начале цепи и блоком "New PLC Instruction" в конце. В блоек пишу функцию MSG(046) и мне предлагают ввести номер сообщения N и M:первое слово сообщения. Такой вопрос: Я создал переменную строкового типа, как в нее записать сообщение (допустим: "Сработал автомат QF1", я не думаю что будет выводится комент к переменной) если сообщения вобще выводятся таким метотом. Вобщем: 1. Где записяваются тексты сообщений (память или переменная) и каким образом? 2. Где задаётся номер сообщения? 3. М:первое слово сообщения - что оно такое и с чем его едят? P.S. Я ниразу не сталкивался с написанием програм для ПЛК, и ассэмблера тоже не знаю, но необходимость заставляет заняться этим, было бы неполхо услышать ответ на доступном русском языке для чайников. Заранее всем спасибо! |
Автор: | Alex [ Ср май 06, 2009 10:17 ] |
Заголовок сообщения: | |
Самый простой вариант: Допустим сигнал с автомата подключен ко входу с адресом 0.00 По отсутстию бита в адресе 0.00 ставим инструкцию OUT в адрес W0.00 В программе панели пишется текстовый блок (label) "Отключен автомат". Далее ставится условия видимости данной строки по условию, что бит по адресу W0.00 в контроллере "ON". |
Автор: | Tempest [ Ср май 06, 2009 12:48 ] |
Заголовок сообщения: | |
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 с работающим скробаром? |
Автор: | Alex [ Ср май 06, 2009 13:39 ] |
Заголовок сообщения: | |
Давайте начнем по-порядку: 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 есть функция читать текст сообщения из текстового файла. Можно этим воспользоваться. Я рассказываю как сам делаю. Т.е. на основном видеокадре изображения агрегатов и общая информация. По нажатию на агрегат появляется окно именно с его параметрами: отключен автомат, нажата кнопка стоп и т.д. |
Автор: | Tempest [ Ср май 06, 2009 14:29 ] |
Заголовок сообщения: | |
Контроллер CJ1M панэлька NS10. Программер нумерует модули входа с 0000 а сами входа с1 тоесть у меня на первом модуде входов первый вход имеет адрес 0.01. По поводу Label его связи с контактами и видимостью на дисплэе я разобрался, спасибо за совет. Правда свойство тут называется не Visible a выставить параметр Display Inderect + адрес контакта на который он реагирует. По поводй множетва сообщений, в том то и дело что у меня их будет много поэтому и спрашиваю про наличие компонентов на подобии Memo и RechEdit. Память? с этой проблемой я еще не сталкнулся и надеюсь она обойдет меня стороной. )) Я просто понятия не имею сколька эта прогрпмма тянуть будет, работаю в слепую методом тыка... |
Автор: | Alex [ Ср май 06, 2009 14:52 ] |
Заголовок сообщения: | |
Цитата: Программер нумерует модули входа с 0000 а сами входа с1 тоесть у меня на первом модуде входов первый вход имеет адрес 0.01. И, все-таки, я настаиваю на том, что первый вход на первом модуле входов имеет адрес 0.00. Соответственно, если модуль на 8 входов, то с 0.00 по 0.07, если 16, то с 0.00 по 0.15 и т.д. Цитата: По поводй множетва сообщений...
Можно сделать по-разному в терминале, но точно не в контроллере формировать сообщения. |
Автор: | Andy [ Ср май 06, 2009 15:50 ] |
Заголовок сообщения: | |
Tempest писал(а): По поводй множетва сообщений, в том то и дело что у меня их будет много поэтому и спрашиваю про наличие компонентов на подобии Memo и RechEdit.
Посмотрите в Designer объекты и их свойства: Alarm/Event Display и Alarm/Event Summary & History. |
Автор: | Tempest [ Чт май 07, 2009 14:04 ] |
Заголовок сообщения: | |
Andy писал(а): Посмотрите в Designer объекты и их свойства: Alarm/Event Display и Alarm/Event Summary & History.
Ползпые компоненты спасибо, давольно неплохой вариант вывода сообщений. Но всеже может кто то объяснит мне как правильно пользоваться командой MSG(046) что то я не поладил с ней, неполучается вывисти месагу при её помощи. |
Автор: | Alex [ Чт май 07, 2009 14:23 ] |
Заголовок сообщения: | |
Из руководства по программированию: "По команде MSG(046) осуществляется чтение шестнадцати слов в расширенном коде ASCII и вывод сообщения в периферийное устройство, например Пульт программирования." |
Автор: | Tempest [ Пт май 08, 2009 08:39 ] |
Заголовок сообщения: | |
Alex писал(а): Из руководства по программированию:
"По команде MSG(046) осуществляется чтение шестнадцати слов в расширенном коде ASCII и вывод сообщения в периферийное устройство, например Пульт программирования." Это я уже понял, можно подробнее описать ее работу? А лучше примечик её использования! |
Автор: | Alex [ Пт май 08, 2009 11:46 ] |
Заголовок сообщения: | |
Вот простой пример: записываем значения в адреса памяти начиная с D3000 (можно через команду MOV, либо напрямую в память) D3000 #1546 D3001 #3120 D3002 #4F46 D3003 #4620 Пишем след программку: Условие на входе в инструкцию ставим P_On, затем саму инструкцию MSG(046) с параметрами 1 (номер сообщения) и D3000 (первое слово сообщения). Заливаем программу в контроллер, переключаем в режим монитор, и теперь, ВНИМАНИЕ!!!!, подключаем консоль программирования CQM1-PRO01-E (у меня такая под рукой оказалась) к контроллеру и видим следующее сообщение: MSG QF1 OFF |
Автор: | Олег [ Пт май 08, 2009 11:47 ] |
Заголовок сообщения: | |
MSG(046) устаревшая команда для консоли программирования которой сто лет никто не пользуется, забудь про эту команду. |
Автор: | Tempest [ Пт май 08, 2009 13:54 ] |
Заголовок сообщения: | |
Alex писал(а): Вот простой пример:
записываем значения в адреса памяти начиная с D3000 (можно через команду MOV, либо напрямую в память) D3000 #1546 D3001 #3120 D3002 #4F46 D3003 #4620 Пишем след программку: Условие на входе в инструкцию ставим P_On, затем саму инструкцию MSG(046) с параметрами 1 (номер сообщения) и D3000 (первое слово сообщения). Заливаем программу в контроллер, переключаем в режим монитор, и теперь, ВНИМАНИЕ!!!!, подключаем консоль программирования CQM1-PRO01-E (у меня такая под рукой оказалась) к контроллеру и видим следующее сообщение: MSG QF1 OFF Спасибо, теперь понятно. |
Автор: | Tempest [ Пт май 08, 2009 14:08 ] |
Заголовок сообщения: | |
Олег писал(а): MSG(046) устаревшая команда для консоли программирования которой сто лет никто не пользуется, забудь про эту команду.
Старое/новое я не в курсе. Наткнулся, сам не понял вот и спрашиваю. Просто пытаюсь разобраться с возможностями программы. Ещё вопрос: Я тут заметил что к некоторым адресам приписывают буквы, например W0.00 или H0.00 что означают эти буквы или это просто адресв битов в памяти? тогда почему в закладке мэмори я не вижу записей и изменений при использовании, например Coil с таким адресом?? |
Автор: | Alex [ Пт май 08, 2009 14:53 ] |
Заголовок сообщения: | |
Буква - это обозначение зоны памяти. Только CIO зона пишется без букв. В остальных зонах написание букв обязательно. Подробно об областях памяти и их назначении см. Operation Manual. |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа (Russia: MSK) |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |