1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

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

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

Автор темы
kaluchy
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 02 сен 2010, 13:09
Имя: Николай
Страна: Белорусия
город/регион: Барановичи

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

Сообщение kaluchy »

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

abbat81
освоился
освоился
Сообщения: 238
Зарегистрирован: 30 май 2009, 20:21
Имя: Науменко Александр Сергеевич
Страна: Россия
город/регион: Шатура
Поблагодарили: 1 раз

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

Сообщение abbat81 »

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

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

Михайло
эксперт
эксперт
Сообщения: 3589
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 6 раз
Поблагодарили: 273 раза

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

Сообщение Михайло »

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

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

Никита
почётный участник форума
почётный участник форума
Сообщения: 3947
Зарегистрирован: 20 янв 2010, 22:23
Имя: Никита
Страна: РФ
город/регион: Мурманск
Благодарил (а): 21 раз
Поблагодарили: 226 раз

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

Сообщение Никита »

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

Автор темы
kaluchy
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 02 сен 2010, 13:09
Имя: Николай
Страна: Белорусия
город/регион: Барановичи

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

Сообщение kaluchy »

Для начала всем спасибо, столько информации не ожидал.
ПЛК150 - это если не ошибаюсь, Codesys? Расскажите подробнее что регулируется и как - можно и примерчик набросать вечером будет. Вообще скорей всего на диске от контроллера с кодесисом подобная информация присутствует, а у овеновцев обычно еще и по-русски все.
Пример такой, буду выражаться просто, четыре чана (так их назовем) с водой вних нужна поддержка температуры 5-25 градусов. Т.е. будет стоять простенький тэн на 24В или 220В, который будет нагревать воду, и термодатчик 0-180 (я уже говорил) в каждом чане. Вот такая простенькая автоматизация.

Автор темы
kaluchy
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 02 сен 2010, 13:09
Имя: Николай
Страна: Белорусия
город/регион: Барановичи

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

Сообщение kaluchy »

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

значение= (верхний предел измерений в технических единицах - нижний предел измерений)/разрешение аналогового модуля + нижний предел измерений
Можно привести в цифрах, которые курируют в моем случае, для наглядности.
Аватара пользователя

Никита
почётный участник форума
почётный участник форума
Сообщения: 3947
Зарегистрирован: 20 янв 2010, 22:23
Имя: Никита
Страна: РФ
город/регион: Мурманск
Благодарил (а): 21 раз
Поблагодарили: 226 раз

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

Сообщение Никита »

Пример такой, буду выражаться просто, четыре чана (так их назовем) с водой вних нужна поддержка температуры 5-25 градусов. Т.е. будет стоять простенький тэн на 24В или 220В, который будет нагревать воду, и термодатчик 0-180 (я уже говорил) в каждом чане. Вот такая простенькая автоматизация.
ШИМ нужен или по принципу утюга включить-выключить?
Опыт - это когда на смену вопросам: "Что? Где? Когда? Как? Почему?" приходит единственный вопрос: "Нахрена? "

Автор темы
kaluchy
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 02 сен 2010, 13:09
Имя: Николай
Страна: Белорусия
город/регион: Барановичи

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

Сообщение kaluchy »

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

abbat81
освоился
освоился
Сообщения: 238
Зарегистрирован: 30 май 2009, 20:21
Имя: Науменко Александр Сергеевич
Страна: Россия
город/регион: Шатура
Поблагодарили: 1 раз

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

Сообщение abbat81 »

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

Автор темы
kaluchy
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 02 сен 2010, 13:09
Имя: Николай
Страна: Белорусия
город/регион: Барановичи

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

Сообщение kaluchy »

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

Автор темы
kaluchy
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 02 сен 2010, 13:09
Имя: Николай
Страна: Белорусия
город/регион: Барановичи

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

Сообщение kaluchy »

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

abbat81
освоился
освоился
Сообщения: 238
Зарегистрирован: 30 май 2009, 20:21
Имя: Науменко Александр Сергеевич
Страна: Россия
город/регион: Шатура
Поблагодарили: 1 раз

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

Сообщение abbat81 »

kaluchy писал(а):180 градусов - 20 мА - числу 16384 или 65535 (читайте мануал к ПЛК). (180-0)/(16384-0)=0.0109863281 правильно?
Прошу прощения допустил неточность, забыл поставить в числителе множитель измеренного значения аналогового модуля, получается следущее
значение =(180-0)*А/D - 0, где А - измеренные значения аналогового модуля, D- максимальное значение аналогового модуля, соответствующее току 20 мА

Автор темы
kaluchy
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 02 сен 2010, 13:09
Имя: Николай
Страна: Белорусия
город/регион: Барановичи

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

Сообщение kaluchy »

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

abbat81
освоился
освоился
Сообщения: 238
Зарегистрирован: 30 май 2009, 20:21
Имя: Науменко Александр Сергеевич
Страна: Россия
город/регион: Шатура
Поблагодарили: 1 раз

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

Сообщение abbat81 »

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

abbat81
освоился
освоился
Сообщения: 238
Зарегистрирован: 30 май 2009, 20:21
Имя: Науменко Александр Сергеевич
Страна: Россия
город/регион: Шатура
Поблагодарили: 1 раз

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

Сообщение abbat81 »

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

Михайло
эксперт
эксперт
Сообщения: 3589
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 6 раз
Поблагодарили: 273 раза

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

Сообщение Михайло »

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

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

CHANt
эксперт
эксперт
Сообщения: 1465
Зарегистрирован: 25 июл 2008, 10:25
Имя: Эдуард Владимирович
Страна: СССР
город/регион: Оренбург
Благодарил (а): 45 раз
Поблагодарили: 104 раза

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

Сообщение CHANt »

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

Автор темы
kaluchy
здесь недавно
здесь недавно
Сообщения: 14
Зарегистрирован: 02 сен 2010, 13:09
Имя: Николай
Страна: Белорусия
город/регион: Барановичи

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

Сообщение kaluchy »

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

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

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

Сообщение KostiK2009IT »

в библиотеках 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
эксперт
эксперт
Сообщения: 1465
Зарегистрирован: 25 июл 2008, 10:25
Имя: Эдуард Владимирович
Страна: СССР
город/регион: Оренбург
Благодарил (а): 45 раз
Поблагодарили: 104 раза

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

Сообщение CHANt »

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

Вернуться в «Средний уровень автоматизации (управляющий)»