PDA

Просмотр полной версии : СПК в режиме Modbus Slave запись holding registers из программы



Kipiamail
03.11.2022, 18:18
Здравствуйте. Может кто знает что делать у меня не получается СПК в режиме Modbus Slave запись holding registers из программы.
Запись со стороны мастера работает.

Евгений Кислов
03.11.2022, 18:25
Здравствуйте. Может кто знает что делать у меня не получается СПК в режиме Modbus Slave запись holding registers из программы.
Запись со стороны мастера работает.

Добрый день.
Уточните, пожалуйста, версию прошивки вашего СПК.

Kipiamail
03.11.2022, 18:30
spk1xxm01 1.3.0928.2149

Евгений Кислов
03.11.2022, 18:35
spk1xxm01 1.3.0928.2149

В этой прошивке запись в holding registers из программы поддержана.
Вы установили в настройках слэйва галочку Запись?
Ваш мастер производит запись в регистры событийно, а не циклически?

Kipiamail
03.11.2022, 18:42
Галочку запись слейв установил.
Запись по событию.
63620
63621
63622
63623
63624

Евгений Кислов
03.11.2022, 18:46
Снимите галочку Сторожевой таймер.

Kipiamail
03.11.2022, 18:52
Сторожевой таймер галочку снял то же самое не помогло

Евгений Кислов
03.11.2022, 18:53
Тогда, пожалуйста, залейте ваш проект на файлообменник и выложите сюда ссылку.

Kipiamail
03.11.2022, 19:58
Попробовал новый проект создать добавил в него только две переменные и кнопку на графику для записи
запись в holding registers из программы работает.

Kipiamail
03.11.2022, 20:08
А вот мой архив проекта https://dropmefiles.com/l9ZEN

Евгений Кислов
03.11.2022, 20:32
А вот мой архив проекта https://dropmefiles.com/l9ZEN

У меня в вашем проекте не получилось повторить проблему - но я не эмулирую опрос мастером.
Если отключить ваше мастер-устройство - то в вашем проекте проблема повторяется?

Kipiamail
04.11.2022, 07:41
Да пробовал отключить опрос мастером проблема повторяется. Вы на реальном контроллере запускали проект?

Kipiamail
04.11.2022, 08:42
Если поставить всегда обновлять переменные Установка родительского контроля все работает могу записать из программ
и с modbus мастер устройства, хотя в инструкции написано что нужно выставлять Вкл2. Всегда в задаче цикла шины
что можно сделать так и оставить чем это может грозить проблем не будет?
И кстати до этого писал что создал новый проект и там все работает оказалось что там тоже стоит всегда обновлять
переменные Установка родительского контроля и если поставить Вкл2. Всегда в задаче цикла шины то тоже перестает работать.

Евгений Кислов
04.11.2022, 09:40
Да пробовал отключить опрос мастером проблема повторяется. Вы на реальном контроллере запускали проект?

На виртуальном, на реальном смогу проверить в понедельник.

Евгений Кислов
04.11.2022, 09:41
Если поставить всегда обновлять переменные Установка родительского контроля все работает могу записать из программ
и с modbus мастер устройства, хотя в инструкции написано что нужно выставлять Вкл2. Всегда в задаче цикла шины
что можно сделать так и оставить чем это может грозить проблем не будет?
И кстати до этого писал что создал новый проект и там все работает оказалось что там тоже стоит всегда обновлять
переменные Установка родительского контроля и если поставить Вкл2. Всегда в задаче цикла шины то тоже перестает работать.

Если у вас в данный момент нет проблем в работе со слэйвом - то можно оставить настройку в таком состоянии.
Это ничем не грозит; просто если бы вы не привязали к каналам слэйва переменные - то при такой настройке видели бы в них только серые нули (даже если бы мастер реально туда что-то записывал) - часто это смущает начинающих пользователей.

Kipiamail
04.11.2022, 19:20
Спасибо за помощь! Теперь другая проблема. Переменная которая привязана к Holding Registers объявлена в программе как Retain после перезагрузки
сбрасывается на ноль т.е. не сохраняет свое значение можно что то сделать?

Евгений Кислов
04.11.2022, 19:33
Спасибо за помощь! Теперь другая проблема. Переменная которая привязана к Holding Registers объявлена в программе как Retain после перезагрузки
сбрасывается на ноль т.е. не сохраняет свое значение можно что то сделать?

Со стандартным слэйвом простых путей решения нет.
Я рекомендую в вашем случае настроить слэйв через библиотеку OwenCommunication - там сделать регистры слэйва RETAIN'ами не составит труда.