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мА.
Программно рассчитывается по следующей формуле:

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

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

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

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

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

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

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

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мА.
Программно рассчитывается по следующей формуле:

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

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

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 в комплекте с ШИМ Вам придется использовать программный регулятор (ПИ, ПИД) или еще проще, режим утюга при достижении заданной температуры нагрев выключается, при падении температуры ниже заданной нагрев включается.

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

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

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

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

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

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

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
Имя: Эдуард Владимирович
Страна: СССР
город/регион: Оренбург
Благодарил (а): 43 раза
Поблагодарили: 93 раза

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

Сообщение CHANt »

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

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