Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Magelis XBT GT2000
Диалог специалистов АВОК > ОБЩИЙ ФОРУМ > Автоматизация систем
vladun
Есть проблема в виде XBT GT2110 (Мастер) и контроллер SMH.
Никак не удается заставить панель читать и писать данные в памяти SMH. Панель не может поставить даже бит в памяти, пишет, что ячейка Readonly, хотя другими средствами (модбасэмулятором) было установлено, что контроллер "записывает" в тот адрес очень даже нормально.
ПО мануалу необходимо использование спецпереходника XBT ZG949 и кабеля XBT ZGCOM2.
Однако в описании панели была найдена схема разъема, подключил опторазвязанный порт SMH к панели и создал пробный проект. Через некоторое время удалось заставить панель увидеть контроллер и вроде она даже обменивается с ним, но результатов на контроллере не видно (как и в его памяти). При умышленном разрыве связи панель, как и положено, выдает ошибку об истечении Таймаута, которая опять исчезает при подключении кабеля => канал связи есть (даже ошибок checksum нет). Может ли это (отсутствие спецкабеля) быть причиной ? (может он адреса интерпретирует для панели или еще чего нибудь)
У кого есть опыт настройки аналогичной связки или знания по теме, прошу поделиться.
AlexG
1. У панели и у SMH может различаться способ записи адресов регистров. Она может начинаться с нуля или еденицы, быть десятичной или шестнадцатеричной. Может быть первая цифра, обозначающая адресное пространство и на самом деле не являющаяся частью адреса. Из-за этого нестыковки бывают довольно часто.

2. Стоит попробовать подсунуть панели вместо SMH симулятор слэйва и посмотреть, будет ли работать с ним.

3. Еще стоит посмотреть какие запросы посылает панель и что получает в ответ. Посмотреть можно подключившись к интерфейсу параллельно и запустив на компьютере симулятор слейва в режиме "не отвечать на запросы". Можно использовать и простую терминалку, умеющую показывать данные в шестнадцатеричном виде.

Симуляторы слейва: mod_rssim, modbus_slave
Терминалка: HTerm

Если знаний протокола недостаточно, то логи можно скинуть мне.
AlexG
+Для разбора пакетов Modbus есть утилита CAS Modbus RTU Parser
vladun
Коллега, огромное спасибо, мы уже на дружественном форуме разобрались с Вами, а эту ветку я и забыл немного wink.gif
Все ссылки проглядел и часть скачал.
Еще раз Сенькс ! Биг-Биг Сенькс !
ScrewDriver
vladun, ну отпишитесь по впечатлениям от панели-то хоть wink.gif
AlexG
Видел у вас на скриншоте утилиту "Modbus Monitor". Можете ее выложить или прислать? Похоже это то, что мне сейчас нужно.
ScrewDriver
Если вы мне, то скажите свою почту wink.gif
AlexG
Не вам, но если у вас есть такая программа высылайте на omxyz<сабака>mail.ru
vladun
Коллега, утилита эта лежит в папке свободно-распостраняемой Агростроем программы Modbus Tester, которая является бесплатной.
Короче: тут !
Мнение о панельке пока рано, я ее только мучить начал по серьезному (уже сотню переменных забил - дышит пока smile.gif )
AlexG
В папке то посмотреть я и не догадался huh.gif У меня похоже тяжелый случай, с которым нужно разбираться не с программкой, а с приличным двухканальным осциллографом.
vladun
У меня тоже обмен идет но очень туго, очень....
Я уже подумываю об альтернативах, ибо 60 переменных (15 Input, 25 Input Reg и 20 Holding Reg примерно) тормозят, временами вылетает ошибка по CRC packet тут же исчезает. Есть надежда, чтонастройки панели могут дать толк, но их очень мало (скорость макс 38400), нет периодов опроса, а только скорость опроса "SLOW", "MED", "FAST" и "USER" (в секундах).
А вот скажите какую максимальную длину пакета можно давать SMH-слейву ? Есть на выбор "MAX possible", "MIN possible" и "User-Defined" (в байтах). Вобщем лес чертей с этим коммуникасионом smile.gif
PS: рано радовался впредыдущем посте sad.gif
AlexG
Чтобы меньше тормозило стоит поставить 38400, "FAST" и "MAX possible". А дальше экспериментировать с терминаторами и растяжками, чтобы битых пакетов небыло.

Если бы торможение не было проблемой, то с ошибками CRC можно было бы побороться подобрав максимальную допустимую длину пакета с помощью "User-Defined".
vladun
Я, как обычно "немного долго" почитав английский мануал (благо он для этих панелей шикарный) нашел, что таки МОЖНО для разных переменных ставить разные периоды сканирования (их объединяют в группы), нашел как это сделать, сейчас пробую разделить по степени "быстрости".
Наверное правда для 38400, шестьдесят переменных - Труба ? Простопомнится 267 через ОРС "гонял" нормально на 115200...

Алекс, вы вот мне скажите сколько SMH может принять байт в одном запросе ? (Это же и есть "длина фрейма" верно ?)
AlexG
Цитата(vladun @ 27.4.2009, 12:14) [snapback]382566[/snapback]
Наверное правда для 38400, шестьдесят переменных - Труба ?


Теоретически, на 38400 60 регистров можно предавать туда и обратно 12 раз в секунду, и даже быстрее. Но все сильно зависит от особенностей конкретного оборудования и того как переменные расположены в памяти.

Максимальная длина фрейма Modbus-RTU по стандарту всего 256 байт. Думаю у SMH с этим проблем быть не должно, для уверенности можно проверить экспериментально. Если я правильно понимаю, вы даже близко не приблизитесь к максимальной длине фрейма при опросе SMH панелью. У вас недостаточно переменных для этого и скорее всего они расположены вразброс по адресам и будут читаться и писаться отдельными запросами.
vladun
Да нет, адреса идут последовательно, один за одним.
Как проверить "экспериментально" ?
AlexG
Взять симулятор мастера, Modbus Poll, например, и послать запрос на чтение всех имеющихся переменных. Если удастся - запустить непрерывный опрос с максимальной частотой. Если при чтении с несуществующих адресов SMH не выдаст ошибку, то количество регистров в запросе постепенно увеличивать до максимума. Modbus Poll позволяет читать максимум 127 регистров одним запросом, это немного больше чем должно бы быть по стандарту.
vladun
Толково!
Но....
читайте личку Коллега ! smile.gif sad.gif
ScrewDriver
По стандарту максимум - 100 регистров, реально попадались устройства отдающие максимум 25
san
Цитата(ScrewDriver @ 28.4.2009, 10:36) [snapback]382915[/snapback]
По стандарту максимум - 100 регистров, реально попадались устройства отдающие максимум 25

По стандарту IDA на прикалдном уровне максимальный запрос = 253 байта, учитывая номер функции и счетчик, это около 125 байт.
ScrewDriver
эммм, а я про модбас от шнайдера wink.gif
А что за IDA, что-то я не вкурсе?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.