PDA

Просмотр полной версии : Передача битов в контроллер



Stas
19.07.2019, 09:30
Создал ветку в контроллере
Modbus(slave)
ModbusTCP
8 bits
8 bits - адрес 0
float - адрес 2
float - адрес 4
2 byte - адрес 6
2 byte - адрес 7
2 byte - адрес 8
2 byte - КАКОЙ ЗДЕСЬ АДРЕС ? 9 ЧТО ЛИ?

Первые 8 адресов считываю без проблем (в адастре), теперь пытаюсь в последние 2 байта записать значения битов (из адастры) с помощью функции W_Byte(15)

Есть 2 вопроса:
1) у последних 2 байтов адрес 9 или 10 ?
2)Правильную ли функцию я выбрал для отправки битов?

krollcbas
19.07.2019, 09:47
Один регистр - это WORD. Тут не байтовая система нумерации Считываете ворды, затем любые манипуляции

Stas
19.07.2019, 09:52
Rout_Word(3) или W_Word(16) получается нужно использовать? А адрес то какой будет у последних 2 байтов в моей ветке?

krollcbas
19.07.2019, 10:01
Вы всего не раскрыли, что за ПЛК, куда чего нужно переслать. Вышлите файл, станет ясно как помочь

Stas
19.07.2019, 10:11
Функция W_Word(16) подошла, все отлично у последних 2 байтов в ветке действительно адрес=9. Передача битов идет прекрасно.

Это я из TraceMode пересылаю биты в контроллер ПЛК110-220.30.Р-М, чтобы затем включать дискретные выходы на модулях вывода МУ110-224.8Р.

A.Simonov
19.07.2019, 11:15
Создал ветку в контроллере
Modbus(slave)
ModbusTCP
8 bits
8 bits - адрес 0
float - адрес 2
float - адрес 4
2 byte - адрес 6
2 byte - адрес 7
2 byte - адрес 8
2 byte - КАКОЙ ЗДЕСЬ АДРЕС ? 9 ЧТО ЛИ?

Первые 8 адресов считываю без проблем (в адастре), теперь пытаюсь в последние 2 байта записать значения битов (из адастры) с помощью функции W_Byte(15)

Есть 2 вопроса:
1) у последних 2 байтов адрес 9 или 10 ?
2)Правильную ли функцию я выбрал для отправки битов?

Добрый день.

Все подробно описано в руководстве по программированию
https://owen.ru/uploads/139/rp_plk110_m02__16.pdf

Раздел "7.4.2.2.1 Выравнивание адресации" (стр. 105)