Segnetics

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2023, 18:14   #1
nick86
Senior Member
 
Аватара для nick86
 
Регистрация: Feb 2022
Сообщения: 128
Благодарил(а): 20 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

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

Там написано:
Цитата:
1. The register array is divided into 256 pages each containing up to 256 registers, the actual register address is obtained from the
formula: register_address=page_number*256+register_offset.
2. All unused parts of pages 0-127 are defined as reserved for expansion of this standard, any attempt to access them will result in an
exception response with extended exception code 12 (Reserved register).
3. Pages 128-255 are available for manufacturer specific applications such as configuration of the control equipment, these are not
defined by this standard.
4. Any device which requires registers in pages 128-255 to be implemented in order to perform a task which can be performed by
registers defined in this standard is deemed to be non-compliant with this standard.
5. This document always refers to register addresses which start at 0 as defined in the Modbus protocol. Register numbers, which start
at 1, are not used in this document in order to avoid confusion.
6. The additional instrumentation pages are to be defined.
7. S.M. means state machine.
8. A letter S in the bits/sign column indicates a signed value using two’s compliment arithmetic, all others are unsigned.
9. A double number in the bits/sign column indicates a bit within a register of a specific size e.g. 16/16 is the most significant bit and
1/16 is the least significant bit of a 16 bit register.
10. Bits within registers are numbered from 1 not 0 to avoid the confusion that would be caused if the sixteenth bit of a 16 bit register
were labelled 15/16.
Что бы узнать регистор:
formula: register_address=page_number*256+register_offset
адресс = типа раздел (в таблице указан page_numbe раздела) * 256 + это сам параметр в конкретном разделе (register_offset)





Т.е. для примера, Control unit not configured это будет адрес регистра 774 (3*256+6 = 774)

А что бы понять в десятичном виде, что будет за цифра, это bits/sign в для Control unit not configured 16/16 будет двоично число 1000000000000000 привести в десятичное 32768.

Т.е. что бы узнать что состояние Control unit not configured нужно что бы на регистре 774 было число 32768 (yes)?, я правильно понял или нет? Если нет, то подскажите что до как.
Изображения
Тип файла: png 11.png (25.9 Кбайт, 174 просмотров)
Тип файла: png 14.png (42.5 Кбайт, 179 просмотров)

Последний раз редактировалось nick86, 18.12.2023 в 18:25
nick86 вне форума   Ответить с цитированием
Старый 18.12.2023, 18:56   #2
1exan
Senior Member
 
Регистрация: Nov 2008
Адрес: Алтайский край
Сообщения: 136
Благодарил(а): 2 раз(а)
Поблагодарили: 7 раз(а) в 7 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Цитата:
Сообщение от nick86 Посмотреть сообщение
...

Т.е. для примера, Control unit not configured это будет адрес регистра 774 (3*256+6 = 774)

А что бы понять в десятичном виде, что будет за цифра, это bits/sign в для Control unit not configured 16/16 будет двоично число 1000000000000000 привести в десятичное 32768.

Т.е. что бы узнать что состояние Control unit not configured нужно что бы на регистре 774 было число 32768 (yes)?, я правильно понял или нет? Если нет, то подскажите что до как.
Control unit not configured - это просто состояние 16 бита (если нумеровать биты от 1) в регистре 774
1exan вне форума   Ответить с цитированием
Старый 18.12.2023, 19:30   #3
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 163
Благодарил(а): 240 раз(а)
Поблагодарили: 165 раз(а) в 157 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

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


__________________
C уважением, LordN
LordN вне форума   Ответить с цитированием
Благодарность от:
Старый 18.12.2023, 19:39   #4
nick86
Senior Member
 
Аватара для nick86
 
Регистрация: Feb 2022
Сообщения: 128
Благодарил(а): 20 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Цитата:
Сообщение от 1exan Посмотреть сообщение
Control unit not configured - это просто состояние 16 бита (если нумеровать биты от 1) в регистре 774
Там же написано, 16/16 это старший бит из 16 регистров. А старший бит идет в начале.
[B]9. A double number in the bits/sign column indicates a bit within a register of a specific size e.g. 16/16 is the most significant bit and
1/16 is the least significant bit of a 16 bit register.

Просто в сигнетиксе, в любом случае будет число.
Изображения
Тип файла: png 15.png (73.8 Кбайт, 43 просмотров)
nick86 вне форума   Ответить с цитированием
Старый 18.12.2023, 19:40   #5
nick86
Senior Member
 
Аватара для nick86
 
Регистрация: Feb 2022
Сообщения: 128
Благодарил(а): 20 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Цитата:
Сообщение от LordN Посмотреть сообщение
если речь про смлоджик и сегнетикс, то там есть замечательный блок бит-инт
и рег16-бит
используя из комбинацию блоков можно решить вашу задачу за пару минут
удачи.
А как мне это поможет? Если мне нужно читать параметры.
Суть в том что если по этому регистру 774 пришло 32768, то вот это состояние контролера.



Поправил.
Изображения
Тип файла: png 1777.png (13.4 Кбайт, 180 просмотров)
nick86 вне форума   Ответить с цитированием
Старый 18.12.2023, 20:01   #6
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 785
Благодарил(а): 12 раз(а)
Поблагодарили: 194 раз(а) в 190 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Цитата:
Сообщение от nick86 Посмотреть сообщение
Там же написано,
[B]9. A double number in the bits/sign column indicates a bit within a register of a specific size e.g. 16/16 is the most significant bit and
1/16 is the least significant bit of a 16 bit register.
Перевод от яндекса
Цитата:
Двойное число в столбце "биты/знак" указывает на бит в регистре определенного размера, например, 16/16 - это самый старший бит, а
1/16 - наименее значимый бит 16-разрядного регистра.
И блок Reg16->bits именно то что Вам нужно


Добавлено через 4 минуты


Цитата:
Сообщение от nick86 Посмотреть сообщение
Суть в том что если по этому регистру 774 пришло 32768, то вот это состояние контролера.
А вот тут Вы себя обманываете. Не равно а включает 32768. И лонг здесь совсем не к месту.


__________________
Не являюсь сотрудником Segnetics !!!
ATS вне форума   Ответить с цитированием
Благодарность от:
Старый 18.12.2023, 20:12   #7
nick86
Senior Member
 
Аватара для nick86
 
Регистрация: Feb 2022
Сообщения: 128
Благодарил(а): 20 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Цитата:
Сообщение от ATS Посмотреть сообщение
Перевод от яндекса


И блок Reg16->bits именно то что Вам нужно


Добавлено через 4 минуты



А вот тут Вы себя обманываете. Не равно а включает 32768. И лонг здесь совсем не к месту.
А что я в таком случае получу на этом регистре 774.
I (int) - целое число с диапазоном значений от -32767 до 32767 а там 32768, потому и лонг

Так то double в программировании c++ вещественное число двойной точности с плавающей точкой, так что это скорее всего тогда в сигнетиксе real.
тогда я вообще запутался, это может быть как в прямом смысле 16 поделить на 16, так и 16,16 так и число из двоичного 1000000000000000 в десятичный 32768.

Последний раз редактировалось nick86, 18.12.2023 в 20:27
nick86 вне форума   Ответить с цитированием
Старый 18.12.2023, 20:38   #8
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 785
Благодарил(а): 12 раз(а)
Поблагодарили: 194 раз(а) в 190 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Цитата:
Сообщение от nick86 Посмотреть сообщение
А что я в таком случае получу на этом регистре 774.
Лень разжевывать

001.png

Цитата:
I (int) - целое число с диапазоном значений от -32767 до 32767 а там 32768, потому и лонг
Регистры модбаса не имеют в данном случае никакого отношения типу представления числа. Считайте что это UINT от 0 до 65535.


__________________
Не являюсь сотрудником Segnetics !!!
ATS вне форума   Ответить с цитированием
Благодарность от:
Старый 18.12.2023, 20:51   #9
nick86
Senior Member
 
Аватара для nick86
 
Регистрация: Feb 2022
Сообщения: 128
Благодарил(а): 20 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Цитата:
Сообщение от ATS Посмотреть сообщение
Лень разжевывать

Вложение 12270


Регистры модбаса не имеют в данном случае никакого отношения типу представления числа. Считайте что это UINT от 0 до 65535.
Спасибо, теперь понял. Про смещение там тоже написано.
10. Bits within registers are numbered from 1 not 0 to avoid the confusion that would be caused if the sixteenth bit of a 16 bit register
were labelled 15/16.
nick86 вне форума   Ответить с цитированием
Старый 18.12.2023, 21:03   #10
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 785
Благодарил(а): 12 раз(а)
Поблагодарили: 194 раз(а) в 190 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Цитата:
Сообщение от nick86 Посмотреть сообщение
Про смещение там тоже написано.
И еще раз - яндекс в помощь


__________________
Не являюсь сотрудником Segnetics !!!
ATS вне форума   Ответить с цитированием
Старый 20.12.2023, 14:15   #11
nick86
Senior Member
 
Аватара для nick86
 
Регистрация: Feb 2022
Сообщения: 128
Благодарил(а): 20 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Цитата:
Сообщение от ATS Посмотреть сообщение
И еще раз - яндекс в помощь
Сегодня подключился к ДГУ и увидел вот что.

Т.е. ошибок нет по линку. Но по адресу 774, то что разбирали, если int то прилетает 0, что не соответствует не одному статусу, пробовал поменять на лонг и реал, чисто для эксперимента, то получается то что на скриншотах.
Либо от туда реально прилетает 0, либо я реально чего то не догоняю.
Изображения
Тип файла: png 1.png (76.8 Кбайт, 30 просмотров)
Тип файла: png 2.png (49.2 Кбайт, 40 просмотров)
Тип файла: png 3.png (28.6 Кбайт, 37 просмотров)
nick86 вне форума   Ответить с цитированием
Старый 20.12.2023, 14:43   #12
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 163
Благодарил(а): 240 раз(а)
Поблагодарили: 165 раз(а) в 157 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Цитата:
Сообщение от nick86 Посмотреть сообщение
Сегодня подключился к ДГУ и увидел вот что.

Т.е. ошибок нет по линку. Но по адресу 774, то что разбирали, если int то прилетает 0, что не соответствует не одному статусу, пробовал поменять на лонг и реал, чисто для эксперимента, то получается то что на скриншотах.
Либо от туда реально прилетает 0, либо я реально чего то не догоняю.
читайте инты по адресам + и минус 1 от искомого
и смотрите


__________________
C уважением, LordN
LordN вне форума   Ответить с цитированием
Старый 20.12.2023, 15:32   #13
nick86
Senior Member
 
Аватара для nick86
 
Регистрация: Feb 2022
Сообщения: 128
Благодарил(а): 20 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Цитата:
Сообщение от LordN Посмотреть сообщение
читайте инты по адресам + и минус 1 от искомого
и смотрите
Там просто еще вот такая штука есть в пдф, может это с этим связано.
Попробую попросить человека что на объекте что бы установил пароль на 0000.
Вложения
Тип файла: pdf GenComm standard for use with generating set control equipment.pdf (123.1 Кбайт, 34 просмотров)
nick86 вне форума   Ответить с цитированием
Старый 20.12.2023, 15:42   #14
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 163
Благодарил(а): 240 раз(а)
Поблагодарили: 165 раз(а) в 157 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Цитата:
Сообщение от nick86 Посмотреть сообщение
Там просто еще вот такая штука есть в пдф, может это с этим связано.
Попробую попросить человека что на объекте что бы установил пароль на 0000.
м.б.
но проверьте смещение, почти наверняка это оно


__________________
C уважением, LordN
LordN вне форума   Ответить с цитированием
Старый 20.12.2023, 15:51   #15
nick86
Senior Member
 
Аватара для nick86
 
Регистрация: Feb 2022
Сообщения: 128
Благодарил(а): 20 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Цитата:
Сообщение от LordN Посмотреть сообщение
м.б.
но проверьте смещение, почти наверняка это оно
Да, я хочу это сделать, но там пока никак, я удалено через анидеск к серверу подключаюсь и через него шью уже сами контролеры. В этом как бы и проблема тоже, что это другой город вообще и доступа к самому железу нет, только по телефону.
nick86 вне форума   Ответить с цитированием
Старый 20.12.2023, 15:53   #16
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 785
Благодарил(а): 12 раз(а)
Поблагодарили: 194 раз(а) в 190 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Цитата:
Сообщение от nick86 Посмотреть сообщение
Либо от туда реально прилетает 0, либо я реально чего то не догоняю.
А почему бы там не быть нулю если все работает?


Цитата:
Сообщение от LordN Посмотреть сообщение
читайте инты по адресам + и минус 1 от искомого
и смотрите
Я бы с начала странички (768) почитал - там серийник и идентификатор однозначно не нули.


Цитата:
я удалено через анидеск к серверу подключаюсь и через него шью уже сами контролеры.
Ну этим нас не удивить.


__________________
Не являюсь сотрудником Segnetics !!!
ATS вне форума   Ответить с цитированием
Старый 20.12.2023, 18:39   #17
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 163
Благодарил(а): 240 раз(а)
Поблагодарили: 165 раз(а) в 157 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Цитата:
Я бы с начала странички (768) почитал - там серийник и идентификатор однозначно не нули.
надо что-то такое читать, однозначное.
типа записанного битрейта, адреса, и т.д.


__________________
C уважением, LordN
LordN вне форума   Ответить с цитированием
Старый 20.12.2023, 18:50   #18
nick86
Senior Member
 
Аватара для nick86
 
Регистрация: Feb 2022
Сообщения: 128
Благодарил(а): 20 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Цитата:
Сообщение от ATS Посмотреть сообщение
А почему бы там не быть нулю если все работает?


Я бы с начала странички (768) почитал - там серийник и идентификатор однозначно не нули.


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

В общем решил проверить, что мне точно известно, это номер порта и скорость, поставил регистры без смещения и int, и получилось то, что там и стоит, 10 порт и скорость 115200. Т.е. уже понятно что без смещения регистры идут, по крайней мере на этой странице 1 (1* 256 + 0 это порт, 1*256 + 3 это скорость). Но это на первой странице, на 4 странице (4*256 + адрес) уже небьется ничего и на выходе фиг знает что.
Я там скрин приложил, что если real ставить, то что то показывает, но это со смещением +1, в общем я фиг знает.
Изображения
Тип файла: png 123.png (48.9 Кбайт, 31 просмотров)
Тип файла: png 1233.png (132.9 Кбайт, 43 просмотров)
nick86 вне форума   Ответить с цитированием
Старый 20.12.2023, 18:59   #19
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Цитата:
Сообщение от nick86 Посмотреть сообщение
Я там скрин приложил, что если real ставить, то что то показывает, но это со смещением +1, в общем я фиг знает.
0-7 - это интеджеры. 4, 5 и 7 - считанное перевести в реал и поделить на 10, получится искомое число.

С 8 по 32 - лонги (через один адрес, т.е. 8, 10, 12 и т.д.). Причём 8-26 также перевести в реал и поделить на 10, получится искомое число.

С 34 опять пошли интеджеры.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 20.12.2023, 19:03   #20
nick86
Senior Member
 
Аватара для nick86
 
Регистрация: Feb 2022
Сообщения: 128
Благодарил(а): 20 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Цитата:
Сообщение от Arsie Посмотреть сообщение
0-7 - это интеджеры. 4, 5 и 7 - считанное перевести в реал и поделить на 10, получится искомое число.

С 8 по 32 - лонги (через один адрес, т.е. 8, 10, 12 и т.д.). Причём 8-26 также перевести в реал и поделить на 10, получится искомое число.

С 34 опять пошли интеджеры.
Спасибо. Сейчас посмотрю.
nick86 вне форума   Ответить с цитированием
Старый 20.12.2023, 19:19   #21
nick86
Senior Member
 
Аватара для nick86
 
Регистрация: Feb 2022
Сообщения: 128
Благодарил(а): 20 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Цитата:
Сообщение от Arsie Посмотреть сообщение
0-7 - это интеджеры. 4, 5 и 7 - считанное перевести в реал и поделить на 10, получится искомое число.

С 8 по 32 - лонги (через один адрес, т.е. 8, 10, 12 и т.д.). Причём 8-26 также перевести в реал и поделить на 10, получится искомое число.

С 34 опять пошли интеджеры.
Вот как я и написал, получил невиданные цифры, такой температура точно не может быть.
Изображения
Тип файла: png 222.png (93.3 Кбайт, 55 просмотров)
Тип файла: png 111.png (92.0 Кбайт, 38 просмотров)
nick86 вне форума   Ответить с цитированием
Старый 20.12.2023, 21:09   #22
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 785
Благодарил(а): 12 раз(а)
Поблагодарили: 194 раз(а) в 190 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Цитата:
Сообщение от nick86 Посмотреть сообщение
Вот как я и написал, получил невиданные цифры, такой температура точно не может быть.
Почему?При оборванном или отключенном датчике очень даже может.


__________________
Не являюсь сотрудником Segnetics !!!
ATS вне форума   Ответить с цитированием
Старый 20.12.2023, 23:01   #23
nick86
Senior Member
 
Аватара для nick86
 
Регистрация: Feb 2022
Сообщения: 128
Благодарил(а): 20 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Цитата:
Сообщение от ATS Посмотреть сообщение
Почему?При оборванном или отключенном датчике очень даже может.
Да есть такая мысль, но к сожалению нет доступа к оборудованию, в другом городе. Попробую завтра узнать.
nick86 вне форума   Ответить с цитированием
Старый 25.01.2024, 16:55   #24
nick86
Senior Member
 
Аватара для nick86
 
Регистрация: Feb 2022
Сообщения: 128
Благодарил(а): 20 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Цитата:
Сообщение от Arsie Посмотреть сообщение
0-7 - это интеджеры. 4, 5 и 7 - считанное перевести в реал и поделить на 10, получится искомое число.

С 8 по 32 - лонги (через один адрес, т.е. 8, 10, 12 и т.д.). Причём 8-26 также перевести в реал и поделить на 10, получится искомое число.

С 34 опять пошли интеджеры.
К сожалению, так как вы говорите не работает, выводятся абсолютно не корректные значения. Так же есть 16U. Т.е. есть 16, 16S, 16U и если просто 16 это int, то значение выводится каретное, а если 16S, 16U ставить int то у этих параметров на выходе фигня полная. Для примера Oil temperature у него диапазон значений от -50 - 200 а выводится 327676 и тоже самое для температуры топлива. Или вот например, у Coolant level диапазон от 0-100%, а показывает -1, у него параметр типа 16 U и в модбас стоит так же тип int.

Что то у меня такое чувство, что контролер просто не может работать с данными типами данных, просто выбор то не большой, int по сути и все, real и long не подходят, потому что они по два адреса занимают.
Изображения
Тип файла: png 123.png (63.0 Кбайт, 110 просмотров)
nick86 вне форума   Ответить с цитированием
Старый 25.01.2024, 17:47   #25
младшой
Senior Member
 
Регистрация: May 2010
Адрес: Москва
Сообщения: 863
Благодарил(а): 4 раз(а)
Поблагодарили: 86 раз(а) в 67 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Дело не в том, что контроллер "как-то неправильно показывает данные", а в том, что ваше устройство отдает контроллеру.

Например, 32767 в двоичном виде выглядит 0111 1111 1111 1111 .
Тут явно Deep Sea просто заполняет регистр единицами и нулем, и это отдает контроллеру.
То же самое со значением -1 - в двоичном виде выглядит 1111 1111 1111 1111 .

И какой "тип данных" должен поддерживать контроллер, чтобы показать вам что-то осмысленное?
младшой сейчас на форуме   Ответить с цитированием
Старый 25.01.2024, 17:51   #26
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 785
Благодарил(а): 12 раз(а)
Поблагодарили: 194 раз(а) в 190 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Цитата:
Сообщение от nick86 Посмотреть сообщение
у меня такое чувство, что контролер просто не может работать с данными типами данных, просто выбор то не большой, int по сути и все
Модбас вообще ничего не знает о типах данных. Только 16-ти битовые регистры. Остальное это уже представление данных.


__________________
Не являюсь сотрудником Segnetics !!!
ATS вне форума   Ответить с цитированием
Старый 25.01.2024, 17:55   #27
nick86
Senior Member
 
Аватара для nick86
 
Регистрация: Feb 2022
Сообщения: 128
Благодарил(а): 20 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Цитата:
Сообщение от младшой Посмотреть сообщение
Дело не в том, что контроллер "как-то неправильно показывает данные", а в том, что ваше устройство отдает контроллеру.

Например, 32767 в двоичном виде выглядит 0111 1111 1111 1111 .
Тут явно Deep Sea просто заполняет регистр единицами и нулем, и это отдает контроллеру.
То же самое со значением -1 - в двоичном виде выглядит 1111 1111 1111 1111 .

И какой "тип данных" должен поддерживать контроллер, чтобы показать вам что-то осмысленное?
Я понятия не имею. Дело в том что у них есть своя скада https://www.deepseaelectronics.com/g...ools/dse-scada
но заказчику нужно что бы дгу через контролер диспетчеризации (smh4) заводился в общую скаду на мастерскаде 4д. Понятно дело, что в мастерскаду завести не сложно, а вот получить данные с дгу на плк, вот тут то и проблема, потому что у них типа какой-то свой протокол GenComm.

Сам пдф - https://disk.yandex.ru/i/7bJg5rHmj_19-g


"Дело не в том, что контроллер "как-то неправильно показывает данные", а в том, что ваше устройство отдает контроллеру." Я понимаю, что он отдает какую то ерунду, понятное ему и его скаде наверное, типа если -1 это как null что ли. Просто как мне понимать -1 в конкретном случае что на скришоте.
У 16 бит и есть диапазон -32767 - 32767. Т.е. он просто показывает максимальное значение 32767,когда оно должно быть ограниченно диапазон указанным в pdf -50 - 200. Возможно 32767 в данном случае приравнивается к null что ли тоже, либо я просто нереально туплю.

Что то мне кажется что так и есть, у 16s null = 32767, а у 16u = -1, по крайней мере в этом есть какая-то закономерность. Типа обрыв датчика, вот он и показывает вместо -50 - 200, null. Просто у меня есть чувство, что с дгу что то не так.



Добавлено через 5 минут

Цитата:
Сообщение от ATS Посмотреть сообщение
Модбас вообще ничего не знает о типах данных. Только 16-ти битовые регистры. Остальное это уже представление данных.
Просто что тогда 16, 16S, 16U, 32, 32s
16 понятно что int, 32 это long, а что делать с 16S, 16U, 32S, как получить из них реальное значения, я не понимаю.

Последний раз редактировалось nick86, 25.01.2024 в 18:25
nick86 вне форума   Ответить с цитированием
Старый 25.01.2024, 18:33   #28
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 785
Благодарил(а): 12 раз(а)
Поблагодарили: 194 раз(а) в 190 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Цитата:
Сообщение от nick86 Посмотреть сообщение
Просто что тогда 16, 16S, 16U, 32, 32s
16 понятно что int, 32 это long, а что делать с 16S, 16U, 32S, как получить из них реальное значения, я не понимаю.
S - signed, U - unsigned. Со знаком и без знака соответственно.

Отличаются диапазоном представления числа.


__________________
Не являюсь сотрудником Segnetics !!!
ATS вне форума   Ответить с цитированием
Старый 25.01.2024, 18:53   #29
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 163
Благодарил(а): 240 раз(а)
Поблагодарили: 165 раз(а) в 157 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Цитата:
Сообщение от nick86 Посмотреть сообщение
Я понятия не имею.

Просто что тогда 16, 16S, 16U, 32, 32s
16 понятно что int, 32 это long, а что делать с 16S, 16U, 32S, как получить из них реальное значения, я не понимаю.
https://disk.yandex.ru/i/69Ox5vRcaQQV7A


__________________
C уважением, LordN
LordN вне форума   Ответить с цитированием
Старый 25.01.2024, 19:05   #30
младшой
Senior Member
 
Регистрация: May 2010
Адрес: Москва
Сообщения: 863
Благодарил(а): 4 раз(а)
Поблагодарили: 86 раз(а) в 67 сообщениях
По умолчанию Ответ: Таблица с регистрами для Deep Sea Electronics, для подключения модбас рту

Цитата:
Сообщение от nick86 Посмотреть сообщение
Что то мне кажется что так и есть, у 16s null = 32767, а у 16u = -1, по крайней мере в этом есть какая-то закономерность. Типа обрыв датчика, вот он и показывает вместо -50 - 200, null. Просто у меня есть чувство, что с дгу что то не так.
на странице 24 расписано, что означают "странные" значения
младшой сейчас на форуме   Ответить с цитированием
Благодарность от:
Ответ


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

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



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


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