Полная версия этой страницы:
Magelis XBT GT2000
Есть проблема в виде XBT GT2110 (Мастер) и контроллер SMH.
Никак не удается заставить панель читать и писать данные в памяти SMH. Панель не может поставить даже бит в памяти, пишет, что ячейка Readonly, хотя другими средствами (модбасэмулятором) было установлено, что контроллер "записывает" в тот адрес очень даже нормально.
ПО мануалу необходимо использование спецпереходника XBT ZG949 и кабеля XBT ZGCOM2.
Однако в описании панели была найдена схема разъема, подключил опторазвязанный порт SMH к панели и создал пробный проект. Через некоторое время удалось заставить панель увидеть контроллер и вроде она даже обменивается с ним, но результатов на контроллере не видно (как и в его памяти). При умышленном разрыве связи панель, как и положено, выдает ошибку об истечении Таймаута, которая опять исчезает при подключении кабеля => канал связи есть (даже ошибок checksum нет). Может ли это (отсутствие спецкабеля) быть причиной ? (может он адреса интерпретирует для панели или еще чего нибудь)
У кого есть опыт настройки аналогичной связки или знания по теме, прошу поделиться.
1. У панели и у SMH может различаться способ записи адресов регистров. Она может начинаться с нуля или еденицы, быть десятичной или шестнадцатеричной. Может быть первая цифра, обозначающая адресное пространство и на самом деле не являющаяся частью адреса. Из-за этого нестыковки бывают довольно часто.
2. Стоит попробовать подсунуть панели вместо SMH симулятор слэйва и посмотреть, будет ли работать с ним.
3. Еще стоит посмотреть какие запросы посылает панель и что получает в ответ. Посмотреть можно подключившись к интерфейсу параллельно и запустив на компьютере симулятор слейва в режиме "не отвечать на запросы". Можно использовать и простую терминалку, умеющую показывать данные в шестнадцатеричном виде.
Симуляторы слейва:
mod_rssim,
modbus_slaveТерминалка:
HTermЕсли знаний протокола недостаточно, то логи можно скинуть мне.
+Для разбора пакетов Modbus есть утилита
CAS Modbus RTU Parser
Коллега, огромное спасибо, мы уже на дружественном форуме разобрались с Вами, а эту ветку я и забыл немного

Все ссылки проглядел и часть скачал.
Еще раз Сенькс ! Биг-Биг Сенькс !
ScrewDriver
24.4.2009, 16:19
vladun, ну отпишитесь по впечатлениям от панели-то хоть
Видел у вас на скриншоте утилиту "Modbus Monitor". Можете ее выложить или прислать? Похоже это то, что мне сейчас нужно.
ScrewDriver
24.4.2009, 17:08
Если вы мне, то скажите свою почту
Не вам, но если у вас есть такая программа высылайте на omxyz<сабака>mail.ru
Коллега, утилита эта лежит в папке свободно-распостраняемой
Агростроем программы Modbus Tester, которая является бесплатной.
Короче:
тут ! Мнение о панельке пока рано, я ее только мучить начал по серьезному (уже сотню переменных забил - дышит пока

)
В папке то посмотреть я и не догадался

У меня похоже тяжелый случай, с которым нужно разбираться не с программкой, а с приличным двухканальным осциллографом.
У меня тоже обмен идет но очень туго, очень....
Я уже подумываю об альтернативах, ибо 60 переменных (15 Input, 25 Input Reg и 20 Holding Reg примерно) тормозят, временами вылетает ошибка по CRC packet тут же исчезает. Есть надежда, чтонастройки панели могут дать толк, но их очень мало (скорость макс 38400), нет периодов опроса, а только скорость опроса "SLOW", "MED", "FAST" и "USER" (в секундах).
А вот скажите какую максимальную длину пакета можно давать SMH-слейву ? Есть на выбор "MAX possible", "MIN possible" и "User-Defined" (в байтах). Вобщем лес чертей с этим коммуникасионом

PS: рано радовался впредыдущем посте
Чтобы меньше тормозило стоит поставить 38400, "FAST" и "MAX possible". А дальше экспериментировать с терминаторами и растяжками, чтобы битых пакетов небыло.
Если бы торможение не было проблемой, то с ошибками CRC можно было бы побороться подобрав максимальную допустимую длину пакета с помощью "User-Defined".
Я, как обычно "немного долго" почитав английский мануал (благо он для этих панелей шикарный) нашел, что таки МОЖНО для разных переменных ставить разные периоды сканирования (их объединяют в группы), нашел как это сделать, сейчас пробую разделить по степени "быстрости".
Наверное правда для 38400, шестьдесят переменных - Труба ? Простопомнится 267 через ОРС "гонял" нормально на 115200...
Алекс, вы вот мне скажите сколько SMH может принять байт в одном запросе ? (Это же и есть "длина фрейма" верно ?)
Цитата(vladun @ 27.4.2009, 12:14) [snapback]382566[/snapback]
Наверное правда для 38400, шестьдесят переменных - Труба ?
Теоретически, на 38400 60 регистров можно предавать туда и обратно 12 раз в секунду, и даже быстрее. Но все сильно зависит от особенностей конкретного оборудования и того как переменные расположены в памяти.
Максимальная длина фрейма Modbus-RTU по стандарту всего 256 байт. Думаю у SMH с этим проблем быть не должно, для уверенности можно проверить экспериментально. Если я правильно понимаю, вы даже близко не приблизитесь к максимальной длине фрейма при опросе SMH панелью. У вас недостаточно переменных для этого и скорее всего они расположены вразброс по адресам и будут читаться и писаться отдельными запросами.
Да нет, адреса идут последовательно, один за одним.
Как проверить "экспериментально" ?
Взять симулятор мастера, Modbus Poll, например, и послать запрос на чтение всех имеющихся переменных. Если удастся - запустить непрерывный опрос с максимальной частотой. Если при чтении с несуществующих адресов SMH не выдаст ошибку, то количество регистров в запросе постепенно увеличивать до максимума. Modbus Poll позволяет читать максимум 127 регистров одним запросом, это немного больше чем должно бы быть по стандарту.
Толково!
Но....
читайте личку Коллега !
ScrewDriver
28.4.2009, 10:36
По стандарту максимум - 100 регистров, реально попадались устройства отдающие максимум 25
Цитата(ScrewDriver @ 28.4.2009, 10:36) [snapback]382915[/snapback]
По стандарту максимум - 100 регистров, реально попадались устройства отдающие максимум 25
По стандарту IDA на прикалдном уровне максимальный запрос = 253 байта, учитывая номер функции и счетчик, это около 125 байт.
ScrewDriver
30.4.2009, 15:34
эммм, а я про модбас от шнайдера

А что за IDA, что-то я не вкурсе?
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.