PDA

Просмотр полной версии : ПЛК160 и китайский термостат



Bigcrash
02.10.2020, 08:18
Добрый день.
Задача - соединить ОВЕН ПЛК160 и китайский термостат BHT-6000GALN по ModBus (RS-485). Т.к. карты я на него не нашел, методом обратного инжиниринга были вычислены нужные регистры.
3 функция и регистры с 40001-40006. Через Modbus Poll все читается, записывается. Как дело дошло до ПЛК уже 2 день не получается. Раньше с ОВЕН не работал, быстренько посмотрел видео
уроки. В принципе все просто, кроме какой-то лютой дичи CodeSys2.3 с выбором того, что ты хочешь вытащить. Добавил Мастера, поставил в слот 485, указал параметры связи, добавляю
Real Input Module (на 40002 находится температура), но переменная при запуске в 0. Фото с настройками прикрепляю
З.Ы. я так и не понял, как отличить обычный ПЛК от .M2? В описалове нашел, что у М2 винты выпадающие, а у обычного нет )). Таргет накатил от М2

Bigcrash
02.10.2020, 08:52
Именно ПЛК нет, была один раз СПК (ооочень давно))).
Пробовал и 1,2 без 40000. Все равно 0. (

Bigcrash
02.10.2020, 09:15
Где ModBus Master, там LastError 81, нашел что это превышен таймаут ожидания. Т.е. по факту меня перестановка байт не спасет (((. (но я ее попробовал поставить в Натив).
Я пока пробую просто адрес 1 ставить, чтоб хоть что-то прочитать.

Bigcrash
02.10.2020, 09:42
Подключил Сигнетик, схавал на раз - два.
Может я что-то не так понял из фразы "используйте просто регистры а не реалы", но разве реал - это не тип данных, а регистры - не место их размещения?
Или вы имели ввиду попробовать еще повыбирать из той кучи всего, что предлагает КС. В принципе я пробовал и 8 бит и 32 бит ставить и СТЕЙТ (так и не понял что это). Пока не удалось (
З.Ы. через МБ Poll работает только когда устанавливаешь 2 стоп бита. На сигнетике только когда установлен 1 стоп бит... WTF что эти китайцы делают?"?"

Bigcrash
02.10.2020, 09:50
Да, конечно. Адрес сконфигурирован.
Я 16 битные слова в КС как обзываются?
(в сигнетике температура по integer (out) читалась)

Cs-Cs
02.10.2020, 09:52
Bigcrash Я влезу, но могу невпопад. Тестани все адреса регистров с адерса 0 или 1! У меня был обзор на китайский термостат BHT-002 (вот ссыль (https://cs-cs.net/termostat-teplyh-polov-modbus)), дык там в инструкции тоже было всё с адресов 40000, а в реальности оказалось с нуля!
Вот что давали китайцы:
51223

А вот что в реальности:
51224

Впопад я влез, впопад. Я сначала подумал, что проблема стандартная, и даже скриншоты не смотрел. А щас посмотрел и, если не обидишься, отвечу цитатой из фильма "Джентельмены удачи": "Карту купи, лапоть".
Ты ж смотри, ЧТО ты творишь:
* В Modbus Poll ты работаешь с ПРАВИЛЬНЫМИ (как в моём случае) адресами регистров, с нуля: 0, 1, 2, 3.
* В ПЛК ты вписал 40001. Естественно, что он будет ругаться.
Будь внимателен =)

Bigcrash
02.10.2020, 09:58
Я в ПЛК уже и 0 и 1 и 2 вписывал. Не помогло.
Китайцы тебе все правильно дали, просто в МБПуле есть один ньюанс, который, возможно, остался тобой незамеченым.
З.Ы. за последний регистр спасибо. Так и не мог понять за что он отвечает ))

Cs-Cs
02.10.2020, 10:22
Bigcrash Хм. У меня он старый, что ли. У меня нет такой подписи. И галок меньше.
Ща-ка я расчехлю ПЛК110 и тестану. Погоди 30 минут.

Cs-Cs
02.10.2020, 10:44
Bigcrash Ну я не знаю. Вот ПЛК110, вот завелось с адресами, начиная с нуля:
51226

Вот проект: 51227

А, ну и ещё у тебя ошибка с регистрами. Там не REAL. Только Register.

Bigcrash
02.10.2020, 17:12
Bigcrash Ну я не знаю. Вот ПЛК110, вот завелось с адресами, начиная с нуля:
51226

Вот проект: 51227

А, ну и ещё у тебя ошибка с регистрами. Там не REAL. Только Register.
Спасибо за работу, в понедельник чекну. Может косяк у меня плк160 без М2 и это как-то влияет на МБ. Буду разбираться, где лыжи не едут.

Cs-Cs
02.10.2020, 19:32
Bigcrash Никак не влияет. Вот прям совсем не влияет. Это номера регистров, и дело в них.

Роман_33
04.10.2020, 18:28
Был у меня похожий случай. Надо было Сименс с весовой платой неведомого производителя связать. Так же, с помощью Modbus ОРС выяснил параметры связи и адреса. Но PLC наотрез отказывался "видеть" плату. Лишь когда от безысходности стал страдать фигней и менять все подряд (учитывая,что Modbus на Сименсе в отличии от Овена сильно через жопу организован),выяснилось, что параметры в ОРС и PLC отличаются. Если ОРС работал на параметрах 9600.8.N.1,то PLC заработал на 9600.8.Е.1. Колдовство, не иначе. И да, адреса в Овен с 0. Допустим если в карте адрес записан как 4025, то в Овен пишите 25, возможно какое то смещение, обычно +1. И если переменная в формате INT не надо её пытаться реалом читать.

Bigcrash
05.10.2020, 10:42
Короче .опа какая-то. Проекты у нас идентичные, настройки одинаковые. Даже понять не могу, где может быть трабла....

Bigcrash
05.10.2020, 10:49
На А кидаю + (красный провод), на В минус (черный)

Bigcrash
05.10.2020, 12:46
новая инфа. 0 регистр отвечает за включение/отключение термостата. Если поставить Register Output Module то он вообще не включается. Точнее нажимаешь кнопку включения, он появляется на мгновение и снова гаснет, как будто переменная всегда в 0. Но если ее вручную менять в КС то работает!!! WTF?"?!?!?!? При этом висит что связи нет. Выходные не показывает.
Почему КС Register Output Module не дает делать выходом. Только как вход О_О

Cs-Cs
05.10.2020, 13:21
Bigcrash А ты сначала на чтение проверь, а не на запись их. Вот когда все регистры он отдаст верно - то потом будем с записью разбираться.
Тут прикол в том, что у него те же регистры и читаются и пишутся. И в том, что у CodeSys по умолчанию запись идёт ПОСТОЯННО. А она тут нужна однократно по изменению.

Bigcrash
05.10.2020, 13:48
Не могу я с чтением разобраться, не читает хоть убей. Писать - пишет, а читать наотрез отказывается.
Может где-то надо какую-то галку тыкнуть, какую-то настройку поставить? У меня уже мозг вытекает.

Bigcrash
05.10.2020, 15:56
https://youtu.be/6m7bh2gzn04

Роман_33
05.10.2020, 17:19
Почему КС Register Output Module не дает делать выходом. Только как вход О_О

Register Output Module это функции записи.Register Input Module это функции чтения. Т.е. управляете с помощью Output (это Ваши "выходы"), смотрите состояния и данные с помощью Input (это Ваши "входы"). А не включается с кнопки потому, что Овен постоянно туда 0 пишет т.е. выключает. Будете писать 1, наоборот кнопкой не выключите.
В настройках полинга вроде должен быть пункт "по изменению" (это если хотите управлять и с контроллера и с прибора). Попробуйте. Что бы прочитать температуру согласно Вашей карты, необходимо поставить Register Input Module, адрес регистра 2, возможно смещение плюс-минус 1,значит 1 или 3. Проверите методом "тыка". Что бы управлять работой или записать уставку ставите Register Output Module и соответственно туда пишите, что Вам необходимо. (Судя по видео управлять у Вас получается)

Bigcrash
06.10.2020, 06:32
Да все адреса с 0 по 8 я туда пробовал писать, не читает и все, пробовал разные версии стоп битов, разные функции Модбаса, разные переменные. Но управлять управляет. Если у кого-то есть желание по удаленке поломать голову буду благодарен. У меня идеи тупо кончились. 3 дня хождения по кругу.

Роман_33
06.10.2020, 06:44
Я вот посмотрел, у Вас в ОРС время 500мс, а в контроллере наверняка по умолчанию 100мс стоит. Попробуйте в Polling time 500 или даже 1000 поставить. Так, в порядке бреда.

Bigcrash
06.10.2020, 07:13
И 0 и 100 и 1000 и еще штук 10 разных времен ставил.

Cs-Cs
06.10.2020, 09:23
А ты не в Мск? А то вместе попробовали бы. Ты мой пост читал?
Ты в курсе, что на неправильные номера ргеистров термостат ошибки (кривые) возвращает?
Мой даже по 10 мсек крутился - всё нормально было.

Bigcrash
06.10.2020, 09:30
Я все твои посты раз 20 перечитал. Еще перечитывал первого отвечавшего, пока он их не поудалял зачем-то. К сожалению, я очень далеко от Мск.
Да, в курсе, что если подать запрос на несуществующий регистр будет ошибка. Поэтому я их перебирал строго по одному от 0 до 8 в надежде что какой-нибудь да прочитается.

Cs-Cs
06.10.2020, 10:17
Но у тебя же на Modbus Poll же читалось! Выложи сюда свой проект, а? Я хочу посмотреть. Я не всё знаю, не всё умею - но мне, чёрт побери, интересно.

Bigcrash
06.10.2020, 10:32
У меня в принципе он прочитался на 3 контроллерах и ПК, но не на ОВНЕ...

IVM
06.10.2020, 11:31
Удобнее OPC-сервером термостат попытать, там в мониторе и запросы и ответы видно. И настройки в OPC-сервере проще менять.

Cs-Cs
06.10.2020, 11:33
Да, обсмеёшься... и я даже не знаю, к чему придраться. Всё так же как у меня, только платформа или 100 или 160.

Bigcrash
06.10.2020, 13:45
Было бы смешно, если бы не было так грустно ((

Bigcrash
06.10.2020, 14:32
А с другой китайской балалайкой законектился без проблем, прям вот сразу....

Bigcrash
06.10.2020, 14:47
Register Output Module это функции записи.Register Input Module это функции чтения. Т.е. управляете с помощью Output (это Ваши "выходы"), смотрите состояния и данные с помощью Input (это Ваши "входы"). А не включается с кнопки потому, что Овен постоянно туда 0 пишет т.е. выключает. Будете писать 1, наоборот кнопкой не выключите.
В настройках полинга вроде должен быть пункт "по изменению" (это если хотите управлять и с контроллера и с прибора). Попробуйте. Что бы прочитать температуру согласно Вашей карты, необходимо поставить Register Input Module, адрес регистра 2, возможно смещение плюс-минус 1,значит 1 или 3. Проверите методом "тыка". Что бы управлять работой или записать уставку ставите Register Output Module и соответственно туда пишите, что Вам необходимо. (Судя по видео управлять у Вас получается)
Тоже маленько не понятно. Polling time понятно что это опрос по времени. Есть настройка by change value которая в теории должна как раз писать один раз. Но если ее выставить ручное управление пропадает. Что пиши, что не пиши, прибор на команду не реагирует. Есть настройка Both, работает аналогично поллингу, шо это - я хз. И есть Сommand видимо это через скрипты как-то.