Страница 1 из 5 123 ... ПоследняяПоследняя
Показано с 1 по 10 из 47

Тема: Modbus TCP и ретентив

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию Modbus TCP и ретентив

    Зачастую нужно, чтоб была возможность записи уставок с верхнего уровня по протолу modbus tcp.
    3й функцией читать, 6/16 записывать.

    Но тут есть такой подводный камень:

    При выключении контроллера, все эти уставки обнулятся, так как они хранятся в области входов %I.
    Как сделать, чтоб они сохраняли своё значение?

    Можно конечно придумать костыль, добавить специальный флаг для записи и тогда читать уставку придётся читать из одного места, а записывать в другое.
    Как правило системы верхнего уровня очень неповоротливые и не имеют возможности для таких костылей или просто не хотят, по крайней мере у нас обычно такие попадаются.

    Так же у контроллеров ОВЕН зачем то сделано так, что нельзя писать из программы значения в область входов %I, что могло бы решить эту проблему.

    Пробовал такую конструкцию:
    Код:
    VAR_GLOBAL RETAIN
    	aa AT %IW0 : WORD;
    END_VAR
    Но она не работает, переменная "аа" не сохраняет значение всё равно.

    Были так же безумные идеи при старте контроллера писать по modbus tcp в самого себя сохранённые значения уставок, но это уже какое то жёсткое порно!
    И даже этому не суждено быть, так как контроллер почему то на запросы по порту начинает отвечать не сразу, как стартует программа, а спустя какое то сферическое время, после старта программы, секунд 15-20.

    Как быть то?

    Работаю с СПК207-03-CS-WEB
    КДС 3.5 SP5 Patch 5
    Последний раз редактировалось @ND; 04.02.2016 в 07:12.

  2. #2
    Banned
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,664

    По умолчанию

    Цитата Сообщение от @ND Посмотреть сообщение
    Так же у контроллеров ОВЕН зачем то сделано так, что нельзя писать из программы значения в область входов %I, что могло бы решить эту проблему.
    попробуйте у сименса что нибудь сохранить в области IW, дам сто рублей если получится
    Для хранения уставок, должен быть специально выделенная глобальная ретайн структура, иначе ни как

  3. #3

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    попробуйте у сименса что нибудь сохранить в области IW, дам сто рублей если получится
    Для хранения уставок, должен быть специально выделенная глобальная ретайн структура, иначе ни как


    Вознаграждение принимается на yandex money 410012466052729

  4. #4
    Banned
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,664

    По умолчанию

    э нет, мы про ретайн говорили, нажмите ка стоп а потом включите

    ЗЫ а так понятно откуда Ваши заблуждения, каюсь не правильно сформулировал. Постоянно записанные константы в таком виде будут отоброжаться конечно, но тогда надо записывать из вне постоянно уставку, а так как обмен длится несколько дольше, то в некоторые циклы эти значения обнулятся, так же и в Вашем примере начните писать в эту область через срабатывание таймера и на на выходе будет в основном ноль стоять а не константа
    Последний раз редактировалось capzap; 04.02.2016 в 08:00.

  5. #5

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    э нет, мы про ретайн говорили, нажмите ка стоп а потом включите
    Вообще то вы процитировали мое утверждение о том, что я ругался на то что нет возможности записать значение в %I.
    И если бы такая возможность была, я бы смог из ретентив структуры, при старте контроллера сохранить значение в %IW0

    Поэтому считаю себя выйгравшим в этом ивенте на 100 руб.

    Я сначала сохранил значение 12345 в IW0, затем сохранил значение 4321 в IW0
    Последний раз редактировалось @ND; 04.02.2016 в 08:01.

  6. #6

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    э нет, мы про ретайн говорили, нажмите ка стоп а потом включите

    ЗЫ а так понятно откуда Ваши заблуждения, каюсь не правильно сформулировал. Постоянно записанные константы в таком виде будут отоброжаться конечно, но тогда надо записывать из вне постоянно уставку, а так как обмен длится несколько дольше, то в некоторые циклы эти значения обнулятся, так же и в Вашем примере начните писать в эту область через срабатывание таймера и на на выходе будет в основном ноль стоять а не константа
    Дак галка с самого начала была убрана, и ничего у меня не обнулялось. И записывать постоянно не обязательно.

    PS: Жду поступлений
    Последний раз редактировалось @ND; 04.02.2016 в 08:17.

  7. #7
    Banned
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,664

    По умолчанию

    Цитата Сообщение от @ND Посмотреть сообщение
    PS: Жду поступлений
    да сейчас, я тоже могу картинку выложить, то же самое что и в семене в таком случае, где foo AT %IW0 : WORD;
    сможете объяснить почему 4321 записаная во втором нетворке отображается в переменной foo первого нетворка, а сама IW0 равна нулю. КДС в этом плане намного правильнее семена отображает значения, а объяснения у всех одни и те же
    Так как физические входы получают свои значения непосредственно из подключенных к ним полевых устройств, то запись в эти входы запрещена
    цитата из доков на плк от семена
    Изображения Изображения
    • Тип файла: png owen.png (63.9 Кб, Просмотров: 29)

  8. #8

    По умолчанию

    Не нужно путать физические входы (типа PIW0) с областью процесса (IW0)
    В PIW0 я уже ничего не смогу записать, а в IW0 пожалуйста.
    И если IW0 не привязан ни к какому входу, то записанное туда значение сохранится сколь угодно долго.

  9. #9
    Banned
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,664

    По умолчанию

    Цитата Сообщение от @ND Посмотреть сообщение
    Не нужно путать физические входы (типа PIW0) с областью процесса (IW0)
    В PIW0 я уже ничего не смогу записать, а в IW0 пожалуйста.
    И если IW0 не привязан ни к какому входу, то записанное туда значение сохранится сколь угодно долго.
    выйду на улицу, попадется терминал, переведу

  10. #10

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    да сейчас, я тоже могу картинку состряпать, где foo AT %IW0 : WORD;
    сможете объяснить почему 4321 записаная во втором нетворке отображается в переменной foo первого нетворка?
    Как компилятор вас пропустил для записи в %IW0 ?
    У меня ругается
    Последний раз редактировалось @ND; 04.02.2016 в 08:35.

Страница 1 из 5 123 ... ПоследняяПоследняя

Похожие темы

  1. Modbus (Master) не отображается в память Modbus (Slave)
    от ghoch в разделе Помощь Разработчикам
    Ответов: 3
    Последнее сообщение: 07.05.2018, 09:40
  2. ПЛК160: Modbus TCP Master и Modbus TCP Slave одновременно.
    от Антон Костюченко в разделе ПЛК1хх
    Ответов: 10
    Последнее сообщение: 18.07.2016, 10:36
  3. Modbus Universal MasterOPC сервер или Lectus MODBUS OPC?
    от Olegis в разделе Master SCADA 3
    Ответов: 11
    Последнее сообщение: 05.04.2013, 08:35
  4. Ответов: 4
    Последнее сообщение: 18.09.2012, 21:16
  5. Ответов: 5
    Последнее сообщение: 14.10.2010, 13:42

Ваши права

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