Segnetics

Вернуться   Segnetics > Форум Segnetics > Связь с внешним миром

Связь с внешним миром Modbus, RS232, RS485, Lon и другое.

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2009, 21:52   #1
vladun
Senior Member
 
Регистрация: Feb 2007
Сообщения: 174
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: преобразователь Delta

Если мастер запрашивает у слейва-SMH значение переменной по адресу КОТОРОГО НЕТ в карте памяти SMH,созданного Лоджиком, как ответит SMH ? Он даст некое значение хранящееся по заданному адресу или ничего не ответит ?
vladun вне форума   Ответить с цитированием
Старый 20.04.2009, 05:44   #2
AlexG
Senior Member
 
Регистрация: Jan 2006
Сообщения: 172
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: преобразователь Delta

Варианта "не ответить ничего" в стандарте нет, или значение или специальное сообщение с кодом ошибки.
AlexG вне форума   Ответить с цитированием
Старый 20.04.2009, 14:11   #3
vladun
Senior Member
 
Регистрация: Feb 2007
Сообщения: 174
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: преобразователь Delta

Спасибо, я уже разобрался в том, что панель дает правильный адрес (Modsim рулит и все показывает/меняет), но SMH почему то не принимает его и не дает панели правильного ответа. Она у себя ставит бит/значение, выбрасывает его в сеть, а в контроллере оно не меняется. Причем настройки в симуляторе Modsim32 идентичны настройкам контроллера SMH, связь с которым у панели вроде есть (нет диагн. сообщений на панели), а обмена нет.
Они друг друга не понимают, никто не меняет свои значения по данным из другого, т.е. панель отправляет контроллеру данные (у себя она выставляет эти данные), тот их не принимает и не пишет себе в память, в то же время Input-ты из контроллреа не проходят в панель. А связь вроде бы есть.
Вобщем одним словом у меня беда. Придется менять "кого-то" из них

На рис демопроект для иллюстрации (на нулевом входе мультиплексора панель выставила (пытается поставить) число 25, но его , как видите..)
Изображения
Тип файла: jpg Logic_Project.jpg (104.7 Кбайт, 245 просмотров)

Последний раз редактировалось vladun, 20.04.2009 в 14:28 Причина: добавил
vladun вне форума   Ответить с цитированием
Старый 20.04.2009, 14:23   #4
AlexG
Senior Member
 
Регистрация: Jan 2006
Сообщения: 172
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: преобразователь Delta

У такого поведения всеравно должна быть причина, в Модбасе чудес не бывает.
Панель удалось связать хоть с чем-нибудь?
AlexG вне форума   Ответить с цитированием
Старый 20.04.2009, 14:31   #5
vladun
Senior Member
 
Регистрация: Feb 2007
Сообщения: 174
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Панель MAgelis

Спасибо за участие коллега,
да, как я написал, панель чудесно и без проблем работает с симулятором слейва ModSim. Она также не дает аварии при подключенном контроллере, а если 485 -й разорвать, то через несколько секунд выдает ошибку связи по таймауту, которая устраняется снова подключением связи сама-собой без ручных манипуляций.
Но почему не видно данных в контроллере, я не знаю. Настойки симулятора такие же и все работает.
vladun вне форума   Ответить с цитированием
Старый 20.04.2009, 14:34   #6
vladun
Senior Member
 
Регистрация: Feb 2007
Сообщения: 174
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Панель Magelis XBT GT 2110

Иногда (не вижу закономерности) раз в минуту или в десять-двадцать, панель (Мастер) выводит сообщение "PLC packet validation failed. Invalid checksum. (SMH)"
Я его сбрасываю и его опять нет какое-то неопределенное время.
vladun вне форума   Ответить с цитированием
Старый 20.04.2009, 15:09   #7
vladun
Senior Member
 
Регистрация: Feb 2007
Сообщения: 174
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Панель Magelis XBT GT 2110

А вот, что и как шлет панель контроллеру в этом проекте:
первый рис: это то, что показал сканер модбаса (ка кслейв принимал пакеты на комп.)
второй рис - переменные в панели и их адрес.
Изображения
Тип файла: jpg Panel_sending_packets.jpg (144.6 Кбайт, 209 просмотров)
Тип файла: jpg Workspace_Vijeo.jpg (192.4 Кбайт, 222 просмотров)
vladun вне форума   Ответить с цитированием
Старый 20.04.2009, 15:16   #8
vladun
Senior Member
 
Регистрация: Feb 2007
Сообщения: 174
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Панель Magelis XBT GT 2110

При подключении панель проверяет адресное пространство слейва и если находит ошибки, то на значках мнемосимволов (кнопки, дисплеи и пр.) выставляет значки (треугольник с воскл.знаком) именно тех переменных, адреса которых ошибочны. Соответственно, имеем, что панель имеет доступ к памяти контроллера или он ей сам говорит, что все ок. Но что же тогда "стопорит" передачу данных ???
vladun вне форума   Ответить с цитированием
Старый 20.04.2009, 15:49   #9
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Панель Magelis XBT GT 2110

Цитата:
Сообщение от vladun
А вот, что и как шлет панель контроллеру в этом проекте:
первый рис: это то, что показал сканер модбаса (ка кслейв принимал пакеты на комп.)

Что-то я не увидел ни одной команды записи. Всё только чтение и чтение. Причём по каким-то странным адресам.

По картинке:

1) идёт чтение holding registers с адреса 07BF

2) идёт чтение holding registers с адреса 03BF

3) идёт чтение input status с адреса 10EF


Ни одной операции записи нет.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 20.04.2009, 16:20   #10
vladun
Senior Member
 
Регистрация: Feb 2007
Сообщения: 174
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Панель Magelis XBT GT 2110

конечно, она только шлет", ведь я в то время не нажимал кнопки изменения параметров. А что надо было бы ?
По адресам: интересно каким образом введенные адреса (см картинку 2) переменных превратились в КОМПЬЮТЕРЕ в указанные вами ?
Подчеркну, что отключая порт контроллера и подключая панель через 7561 к компьютеру с симулятором ModSim, я вижу чтение точно из тех адресов, которые указаны в таблице рис 2., а именно: Input Status = 14336, Holding Register = 41984, Input Register = 40960.
Карту памяти прикладываю.
Изображения
Тип файла: jpg Map_var.jpg (53.9 Кбайт, 164 просмотров)

Последний раз редактировалось vladun, 20.04.2009 в 16:39 Причина: ИСПРАВЛЕНО !!!
vladun вне форума   Ответить с цитированием
Старый 20.04.2009, 16:30   #11
AlexG
Senior Member
 
Регистрация: Jan 2006
Сообщения: 172
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Панель Magelis XBT GT 2110

Адреса вероятно проверяются путем опроса, других способов нет. Если адрес неверный, то контроллер вероятно ответит ошибкой 2 и панель поставить тот самый треугольник.

Первый рисунок у вас с подключенным SMH? Судя по нему панель посылает абсолютно корректные запросы и не получает ответа. Я бы попробовал заменить панель на симулятор мастера и послать те-же самые запросы. И еще посмотрел бы что есть в файле карты памяти SMH
AlexG вне форума   Ответить с цитированием
Старый 20.04.2009, 16:40   #12
vladun
Senior Member
 
Регистрация: Feb 2007
Сообщения: 174
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Панель Magelis XBT GT 2110

Первый рисунок - панель подключенная к компьютеру со сканером MODbus
Сейчас под рукой имею все средства для любого подключения и мониторинга портов (кроме осцилографа ) ), если укажете , что выполнить, результаты выдам тут же.
vladun вне форума   Ответить с цитированием
Старый 20.04.2009, 16:40   #13
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Панель Magelis XBT GT 2110

Цитата:
Сообщение от vladun
По адресам: интересно каким образом введенные адреса (см картинку 2) переменных превратились в контроллере в указанные вами ?
Посмотрел глазами в логе.



Цитата:
Сообщение от vladun
Подчеркну, что отключая порт контроллера и подключая панель через 7561 к компьютеру с симулятором ModSim, я вижу чтение точно из тех адресов, которые указаны в таблице рис 2., а именно: Input Status = 14336, Holding Register = 41984, Input Register = 40960.
Карту памяти прикладываю.

Судя по всему, вам нужно указать адрес не 14336, а 114337.

Соответственно и другие: 40960 -> 440961, 41984 -> 341985.

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

Второй вариант: убрать флажок "Старая карта" и поставить нулевые базовые смещения. Затем задать адреса в панели, помня, что 0хххх - это койлы, 1хххх - инпут статусы, 3ххх - холдинги и 4ххх - инпут регистры. Ко всем адресам нужно прибавлять единицу, т.е. холдинг с адресом 0000h это логический адрес 30001.


В эмуляторе у вас работает потому, что эмулятор и панель используют одинаковый тип адресации, имеющий мало общего с реальными адресами протокола. Правда это не проливает свет на ту левятину, которая у вас получилась в логе.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.

Последний раз редактировалось Arsie, 20.04.2009 в 16:51
Arsie вне форума   Ответить с цитированием
Старый 20.04.2009, 17:33   #14
vladun
Senior Member
 
Регистрация: Feb 2007
Сообщения: 174
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Панель Magelis XBT GT 2110

Ну что же Волшебник, вы как обычно помогли разрулить ситуацию, с меня "Клинское"
Драйвер "скушал" то, что ему дали, но ошибка проверки Checksum иногда выскакивает и проблему нужно в дальнейшем решать.
Но остается такой трабл: панель (или ее драйвер) интерпретирует адрес 341985 как ReadOmly (т.е. я так понимаю Input (а не Holding) Register. Заменив первую тройку на четверку, я получил желаемое (наконец то за два дня я могу такой смайл поставить).
Теперь в чем фокус "превращения" адресов ? Я не искушенный модбасник и потому уловить закономерность не могу пока.
Убрать галку "Старая карта" не могу, т.к. имею таки "старую" карту .
vladun вне форума   Ответить с цитированием
Старый 20.04.2009, 17:57   #15
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Панель Magelis XBT GT 2110

Я столько не выпью


Превращения описаны в стандарте:


Цитата:
Data Addresses in Modbus Messages
All data addresses in Modbus messages are referenced to zero. The first
occurrence of a data item is addressed as item number zero. For example:
The coil known as ‘coil 1’ in a programmable controller is addressed as coil
0000 in the data address field of a Modbus message.
Coil 127 decimal is addressed as coil 007E hex (126 decimal).
Holding register 40001 is addressed as register 0000 in the data address field
of the message. The function code field already specifies a ‘holding register’
operation. Therefore the ‘4XXXX’ reference is implicit.
Holding register 40108 is addressed as register 006B hex (107 decimal).

А что у вас в логе - тут уж вооще икс три. ХЗ, то есть


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 20.04.2009, 18:16   #16
vladun
Senior Member
 
Регистрация: Feb 2007
Сообщения: 174
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Панель Magelis XBT GT 2110

Вот снова пришел (полчаса примерно поработала панель и SMH) :
"PLC packet validation failed. Invalid checksum. (SMH)" и продолжает работать, но в лог пишет.
А вот и ответ мануала :

Цитата:
PLC packet validation failed. Invalid checksum.
A communication error was returned by the PLC.

Solution:
- Check the connections
- Check the cable
- Check the cable path for any magnetic interference
Если я пересажу панель на опторазвязанный порт SMH? это может повлиять на процесс ? (у самой панели нет опторазвязки)
Читаю стандарт...

Последний раз редактировалось vladun, 20.04.2009 в 18:33
vladun вне форума   Ответить с цитированием
Старый 20.04.2009, 18:38   #17
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Панель Magelis XBT GT 2110

Вы эти ошибки будете получать всегда. Это нормально.

Другое дело, что панель на них как-то слишком нервно реагирует. Наверняка это можно где-то отключить.

По поводу влияния, почитайте http://forum.segnetics.com/showthread.php?t=329



.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 20.04.2009, 19:21   #18
AlexG
Senior Member
 
Регистрация: Jan 2006
Сообщения: 172
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Панель Magelis XBT GT 2110

Цитата:
Сообщение от Arsie
А что у вас в логе - тут уж вооще икс три. ХЗ, то есть
Там ничего такого необычного. Первая цифра отброшена как признак адресного пространства, затем адрес уменьшен на единицу чтобы перейти от адресации с 1, которая используется при записи адресов к адресации с нуля, которая реально используется при передаче, и число переведено в из десятичной в шестнадцатеричную систему.
AlexG вне форума   Ответить с цитированием
Старый 20.04.2009, 22:24   #19
vladun
Senior Member
 
Регистрация: Feb 2007
Сообщения: 174
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Панель Magelis XBT GT 2110

Да, вот бы везде, как в лоджике было - карту памяти сделал и загрузил в слейв
Ошибки исчезли после того, как отключил USB от панели, по крайней мере уже часа два - нет ошибок !
Арсений, я конечно сделал копию, но прошу пока не удалять посты, очень поучительные вещи.
Про поляризацию (на панели есть свитч @ON-OFF@) вкратце можно узнать, а то в мануалах вроде как терминатором ее и делают:
Цитата:
620 Ом повыш. на D1 и 620 Ом пониж. на D0
а также:
Цитата:
Поляризация должна использоваться, если необходимо использо-вать протокол Modbus и другое оборудование поляризацию шины не выполняет
таки надо включать или нет ?
(в контроллере терминатор не включен)
vladun вне форума   Ответить с цитированием
Старый 20.04.2009, 22:58   #20
vladun
Senior Member
 
Регистрация: Feb 2007
Сообщения: 174
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Панель Magelis XBT GT 2110

Теперь "бубны" с Float-тами начались, бродят по сети какие-то стомиллионные и миллиардные....
А нормально ли будет, если я в контроллере переменные запишу Integer-ми , а потом в панели буду делить на 10, 100 .... ?
PS: кстати, второй подключенный порт на SMH тоже влияет на ошибки коммуникаций.
vladun вне форума   Ответить с цитированием
Старый 21.04.2009, 05:35   #21
AlexG
Senior Member
 
Регистрация: Jan 2006
Сообщения: 172
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Панель Magelis XBT GT 2110

Подробное описание когда нужна поляризация видел недавно в документации на какой-то из Альтиваров. Реально мне за все время поляризация понадобилась всего один раз. Можете попробовать включить, связь может стать более устойчивой.

В стандарте не описано как float должен быть разложен по двум соседним регистрам, поэтому все делают по-своему и бывает что раскладка байтов не совпадает. Иногда есть выбор вариантов. Если панель знает единственный вариант float, то можно переставить байты местами вручную, в программе SMH. Вариант с делением тоже совершенно нормальный.
AlexG вне форума   Ответить с цитированием
Старый 21.04.2009, 11:46   #22
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Панель Magelis XBT GT 2110

Цитата:
Сообщение от AlexG
Там ничего такого необычного. Первая цифра отброшена как признак адресного пространства, затем адрес уменьшен на единицу чтобы перейти от адресации с 1, которая используется при записи адресов к адресации с нуля, которая реально используется при передаче, и число переведено в из десятичной в шестнадцатеричную систему.

Значит я неправильно пересчитал, т.к. у меня что-то адреса совсем левые получились


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 21.04.2009, 12:29   #23
vladun
Senior Member
 
Регистрация: Feb 2007
Сообщения: 174
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Панель Magelis XBT GT 2110

Та вроде байты нормально "перевернуты", а вот значения констант из контроллера идут"боком" (то звездочки на экране вместо числа, то нули, а чисел нету), чего не наблюдается с Integer. Поэтому, вцелях мозгоспокойствия и очищения канала, было принято ВОЛЕВОЕ решение все Float превратить в Integer с последующей реинкарнацией в им подобных.

PS: кстати попробовал включить поляризацию и связь "хуже не стала"
vladun вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 21:44.


Версия vBulletin: 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2024