|
Связь с внешним миром Modbus, RS232, RS485, Lon и другое. |
|
Опции темы | Поиск в этой теме |
20.04.2010, 21:13 | #1 |
Новичок
Регистрация: Sep 2009
Сообщения: 21
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Ошибка Logix'а?
Я как-то поднимал вопрос о группировке входов и выходов с адресацией по-порядку, для того чтобы читать всё одним запросом функцией 3.
В версии 3.18.0013 такое смог реализовать. Формировал стандартную карту модбас, делал компоновку, затем в карте убирал галочку автоматической нумерации, задавал свои адреса и загружал проект. После этого всё читалось функцией 3 одним запросом. В версии 3.19.0050 такого сделать не могу. Может оно так и должно быть, но из-за этого пришлось вернуться на версию 3.18.0013, где мою задачу можно нормально реализовать. Почему нельзя сделать чтение выходов функцией 3? |
21.04.2010, 10:57 | #2 | |
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Ошибка Logix'а?
Цитата:
Может быть в карте адресов есть "пробелы", поэтому формируются несколько запросов? |
|
21.04.2010, 12:10 | #3 | |
Новичок
Регистрация: Sep 2009
Сообщения: 21
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Ошибка Logix'а?
Цитата:
|
|
22.04.2010, 11:12 | #4 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 086
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Ошибка Logix'а?
Цитата:
К тому же я не совсем понимаю проблему, почему вы против использования двух запросов? . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
22.04.2010, 14:03 | #5 | |
Новичок
Регистрация: Sep 2009
Сообщения: 21
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Ошибка Logix'а?
Цитата:
Связь между компьютером (ОРС-сервером) и контроллерами организована на радио-модемах. Один запрос выполняется 1-1.5 секунды. Опрашивать надо порядка 40 устройств опросить. Вот и приходится компоновать данные... |
|
23.04.2010, 10:36 | #6 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 086
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Ошибка Logix'а?
Цитата:
По идее при установленном флажке "Старая карта" ядро работает в режиме совместимости. Если это не помогает, то увы... . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
23.04.2010, 10:40 | #7 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 086
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Ошибка Logix'а?
Цитата:
input n информ. 1) входные данные; исходные данные 2) вводное устройство 3) ввод (данных) 4) предоставление сведений, данных и т. п. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
23.04.2010, 11:14 | #8 | |
Новичок
Регистрация: Sep 2009
Сообщения: 21
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Ошибка Logix'а?
Цитата:
Если галочку убрать и задать нужные адреса для Holding Regs, то те адреса, что отведены под Input Regs читаются только функцией 4. А адреса под Holding Regs как и любые другие отличные от описанных в карте - функцией 3. Например A100h или A500h. Выход пока оставаться на старом лоджике. Хотя если бы сделали возле галочки "Старая карта" ещё отдельно галочку "Назначить автоматически" как в старом лоджике. Чтобы при "старой карте" можно было задавать свои адреса. Хотя нигде не написано, что по стандарту модбаса нельзя читать Input Regs функцией 3. |
|
26.04.2010, 10:46 | #9 | |||
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 086
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Ошибка Logix'а?
Цитата:
Цитата:
Цитата:
. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|||
26.04.2010, 13:59 | #10 | |||
Новичок
Регистрация: Sep 2009
Сообщения: 21
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Ошибка Logix'а?
Цитата:
Цитата:
|
|||
27.04.2010, 09:55 | #11 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 086
Благодарил(а): 15 раз(а)
Поблагодарили:
660 раз(а) в 604 сообщениях
|
Ответ: Ошибка Logix'а?
Цитата:
"Потому что это противоречит стандарту modbus. Раньше у нас адресные пространства не разделялись, а тип переменной обработчиком определялся по адресу переменной. Однако многих это не устраивало и мы сделали честный modbus с неперекрывающимися адресными пространствами." "По идее при установленном флажке "Старая карта" ядро работает в режиме совместимости. Если это не помогает, то увы..." Вы предлагаете откат назад. Вашу проблему я понимаю и сам не раз с ней сталкивался. И всегда её решал тем, что НЕ читал holding registers, выстраивая алгоритм так, что мне эта информация была не важна. Если же это было уж очень нужно, то перекидывал данные на input registers и читал всё единым блоком. Используя недокументированные функции какого-либо девайса всегда нужно отдавать себе отчёт в том, что в любой момент они могут перестать работать. . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|