Показать сообщение отдельно
Старый 06.07.2020, 01:51   #18
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 785
Благодарил(а): 12 раз(а)
Поблагодарили: 194 раз(а) в 190 сообщениях
По умолчанию Ответ: Описание работы FMR про протоколу ModBus

Цитата:
Сообщение от Taimer81 Посмотреть сообщение
Подскажите пожалуйста, как получить из логического адреса

Register Type Name
40001 int AOUT1\value

данные:
- физ адрес;
- функцию чтения;
- функцию записи.

Я реально не знаю.
Логический адрес это либо 5 либо 6 цифр (незначащие нули могут отбрасываться)

Самая старшая цифра - тип элемента
Код:
0	Чтение-запись	Coils
1	Чтение		Discrete Input
3	Чтение		Input Registers
4	Чтение-запись	Holding Registers
Для Вашего примера 4 - Holding Registers
Запоминаем и отбрасываем

Оставшееся 0001 это физический адрес +1
Вычитаем 1 получаем 0.

Ищем коды функций для запомненного типа регистра
Код:
Код функции	Что делает функция		Тип значения	Тип доступа
01 (0x01)	Read Coils			Дискретное	Чтение
02 (0x02)	Read Discrete Inputs		Дискретное	Чтение
03 (0x03)	Read Holding Registers		16 битное	Чтение
04 (0x04)	Read Input Registers		16 битное	Чтение
05 (0x05)	Write Single Coil		Дискретное	Запись
06 (0x06)	Write Single Register		16 битное	Запись
15 (0x0F)	Write Multiple Coils		Дискретное	Запись
16 (0x10)	Write Multiple registers	16 битное	Запись
Для Holding Registers возможны только 3 для чтения и 6\16 для записи

Последний раз редактировалось ATS, 06.07.2020 в 02:03
ATS вне форума   Ответить с цитированием
Благодарность от: