Профиль должен быть заполнен на русском языке кириллицей. Заполнение профиля заведомо ложными или некорректными данными - причина возможного отказа в регистрации на форуме.

ПЛК. Как запраграмировать аналоговый вход?

PLC, прочие контроллеры, промышленные компьютеры, операторские панели

Автор темы
kaluchy
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 02 сен 2010, 12:09
Ф.И.О.: Николай

ПЛК. Как запраграмировать аналоговый вход?

Сообщение kaluchy » 02 сен 2010, 13:07

Такая ситуация, нужно собрать шкаф для регулирования температуры воды с диапазоном +5..25 градусов (диапазон может быть увеличен). Датчик температуры имеет унифицированный сигнал 4-20mA с диапазоном 0..180 градусов. Как это сделать программно? Контроллер Овен ПЛК150. Дискретные я делал и в курсе про них а вот аналоги не совсем. Знаю только что нужно в программе как то задать что 0 градусов это 4 mA, а 25 - 20mA. Может какой нибудь примерчик в пдф или как не знаю помогите. :thankyou:


abbat81
освоился
освоился
Сообщения: 238
Зарегистрирован: 30 май 2009, 19:21
Ф.И.О.: Науменко Александр Сергеевич
Откуда: Шатура
Поблагодарили: 1 раз
Контактная информация:

Re: ПЛК. Как запраграмировать аналоговый вход?

Сообщение abbat81 » 02 сен 2010, 13:49

kaluchy писал(а):Такая ситуация, нужно собрать шкаф для регулирования температуры воды с диапазоном +5..25 градусов (диапазон может быть увеличен). Датчик температуры имеет унифицированный сигнал 4-20mA с диапазоном 0..180 градусов. Как это сделать программно? Контроллер Овен ПЛК150. Дискретные я делал и в курсе про них а вот аналоги не совсем. Знаю только что нужно в программе как то задать что 0 градусов это 4 mA, а 25 - 20mA. Может какой нибудь примерчик в пдф или как не знаю помогите. :thankyou:

Не совсем так, датчик имеет диапазон от 0 до 180, значит при 0 градусов- 4мА, при 180 градусах- 20мА.
Программно рассчитывается по следующей формуле:

значение= (верхний предел измерений в технических единицах - нижний предел измерений)/разрешение аналогового модуля + нижний предел измерений


Михайло
почётный участник форума
почётный участник форума
Сообщения: 2212
Зарегистрирован: 10 ноя 2009, 04:58
Ф.И.О.: Толмачев Михаил Алексеевич
Благодарил (а): 1 раз
Поблагодарили: 22 раза
Контактная информация:

Re: ПЛК. Как запраграмировать аналоговый вход?

Сообщение Михайло » 02 сен 2010, 14:06

К дискретным сигналам обычно обращаются так: Ix.y, Mx.y, Qx.y, а к аналоговым через двойные слова типа IWx, MWx, QWx. Переводить миллиамперы в градусы нет необходимости, т.к. контроллер оперирует в своих единицах, называемых Integer (целочисленный тип данных). Это означает, что 0 градусов будет соответствовать 4 мА и числу 0 в ПЛК, а 180 градусов - 20 мА - числу 16384 или 65535 (читайте мануал к ПЛК).

Можете, конечно, перевести из формата Integer в формат Real, тогда сможете оперировать в любых единицах - хоть в миллиамперах, хоть в градусах. При сложных математических вычислениях это имеет смысл.

Аватара пользователя

Никита
почётный участник форума
почётный участник форума
Сообщения: 2493
Зарегистрирован: 20 янв 2010, 22:23
Ф.И.О.: Никита
Откуда: Мурманск
Благодарил (а): 2 раза
Поблагодарили: 13 раз
Контактная информация:

Re: ПЛК. Как запраграмировать аналоговый вход?

Сообщение Никита » 02 сен 2010, 14:15

Такая ситуация, нужно собрать шкаф для регулирования температуры воды с диапазоном +5..25 градусов (диапазон может быть увеличен). Датчик температуры имеет унифицированный сигнал 4-20mA с диапазоном 0..180 градусов. Как это сделать программно? Контроллер Овен ПЛК150. Дискретные я делал и в курсе про них а вот аналоги не совсем. Знаю только что нужно в программе как то задать что 0 градусов это 4 mA, а 25 - 20mA. Может какой нибудь примерчик в пдф или как не знаю помогите.

ПЛК150 - это если не ошибаюсь, Codesys? Расскажите подробнее что регулируется и как - можно и примерчик набросать вечером будет. Вообще скорей всего на диске от контроллера с кодесисом подобная информация присутствует, а у овеновцев обычно еще и по-русски все.
Опыт - это когда на смену вопросам: "Что? Где? Когда? Как? Почему?" приходит единственный вопрос: "Нахрена? "


Автор темы
kaluchy
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 02 сен 2010, 12:09
Ф.И.О.: Николай

Re: ПЛК. Как запраграмировать аналоговый вход?

Сообщение kaluchy » 03 сен 2010, 07:55

Для начала всем спасибо, столько информации не ожидал.
ПЛК150 - это если не ошибаюсь, Codesys? Расскажите подробнее что регулируется и как - можно и примерчик набросать вечером будет. Вообще скорей всего на диске от контроллера с кодесисом подобная информация присутствует, а у овеновцев обычно еще и по-русски все.

Пример такой, буду выражаться просто, четыре чана (так их назовем) с водой вних нужна поддержка температуры 5-25 градусов. Т.е. будет стоять простенький тэн на 24В или 220В, который будет нагревать воду, и термодатчик 0-180 (я уже говорил) в каждом чане. Вот такая простенькая автоматизация.


Автор темы
kaluchy
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 02 сен 2010, 12:09
Ф.И.О.: Николай

Re: ПЛК. Как запраграмировать аналоговый вход?

Сообщение kaluchy » 03 сен 2010, 08:02

Не совсем так, датчик имеет диапазон от 0 до 180, значит при 0 градусов- 4мА, при 180 градусах- 20мА.
Программно рассчитывается по следующей формуле:

значение= (верхний предел измерений в технических единицах - нижний предел измерений)/разрешение аналогового модуля + нижний предел измерений

Можно привести в цифрах, которые курируют в моем случае, для наглядности.

Аватара пользователя

Никита
почётный участник форума
почётный участник форума
Сообщения: 2493
Зарегистрирован: 20 янв 2010, 22:23
Ф.И.О.: Никита
Откуда: Мурманск
Благодарил (а): 2 раза
Поблагодарили: 13 раз
Контактная информация:

Re: ПЛК. Как запраграмировать аналоговый вход?

Сообщение Никита » 03 сен 2010, 08:18

Пример такой, буду выражаться просто, четыре чана (так их назовем) с водой вних нужна поддержка температуры 5-25 градусов. Т.е. будет стоять простенький тэн на 24В или 220В, который будет нагревать воду, и термодатчик 0-180 (я уже говорил) в каждом чане. Вот такая простенькая автоматизация.

ШИМ нужен или по принципу утюга включить-выключить?
Опыт - это когда на смену вопросам: "Что? Где? Когда? Как? Почему?" приходит единственный вопрос: "Нахрена? "


Автор темы
kaluchy
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 02 сен 2010, 12:09
Ф.И.О.: Николай

Re: ПЛК. Как запраграмировать аналоговый вход?

Сообщение kaluchy » 03 сен 2010, 08:43

ШИМ нужен или по принципу утюга включить-выключить?

Включил выключил. А про ШИМ по подробнее, я просто более монтажник чем програмист, и ПЛК для меня представляет большой интерес, так что если я что то не так спрашиваю прошу за ранее извинения.


abbat81
освоился
освоился
Сообщения: 238
Зарегистрирован: 30 май 2009, 19:21
Ф.И.О.: Науменко Александр Сергеевич
Откуда: Шатура
Поблагодарили: 1 раз
Контактная информация:

Re: ПЛК. Как запраграмировать аналоговый вход?

Сообщение abbat81 » 03 сен 2010, 09:11

kaluchy писал(а):
Можно привести в цифрах, которые курируют в моем случае, для наглядности.


Верхний предел в вашем случае - 180 градусов цельсия, нижний предел - 0 градусов цельсия, относительно разрешения аналогового модуля, как уже говорил Михайло
180 градусов - 20 мА - числу 16384 или 65535 (читайте мануал к ПЛК).

Нужно смотреть докуметацию, при наличии времени, посмотрю.


Автор темы
kaluchy
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 02 сен 2010, 12:09
Ф.И.О.: Николай

Re: ПЛК. Как запраграмировать аналоговый вход?

Сообщение kaluchy » 03 сен 2010, 09:41

Огромное спасибо.


Автор темы
kaluchy
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 02 сен 2010, 12:09
Ф.И.О.: Николай

Re: ПЛК. Как запраграмировать аналоговый вход?

Сообщение kaluchy » 03 сен 2010, 09:46

180 градусов - 20 мА - числу 16384 или 65535 (читайте мануал к ПЛК). (180-0)/(16384-0)=0.0109863281 правильно?


abbat81
освоился
освоился
Сообщения: 238
Зарегистрирован: 30 май 2009, 19:21
Ф.И.О.: Науменко Александр Сергеевич
Откуда: Шатура
Поблагодарили: 1 раз
Контактная информация:

Re: ПЛК. Как запраграмировать аналоговый вход?

Сообщение abbat81 » 03 сен 2010, 10:17

kaluchy писал(а):180 градусов - 20 мА - числу 16384 или 65535 (читайте мануал к ПЛК). (180-0)/(16384-0)=0.0109863281 правильно?

Прошу прощения допустил неточность, забыл поставить в числителе множитель измеренного значения аналогового модуля, получается следущее
значение =(180-0)*А/D - 0, где А - измеренные значения аналогового модуля, D- максимальное значение аналогового модуля, соответствующее току 20 мА


Автор темы
kaluchy
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 02 сен 2010, 12:09
Ф.И.О.: Николай

Re: ПЛК. Как запраграмировать аналоговый вход?

Сообщение kaluchy » 03 сен 2010, 10:31

Прошу прощения допустил неточность, забыл поставить в числителе множитель измеренного значения аналогового модуля, получается следущее
значение =(180-0)*А/D - 0, где А - измеренные значения аналогового модуля, D- максимальное значение аналогового модуля, соответствующее току 20 мА

D я понял а А немного не. Может D=65535 а А=16384. И как быть с диапазоном 5-20 градусов???


abbat81
освоился
освоился
Сообщения: 238
Зарегистрирован: 30 май 2009, 19:21
Ф.И.О.: Науменко Александр Сергеевич
Откуда: Шатура
Поблагодарили: 1 раз
Контактная информация:

Re: ПЛК. Как запраграмировать аналоговый вход?

Сообщение abbat81 » 03 сен 2010, 10:33

Здесь представлен пример программы в Step7
Изображение


abbat81
освоился
освоился
Сообщения: 238
Зарегистрирован: 30 май 2009, 19:21
Ф.И.О.: Науменко Александр Сергеевич
Откуда: Шатура
Поблагодарили: 1 раз
Контактная информация:

Re: ПЛК. Как запраграмировать аналоговый вход?

Сообщение abbat81 » 03 сен 2010, 10:54

kaluchy писал(а):
D я понял а А немного не. Может D=65535 а А=16384. И как быть с диапазоном 5-20 градусов???


А - это текущие значение, которые Вы будете снимать с аналогового входа, они будут меняться в зависимости от температуры.
Относительно регулирования температуры в диапазоне от 5 до 20 градусов, нужно опять же, руководствуясь документацией к КодеСис, а так же, исходя из того с какой точностью регулировать температуру, выбрать алгоритм регулирования, например ШИМ( Как уже говорил Никита)- http://ru.wikipedia.org/wiki/PWM в комплекте с ШИМ Вам придется использовать программный регулятор (ПИ, ПИД) или еще проще, режим утюга при достижении заданной температуры нагрев выключается, при падении температуры ниже заданной нагрев включается.


Михайло
почётный участник форума
почётный участник форума
Сообщения: 2212
Зарегистрирован: 10 ноя 2009, 04:58
Ф.И.О.: Толмачев Михаил Алексеевич
Благодарил (а): 1 раз
Поблагодарили: 22 раза
Контактная информация:

Re: ПЛК. Как запраграмировать аналоговый вход?

Сообщение Михайло » 03 сен 2010, 15:52

Code = Scale * (Temperature/180),
где
Code - код ПЛК, соответствующий текущей температуре,
Scale - шкала (равно 16384, 32768 или 65535 в зависимости от ПЛК)
Temperature - текущая температура в градусах.

Так 5 градусов будет соответствовать коду 1820 при Scale=65535, а 25 градусов - 9102.

Аватара пользователя

CHANt
эксперт
эксперт
Сообщения: 1243
Зарегистрирован: 25 июл 2008, 09:25
Ф.И.О.: Гринев Эдуард Владимирович
Откуда: Оренбург
Благодарил (а): 11 раз
Поблагодарили: 37 раз
Контактная информация:

Re: ПЛК. Как запраграмировать аналоговый вход?

Сообщение CHANt » 03 сен 2010, 16:22

Открытая библиотека OSCAT для CoDeSys 2.3/3.0
http://www.oscat.de/index.php?option=co ... &Itemid=33
Подключите, затем в разделе "signal processing" используете функцию AIN
--------------------------------------------------------------------------------------------
"Почти все начальники - дилетанты." © цитата из поста hell_boy )))


Автор темы
kaluchy
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 02 сен 2010, 12:09
Ф.И.О.: Николай

Re: ПЛК. Как запраграмировать аналоговый вход?

Сообщение kaluchy » 03 сен 2010, 16:47

Огромнейшее спасибо


KostiK2009IT
здесь недавно
здесь недавно
Сообщения: 22
Зарегистрирован: 19 мар 2010, 09:26
Ф.И.О.: Бондаренко Константин Евгеньевич

Re: ПЛК. Как запраграмировать аналоговый вход?

Сообщение KostiK2009IT » 06 сен 2010, 11:49

в библиотеках CoDesys есть специальный блок, так сказать, зонный компаратор, Ваша задача фактически сводится к программированию этого элемента + быть может поставить делители\умножители, для согласования входов и выходов контроллера, т.к элемент 16 битный (65535 - макс значение) а входы не знаю какие у Вас...

блок limitalarm - для если надо просто включить\выключить выход, в зависимости от входа
Функциональный блок, контролирует принадлежность значения входа IN заданному диапазону. Входы LOW и HIGH задают границу диапазона..
Входы IN, HIGH и LOW типа INT, выходы O, U и IL типа BOOL.
Если значение на входе IN:
превышает предел HIGH выход O = TRUE
меньше предела LOW выход U = TRUE
лежит в пределах между LOW и HIGH (включительно) выход IL = TRUE

Блок есть в библиотеке utils

Аватара пользователя

CHANt
эксперт
эксперт
Сообщения: 1243
Зарегистрирован: 25 июл 2008, 09:25
Ф.И.О.: Гринев Эдуард Владимирович
Откуда: Оренбург
Благодарил (а): 11 раз
Поблагодарили: 37 раз
Контактная информация:

Re: ПЛК. Как запраграмировать аналоговый вход?

Сообщение CHANt » 06 сен 2010, 17:07

На самом деле - ОВЕН ПЛК-150 имеет средства конфигурирования аналоговых входов прямо в "Конфигураторе ПЛК" CoDeSys, надо просто, в соответствии с руководством http://www.kipshop.ru/CoDeSys/steps/plc ... en_2.0.zip, определить тип входного сигнала, задать верхнюю и нижнюю границы, при необходимости провести коррекцию в диапазоне работы датчика с использованием полинома второй степени (интересно, зачем овену это понадобилось :) ). После прошивки контроллера аналоговый вход будет доступен в программе в real`овской величине.
Далее, в соответствии с приложением В вышеуказанного документа ( Таблица В.1) обработать ошибки канала измерения, и затем уже решать вопросы логики...
--------------------------------------------------------------------------------------------
"Почти все начальники - дилетанты." © цитата из поста hell_boy )))


Вернуться в «Средний уровень автоматизации»



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

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