В проекте есть переменные float,4byte, 8 bits
пытаюсь вычислить адрес (тот что в рамке )получается он должен быть 38 это правильно? а то что-то не работает с этим адресом
Вид для печати
В проекте есть переменные float,4byte, 8 bits
пытаюсь вычислить адрес (тот что в рамке )получается он должен быть 38 это правильно? а то что-то не работает с этим адресом
Для удобства, в проекте нужно ставить сначала 8 бит, потом байты.
для расчетов есть табличка.
(афтор нея, сам скачал с форума)
Прикрепить эксель не получается. Пишите в личку емайл, отправлю.
как не работает, совсем ни чего не принимает или не те значения приходят?
Те значения что Float я вижу нормально(В Trace Mode Adastra)мне нужно настроить управление задвижками вот думаю что адрес не правильный у меня
причем тут Ваши флоаты, в 38 регистре Вы что видите?
Какой такой 38, Вы же к битам будете обращаться
Вложение 20365
Шпаргалка:
в 38 регистре не вижу совсем ничего , в том то и дело, то что обведено в картинке какой номер регистра имеет 38 все же или нет?
Какой такой 38 ? Адастра с нулевого считает ? может как и многие другие с 1-ого ?
Вернемся, так сказать, к нашим баранам. Упростил в Вложение 20395 Codesys'е. Считываю через Trace Mode, через ethernet, для чтения float номер регистра выбираю 0x00, а байт считать не получается, не по одному из регистров, перепробовал до 0x12.
Stas float у вас правильно считывается по регистру 0 ?
Если правильно, то по 4-му регистру будет два байта (один регистр), в Адастре возможно необходимо поменять местами байты.
float считывается правильно (для трасе мода файл modbus.set , число 2 внутри ). И я насчитал 4 регистр , 0x02 для трасе мода (там пусто, канал показывает недостоверность).
to capzap в трасе моде не указываются функции. 32 адрес , нумерация по памяти внутри контроллера и какая сист счисл?
ModBus recieve error from unit_1(10.0.2.11:502) err=2 Rin_Byte(2)#4 в логе.
to capzap читаю 4 функцией, считал значение из регистра Modbus 0x02, но суть в том что нужно в данный байт записывать значение, те 16 функцией, но к какому регистру?
Почему вдруг для трейс мода 4-й регистр стал вторым ? непонятно...
блин. 0,1 регистры это флоат, 2 это регистр с байтом, проверять расположение байт в регистре
смотря о каких регистрах разговор. Если память контроллера то да 0,1 это флоат, который для модбаса регистр 0x00. 2,3 регистр в памяти то 0x02 регистр модбаса
все таки уперся в то по какому адресу записывать байт 16 функцией модбаса
[РЕШЕНО] Контекст: Овен ПЛК 110-30, Codesys 2.3, TraceMode 6.09, связь по Ethernet. В TraceMode чтение флоатов осуществляется через компонент "Rin_Float(4)" 4 функцией модбаса (указана в скобках). На картинке первом посту, первый флоат читается по номеру канала 0x00 в трасемоде, последний флоат по адресу 0x20 (). 0x22 , 0x24 адреса для первого и второго регистра в которых лежат 4 байтовые переменные. Можно заводить только одну группу на 8 бит, её можно будет записать в модбас регистр номер 0x26 компонентом "W_Word(6)" в трасемоде, 6 функцией модбаса (указана в скобках) . Есть вопросы пишите.