Данный CODESYS форум содержит архивную копию русской ветви только для чтения. Для создания сообщений пожалуйста используйте актуальную международную платформу CODESYS Forum. Close

Сетевые переменные

Yougi
2011-05-23
2011-06-10
  • Yougi

    Yougi - 2011-05-23

    Хочу проконсультироваться по поводу сетевых переменных.
    Итак, для первого контроллера, типа мастер будет
    - в Target settings, Network functionality ставлю галку Support network variables
    - в Global variables создаю файл, ну, допустим, UDP_Var
    - прописываю туда имена переменных. Для остального проекта они будут глобальные, т.е. могу писать/читать из любого места
    Например
    bUdp_flag1;
    bUdp_flag2;
    bUdp_flag3;
    этцетера...

    У второго контроллера делаю то же самое. Список переменных тот же.

    И когда я на первом контроллере сделаю
    IF %IX10.0
    THEN
    bUdp_flag1:=TRUE;
    END_IF;

    На втором
    bUdp_flag1 тоже будет ТРУ?

    Я ничего не пропустил?

     
  • Yougi

    Yougi - 2011-05-24

    Да, и вдогонку вопрос
    что будет, если кабель порвётся? Оно мне скажет, что что-то нехорошо, или какой-то тик заводить надо?

     
  • KIV

    KIV - 2011-05-31

    Цитата:
    IF %IX10.0
    THEN
    bUdp_flag1:=TRUE;
    END_IF;

    зачем так сложно?

    Цитата:
    На втором
    bUdp_flag1 тоже будет ТРУ?

    будет, если udp обмен состоиться.

    Цитата:
    что будет, если кабель порвётся?

    udp обмен не состоиться.

     
  • Yougi

    Yougi - 2011-06-06

    Цитата:
    зачем так сложно?

    Для наглядности.

    Цитата:
    udp обмен не состоиться.

    Это, вроде как, самоочевидно. Интересует реакция системы на такое событие.

    И еще вопрос - вот есть у нас некая абстрактная сетка, в ней сидят пара контроллеров и нечто под виндой, и оно начинает дуть в сеть бродкаст.
    Что будет со связью у контроллеров?

     
  • KIV

    KIV - 2011-06-06

    Yougi писал(а):
    Для наглядности.
    Это, вроде как, самоочевидно. Интересует реакция системы на такое событие.

    у вас есть PLCWinNT.
    на одной машине можно запустить несколько экзепляров и тестить, а лучше использовать виртуальные машины ... получаеться "сетевой" soft-plc, с которыми можно пробывать любой обмен.

    Цитата:
    И еще вопрос - вот есть у нас некая абстрактная сетка, в ней сидят пара контроллеров и нечто под виндой, и оно начинает дуть в сеть бродкаст.
    Что будет со связью у контроллеров?

    да всё будет нормально, если хватит мощности свичей, чтоб перекачивать трафик.

     
  • Yougi

    Yougi - 2011-06-07

    Цитата:
    у вас есть PLCWinNT

    Да нету, нету у меня PLCWinNT. Не ту. Кодесис такой. Спессфисский...
    И виртуальную машину в силу разных причин в разумные сроки взгромоздить не могу.
    И железа под рукой нет. Было бы - не задавал бы странных вопросов.

     
  • KIV

    KIV - 2011-06-07

    Yougi писал(а):
    Да нету, нету у меня PLCWinNT. Не ту. Кодесис такой. Спессфисский...
    И виртуальную машину в силу разных причин в разумные сроки взгромоздить не могу.
    И железа под рукой нет. Было бы - не задавал бы странных вопросов.

    1. жесть.
      через диалп вполне можно скачать codesys с сайта овна, далее накатить поверх или поставить отдельно.
      vmware (~ 550 MB)- рекомендую, virtualbox - меньше весит и для личного использования бесплатен.

    2.1 библиотека NetVarUdp_LIB_V23.lib у Вас есть?
    2.2 а будет работать на целевой платформе, т.к. не помню почему её нет иль не было в стандартном пакете ... но это воспрос к ИП.
    2.3 смотрели эту бублу и её функции?

    NetVarUdp_LIB_V23.rar [11.39 КБ]

     
  • Yougi

    Yougi - 2011-06-08

    Посмотрел, нифига, правда, не понял, в сокетах я как-то не очень, выяснил, что на целевой платформе оно работать должно,
    так что нельзя-ли еще примерчик подогнать али доку какую по этой либе?

     
  • Yougi

    Yougi - 2011-06-10

    Покопался немного в теме, стало ещё непонятнее.
    Когда мы организовываем обмен между контроллерами через переменные UDP, компилятор автоматически включает в прект SysLibSockets .lib и NetVarUDP.lib
    То есть оно само внутре открывает сокет, передаёт данные этцетера.
    В чем тогда преимущество подхода, изложенного в проекте TcpUdp.pro, который предлагают в соседнем англоязычном форуме, как пример обмена данными между устройствами?
    Там ручками открывается сокет, туда пихаются данные, на другой стороне ручками открывается, и данные читаются.