- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
ПЛК. Как запраграмировать аналоговый вход?
-
- здесь недавно
- Сообщения: 14
- Зарегистрирован: 02 сен 2010, 13:09
- Имя: Николай
- Страна: Белорусия
- город/регион: Барановичи
ПЛК. Как запраграмировать аналоговый вход?
Такая ситуация, нужно собрать шкаф для регулирования температуры воды с диапазоном +5..25 градусов (диапазон может быть увеличен). Датчик температуры имеет унифицированный сигнал 4-20mA с диапазоном 0..180 градусов. Как это сделать программно? Контроллер Овен ПЛК150. Дискретные я делал и в курсе про них а вот аналоги не совсем. Знаю только что нужно в программе как то задать что 0 градусов это 4 mA, а 25 - 20mA. Может какой нибудь примерчик в пдф или как не знаю помогите.
-
- освоился
- Сообщения: 238
- Зарегистрирован: 30 май 2009, 20:21
- Имя: Науменко Александр Сергеевич
- Страна: Россия
- город/регион: Шатура
- Поблагодарили: 1 раз
Re: ПЛК. Как запраграмировать аналоговый вход?
Не совсем так, датчик имеет диапазон от 0 до 180, значит при 0 градусов- 4мА, при 180 градусах- 20мА.kaluchy писал(а):Такая ситуация, нужно собрать шкаф для регулирования температуры воды с диапазоном +5..25 градусов (диапазон может быть увеличен). Датчик температуры имеет унифицированный сигнал 4-20mA с диапазоном 0..180 градусов. Как это сделать программно? Контроллер Овен ПЛК150. Дискретные я делал и в курсе про них а вот аналоги не совсем. Знаю только что нужно в программе как то задать что 0 градусов это 4 mA, а 25 - 20mA. Может какой нибудь примерчик в пдф или как не знаю помогите.
Программно рассчитывается по следующей формуле:
значение= (верхний предел измерений в технических единицах - нижний предел измерений)/разрешение аналогового модуля + нижний предел измерений
-
- эксперт
- Сообщения: 3617
- Зарегистрирован: 10 ноя 2009, 04:58
- Имя: Толмачев Михаил Алексеевич
- город/регион: г. Чехов, МО
- Благодарил (а): 7 раз
- Поблагодарили: 281 раз
Re: ПЛК. Как запраграмировать аналоговый вход?
К дискретным сигналам обычно обращаются так: Ix.y, Mx.y, Qx.y, а к аналоговым через двойные слова типа IWx, MWx, QWx. Переводить миллиамперы в градусы нет необходимости, т.к. контроллер оперирует в своих единицах, называемых Integer (целочисленный тип данных). Это означает, что 0 градусов будет соответствовать 4 мА и числу 0 в ПЛК, а 180 градусов - 20 мА - числу 16384 или 65535 (читайте мануал к ПЛК).
Можете, конечно, перевести из формата Integer в формат Real, тогда сможете оперировать в любых единицах - хоть в миллиамперах, хоть в градусах. При сложных математических вычислениях это имеет смысл.
Можете, конечно, перевести из формата Integer в формат Real, тогда сможете оперировать в любых единицах - хоть в миллиамперах, хоть в градусах. При сложных математических вычислениях это имеет смысл.
-
- почётный участник форума
- Сообщения: 3963
- Зарегистрирован: 20 янв 2010, 22:23
- Имя: Никита
- Страна: РФ
- город/регион: Мурманск
- Благодарил (а): 21 раз
- Поблагодарили: 229 раз
Re: ПЛК. Как запраграмировать аналоговый вход?
ПЛК150 - это если не ошибаюсь, Codesys? Расскажите подробнее что регулируется и как - можно и примерчик набросать вечером будет. Вообще скорей всего на диске от контроллера с кодесисом подобная информация присутствует, а у овеновцев обычно еще и по-русски все.Такая ситуация, нужно собрать шкаф для регулирования температуры воды с диапазоном +5..25 градусов (диапазон может быть увеличен). Датчик температуры имеет унифицированный сигнал 4-20mA с диапазоном 0..180 градусов. Как это сделать программно? Контроллер Овен ПЛК150. Дискретные я делал и в курсе про них а вот аналоги не совсем. Знаю только что нужно в программе как то задать что 0 градусов это 4 mA, а 25 - 20mA. Может какой нибудь примерчик в пдф или как не знаю помогите.
Опыт - это когда на смену вопросам: "Что? Где? Когда? Как? Почему?" приходит единственный вопрос: "Нахрена? "
-
- здесь недавно
- Сообщения: 14
- Зарегистрирован: 02 сен 2010, 13:09
- Имя: Николай
- Страна: Белорусия
- город/регион: Барановичи
Re: ПЛК. Как запраграмировать аналоговый вход?
Для начала всем спасибо, столько информации не ожидал.
Пример такой, буду выражаться просто, четыре чана (так их назовем) с водой вних нужна поддержка температуры 5-25 градусов. Т.е. будет стоять простенький тэн на 24В или 220В, который будет нагревать воду, и термодатчик 0-180 (я уже говорил) в каждом чане. Вот такая простенькая автоматизация.ПЛК150 - это если не ошибаюсь, Codesys? Расскажите подробнее что регулируется и как - можно и примерчик набросать вечером будет. Вообще скорей всего на диске от контроллера с кодесисом подобная информация присутствует, а у овеновцев обычно еще и по-русски все.
-
- здесь недавно
- Сообщения: 14
- Зарегистрирован: 02 сен 2010, 13:09
- Имя: Николай
- Страна: Белорусия
- город/регион: Барановичи
Re: ПЛК. Как запраграмировать аналоговый вход?
Можно привести в цифрах, которые курируют в моем случае, для наглядности.Не совсем так, датчик имеет диапазон от 0 до 180, значит при 0 градусов- 4мА, при 180 градусах- 20мА.
Программно рассчитывается по следующей формуле:
значение= (верхний предел измерений в технических единицах - нижний предел измерений)/разрешение аналогового модуля + нижний предел измерений
-
- почётный участник форума
- Сообщения: 3963
- Зарегистрирован: 20 янв 2010, 22:23
- Имя: Никита
- Страна: РФ
- город/регион: Мурманск
- Благодарил (а): 21 раз
- Поблагодарили: 229 раз
Re: ПЛК. Как запраграмировать аналоговый вход?
ШИМ нужен или по принципу утюга включить-выключить?Пример такой, буду выражаться просто, четыре чана (так их назовем) с водой вних нужна поддержка температуры 5-25 градусов. Т.е. будет стоять простенький тэн на 24В или 220В, который будет нагревать воду, и термодатчик 0-180 (я уже говорил) в каждом чане. Вот такая простенькая автоматизация.
Опыт - это когда на смену вопросам: "Что? Где? Когда? Как? Почему?" приходит единственный вопрос: "Нахрена? "
-
- здесь недавно
- Сообщения: 14
- Зарегистрирован: 02 сен 2010, 13:09
- Имя: Николай
- Страна: Белорусия
- город/регион: Барановичи
Re: ПЛК. Как запраграмировать аналоговый вход?
Включил выключил. А про ШИМ по подробнее, я просто более монтажник чем програмист, и ПЛК для меня представляет большой интерес, так что если я что то не так спрашиваю прошу за ранее извинения.ШИМ нужен или по принципу утюга включить-выключить?
-
- освоился
- Сообщения: 238
- Зарегистрирован: 30 май 2009, 20:21
- Имя: Науменко Александр Сергеевич
- Страна: Россия
- город/регион: Шатура
- Поблагодарили: 1 раз
Re: ПЛК. Как запраграмировать аналоговый вход?
Нужно смотреть докуметацию, при наличии времени, посмотрю.kaluchy писал(а):Верхний предел в вашем случае - 180 градусов цельсия, нижний предел - 0 градусов цельсия, относительно разрешения аналогового модуля, как уже говорил МихайлоМожно привести в цифрах, которые курируют в моем случае, для наглядности.180 градусов - 20 мА - числу 16384 или 65535 (читайте мануал к ПЛК).
-
- здесь недавно
- Сообщения: 14
- Зарегистрирован: 02 сен 2010, 13:09
- Имя: Николай
- Страна: Белорусия
- город/регион: Барановичи
-
- здесь недавно
- Сообщения: 14
- Зарегистрирован: 02 сен 2010, 13:09
- Имя: Николай
- Страна: Белорусия
- город/регион: Барановичи
Re: ПЛК. Как запраграмировать аналоговый вход?
180 градусов - 20 мА - числу 16384 или 65535 (читайте мануал к ПЛК). (180-0)/(16384-0)=0.0109863281 правильно?
-
- освоился
- Сообщения: 238
- Зарегистрирован: 30 май 2009, 20:21
- Имя: Науменко Александр Сергеевич
- Страна: Россия
- город/регион: Шатура
- Поблагодарили: 1 раз
Re: ПЛК. Как запраграмировать аналоговый вход?
Прошу прощения допустил неточность, забыл поставить в числителе множитель измеренного значения аналогового модуля, получается следущееkaluchy писал(а):180 градусов - 20 мА - числу 16384 или 65535 (читайте мануал к ПЛК). (180-0)/(16384-0)=0.0109863281 правильно?
значение =(180-0)*А/D - 0, где А - измеренные значения аналогового модуля, D- максимальное значение аналогового модуля, соответствующее току 20 мА
-
- здесь недавно
- Сообщения: 14
- Зарегистрирован: 02 сен 2010, 13:09
- Имя: Николай
- Страна: Белорусия
- город/регион: Барановичи
Re: ПЛК. Как запраграмировать аналоговый вход?
D я понял а А немного не. Может D=65535 а А=16384. И как быть с диапазоном 5-20 градусов???Прошу прощения допустил неточность, забыл поставить в числителе множитель измеренного значения аналогового модуля, получается следущее
значение =(180-0)*А/D - 0, где А - измеренные значения аналогового модуля, D- максимальное значение аналогового модуля, соответствующее току 20 мА
-
- освоился
- Сообщения: 238
- Зарегистрирован: 30 май 2009, 20:21
- Имя: Науменко Александр Сергеевич
- Страна: Россия
- город/регион: Шатура
- Поблагодарили: 1 раз
Re: ПЛК. Как запраграмировать аналоговый вход?
А - это текущие значение, которые Вы будете снимать с аналогового входа, они будут меняться в зависимости от температуры.kaluchy писал(а):D я понял а А немного не. Может D=65535 а А=16384. И как быть с диапазоном 5-20 градусов???
Относительно регулирования температуры в диапазоне от 5 до 20 градусов, нужно опять же, руководствуясь документацией к КодеСис, а так же, исходя из того с какой точностью регулировать температуру, выбрать алгоритм регулирования, например ШИМ( Как уже говорил Никита)- http://ru.wikipedia.org/wiki/PWM в комплекте с ШИМ Вам придется использовать программный регулятор (ПИ, ПИД) или еще проще, режим утюга при достижении заданной температуры нагрев выключается, при падении температуры ниже заданной нагрев включается.
-
- эксперт
- Сообщения: 3617
- Зарегистрирован: 10 ноя 2009, 04:58
- Имя: Толмачев Михаил Алексеевич
- город/регион: г. Чехов, МО
- Благодарил (а): 7 раз
- Поблагодарили: 281 раз
Re: ПЛК. Как запраграмировать аналоговый вход?
Code = Scale * (Temperature/180),
где
Code - код ПЛК, соответствующий текущей температуре,
Scale - шкала (равно 16384, 32768 или 65535 в зависимости от ПЛК)
Temperature - текущая температура в градусах.
Так 5 градусов будет соответствовать коду 1820 при Scale=65535, а 25 градусов - 9102.
где
Code - код ПЛК, соответствующий текущей температуре,
Scale - шкала (равно 16384, 32768 или 65535 в зависимости от ПЛК)
Temperature - текущая температура в градусах.
Так 5 градусов будет соответствовать коду 1820 при Scale=65535, а 25 градусов - 9102.
-
- эксперт
- Сообщения: 1467
- Зарегистрирован: 25 июл 2008, 10:25
- Имя: Эдуард Владимирович
- Страна: СССР
- город/регион: Оренбург
- Благодарил (а): 46 раз
- Поблагодарили: 104 раза
Re: ПЛК. Как запраграмировать аналоговый вход?
Открытая библиотека OSCAT для CoDeSys 2.3/3.0
http://www.oscat.de/index.php?option=co ... &Itemid=33
Подключите, затем в разделе "signal processing" используете функцию AIN
http://www.oscat.de/index.php?option=co ... &Itemid=33
Подключите, затем в разделе "signal processing" используете функцию AIN
--------------------------------------------------------------------------------------------
-
- здесь недавно
- Сообщения: 14
- Зарегистрирован: 02 сен 2010, 13:09
- Имя: Николай
- Страна: Белорусия
- город/регион: Барановичи
-
- здесь недавно
- Сообщения: 22
- Зарегистрирован: 19 мар 2010, 09:26
- Имя: Бондаренко Константин Евгеньевич
- Страна: Россия
- город/регион: Рязань
Re: ПЛК. Как запраграмировать аналоговый вход?
в библиотеках 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
блок limitalarm - для если надо просто включить\выключить выход, в зависимости от входа
Функциональный блок, контролирует принадлежность значения входа IN заданному диапазону. Входы LOW и HIGH задают границу диапазона..
Входы IN, HIGH и LOW типа INT, выходы O, U и IL типа BOOL.
Если значение на входе IN:
превышает предел HIGH выход O = TRUE
меньше предела LOW выход U = TRUE
лежит в пределах между LOW и HIGH (включительно) выход IL = TRUE
Блок есть в библиотеке utils
-
- эксперт
- Сообщения: 1467
- Зарегистрирован: 25 июл 2008, 10:25
- Имя: Эдуард Владимирович
- Страна: СССР
- город/регион: Оренбург
- Благодарил (а): 46 раз
- Поблагодарили: 104 раза
Re: ПЛК. Как запраграмировать аналоговый вход?
На самом деле - ОВЕН ПЛК-150 имеет средства конфигурирования аналоговых входов прямо в "Конфигураторе ПЛК" CoDeSys, надо просто, в соответствии с руководством http://www.kipshop.ru/CoDeSys/steps/plc ... en_2.0.zip, определить тип входного сигнала, задать верхнюю и нижнюю границы, при необходимости провести коррекцию в диапазоне работы датчика с использованием полинома второй степени (интересно, зачем овену это понадобилось :) ). После прошивки контроллера аналоговый вход будет доступен в программе в real`овской величине.
Далее, в соответствии с приложением В вышеуказанного документа ( Таблица В.1) обработать ошибки канала измерения, и затем уже решать вопросы логики...
Далее, в соответствии с приложением В вышеуказанного документа ( Таблица В.1) обработать ошибки канала измерения, и затем уже решать вопросы логики...
--------------------------------------------------------------------------------------------