Показано с 1 по 10 из 29

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

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

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

    По умолчанию Разобрался с помощью справки по 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. Причина: уточнение

  2. #2

    По умолчанию

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

Ваши права

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