Страница 805 из 811 ПерваяПервая ... 305705755795803804805806807 ... ПоследняяПоследняя
Показано с 8,041 по 8,050 из 8103

Тема: ВОПРОС-ОТВЕТ (отвечаем на простые вопросы от новичков)

  1. #8041
    Пользователь
    Регистрация
    21.12.2011
    Адрес
    Северодвинск
    Сообщений
    334

    По умолчанию

    Это все понятно, непонятно было, как пошагово отлаживать. Как выяснилось после тестового проектика, если в вызываемой программе не поставить точку останова, то вызывающая программа при проходе "по шагам" визуально не заходит в вызываемую (по факту - да). Блин, только сейчас увидел, что есть F8 - "шаг детальный", который все делает, как нужно. А до этого экранную кнопку тыкал, а на экране только "шаг поверху"...

  2. #8042

    По умолчанию

    Наверняка эта тема много раз обсуждалась, но прошу ткнуть ) Как в Codesys v2 лучше реализовать распаковку регистра в 16 bool, и назад? Так же, как в ОвенЛожик, с помощью PUTBIT и EXTRACT или есть другой вариант? Чтобы связать ПЛК и ПР200.

  3. #8043
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,473

    По умолчанию

    Цитата Сообщение от Вячеслав@ Посмотреть сообщение
    Наверняка эта тема много раз обсуждалась, но прошу ткнуть ) Как в Codesys v2 лучше реализовать распаковку регистра в 16 bool, и назад? Так же, как в ОвенЛожик, с помощью PUTBIT и EXTRACT или есть другой вариант? Чтобы связать ПЛК и ПР200.
    В кодесис есть адресация к битам через точку
    Упаковать биты в регистр можно такой функцией
    Код:
    FUNCTION PACK_W : WORD
    VAR_INPUT
        B0: BOOL;
        B1: BOOL;
        B2: BOOL;
        B3: BOOL;
        B4: BOOL;
        B5: BOOL;
        B6: BOOL;
        B7: BOOL;
        B8: BOOL;
        B9: BOOL;
        B10: BOOL;
        B11: BOOL;
        B12: BOOL;
        B13: BOOL;
        B14: BOOL;
        B15: BOOL;
    END_VAR
    VAR
    END_VAR
    (*Тело функции*)
    PACK_W.0:=B0;
    PACK_W.1:=B1;
    PACK_W.2:=B2;
    PACK_W.3:=B3;
    PACK_W.4:=B4;
    PACK_W.5:=B5;
    PACK_W.6:=B6;
    PACK_W.7:=B7;
    PACK_W.8:=B8;
    PACK_W.9:=B9;
    PACK_W.10:=B10;
    PACK_W.11:=B11;
    PACK_W.12:=B12;
    PACK_W.13:=B13;
    PACK_W.14:=B14;
    PACK_W.15:=B15;
    В обратную сторону аналогично, используем Bxx:=W.xx, где хх=0,1,2,...15

    А для случая "Чтобы связать ПЛК и ПР200" можно и без всяких "паков"
    https://owen.ru/forum/showthread.php...l=1#post216361

    https://owen.ru/forum/showthread.php...l=1#post187668
    Скрытый текст:

    Т.е. подправить файл hardware.cfg для таргета и получить в конфигурации "развернутые" 2byte или даже 4byte,
    т.е. с возможностью доступа к любому биту как в модуле 8bits
    26 лет деятельности в области промышленной безопасности

  4. #8044
    Пользователь
    Регистрация
    31.07.2013
    Адрес
    Аркаим
    Сообщений
    1,044

    По умолчанию

    Вячеслав@
    Я создавал свой ФБ.
    Допустим это будет аналог PUTBIT:
    Код:
    Входные_переменные
    Ин1:bool
    ..
    Ин16 :bool
    --
    ВЫходные_переменные
    Out:WORD;
    --
    Тело
    Out.0:=Ин1;
    ..
    Out.15:=Ин16;
    ------
    EXTRACT делается также, только наоборот.

  5. #8045

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение

    А для случая "Чтобы связать ПЛК и ПР200" можно и без всяких "паков"
    https://owen.ru/forum/showthread.php...l=1#post216361

    https://owen.ru/forum/showthread.php...l=1#post187668
    Скрытый текст:

    Т.е. подправить файл hardware.cfg для таргета и получить в конфигурации "развернутые" 2byte или даже 4byte,
    т.е. с возможностью доступа к любому биту как в модуле 8bits
    Благодарю! Который раз уже помогаете!

  6. #8046

    По умолчанию

    Цитата Сообщение от Sulfur Посмотреть сообщение
    Вячеслав@
    Я создавал свой ФБ.
    Допустим это будет аналог PUTBIT:
    Код:
    Входные_переменные
    Ин1:bool
    ..
    Ин16 :bool
    --
    ВЫходные_переменные
    Out:WORD;
    --
    Тело
    Out.0:=Ин1;
    ..
    Out.15:=Ин16;
    ------
    EXTRACT делается также, только наоборот.
    Благодарю за ответ!

  7. #8047

    По умолчанию

    Добрый день.
    В SCDA через переменную типа int задается время в минутах.
    В ПЛК на это время надо запустить таймер TON.
    Подскажите, пожалуйста, как преобразовать int в переменную time для таймера?

  8. #8048
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,473

    По умолчанию

    Цитата Сообщение от yurya Посмотреть сообщение
    Добрый день.
    В SCDA через переменную типа int задается время в минутах.
    В ПЛК на это время надо запустить таймер TON.
    Подскажите, пожалуйста, как преобразовать int в переменную time для таймера?
    Код:
    VAR
    	VV: INT;	(*В минутах*)
    	TTT:TIME;
    END_VAR
    
    TTT:= INT_TO_TIME(VV * 60) * 1000;
    26 лет деятельности в области промышленной безопасности

  9. #8049

    По умолчанию

    Спасибо за ответ!

  10. #8050

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    .. PT := T#1m * i; // i : любой целый тип
    Спасибо за ответ!

Страница 805 из 811 ПерваяПервая ... 305705755795803804805806807 ... ПоследняяПоследняя

Метки этой темы

Ваши права

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