Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 24

Тема: Использование указателей Pointer

  1. #11

    По умолчанию

    некоторые ST операторы можно писать прям в блоках CFC к примеру [adr(x)]--[pX^] ;
    а ниже пример где adr вынесен в отдельный блок
    Screen Shot 2013-12-04 at 3.34.41 PM.png

  2. #12

    По умолчанию

    Привет всем. Нуждаюсь в вашей помощи.
    Каким образом мне в подпрограмме собрать ДИНАМИЧЕСКИ имя переменной. Например в PHP я могу слепить имя переменной из двух строк, а потом тому что получилось присвоить значение.

    Например:

    Я назвал физический выход контроллера как DigitalOut1

    Снимок.JPG

    Потом в подпрограмму я отправляю две строки. Первая -DigitalOut, вторая - 1.

    В подпрограмме я склеиваю эти строки

    VarSTRING := CONCAT ('DigitalOut','1');

    и в переменной VarSTRING, я получил строку - DigitalOut1.

    Как в данном случае, после склеивания мне задать DigitalOut1:=true; ?

    Знаю что копать нужно в сторону pointer, но что то не получается....

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

    По умолчанию

    Цитата Сообщение от lexx905 Посмотреть сообщение
    Привет всем. Нуждаюсь в вашей помощи.
    Каким образом мне в подпрограмме собрать ДИНАМИЧЕСКИ имя переменной. Например в PHP я могу слепить имя переменной из двух строк, а потом тому что получилось присвоить значение.

    Например:

    Я назвал физический выход контроллера как DigitalOut1

    Снимок.JPG

    Потом в подпрограмму я отправляю две строки. Первая -DigitalOut, вторая - 1.

    В подпрограмме я склеиваю эти строки

    VarSTRING := CONCAT ('DigitalOut','1');

    и в переменной VarSTRING, я получил строку - DigitalOut1.

    Как в данном случае, после склеивания мне задать DigitalOut1:=true; ?

    Знаю что копать нужно в сторону pointer, но что то не получается....
    Указатели Вам не помогут
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  4. #14

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Указатели Вам не помогут
    А варианты реализации вообще есть?

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

    По умолчанию

    Цитата Сообщение от lexx905 Посмотреть сообщение
    А варианты реализации вообще есть?
    обзываете начальный адрес памяти определенным именем и далее используя указатель перемещяетесь по памяти на столько байт, сколько лежит между переменными либо структуры, либо ПОУ либо конфигурации
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  6. #16

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    обзываете начальный адрес памяти определенным именем и далее используя указатель перемещяетесь по памяти на столько байт, сколько лежит между переменными либо структуры, либо ПОУ либо конфигурации
    Взорвали мозг. Где в мануалах это можно увидеть? Или примеры...
    Никогда с этим не сталкивался...

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

    По умолчанию

    там вообще все просто, из примеров: нужна конкретная задача, тогда и примеры кто нить выложит. А так по минимуму http://www.owen.ru/forum/showthread....l=1#post122956

  8. #18

    По умолчанию

    Спасибо, но если у вас есть время, хотелось бы поговорить подробнее...)

    из примера:

    sPnt:=ADR(slv); - slv - мои данные. Здесь я получил адрес где мои данные лежат. (Правильно понял?)
    sz := SIZEOF(sPnt^); - размер моих данных.

    Попробовал. Ни чего не понял... Простите...

    Снимок.PNG

  9. #19

    По умолчанию

    Спасибо! С ADR разобрался.

    Снимок.PNG


    Но данным образом я обращаюсь ко всем 16ти выходам. Конечно можно выдергивать их по отдельности типо первый выход мне нужно выставить 1, второй - 2, третий - 4, и т.д...
    Но это не очень удобно.
    А явно к %QX0.5 мне ни как нельзя обратиться?

  10. #20
    Пользователь
    Регистрация
    19.11.2011
    Адрес
    г. Белгород
    Сообщений
    357

    По умолчанию

    Вы бы задачу описали бы подробнее, может есть более простое решение.

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Похожие темы

  1. Ответов: 23
    Последнее сообщение: 22.12.2010, 23:36
  2. POINTER TO what?
    от drvlas в разделе ПЛК (среда CoDeSys V2.3)
    Ответов: 34
    Последнее сообщение: 04.12.2010, 23:46
  3. Использование АС4
    от alex_sinjawin в разделе Сетевые технологии
    Ответов: 2
    Последнее сообщение: 10.11.2009, 18:31
  4. Использование таймеров
    от alex1963 в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 21.12.2008, 16:12
  5. Получение списка/указателей на ФБ проекта
    от Аркадий в разделе ПЛК1хх
    Ответов: 9
    Последнее сообщение: 05.03.2008, 18:22

Ваши права

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