Страница 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
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,246

    По умолчанию

    Цитата Сообщение от @ND Посмотреть сообщение
    Так же у контроллеров ОВЕН зачем то сделано так, что нельзя писать из программы значения в область входов %I, что могло бы решить эту проблему.
    попробуйте у сименса что нибудь сохранить в области IW, дам сто рублей если получится
    Для хранения уставок, должен быть специально выделенная глобальная ретайн структура, иначе ни как
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  3. #3

    По умолчанию

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


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

  4. #4
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,246

    По умолчанию

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

    ЗЫ а так понятно откуда Ваши заблуждения, каюсь не правильно сформулировал. Постоянно записанные константы в таком виде будут отоброжаться конечно, но тогда надо записывать из вне постоянно уставку, а так как обмен длится несколько дольше, то в некоторые циклы эти значения обнулятся, так же и в Вашем примере начните писать в эту область через срабатывание таймера и на на выходе будет в основном ноль стоять а не константа
    Последний раз редактировалось capzap; 04.02.2016 в 08:00.
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  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
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,246

    По умолчанию

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

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  8. #8

    По умолчанию

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

  9. #9

    По умолчанию

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

  10. #10
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,246

    По умолчанию

    незнаю, но в окне вывода стоят две ошибки, наверное из-за того что правильный код я заменил онлайн изменением
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

Страница 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, 09:35
  4. Ответов: 4
    Последнее сообщение: 18.09.2012, 22:16
  5. Ответов: 5
    Последнее сообщение: 14.10.2010, 14:42

Ваши права

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