Реклама / ООО «ИЗОЛПРОЕКТ» / ИНН: 7725566484 | ERID: 2Vtzqx6kV7S
IPB IPB
Проектирование, монтаж, наладка, сервис


Здравствуйте, гость ( Вход | Регистрация )

- Стандарт НП «АВОК» 7.11-2024
«Рекомендации по проектированию инженерных систем
дошкольных образовательных организаций»

АВОК в соц. сетях
ИНН: 7714824045 | erid: 2VtzqwzKQiU
> Coolgate, программирование обмена
Darkwolf13
сообщение 23.7.2012, 10:45
Сообщение #1





Группа: New
Сообщений: 14
Регистрация: 21.6.2011
Из: ExUSSR
Пользователь №: 112603



У меня возникла проблема: не могу считать данные по modbus. судя по документации надо обращаться к регистрам в районе 3000, а библиотека работы с modbus позволяет только 255...это тупик? (проблема что оборудование уже стоит и должно было работать еще вчера sad.gif)
контроллер мастер, coolgate slave adr 1
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
Открыть тему
Ответов (1 - 3)
Chabol
сообщение 23.7.2012, 15:14
Сообщение #2





Группа: Участники форума
Сообщений: 830
Регистрация: 27.2.2008
Пользователь №: 16012



В соответствии со стандартом MODICON MODBUS имена переменных ввода/вывода состоят из 5-и цифр. Первая цифра - область памяти, к которой принадлежит переменная (определяет используемую функцию). Остальные четыре – область переменной в памяти.

Существует четыре области памяти:

Область памяти Адрес элемента Доступ
Дискретные выходы 00001...09999 чтение - функция 1, запись - функция 15
Дискретные входы 10001...19999 чтение - функция 2
Выходные регистры 30001...39999 чтение - функция 4
Входные регистры 40001...49999 чтение - функция 3, запись - функция 16

Таким образом пльзуясь функцией чтения 4 мы обращаемся к выходным регистрам (неявно указывая область 300хх).
Т.е. 4-й функцией читайте доступные 0-255 адресов.

Сообщение отредактировал Chabol - 23.7.2012, 15:17
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Darkwolf13
сообщение 9.8.2012, 8:31
Сообщение #3





Группа: New
Сообщений: 14
Регистрация: 21.6.2011
Из: ExUSSR
Пользователь №: 112603



читаем coogate prm:

base adr(hex) 1001
Dskret inp (hex) 1001
Coil (hex) 1001 on/off 1002 Filter
Holding Registers (hex) 1001 mode 10002 Fan speed 1003 Set temp
inp registers 1001 Root temperature 1002 Failure code

прочитав http://infosys.beckhoff.com/english.php?co...tm&id=13785
по аналогии адресации написал код в twincat где пытаюсь узнать хотя бы значение
...
MBH: ModbusRtuMaster_PcCOM;
InputRegisters: ARRAY[1..4]OF WORD;
...

MBH.ReadInputRegs(
UnitID:=1, (* station address *)
Quantity:=4, (* WORDs *)
MBAddr:= 16#3021, (*3-02 3021 hex*)
cbLength:= 10, (* *)
pMemoryAddr:= ADR(InputRegisters),
Execute:= TRUE,
Timeout:= T#1000ms,
Busy => busy );

переменные пустые а на выходе висит ошибка modbus_CHARREC_TIMEOUT sad.gif ...
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Darkwolf13
сообщение 9.8.2012, 13:10
Сообщение #4





Группа: New
Сообщений: 14
Регистрация: 21.6.2011
Из: ExUSSR
Пользователь №: 112603



по сигналу занятости снимается execute

IF NOT busy THEN
MBH.ReadRegs(Execute:= FALSE);
state := state + 1;
END_IF
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

Добавить ответ в эту темуОткрыть тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

Реклама
ООО «Арктика групп» ИНН: 7713634274




Реклама: ООО «СибСтронг» | ИНН 6670013662 | ERID: 2VtzqvWgxEU

ООО «УНИСПЛИТ» ИНН: 6453155081 erid:2VtzqvybpdW

Реклама: ООО «СЛ-ЛАЗЕР» ИНН 7727447267 | erid: 2VtzquvhFWx
Последние сообщения Форума






RSS Текстовая версия Сейчас: 2.8.2025, 10:41
Политика ООО ИИП «АВОК-ПРЕСС» в отношении обработки персональных данных