Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Программирование EasyTools
Диалог специалистов АВОК > ОБЩИЙ ФОРУМ > Автоматизация систем
begem
Уважаемые учатники форума. Поделитесь пожалуйста опытом, если кто работал с контроллерами РСО2 Carel.
Вопрос в том, что при загрузке программы в контроллер подвисает экран. Неактивны все кнопки. Сам контроллер на внешние раздражители реагирует, во всяком случае входы видит. Заранее спасибо.
mike-altai
Цитата(begem @ 3.3.2008, 19:41) [snapback]228015[/snapback]
... Вопрос в том, что при загрузке программы в контроллер подвисает экран.

Опишите подробнее процесс загрузки программы в контроллер. Контроллер со встроенным экраном, или с внешней панелью PGD? Какие сообщения выдаёт WinLoad?
Если выводится сообщение об успешной загрузке, то необходимо закрыть окно WinLoad`а. После этого контроллер загрузится с новой программой.
begem
Дисплей не PGD. Отдельный 4-х строчный терминал. Пррограмма загружается в контроллер корректно, да и загружаю не в первый раз. rolleyes.gif Более рання версия работает без таких ошибок, только проверил. Постепенно удаляя все дополнения которые сделал позже и загружая, добился что ошибка ушла. Выходит дело не в процессе загрузки . а в алгоритме программы, а в этом вы уже не поможете huh.gif Ну . думаю, повозившись еще денек найду где ошибся.
Кстати , это не единственный вопрос . Есть еще несколько вопросов. Но опять же по реализации алгоритма. Например, недельная программа. С помощью каких атомов или макроблоков ее сделать?
Спасибо за помощь.
mike-altai
Цитата(begem @ 3.3.2008, 23:36) [snapback]228069[/snapback]
... Например, недельная программа. С помощью каких атомов или макроблоков ее сделать?

Включение/выключение в назначенное время можно сделать на семи (по количеству дней) макроблоках FASCIA_O. День недели определяется с помощью макроблоков DATA И DAY_WEEK. Будут вопросы - напишу подробнее.
begem
Выяснил. Контроллер зависал по причине одной системной переменной Serial0 protocol. Удалил, поставил serial1 protocol. Только еще бы разобраться почему так произошло mad.gif Насчет недельной программы , спасибо, посмотрю.
Еще вопрос, если можно. аварии делал не с помощью специализированных масок. Использовал обычные. В результате:
допустим по цифровому входу авария прошла авария, алгоритм атроботал, зажглась надпись, нажимаю еще раз на ALARMS - Задействует маску, где пишется , что нет аварии. При этом авария еще не сброшена. Видимо что-то в коде прописать забыл, а вот что - не пойму.
mike-altai
Цитата(begem @ 4.3.2008, 13:06) [snapback]228173[/snapback]
... Видимо что-то в коде прописать забыл, а вот что - не пойму.

У меня в Mask code написано:

enable(al_frost,x)
key( Enter )=
{
set(res_al_p,x)
}

где: res_al_p - переменная, прицепленная ко входу R атома SR. В 1 она устанавливается по кнопке Enter, сбрасывается атомом PULSE через секунду после установки.
На вход S поступает сигнал аварии с циф. входа, на выходе атома SR формируется авария al_frost.
begem
У меня есть одна общая маска. Нужно сделать вот что: при нажатии кнопки ENTER если есть какая-то авария , то показать именно ту аварию, которая активна.
begem
Спасибо. С авариями получилось так, как хотел. Немного громоздко, но все-же получилось. clap.gif теперь возьмусь за недельную программу.
mike-altai
Я делаю на каждую аварию собственную маску. При нажатии кнопки <Alr> осуществляется переход на первую аварийную маску. При этом отображается маска с активной аварией. Если аварий несколько, то просмотреть все можно, нажимая кнопки Вверх/Вниз. Сброс аварии по кнопке <Ent>.
begem
Делал также, но одних получилось, а в других нет. Как ни силился, был косяк, о котором я писал. Сейчас создал одну маску через которую запускаются все аварии и все прописал в ней.
Авария:
1. Виртуальный ключ.
2. По этому ключу переход к определенной маске.
3. В маске ENABLE при такой-то переменной.
Ну и сброс аварии. Это ВСЕ? Или я все таки что-то пропустил?
И еще вопрос. В маске выбираю вариант работы насоса. Есть 3 варианта. Но принажатии кнопки вниз или вверх после последней авари идет пустое поле. Т.е. не получается круг. Цикл. Напишите пож. Как организовать.
mike-altai
Цитата(begem @ 4.3.2008, 18:32) [snapback]228289[/snapback]
...В маске выбираю вариант работы насоса. Есть 3 варианта. Но принажатии кнопки вниз или вверх после последней авари идет пустое поле. Т.е. не получается круг. Цикл. Напишите пож. Как организовать.

Три варианта - это числа 0, 1, 2. Создаёте переменную N (Integer) в T - памяти, устанавливаете свойство Field's high limit =2, в Field code создаёте field instruction: assint=("Mode1","Mode2","Mode3") Названия режимов работы насоса пишите свои. Пустого поля не будет smile.gif
Цитата
Авария:
1. Виртуальный ключ.
2. По этому ключу переход к определенной маске.
3. В маске ENABLE при такой-то переменной.
Ну и сброс аварии. Это ВСЕ? Или я все таки что-то пропустил?

Я не создаю виртуальный ключ для перехода к определённой маске. Просто в Global code прописываю:
key(Alarm)=
{
goto_mask(m_al_frost)
}



m_al_frost - первая маска аварии. Если эта авария не активна, отображается другая маска (с активной аварией), либо маска m_no_alarm, если активных аварий нет.
begem
Спасибо большое mike-altai. Как только прочитал про насос, так сразу понял. Я искал что-то прописанное в коде, а нужно было просто установить ограничения. dry.gif Хотя вроде необязательно в Т памяти.
приступаю к недельной программе. rolleyes.gif
begem
И еще вопрос. программу нужно залить в контроллер , подключенный к системе диспетчеризации. Мне нужно только отослать переменные? Или прописать что-то еще?
mike-altai
Цитата(begem @ 5.3.2008, 15:12) [snapback]228526[/snapback]
И еще вопрос. программу нужно залить в контроллер , подключенный к системе диспетчеризации. Мне нужно только отослать переменные? Или прописать что-то еще?

Не понял вопроса.
1. Вы сами создаете программу, или правите кем-то созданную?
2. Какая используется диспетчеризация: PlantVisor, WebGate, OPC-сервер... либо что-то ещё?
Переменные можно как отсылать, так и принимать от системы диспетчеризации. Для этого используются атомы RAOUT, RAIN, RDOUT и т.д.
Адрес контроллера в сети определяется переменной IDENT. Посмотрите как это реализовано в демонстрационном проекте.
begem
Программу создаю сам. Но с диспетчеризацией дела не имел, поэтому прошу извинить за некоррктный вопрос. Насчет того какая диспетчеризация - узнаю. Просто я думал, что не имеет особой разницы куда отсылать.
mike-altai
Цитата(begem @ 5.3.2008, 17:28) [snapback]228582[/snapback]
Программу создаю сам.

Ну, это нормально smile.gif
Я думал, что Вы модернизируете какую-то систему с готовой диспетчеризацией. Потому и попросил уточнения.
begem
Есть ли такой атом или макроблок, который при поступлении единицы на цифровой вход, передавал аналоговую переменную со второго входа на выход. Если 0, то ничего не проходит? Или, допустим, при получении на вход переменной равной 1,2,3 и т.д открывал 1.2,3 и т.д аналоговые входы? Почему-то не нашел.
Все это идет из недельной програмы, выдвигаются новые требования. rolleyes.gif Нужно сделать так ,чтобы можно было задать время работы и уставку на это время. Вот и ищу варианты.
mike-altai
Цитата(begem @ 6.3.2008, 13:07) [snapback]228826[/snapback]
Есть ли такой атом или макроблок, который при поступлении единицы на цифровой вход, передавал аналоговую переменную со второго входа на выход. Если 0, то ничего не проходит? ...

Это называется мультиплексор.
Атом MPX для аналоговых переменных.
Атом MPXD для цифровых.
begem
Извините, в первойчасти я неплавильно выразился. Про мультиплексор я, конечно, знаю. И пытался сделать на нем, но не получилось. mad.gif После мультиплексоров в количестве соответствующим дня недели выходят сигналы, которые потом нужно как-то объеденить и отдать как уставку. Но как их оъеденить? Атомы "и" и "или" не подходят. Вот поэтому и спрашиваю "Или, допустим, при получении на вход переменной равной 1,2,3 и т.д открывал 1.2,3 и т.д аналоговые входы?"
И вот еще для меня вопрос. DAYWEEK сегодня выдает 4. А это по описанию среда rolleyes.gif Или может описание старое. И сделали нумерацию с понедельника.?
mike-altai
Посмотрите описание макроблока FASCE_4V. Похоже, это то, что Вам надо.
Воскресенье в макроблоке WEEK_DAY =0, Понедельник =1 и т.д.
ЗЫ:
С дистрибутивом EasyTools поставляются примеры проектов. Поищите на диске.


begem
По описанию у DAYWEEK нет 0 и начинается с единицы, заканчивается на 7. В реале- от 0 до 6 rolleyes.gif Спасибо , с этим разобрался. Я и раньше присматривался к FALCE_4V, но он не подходит. У него нет входа, по которому он включается в определенный день недели. Да и уставка мне нужна всего одна на день. Все-таки как-то придется без готового блока.
begem
А вот по диспетчеризации. Протокол MODBUS, 9600, номер в сети тоже знаю. Это все указал для соответствующих атомов. Ну вот я передаю температуру(неважно какую). Мне не опнятно как он там определяет, какая это температура или это может вообще не температура. Он видит саму переменную или есть номер по которому он идентифицирует,. Например 1-Т приточного воздуха?
mike-altai
Я с MODBUS не работал. Делаю диспетчеризацию на PlantVisore. В Плантвизоре все переменные прописываются в текстовом файле с расширением *.var Каждой переменной задаётся имя, тип, и адрес (индекс). К переменной в скриптах можно обращаться по имени, либо по индексу.
Вы разрабатываете программу для готовой системы диспетчеризации? Для какой конкретно?
begem
а вот какая именно диспетчеризация,еще не выяснил rolleyes.gif

Вот вроде сообразил, как сделать уставки, но не перекинуть изображение листа на форум.
mike-altai
Цитата(begem @ 6.3.2008, 17:01) [snapback]228958[/snapback]
А вот по диспетчеризации. Протокол MODBUS, 9600, номер в сети тоже знаю.

Цитата(begem @ 6.3.2008, 17:26) [snapback]228968[/snapback]
а вот какая именно диспетчеризация,еще не выяснил rolleyes.gif

1. У Вас сколько контроллеров в системе диспетчеризации?
2. При чём здесь MODBUS?
3. Кто будет мастером в сети?

Цитата(begem)
Вот вроде сообразил, как сделать уставки, но не перекинуть изображение листа на форум.

Наверное что-то подобное получилось smile.gif
begem
Чувсвую себя древним как мамонт tomato.gif Больше наверно спрашивать не буду, только последнее: может есть какая-то литература по диспетчеризации в общем виде. В библиотеку зашел, понравилась книга, но стоимость порядка 1500р. Может есть какие-нить ссылки?
ttt
Если говорить о Карел и модбасе, то надо знать один документ от Карела.
Нажмите для просмотра прикрепленного файла
begem
Спасибо. Правда, я имел ввиду что-то общее. Но с этим как-нить сам тогда разберусь. rolleyes.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.