Страница 3 из 3 ПерваяПервая 123
Показано с 21 по 29 из 29

Тема: работа с переменными

  1. #21

    По умолчанию

    bs1:=ADR(SMSq1.bSend);
    bs1^:=q1;

    Вы сделали все наоборот

  2. #22

    По умолчанию

    Будте добры, дайте ответ на 24 сообщение !
    Последний раз редактировалось Ufolog; 12.07.2010 в 20:36.

  3. #23

    По умолчанию та же ошибка 4062

    сделал как вы сказали: результат тот же
    вот код:
    Последний раз редактировалось olegon; 22.07.2010 в 15:52.

  4. #24

    По умолчанию Разобрался с помощью справки по codecys

    Вызов функционального блока. Привожу цитату из русской справки:
    "Переменные вход-выход:
    Обратите внимание, что переменные вход-выход (VAR_IN_OUT) передаются в экземпляр функционального блока через указатели. Поэтому таким переменным нельзя присваивать константы при вызове.
    Вызов экземпляра fuboinst с входом iInOut1 типа VAR_IN_OUT:
    VAR
    fuboinst: fubo;
    iVar1: int;
    END_VAR
    iVar1 := 2;
    fuboinst (iInOut1 := iVar1);
    Не допустимы попытки присваивания констант:
    fuboinst (iInOut1:=2); или fuboinst .iInOut1:=2;"

    т.е в моем случае будет примерно так:
    ------------------------------------------------------------
    Program PLC_PRG
    VAR
    q1:bool;
    SMS1: GSM_Modem_SMS;(*объявляем экземпляр ФБ*)
    END_VAR
    q1:=1;(*присваиваем значение q1=1*)
    SMS1(bSend:=q1);(*передаем значение из q1 параметру ФБ*)
    -------------------------------------------------------------
    Вот так будет работать По крайней мере компилируется без ошибки 4062.
    Вывод:
    Параметру bSent присваиваем значение не напрямую при вызове, а через переменную q1, хотя q1 не указатель, а просто переменная. А в helpe написано "переменные вход-выход (VAR_IN_OUT) передаются в экземпляр функционального блока через указатели".
    В упор не вижу тут явного объявления указателя (POINTER TO ..) Это вольности перевода helpa? Пожалуйста поясните, может я заблуждаюсь?
    Всем спасибо заранее!
    Последний раз редактировалось olegon; 12.07.2010 в 22:45. Причина: уточнение

  5. #25

    По умолчанию

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

  6. #26

    По умолчанию

    Есть вопрос. В программе CoDeSys считываю с ЖКИ ПЛК63 свой конфигурационный параметр типа Dword (SubMenu/TimeP). Затем мне его надо запустить на вход таймера, для чего необходимо перевести в из Dword в Time. Вопрос: какой функцией это делается, и какая библиотека нужна?

    Честно убил определённое кол-во времени на самостоятельный поиск, но не нашёл. Если где было - извиняюсь.

  7. #27

    По умолчанию

    там библиотек никаких не надо?
    а то я так уже пробовал, а он ,в режиме симуляции, на входе счётчика ничего не отображал.(тоесть параметр 10сек., а вхот Pv(или как там) - 0)

  8. #28
    Пользователь
    Регистрация
    21.07.2010
    Адрес
    Ижевск
    Сообщений
    1

    По умолчанию

    В режиме слаив СП 270 не передает значения PS регистров в контроллер и не читате float переменные в чем тут дело?
    Alexey

  9. #29
    Ельцов Андрей
    Гость

    По умолчанию

    Посмотрите пожалуйста последний пост: http://www.owen.ru/forum/showthread.php?t=2804&page=2

Страница 3 из 3 ПерваяПервая 123

Ваши права

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