PDA

Просмотр полной версии : Перекрытие переменных в Modbus Slave



Андрей_Б.
15.09.2021, 11:29
Добрый день!
Контроллер ПЛК-110 м02 выдаёт параметры на Owen OPC сервер. Параметры типа float в Codesys 2.3 отображаются так:
57000
На OPC сервере Owen так:
57001
Последний отображается некорректно.

Дальше. Меняю одно значение в ПЛК:
57002
В OPC сервере меняются сразу два значения:
57003

Адреса для Modbus Slave в Codesys 2.3 не прописываются, может где-то с адресами напутал?
В Owen OPC идут подряд, через один, как положено для 4-байтовых значений.

Алексеев Савр
15.09.2021, 11:57
Добрый день!
Контроллер ПЛК-110 м02 выдаёт параметры на Owen OPC сервер. Параметры типа float в Codesys 2.3 отображаются так:
57000
На OPC сервере Owen так:
57001
Последний отображается некорректно.

Дальше. Меняю одно значение в ПЛК:
57002
В OPC сервере меняются сразу два значения:
57003

Адреса для Modbus Slave в Codesys 2.3 не прописываются, может где-то с адресами напутал?
В Owen OPC идут подряд, через один, как положено для 4-байтовых значений.

Добрый день!
Пришлите проект Codesys v2.3 и Owen OPC Server на support@owen.ru.

Евгений Кислов
15.09.2021, 12:00
Добрый день!
Контроллер ПЛК-110 м02 выдаёт параметры на Owen OPC сервер. Параметры типа float в Codesys 2.3 отображаются так:
57000
На OPC сервере Owen так:
57001
Последний отображается некорректно.

Дальше. Меняю одно значение в ПЛК:
57002
В OPC сервере меняются сразу два значения:
57003

Адреса для Modbus Slave в Codesys 2.3 не прописываются, может где-то с адресами напутал?
В Owen OPC идут подряд, через один, как положено для 4-байтовых значений.

Добрый день.
Для Float адреса регистров должны быть кратны двум, а у вас на скриншотах OPC видно, что адреса нечетные.

Подробная информация по выраниванию памяти в ПЛК1хх приведена здесь (стр. 97):
https://owen.ru/uploads/249/rp_plk1hh_m02__1-ru-75044-1.32_a4.pdf

Андрей_Б.
15.09.2021, 13:07
Да, действительно. В мануале написано, что выравнивание происходит автоматически. И это правда.
Удалил все регистры перед первым float и поставил его в начало списка. Адрес по которому его видит OPC == 1.
Добавил по поочерёдно перед float три регистра 8-bit: float сдвигается вперёд и остаётся на нечётном адресе. Пробовал добавлять 2-byte, не помогает.
Удалил весь Modbus slave, создал новый, поместил его в начало списка устройств, добавил в него один float и чуда не произошло: он по-прежнему читается по адресу 1.
Самому не победить?

Евгений Кислов
15.09.2021, 13:13
Да, действительно. В мануале написано, что выравнивание происходит автоматически. И это правда.
Удалил все регистры перед первым float и поставил его в начало списка. Адрес по которому его видит OPC == 1.
Добавил по поочерёдно перед float три регистра 8-bit: float сдвигается вперёд и остаётся на нечётном адресе. Пробовал добавлять 2-byte, не помогает.
Удалил весь Modbus slave, создал новый, поместил его в начало списка устройств, добавил в него один float и чуда не произошло: он по-прежнему читается по адресу 1.
Самому не победить?

Обеспечьте, пожалуйста, удаленный доступ по TeamViewer или AnyDesk.