Segnetics

Вернуться   Segnetics > Форум Segnetics > SMLogix

SMLogix Вопросы о работе в среде SMLogix и о FBD-программировании

Ответ
 
Опции темы Поиск в этой теме
Старый 08.07.2021, 12:09   #1
SlavikP
Member
 
Регистрация: May 2019
Сообщения: 50
Благодарил(а): 2 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Переменная Modbus с эффектом Retain, возможно?

SMH4(slave) работает в паре с панелькой Weintek(master) по modbus TCP.
Суть вопроса: с панели в контроллер записывается переменная (уставка), как сделать, чтобы эта переменная в контроллере переживала выключение без сброса в 0.

Панель периодически читает регистр для отображения на экране, и если оператор изменил ее, то однократно записывает новое значение в контроллер. Панель умеет читать и писать, как в один адрес, так и в разные.

Пытаюсь по всякому, но фигня получается.
Аттач1: по модбасу записали уставку в переменную "Уставка_W"
Аттач2: то, что вышло после перезагрузки.

Прошу помощи от клуба.
Как я понимаю, запись в EEPROM у меня проходит нормально, но не получается разрулить восстановление из EEPROM при старте контроллера.
Изображения
Тип файла: jpg segn1.jpg (62.6 Кбайт, 66 просмотров)
Тип файла: jpg segn2.jpg (62.2 Кбайт, 46 просмотров)

Последний раз редактировалось SlavikP, 08.07.2021 в 12:20
SlavikP вне форума   Ответить с цитированием
Старый 08.07.2021, 12:14   #2
Ilya J.
Сотрудник Сегнетикс
 
Аватара для Ilya J.
 
Регистрация: Mar 2016
Адрес: SPb
Сообщения: 4 331
Благодарил(а): 0 раз(а)
Поблагодарили: 255 раз(а) в 251 сообщениях
По умолчанию Ответ: Переменная Modbus с эффектом Retain, возможно?

Например:

- отсечь 0 в контроллере
- запретить запись в еепром на время "инициализации"
- возможно на стороне панели можно что-то сделать


__________________
Если ничто другое не помогает, прочтите, наконец, инструкцию
Ilya J. вне форума   Ответить с цитированием
Старый 08.07.2021, 12:21   #3
SlavikP
Member
 
Регистрация: May 2019
Сообщения: 50
Благодарил(а): 2 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Переменная Modbus с эффектом Retain, возможно?

Цитата:
Сообщение от Ilya J. Посмотреть сообщение
- отсечь 0 в контроллере
Строго нельзя! Ноль - часто используемая уставка.

Цитата:
Сообщение от Ilya J. Посмотреть сообщение
- запретить запись в еепром на время "инициализации"
вот как это элегантно сделать? Я именно это и попытался с помощью блоков Raise, not и and.
SlavikP вне форума   Ответить с цитированием
Старый 08.07.2021, 12:43   #4
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 085
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Переменная Modbus с эффектом Retain, возможно?

Цитата:
Сообщение от SlavikP Посмотреть сообщение
Строго нельзя! Ноль - часто используемая уставка.
На стороне панели прибавлять к уставке 100 (200, 1000, 10000 и т.д.), на стороне контроллера вычитать. Тем самым исключив ноль из рабочего диапазона.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 08.07.2021, 13:30   #5
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Переменная Modbus с эффектом Retain, возможно?

Цитата:
Сообщение от SlavikP Посмотреть сообщение
SMH4(slave) работает в паре с панелькой Weintek(master) по modbus TCP.
... Панель периодически читает регистр для отображения на экране, и если оператор изменил ее...
... однократно записывает новое значение ...
... разрулить восстановление из EEPROM при старте контроллера.
регистр в контроллере или на панели?. Она это уставка на панели?
Сейчас событие для записи формируется когда уставка изменилась относительно прошлого значения EEPROM. Можно сделать событие по изменению уставки в регистре Уставка_W
При загрузке значение по умолчанию события записи = 0. При первом вызове и возможно при провале питания.


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...
ujin вне форума   Ответить с цитированием
Старый 08.07.2021, 15:51   #6
SlavikP
Member
 
Регистрация: May 2019
Сообщения: 50
Благодарил(а): 2 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Переменная Modbus с эффектом Retain, возможно?

Цитата:
Сообщение от Arsie Посмотреть сообщение
На стороне панели прибавлять к уставке 100 (200, 1000, 10000 и т.д.), на стороне контроллера вычитать. Тем самым исключив ноль из рабочего диапазона.
Идея здравая, как хак на крайний случай сойдет.
Но очень хочу сделать "по правильному". До понедельника еще подумаю.


Добавлено через 8 минут


Цитата:
Сообщение от ujin Посмотреть сообщение
регистр в контроллере или на панели?. Она это уставка на панели?
Физически регистр - в контроллере. Панель - средство для наблюдения и изменения. Может быть вообще выключена и демонтирована.

Цитата:
Сообщение от ujin Посмотреть сообщение
Сейчас событие для записи формируется когда уставка изменилась относительно прошлого значения EEPROM. Можно сделать событие по изменению уставки в регистре Уставка_W
При загрузке значение по умолчанию события записи = 0. При первом вызове и возможно при провале питания.
Иду примерно по этому же пути. Но я зарубился на "первый" цикл контроллера, в котором я и хочу извлечь бэкап переменной.
Главный вопрос недели - как извлеченное значение поместить в Уставка_W?
Я уже подумываю над однократной записью в этот регистр по модбасу (сам в себя контроллер запишет через сеть ).
SlavikP вне форума   Ответить с цитированием
Старый 08.07.2021, 16:06   #7
razerface
Senior Member
 
Аватара для razerface
 
Регистрация: May 2014
Адрес: S-Pb
Сообщения: 278
Благодарил(а): 4 раз(а)
Поблагодарили: 16 раз(а) в 15 сообщениях
По умолчанию Ответ: Переменная Modbus с эффектом Retain, возможно?

Цитата:
Сообщение от SlavikP Посмотреть сообщение
Идея здравая, как хак на крайний случай сойдет.
Но очень хочу сделать "по правильному". До понедельника еще подумаю.


Добавлено через 8 минут



Физически регистр - в контроллере. Панель - средство для наблюдения и изменения. Может быть вообще выключена и демонтирована.


Иду примерно по этому же пути. Но я зарубился на "первый" цикл контроллера, в котором я и хочу извлечь бэкап переменной.
Главный вопрос недели - как извлеченное значение поместить в Уставка_W?
Я уже подумываю над однократной записью в этот регистр по модбасу (сам в себя контроллер запишет через сеть ).
Я делал вот так. Уставку 0.001 или - 0.001 будет кушать
Изображения
Тип файла: png Безымянный.png (15.8 Кбайт, 91 просмотров)
razerface вне форума   Ответить с цитированием
Старый 08.07.2021, 16:22   #8
SlavikP
Member
 
Регистрация: May 2019
Сообщения: 50
Благодарил(а): 2 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Переменная Modbus с эффектом Retain, возможно?

Цитата:
Сообщение от razerface Посмотреть сообщение
Я делал вот так. Уставку 0.001 или - 0.001 будет кушать
Примерно понимаю ход мысли. Но "есть нюанс" - как ваша схема поведет себя при включении контроллера? На вход "start rd" ничего не подключено, значит и на выход "Real" ничего не поступит.
Или блок и так работает, а я зря заморачиваюсь на мануал?
SlavikP вне форума   Ответить с цитированием
Старый 08.07.2021, 16:40   #9
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Переменная Modbus с эффектом Retain, возможно?

Цитата:
Сообщение от SlavikP Посмотреть сообщение
Главный вопрос недели - как извлеченное значение поместить в Уставка_W?
Я уже подумываю над однократной записью в этот регистр по модбасу (сам в себя контроллер запишет через сеть ).
Инициализация holding registers или программное изменение holding registers, указанных как входные, в SMLogix ранее не были предусмотрены.
Может в последних версиях что-то поменялось.


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...
ujin вне форума   Ответить с цитированием
Старый 08.07.2021, 16:44   #10
SlavikP
Member
 
Регистрация: May 2019
Сообщения: 50
Благодарил(а): 2 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Переменная Modbus с эффектом Retain, возможно?

Цитата:
Сообщение от ujin Посмотреть сообщение
Инициализация holding registers или программное изменение holding registers, указанных как входные, в SMLogix ранее не были предусмотрены.
Может в последних версиях что-то поменялось.
Факт - не дает. Но можно зайти через задний проход - сделать контроллер еще и мастером, открыть слейв на 127.0.0.1 и записать туда нужное. Но это тоже - весьма грязный хак. Идея уважаемого Арсения добавлять "несущую" в полезный сигнал видится более привлекательно.
SlavikP вне форума   Ответить с цитированием
Старый 08.07.2021, 16:49   #11
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Переменная Modbus с эффектом Retain, возможно?

Цитата:
Сообщение от SlavikP Посмотреть сообщение
Факт - не дает. Но можно зайти через задний проход - сделать контроллер еще и мастером, открыть слейв на 127.0.0.1 и записать туда нужное. Но это тоже - весьма грязный хак. Идея уважаемого Арсения добавлять "несущую" в полезный сигнал видится более привлекательно.
При старте все равно не будет полезного сигнала.
Можно сделать парные регистры на одну переменную один входной один выходной. Заданное и фактическое значение.
На панели читать фактическое значение после подключения.
При изменении уставки записать в заданное значение.
На время несовпадения можно моргание сделать (blinking) уставки.
Если при подключении панели к контроллеру уставка не совпадает, значит был факт перезагрузки и необходимо перезаписать.


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...
ujin вне форума   Ответить с цитированием
Старый 08.07.2021, 17:15   #12
razerface
Senior Member
 
Аватара для razerface
 
Регистрация: May 2014
Адрес: S-Pb
Сообщения: 278
Благодарил(а): 4 раз(а)
Поблагодарили: 16 раз(а) в 15 сообщениях
По умолчанию Ответ: Переменная Modbus с эффектом Retain, возможно?

Цитата:
Сообщение от SlavikP Посмотреть сообщение
Примерно понимаю ход мысли. Но "есть нюанс" - как ваша схема поведет себя при включении контроллера? На вход "start rd" ничего не подключено, значит и на выход "Real" ничего не поступит.
Или блок и так работает, а я зря заморачиваюсь на мануал?
Блок работает уже на 4-х обектах в 120-ти контроллерах. При включении контроллера на выходе блока остается уставка которая была ранее введена. Попробуйте и убедитесь. При сбросе питания панели ноль не пропишется.
razerface вне форума   Ответить с цитированием
Старый 08.07.2021, 17:48   #13
razerface
Senior Member
 
Аватара для razerface
 
Регистрация: May 2014
Адрес: S-Pb
Сообщения: 278
Благодарил(а): 4 раз(а)
Поблагодарили: 16 раз(а) в 15 сообщениях
По умолчанию Ответ: Переменная Modbus с эффектом Retain, возможно?

Цитата:
Сообщение от razerface Посмотреть сообщение
Блок работает уже на 4-х обектах в 120-ти контроллерах. При включении контроллера на выходе блока остается уставка которая была ранее введена. Попробуйте и убедитесь. При сбросе питания панели ноль не пропишется.
Вот он готовый.
Вложения
Тип файла: rar СОХР REAL.rar (1.8 Кбайт, 40 просмотров)
razerface вне форума   Ответить с цитированием
Старый 08.07.2021, 18:58   #14
младшой
Senior Member
 
Регистрация: May 2010
Адрес: Москва
Сообщения: 862
Благодарил(а): 4 раз(а)
Поблагодарили: 86 раз(а) в 67 сообщениях
По умолчанию Ответ: Переменная Modbus с эффектом Retain, возможно?

Цитата:
Сообщение от SlavikP Посмотреть сообщение
Факт - не дает. Но можно зайти через задний проход - сделать контроллер еще и мастером, открыть слейв на 127.0.0.1 и записать туда нужное. Но это тоже - весьма грязный хак.
Предпочитаю пользоваться именно им.
В таком случае достаточно на панели подключить один только holding register, с которого она будет брать текущее значение уставки и писать туда новое. И не выдумывать никакие дополнительные скрипты на панели.

Цитата:
Сообщение от ujin Посмотреть сообщение
Инициализация holding registers или программное изменение holding registers, указанных как входные, в SMLogix ранее не были предусмотрены.
Может в последних версиях что-то поменялось.
Удивляет, как упорно Сегнетикс (или отдельные его сотрудники) отвергает потребность в программном изменении holding registers, когда практика говорит об обратном.
младшой вне форума   Ответить с цитированием
Старый 09.07.2021, 03:48   #15
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Переменная Modbus с эффектом Retain, возможно?

Цитата:
Сообщение от razerface Посмотреть сообщение
Блок работает уже на 4-х обектах в 120-ти контроллерах. При включении контроллера на выходе блока остается уставка которая была ранее введена. Попробуйте и убедитесь. При сбросе питания панели ноль не пропишется.
Два недостатка у Вашего подхода
1 Не пропишеся 0 в EEPROM
2 Не пропишется уставка из EEPROM в переменную Уставка_W

Рабочая ситуация:
Выключился - включился свет, контроллер перезагрузился во входных holding registers (входные переменные) нули.
Вы только пришли на смену и нужно немного добавить к старому значению какой либо уставки.


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...
ujin вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 07:09.


Версия vBulletin: 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2024