Просмотр полной версии : Подключение устройств с нестандартными протоколами
1) Мой первый пост: задача НЕ вход защитить, а почему он при перегрузке в 10%, то есть 22мА по измерению в самом ПЛК выдаёт результат +\-0,00.. в 30-й степени, хотя должен выдавать 20 мА или больше, так он себя ведёт при токе 21мА, далее уже программ проверяет: "если ток больше 20мА, то перегруз и перключение диапазона выше или другое действие".
2) Аналоговые датчики с выходом 4-20мА (преобразование напряжение в ток: нормализаторы, УСО=устройство связи с объектом и т.п.). У многих выходной ток при зашкаливании превышает 20мА - это по сути сигнал для ПЛК (АСУ), что по входу УСО перегрузка.
Во-вторых, со временем шкала может "уплывать" и при периодической поверке\калибровке необходимо иметь запас по регулировке. В большинстве случаев максимальный выходной ток УСО 20..25мА во всем диапазоне перегрузки (от 1 до 5 и более раз пока не сгорит вход УСО). У ПЛК перегрузка всего лишь 22мА, если бы была 25мА (или показания не падали в ноль) - проблема бы не возникла.
3) 25% это не много, а вот 10% - это действительно мало.
Это не проблема аналогового входа ПЛК160 (вход выдерживает перегрузку по току 10 %), а проблема токового датчика. С чего ты взял, что 25% это не много, а 10% - мало. Это твое субъективное мнение. Дай ссылку на нормативный документ , где по этому поводу что-то сказано. Датчик твой дерьмово спроектирован. Ту цепочку, что я нарисовал надо было ввести в схему датчика и все бы было нормально. Твоя проблема вполне решаема и не надо тут пустой болтовней заниматься.
Это не проблема аналогового входа ПЛК160 (вход выдерживает перегрузку по току 10 %), а проблема токового датчика. Датчик твой дерьмово спроектирован.
Если у вольтметра на 220В будет перегрузка 10%, а в сети даже по ГОСТу допускаются перенапряжения +\-5 (10)%. Рискнёте вы его туда поставить? А в наши сети, где 250В бывает?) Да и вообще многие СИ имеют перегрзку 120% от максимума и больше, а здесь явно меньше. То есть проблема аналогового входа ПЛК (это же средство измерений) имеет место быть.
Будьте добры, подскажите "недерьмовые" датчики со входом 10мВ (100мВ, 1000мВ, 10В, RMS) в 4-20мА, у которых бы выход не убегал за хотя бы за 15% по выходному току.
Будьте добры, подскажите "недерьмовые" датчики со входом 10мВ (100мВ, 1000мВ, 10В, RMS) в 4-20мА, у которых бы выход не убегал за хотя бы за 15% по выходному току.
А полы тебе не помыть.
1) Мой первый пост: задача НЕ вход защитить, а почему он при перегрузке в 10%, то есть 22мА по измерению в самом ПЛК выдаёт результат +\-0,00.. в 30-й степени, хотя должен выдавать 20 мА или больше, так он себя ведёт при токе 21мА, далее уже программ проверяет: "если ток больше 20мА, то перегруз и перключение диапазона выше или другое действие".
Столько постов наплодили, а все из-за того, что кто-то не читает руководства, а зря.
Защиты входов какие-то напридумывали:rolleyes:
то есть 22мА по измерению в самом ПЛК выдаёт результат +\-0,00.. в 30-й степени, хотя должен выдавать 20 мА или больше, так он себя ведёт при токе 21мА
результат +\-0,00.. в 30-й степени, а не 22мА это следствие встроенного механизма работы аналогового входа. А именно поведение модуля в исключительных ситуациях
16862
То бишь +\-0,00.. в 30-й степени это и есть код ошибки измерения или FA или FC который появляется в старшем байте переменной Real, при этом оставшиеся три байта будут содержать абы какую информацию.
Нормальные пацаны используют фб. DECODE_FLOAT, через который пропускают измеренное значение, и на выходе получают код ошибки и значение по умолчанию при возникновении исключительной ситуации.
ЗЫ. А Вы еще не возмущались почему при отключенном от входа датчике измеренное значение будет -2.658456е+036, а не "0"
Подсказка -это результат наличия ошибки измерения "Сигнал на входе меньше возможного" (0хFB):rolleyes:
petera, я дал клиенту исчерпывающий ответ как решить его проблему. В данном случае аналоговый вход ПЛК160 надо обязательно защищать от перегрузки иначе он может не выдержать тупого насилия. Про то, что заниженные значения надо в программе обрабатывать тоже было написано. Просто клиент попался непонятливый из-за этого все так растянулось.
Столько постов наплодили, а все из-за того, что кто-то не читает руководства, а зря.
Защиты входов какие-то напридумывали:rolleyes:
результат +\-0,00.. в 30-й степени, а не 22мА это следствие встроенного механизма работы аналогового входа. А именно поведение модуля в исключительных ситуациях
16862
То бишь +\-0,00.. в 30-й степени это и есть код ошибки измерения или FA или FC который появляется в старшем байте переменной Real, при этом оставшиеся три байта будут содержать абы какую информацию.
Нормальные пацаны используют фб. DECODE_FLOAT, через который пропускают измеренное значение, и на выходе получают код ошибки и значение по умолчанию при возникновении исключительной ситуации.
ЗЫ. А Вы еще не возмущались почему при отключенном от входа датчике измеренное значение будет -2.658456е+036, а не "0"
Подсказка -это результат наличия ошибки измерения "Сигнал на входе меньше возможного" (0хFB):rolleyes:
Вот этот этот ответ с первого раза и по делу!
Или сразу бы номер пункта, где это написано, а то не нравиться-не бери ОВЕН, стабилитрон в цепь ставь или датчик говно - переделай.
В РЭ этого не было (изначально принимал эту проблему за техническую)
В РЭ по программированию приёмы работы с перегрузкой есть: СПАСИБО!!!
Про ЗЫ: Про меньше 4мА программно можно обычным "если меньше 4мА" взять, а вот, когда больше 20мА, а он в меньше 4мА проваливается -это не совсем логично...
И ответа на вопрос: как (следствие встроенного механизма работы) всё таки работает вход при превышении тока не дождался: чисто технический интерес
Это не проблема аналогового входа ПЛК160 (вход выдерживает перегрузку по току 10 %), а проблема токового датчика. С чего ты взял, что 25% это не много, а 10% - мало. Это твое субъективное мнение. Дай ссылку на нормативный документ , где по этому поводу что-то сказано. Датчик твой дерьмово спроектирован. Ту цепочку, что я нарисовал надо было ввести в схему датчика и все бы было нормально. Твоя проблема вполне решаема и не надо тут пустой болтовней заниматься.
к примеру ГОСТ 13033-84 Пункт 2.6 страница 4/10. С другой стороны Вы бесконечно правы, ведь ПЛК выдерживает ЭТУ перегрузку)))
Также, например, у конкурентов указывается данный параметр:
аналоговый ввод, допустимая перегрузка продолжительнавя 0,10а для токовых сигналов
В общем Спасибо за ответы. Вопрос исчерпан.
И ответа на вопрос: как (следствие встроенного механизма работы) всё таки работает вход при превышении тока не дождался: чисто технический интерес
Там же, но чуть выше
16863
Там же, но чуть выше
16863
Ну, тогда автор темы ломится в открытую дверь.
Тех. поддержка ОВЕН:
"Вы прравы, дейтвительно, принцип измерения, про который я Вам писал ранее, реализован в ПЛК63/73, ПЛК150/154.
В ПЛК160, действительно, имеется защита, но программно-аппаратная, при определенном уровне напряжения срабатывает "ключ" который пускает ток в обход измерительной цепи, происходит это переключение при превышении тока, равного 22,5мА.
При этом, при сигнале в диапазоне от 22 мА до 22,5 "генерируется" код ошибки "превышения сигнала", при превышении сигнала 22,5 мА "генерируется" код ошибки перегрузки."
И где на схеме или в РЭ или в Руководстве по программированию это описано?
spectrum48k
16.03.2015, 22:16
...........
sergeykrylov
17.03.2015, 00:04
Камрады если не сложно подскажите COM? какой у ПЛК-100К.М RS-485 ? А то что то SysComOpen ругается наCOM:=0
Всем доброго времени суток.Пытаюсь подружить тилкомовский декодер Т26 с плк150, связь настроил, проблема вот в чем-у декодера нет регистров есть функции.http://tilkom.com/download_files/download/modbus.pdfкакие варианты реализации, может поменять протокол? Кто нибудь делал подобное? скиньте кто что может)
Протокол этого прибора не является протоколом MODBUS RTU. По этой причине протокол придется реализовывать самостоятельно. (http://www.owen.ru/forum/showthread.php?t=13585)
100xanoff
12.04.2015, 09:56
Есть ли возможность повысить скорость работы RS-485 на ПЛК110-60 до 250 000 бод для работы с протоколом DMX512 ?
Есть ли возможность повысить скорость работы RS-485 на ПЛК110-60 до 250 000 бод для работы с протоколом DMX512 ?
Через конфигуратор нет. Возможно библиотеки работы с последовательным портом позволяют настроить порт на токую скорость.
Здравствуйте. Подскажите пожалуйста. Реализовывал кто нибудь опрос с помощью плк100 таких устройств, как тепловычислитель Эльф, Карат-307 (http://www.karat-npo.ru/view_text_cat/id/257), Корректор объема газа ЕК270?
Добрый день.
Столкнулся с вопросом и не смог найти вразумительный ответ.
На ПЛК110 новой модификации присутствует две клеммы s/s. Правильно я понимаю, что с их помощью можно подключить одновременно pnp и npn датчики без особых заморочек или же это я нафантазировал?
Извиняюсь, что пишу тут, не нашел более подходящей темы.
Николаев Андрей
06.03.2016, 13:13
Да, этот вход определяет тип ГРУППЫ входов, как это и указано в руководстве по эксплуатации в схемах подключения.
Aleks1309
26.03.2016, 23:30
Здравствуйте я не какой не программист а просто оператор РБУ с оборудованием плк100 и панель оператора овен меня интересует такой вопрос директор поставил задачу провести к нему в кабинет кабель до ноутбука чтоб контролировать в режиме онлайн весь процесс который я веду мы созвонились с фирмой которая загружала проект и объяснили задачу на что нам сказали что для выполнения данной задачи необходимо менять программу и загнули ценник в 150000 р я дико возмущён таким обдирательством и решил сам вникнуть ведь я уверен что есть такая возможность просто дублировать мой монитор который я наблюдаю на панели на монитор директора но ограничив его по функциям. Подскажите прав ли я и так ли сложно это сделать?
tomilov91
30.03.2016, 09:20
Если вы наблюдаете весь процесс только с панели оператора, то вывод на данных ПК скорее всего не будет "как два пальца". Установка второй панели тоже будет проблемой.
Здравствуйте я не какой не программист а просто оператор РБУ с оборудованием плк100 и панель оператора овен меня интересует такой вопрос директор поставил задачу провести к нему в кабинет кабель до ноутбука чтоб контролировать в режиме онлайн весь процесс который я веду мы созвонились с фирмой которая загружала проект и объяснили задачу на что нам сказали что для выполнения данной задачи необходимо менять программу и загнули ценник в 150000 р я дико возмущён таким обдирательством и решил сам вникнуть ведь я уверен что есть такая возможность просто дублировать мой монитор который я наблюдаю на панели на монитор директора но ограничив его по функциям. Подскажите прав ли я и так ли сложно это сделать?
Вы контролируете процесс на мониторе ПК?
Тогда LiteManagerFREE или TeamViewer ставите и уже сегодня всё работает.
Если на какой то пром. панели, то ищите поддержку VNC, например WEINTEK решает сполна вашу задачу.
Как в первом так и во втором случае можно и только смотреть или полноценно управлять.
---
увидел, панель ОВЕН, печаль, до VNC как до Китая.
На всякий случай, уточню. Допускает ли протокол MODBUS TCP передачу других (не MODBUS) пакетов по тому же кабелю Ethernet? Иными словами, могу ли я подключать устройства через роутер (или хаб), который может посылать свои служебные пакеты?
Aleks1309 программа доступна или у вас нет возможности изменить конфигурацию ПЛК ?
Там всего-то нужно еще один слейв для TCP сделать для простого наблюдения...
KRUPSKIY
17.08.2016, 18:12
Не скачивается биб-ка на электросчетчики Меркурий. Может у кого есть?
Былобы неплохо иметь на борту поддержку Протокол Т4000 предназначен для работы непосредственно с модулями ввода/вывода контроллера «Теконик», производства ЗАО ПК « Промконтроллер» (ГК «ТЕКОН») по шине RS-485. Так как на этой системе основано большинство систем термометрии на элеваторах.
Log_Stas
11.02.2017, 08:14
Здравствуйте. Помогите разобраться. Имею ПЛК 63 и необходимо считать параметр с расходомера ГиперФлоу 3. Протокол HART, скорость 1200. За основу взял пример реализации обмена библиотеки SysLibCom. Отправляю всего одну заранее подготовленную команду:
(*формат команды протокола HART:
8 байт: преамбула 0хFF
1 байт: стартовый 0х02
1 байт: адрес устройства, 0х01
1 байт: команда чтения, в нашем случае 0х21
1 байт: длина запроса, у нас 0х01
1 байт: адрес данных, расход мгновенный 0х03
1 байт: контрольная сумма по XOR
*)
(*Читаем расход *)
command1:ARRAY [0..16] OF BYTE:= 16#FF,16#FF,16#FF,16#FF,16#FF,16#FF,16#FF,16#FF,16 #2,16#1,16#21,16#1,16#3,16#20;
Запрос проходит без проблем, и прибор отвечает, но только до тех пор, пока в функции SysComRead я указываю количество байт 16.
(*В переменную byte_read мы получаем число принятых байт при чтении порта*)
byte_read:=SysComRead(port_number, ADR(buf_otvet), 16, 0);
Но у меня в ответе от ГиперФлоу их приходит больше и если я устанавливаю нужное количество в функции, то начинаются ошибки. Если же этот аргумент менее 16, то вроде работает адекватно. Почему так происходит?
Протокол HART. А вы ничего не перепутали ?
Log_Stas
12.02.2017, 13:22
Так в инструкции на ГиперФлоу указано. А что смущает?
Так в инструкции на ГиперФлоу указано. А что смущает?
ПЛК "ОВЕН" не поддерживают HART протокол.
Здесь то же про этот расходомер: http://www.owen.ru/forum/showthread.php?t=517&page=13
Log_Stas
12.02.2017, 14:07
ПЛК "ОВЕН" не поддерживают HART протокол.
Понятно, что не поддерживает. Потому и пишу в теме про нестандартные протоколы.
Здесь то же про этот расходомер: http://www.owen.ru/forum/showthread.php?t=517&page=13
Здесь у человека считывание происходит нормально, он читает всю посылку с Гипера в массив 40 байт, а у меня максимум 16 байт считывается. Вот в чем затык.
capzar , какой кусок кода привести? Абсолютно весь код я взял из примера по работе с библиотекой SysLibCom.
Log_Stas
12.02.2017, 14:26
Ну вот весь файлик. Там правда еще есть код, относящийся к дисплею, но основное меня интересует в функциональном блоке send_command_bin
Log_Stas
13.02.2017, 10:27
Вот посмотрите на скриншотах, видно, что функция SysComRead всегда возвращает не более 15 байт(read_byte=15), хотя я точно знаю, что в посылке больше байт. Можете объяснить, почему так происходит?
29437
29438
Log_Stas
13.02.2017, 11:20
Это в аргументах функции SysComRead? Попробовал, тоже самое, 15 байт и все.
Log_Stas
13.02.2017, 12:13
capzar, о каком цикле речь? Можете подробнее разжевать, что я могу пропустить, а то совсем запутался. Т.е. после того, как функция приняла 15 байт заканчивается какой то цикл? Подскажите, как проверить, что-то теряю или нет из посылки. Иеще такой момент - на скриншоте есть хорошо заметная преамбула в буфере приема - семь байт 0xFF, а по документации их должно быть восемь. Пропускает первый байт? Но почему?
Log_Stas
14.02.2017, 06:15
Вот для лучшего понимания наглядный пример. Ответ от прибора приходит, но последние байты считать не могу.
29459
Как их можно считать, подскажите.
Log_Stas
14.02.2017, 06:48
Да, есть. Это: преамбула - 8 байт 0хFF, стартовый байт - 0х06, адрес ведомого - 0х01, команда - 0х21, длина ответа - 0х08, два байта статуса, шесть байт - данные запрошенного параметра и контрольная сумма по XOR.
Писать надо что-то в таком роде.
Ждём ответ, знаем что он должен быть 20 байт
Принимающий буфер не менее 20, хоть 30 пусть будет
Цикл 1
Получаем данные в размере 8 байт, кладём их в принимающий массив и сохраняем переменную сколько положили.
Цикл 2
Получили еще 8 байт, складываем в тот же массив, но со смещением из сохраненной переменной.
Складываем сколько пришло (8) с тем что было (8) в ту же переменную = 16, 16 < 20 (ожидаемого), значит ждём еще.
Цикл 3
Получаем 4 байта, делаем как в цикле 2.
Перед получением можно запомнить время ПЛК и в каждом шаге проверять не превысило ли оно секунды 3 например (таймаут), значит сбрасываем всё и посылаем запрос опять.
Всё это работает довольно быстро и таким образом не важно сколько уйдёт циклов на приём, главное чтобы не превысил таймаут.
Log_Stas
14.02.2017, 08:08
Что сейчас заметил: убрал проверку получения байт и сделал вот так
byte_read1:=SysComRead(port_number, ADR(buf_otvet), 8, 0);
byte_read2:=SysComRead(port_number, ADR(otvet), 8, 0);
т.е. два вызова функции подряд с чтением восьми байт. Результат озадачил. Две функции подряд возвращают все те же байты и не больше.:confused:
29464
Как это трактовать, я уже не знаю. Ведь на осциллограмме я четко вижу продолжение посылки еще на несколько байт минимум...
Log_Stas
14.02.2017, 09:09
Ну вот и косяк найден... в функции инициализации COM порта размер буфера стоит 0. Так было в примере, с которого я взял этот код. Поставил размер 32 и все заработало, считывается вся посылка. :) Всем спасибо за помощь!
Ну вот и косяк найден... в функции инициализации COM порта размер буфера стоит 0. Так было в примере, с которого я взял этот код. Поставил размер 32 и все заработало, считывается вся посылка. :) Всем спасибо за помощь!
Вряд ли причина в этом.
Log_Stas
14.02.2017, 11:32
Вольд, если код заработал сразу после того, как я изменил значение и перестает работать, как только возвращаю обратно 0, то я склонен думать, что в этом. Если есть иные соображения - поделитесь.
А как же у вас раньше вообще что-то принималось ?
Log_Stas
14.02.2017, 14:32
Не могу сказать. Я же не знаю, как работают эти функции. Может у нее есть некое дефолтное значение.
Если немного не в тему, то прошу прощения.
Вопрос такой: для ПЛК110 порт СОМ0 - это порт RS-485-1. Но CoDeSys ругается и не компилирует программу, если использовать СОМ0. Нормально компилируется, только начиная с СОМ1.
Как быть? Нужен именно RS-485-1.
Если немного не в тему, то прошу прощения.
Вопрос такой: для ПЛК110 порт СОМ0 - это порт RS-485-1. Но CoDeSys ругается и не компилирует программу, если использовать СОМ0. Нормально компилируется, только начиная с СОМ1.
Как быть? Нужен именно RS-485-1.
Вы используете SysLibCom?
com_num: Ports:= 0;
Так не работает??
Вы используете SysLibCom?
com_num: Ports:= 0;
Так не работает??
0 пробовал. Компилируется. Но связи не было. Видимо, я просто не дождался, пока связь установится.
Сейчас вроде работает. Спасибо.
iurlic2007
12.02.2018, 12:31
Здравствуйте. Помогите связать ПЛК110-60 с ЛИР 520 по RS232.
Вот параметры.
http://skbis.ru/pdf/readout/LIR510_520_530.pdf
Связь контроллера с устройством цифровой индикации через кабель КС14. Кабель подключаю к контроллеру в порт RS232-Debug
tomas111
12.07.2018, 12:02
Сложный вопрос, я никогда не пробовал.
В принципе, в принципе, в порт можно послать любую информацию.
Вопрос в размерах посылки, кодировке, тайм-аутах...
Считывать данные с RFID и купюроприемников очень даже получалось, управлять принтерами - не приходилось.
Добрый день, подскажите марку и модель RFID и купюроприёмника?
Спасибо.
Николаев Андрей
12.07.2018, 13:59
Добрый день. Не подскажу. Не помню.
Требования простые:
Порт RS-485 или RS-232. Если 232 - то надо понимать какие ножки задействованы. Если RFID питается от самого порта ПЛК - тут сложнее.
Ну и наличие описания протокола обмена.
В ПЛК все проще:
Команда открыть порт
Формируем и отправляем запрос информации (как это описано в протоколе обмена).
Ждем заданное время ответ.
Получаем ответ. Разбираем его, выделяя полезную информацию.
Если не нужно снова опрашивать - закрываем порт.
Если найдете такие устройства с ModBus (что вряд ли) - сэкономите себе немного времени и денег.
Vlad_doc
26.05.2020, 15:16
Добрый день..а есть какие то наработки по эл.счетчикам Энергомера....интересует серия СЕ301
Кстати вопрос к гуру. Предположим мы выставили таймаут 1500 мс, а ответ прибора будет всего 15 байт - что произойдет ?
собственно есть протоколы, которые а) не имеют фиксированной длины ответа и б) не имеют размера ответа в его заголовке.
Собственно МЭК61107 один из таких протоколов.
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot