|
Связь с внешним миром Modbus, RS232, RS485, Lon и другое. |
|
Опции темы | Поиск в этой теме |
22.03.2011, 10:44 | #1 |
Senior Member
Регистрация: May 2010
Сообщения: 152
Благодарил(а): 0 раз(а)
Поблагодарили:
6 раз(а) в 4 сообщениях
|
что я делаю не так?
пытаюсь связать smc с расходомером взлет эм. связь работает - статистика в расходомере показывает что все нормально.. далее проблема.. к примеру переменная логическая 400002 следовательно физическая 1h. пытаюсь считать показатели - выход 0 (хотя должно быть 4.. скорость обмена) хотя запись в эту переменную проходит корректно.. в настройках взлета показатели меняются...
существует ли разница в записи и чтении переменных ( кроме in, in/out) |
22.03.2011, 11:55 | #2 |
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: что я делаю не так?
Поскольку у Вас адрес 40002, значит читаете из holding registers, значит надо задать R(out). Для записи туда же - RW(out).
__________________ Автомат АК - самый распространенный преобразователь стека в очередь |
22.03.2011, 12:19 | #3 |
Senior Member
Регистрация: May 2010
Сообщения: 152
Благодарил(а): 0 раз(а)
Поблагодарили:
6 раз(а) в 4 сообщениях
|
Ответ: что я делаю не так?
на сколько я понял так? во вложении.. результат тот же
|
22.03.2011, 13:23 | #4 |
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: что я делаю не так?
Да, так.
Если не работает - надо смотреть. 1. "Нижняя" переменная имеет вход записи и выход контрольного чтения. Что у нее на выходе? 2. Добавил блок диагностики связи. Что на выходах этого блока? 3. Если совсем никак, то подлючиться "слушалкой" к порту 1 контроллера и перехватить обмен с Взлетом... __________________ Автомат АК - самый распространенный преобразователь стека в очередь |
22.03.2011, 13:33 | #5 |
Сотрудник Segnetics
Регистрация: Feb 2010
Сообщения: 132
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: что я делаю не так?
поставьте на поляну хоть бы один какой нибудь AND, у вас циклическая программа пуста. Я честно говоря даже не знаю , что делает контроллер при отсутствии самой программы.
потом посмотрите, при активном мастере на порту в SMH2010, должен моргать светодиод соответствующего порта, сие означает, что контроллер запросы модбас отправляет. потом, при наличии переменной RW, нет необходимости делать в тот же адрес еще и переменную на чтение холдинг регистра. |
22.03.2011, 13:44 | #6 |
Senior Member
Регистрация: May 2010
Сообщения: 152
Благодарил(а): 0 раз(а)
Поблагодарили:
6 раз(а) в 4 сообщениях
|
Ответ: что я делаю не так?
при изменении входа в блоке r/w(out) выход меняется, но на блоке r(out) могут поменяться а могут нет... чаще не меняются.. добавил пустой add - разницы нет
|
22.03.2011, 13:47 | #7 |
Senior Member
Регистрация: May 2010
Сообщения: 152
Благодарил(а): 0 раз(а)
Поблагодарили:
6 раз(а) в 4 сообщениях
|
Ответ: что я делаю не так?
обмен идет, так как взлет в статистике показывает принятые пакеты.. ошибок о..
|
22.03.2011, 14:08 | #8 |
Сотрудник Segnetics
Регистрация: Feb 2010
Сообщения: 132
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: что я делаю не так?
вход на RW блоке записывает в слейва командой 10h,
в выход помещается значение вычитанное командой 03h второй блок на чтение из того же адреса вообще не имеет смысла. боюсь что его запрос может игнорироваться ибо он дублирует тот что уже есть. |
22.03.2011, 14:14 | #9 |
Senior Member
Регистрация: May 2010
Сообщения: 152
Благодарил(а): 0 раз(а)
Поблагодарили:
6 раз(а) в 4 сообщениях
|
Ответ: что я делаю не так?
хорошо.. убираю полностью rw оставляю r. связь идет... меняю показатель во взлете. а у меня просто 0
|
22.03.2011, 14:19 | #10 |
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: что я делаю не так?
А в таком варианте "верхняя" переменная нормальные значения читает?
__________________ Автомат АК - самый распространенный преобразователь стека в очередь |
22.03.2011, 14:19 | #11 |
Senior Member
Регистрация: May 2010
Сообщения: 152
Благодарил(а): 0 раз(а)
Поблагодарили:
6 раз(а) в 4 сообщениях
|
Ответ: что я делаю не так?
нашел касяк.. спасибо за наводку... smc не может иметь в разных запросах одного и того же адреса... оставил только одного с адресом в таблице - все пошло
|
22.03.2011, 14:21 | #12 |
Сотрудник Segnetics
Регистрация: Feb 2010
Сообщения: 132
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: что я делаю не так?
есть програмка - прицепил. попробуйте ей поопрашивать "взлет".
|
22.03.2011, 14:25 | #13 |
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: что я делаю не так?
Однако если надо постоянно читать и иногда писать, то по-любому придется делать 2 запроса.
Посмотрите пример Untitled[2].psl в моем письме выше. __________________ Автомат АК - самый распространенный преобразователь стека в очередь |
22.03.2011, 14:32 | #14 |
Senior Member
Регистрация: May 2010
Сообщения: 152
Благодарил(а): 0 раз(а)
Поблагодарили:
6 раз(а) в 4 сообщениях
|
Ответ: что я делаю не так?
с той программой тот же прикол.. насколько я понял в таблице карты памяти одному адресу может принадлежать только одна запись.. по другому пока не нашел.. наверное можно если что создать второе устройство (его же) и в другой таблице по идее прогатит
|
22.03.2011, 14:34 | #15 |
Сотрудник Segnetics
Регистрация: Feb 2010
Сообщения: 132
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: что я делаю не так?
сейчас смоделирую ситуацию. отпишусь , что и как.
а по поводу другого устройства, скорее всего не прокатит. во внутре SMH все устройства представлены, как наборы запросов со своими параметрами, в которые входят адрес слейва, адрес для запроса, количество байтиков и адрес озу, куда эти данные складывать. |
22.03.2011, 14:41 | #16 |
Сотрудник Segnetics
Регистрация: Feb 2010
Сообщения: 132
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: что я делаю не так?
и еще, если в мбполл тот же прикол, то может этот прикол в взлете. и в нем разделяются данные на те что мы прописываем через модбас в адрес 2 и данные которые мы меняем через уставки самого прибора.
|
22.03.2011, 15:48 | #17 |
Senior Member
Регистрация: May 2010
Сообщения: 152
Благодарил(а): 0 раз(а)
Поблагодарили:
6 раз(а) в 4 сообщениях
|
еще вопрос чайника
логический 449349 (физический 49348) вещественное - читать long или integer со смешением на+1
|
22.03.2011, 16:31 | #18 |
Сотрудник Segnetics
Регистрация: Feb 2010
Сообщения: 132
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: что я делаю не так?
смоделировал.
проект слейва на пикселе с адресом 1. холдинг по адресу 2. проект мастера на 2010 с адресом 0. запрос холдинга и запись его в адрес 2 на пикселе. при изменении значения на мастере , записывается а потом и считывается из слейва обеими блоками корректно. так что наличие 2х блокв некритично. как работает взлет , извините , я немного не в курсе, и попробывать не на чем |
22.03.2011, 16:52 | #19 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: что я делаю не так?
Цитата:
А как сейчас проверил Ник - на 3.23 версии всё в силе. По поводу "взлёта" - нужно мониторить трафик в сети, есть вероятность, что контроллер слишком часто опрашивает этот прибор и поэтому часть запросов теряется. С точки зрения "взлёта" при этом всё будет в порядке. Также нужно применить блок Device (link) в программе - он покажет статистику связи с точки зрения нашего контроллера. . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|