Вход

Просмотр полной версии : Подключение устройств с нестандартными протоколами



Страницы : 1 [2]

Вольд
26.02.2015, 10:57
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% - мало. Это твое субъективное мнение. Дай ссылку на нормативный документ , где по этому поводу что-то сказано. Датчик твой дерьмово спроектирован. Ту цепочку, что я нарисовал надо было ввести в схему датчика и все бы было нормально. Твоя проблема вполне решаема и не надо тут пустой болтовней заниматься.

Liroyd
26.02.2015, 11:21
Это не проблема аналогового входа ПЛК160 (вход выдерживает перегрузку по току 10 %), а проблема токового датчика. Датчик твой дерьмово спроектирован.

Если у вольтметра на 220В будет перегрузка 10%, а в сети даже по ГОСТу допускаются перенапряжения +\-5 (10)%. Рискнёте вы его туда поставить? А в наши сети, где 250В бывает?) Да и вообще многие СИ имеют перегрзку 120% от максимума и больше, а здесь явно меньше. То есть проблема аналогового входа ПЛК (это же средство измерений) имеет место быть.

Будьте добры, подскажите "недерьмовые" датчики со входом 10мВ (100мВ, 1000мВ, 10В, RMS) в 4-20мА, у которых бы выход не убегал за хотя бы за 15% по выходному току.

Вольд
26.02.2015, 11:26
Будьте добры, подскажите "недерьмовые" датчики со входом 10мВ (100мВ, 1000мВ, 10В, RMS) в 4-20мА, у которых бы выход не убегал за хотя бы за 15% по выходному току.
А полы тебе не помыть.

petera
26.02.2015, 12:36
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:

Вольд
26.02.2015, 13:00
petera, я дал клиенту исчерпывающий ответ как решить его проблему. В данном случае аналоговый вход ПЛК160 надо обязательно защищать от перегрузки иначе он может не выдержать тупого насилия. Про то, что заниженные значения надо в программе обрабатывать тоже было написано. Просто клиент попался непонятливый из-за этого все так растянулось.

Liroyd
26.02.2015, 13:06
Столько постов наплодили, а все из-за того, что кто-то не читает руководства, а зря.
Защиты входов какие-то напридумывали: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мА проваливается -это не совсем логично...
И ответа на вопрос: как (следствие встроенного механизма работы) всё таки работает вход при превышении тока не дождался: чисто технический интерес

Liroyd
26.02.2015, 13:24
Это не проблема аналогового входа ПЛК160 (вход выдерживает перегрузку по току 10 %), а проблема токового датчика. С чего ты взял, что 25% это не много, а 10% - мало. Это твое субъективное мнение. Дай ссылку на нормативный документ , где по этому поводу что-то сказано. Датчик твой дерьмово спроектирован. Ту цепочку, что я нарисовал надо было ввести в схему датчика и все бы было нормально. Твоя проблема вполне решаема и не надо тут пустой болтовней заниматься.

к примеру ГОСТ 13033-84 Пункт 2.6 страница 4/10. С другой стороны Вы бесконечно правы, ведь ПЛК выдерживает ЭТУ перегрузку)))

Также, например, у конкурентов указывается данный параметр:
аналоговый ввод, допустимая перегрузка продолжительнавя 0,10а для токовых сигналов

В общем Спасибо за ответы. Вопрос исчерпан.

petera
26.02.2015, 13:52
И ответа на вопрос: как (следствие встроенного механизма работы) всё таки работает вход при превышении тока не дождался: чисто технический интерес
Там же, но чуть выше
16863

Вольд
26.02.2015, 14:22
Там же, но чуть выше
16863
Ну, тогда автор темы ломится в открытую дверь.

Liroyd
02.03.2015, 12:08
Тех. поддержка ОВЕН:

"Вы прравы, дейтвительно, принцип измерения, про который я Вам писал ранее, реализован в ПЛК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

cerceli
10.04.2015, 12:02
Всем доброго времени суток.Пытаюсь подружить тилкомовский декодер Т26 с плк150, связь настроил, проблема вот в чем-у декодера нет регистров есть функции.http://tilkom.com/download_files/download/modbus.pdfкакие варианты реализации, может поменять протокол? Кто нибудь делал подобное? скиньте кто что может)

Вольд
10.04.2015, 12:07
Протокол этого прибора не является протоколом MODBUS RTU. По этой причине протокол придется реализовывать самостоятельно. (http://www.owen.ru/forum/showthread.php?t=13585)

100xanoff
12.04.2015, 09:56
Есть ли возможность повысить скорость работы RS-485 на ПЛК110-60 до 250 000 бод для работы с протоколом DMX512 ?

Вольд
12.04.2015, 10:32
Есть ли возможность повысить скорость работы RS-485 на ПЛК110-60 до 250 000 бод для работы с протоколом DMX512 ?
Через конфигуратор нет. Возможно библиотеки работы с последовательным портом позволяют настроить порт на токую скорость.

Askhat
16.12.2015, 19:40
Здравствуйте. Подскажите пожалуйста. Реализовывал кто нибудь опрос с помощью плк100 таких устройств, как тепловычислитель Эльф, Карат-307 (http://www.karat-npo.ru/view_text_cat/id/257), Корректор объема газа ЕК270?

PavelGq
29.02.2016, 09:27
Добрый день.
Столкнулся с вопросом и не смог найти вразумительный ответ.
На ПЛК110 новой модификации присутствует две клеммы s/s. Правильно я понимаю, что с их помощью можно подключить одновременно pnp и npn датчики без особых заморочек или же это я нафантазировал?

Извиняюсь, что пишу тут, не нашел более подходящей темы.

Николаев Андрей
06.03.2016, 13:13
Да, этот вход определяет тип ГРУППЫ входов, как это и указано в руководстве по эксплуатации в схемах подключения.

Aleks1309
26.03.2016, 23:30
Здравствуйте я не какой не программист а просто оператор РБУ с оборудованием плк100 и панель оператора овен меня интересует такой вопрос директор поставил задачу провести к нему в кабинет кабель до ноутбука чтоб контролировать в режиме онлайн весь процесс который я веду мы созвонились с фирмой которая загружала проект и объяснили задачу на что нам сказали что для выполнения данной задачи необходимо менять программу и загнули ценник в 150000 р я дико возмущён таким обдирательством и решил сам вникнуть ведь я уверен что есть такая возможность просто дублировать мой монитор который я наблюдаю на панели на монитор директора но ограничив его по функциям. Подскажите прав ли я и так ли сложно это сделать?

tomilov91
30.03.2016, 09:20
Если вы наблюдаете весь процесс только с панели оператора, то вывод на данных ПК скорее всего не будет "как два пальца". Установка второй панели тоже будет проблемой.

Scream
30.03.2016, 09:30
Здравствуйте я не какой не программист а просто оператор РБУ с оборудованием плк100 и панель оператора овен меня интересует такой вопрос директор поставил задачу провести к нему в кабинет кабель до ноутбука чтоб контролировать в режиме онлайн весь процесс который я веду мы созвонились с фирмой которая загружала проект и объяснили задачу на что нам сказали что для выполнения данной задачи необходимо менять программу и загнули ценник в 150000 р я дико возмущён таким обдирательством и решил сам вникнуть ведь я уверен что есть такая возможность просто дублировать мой монитор который я наблюдаю на панели на монитор директора но ограничив его по функциям. Подскажите прав ли я и так ли сложно это сделать?

Вы контролируете процесс на мониторе ПК?
Тогда LiteManagerFREE или TeamViewer ставите и уже сегодня всё работает.
Если на какой то пром. панели, то ищите поддержку VNC, например WEINTEK решает сполна вашу задачу.
Как в первом так и во втором случае можно и только смотреть или полноценно управлять.

---
увидел, панель ОВЕН, печаль, до VNC как до Китая.

Dmitry
08.08.2016, 03:27
На всякий случай, уточню. Допускает ли протокол MODBUS TCP передачу других (не MODBUS) пакетов по тому же кабелю Ethernet? Иными словами, могу ли я подключать устройства через роутер (или хаб), который может посылать свои служебные пакеты?

melky
08.08.2016, 09:56
Aleks1309 программа доступна или у вас нет возможности изменить конфигурацию ПЛК ?
Там всего-то нужно еще один слейв для TCP сделать для простого наблюдения...

KRUPSKIY
17.08.2016, 18:12
Не скачивается биб-ка на электросчетчики Меркурий. Может у кого есть?

lisich
26.08.2016, 10:33
Былобы неплохо иметь на борту поддержку Протокол Т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, то вроде работает адекватно. Почему так происходит?

IVM
12.02.2017, 13:17
Протокол HART. А вы ничего не перепутали ?

Log_Stas
12.02.2017, 13:22
Так в инструкции на ГиперФлоу указано. А что смущает?

IVM
12.02.2017, 13:35
Так в инструкции на ГиперФлоу указано. А что смущает?

ПЛК "ОВЕН" не поддерживают HART протокол.

IVM
12.02.2017, 13:46
Здесь то же про этот расходомер: 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.

Scream
14.02.2017, 08:08
Писать надо что-то в таком роде.
Ждём ответ, знаем что он должен быть 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 и все заработало, считывается вся посылка. :) Всем спасибо за помощь!

Вольд
14.02.2017, 11:17
Ну вот и косяк найден... в функции инициализации COM порта размер буфера стоит 0. Так было в примере, с которого я взял этот код. Поставил размер 32 и все заработало, считывается вся посылка. :) Всем спасибо за помощь!

Вряд ли причина в этом.

Log_Stas
14.02.2017, 11:32
Вольд, если код заработал сразу после того, как я изменил значение и перестает работать, как только возвращаю обратно 0, то я склонен думать, что в этом. Если есть иные соображения - поделитесь.

Вольд
14.02.2017, 14:23
А как же у вас раньше вообще что-то принималось ?

Log_Stas
14.02.2017, 14:32
Не могу сказать. Я же не знаю, как работают эти функции. Может у нее есть некое дефолтное значение.

ks-app
27.04.2017, 10:00
Если немного не в тему, то прошу прощения.
Вопрос такой: для ПЛК110 порт СОМ0 - это порт RS-485-1. Но CoDeSys ругается и не компилирует программу, если использовать СОМ0. Нормально компилируется, только начиная с СОМ1.
Как быть? Нужен именно RS-485-1.

Scream
27.04.2017, 10:12
Если немного не в тему, то прошу прощения.
Вопрос такой: для ПЛК110 порт СОМ0 - это порт RS-485-1. Но CoDeSys ругается и не компилирует программу, если использовать СОМ0. Нормально компилируется, только начиная с СОМ1.
Как быть? Нужен именно RS-485-1.

Вы используете SysLibCom?

com_num: Ports:= 0;

Так не работает??

ks-app
27.04.2017, 11:26
Вы используете 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

melky
26.05.2020, 17:39
Кстати вопрос к гуру. Предположим мы выставили таймаут 1500 мс, а ответ прибора будет всего 15 байт - что произойдет ?

собственно есть протоколы, которые а) не имеют фиксированной длины ответа и б) не имеют размера ответа в его заголовке.
Собственно МЭК61107 один из таких протоколов.