Цитата Сообщение от bayk Посмотреть сообщение
Столкнувшись с проблемами обмена данными между ИПП120 и сторонним оборудованием Modbus при помощи техподдержки Овен, которые помогли разобраться в проблеме, пишу технологию вычисления необходимого регистра/бита для задания этих параметров в ОЛ.
Итак в инструкции на оборудование адреса до битовых переменных, считываемых функцией 0x01 написаны явно: например 2049. в ОЛ нет возможности сразу вписать этот регистр в настройку сетевого обмена. нужно сделать из него два числа вида номер регистра/номер бита.
для этого необходимо:
1. разделить адрес из инструкции на 16 и отбросить дробную часть : 2049/16=128,0625 = 128 - мы получаем адрес регистра, который вписываем в соотв. поле ОЛ
2. умножить полученный адрес регистра на 16 и вычесть это число из адреса, указанного в инструкции: 2049 - (128*16) = 2049 - 2048 = 1 - это мы получаем адрес бита в регистре, и снова вписываем его в ОЛ.
3. Profit!
Вот мне не понятно а почему два раза на 16 делим? Это вседа так будет? Или это частный случай, когда в регистре кроме одной булевой переменной ничего нет?