Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 21 по 30 из 38

Тема: ПЛК110-60 (30) М2 ограничение количества сетевых переменных в 1000

  1. #21

    По умолчанию

    Цитата Сообщение от Васильев Посмотреть сообщение
    а как положить (отобразить) структуру к примеру с адреса AT%QW6.800.0 ???
    compressors AT%QW6.800.0 : COMPRESSOR; -объявление

    Структура COMPRESSOR, в ней массив w: ARRAY[0..1999] OF WORD;, положена по адресу AT%QW6.800.0,
    обращаться к ней как compressors.w[0] - ваш массив

    Только места должно хватать на всю структуру, поэтому адрес скорее должен быть AT%QW6.0.0
    Последний раз редактировалось kondor3000; Вчера в 16:25.

  2. #22

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    compressors AT%QW6.800.0 : COMPRESSOR;

    Структура COMPRESSOR, в ней массив w: ARRAY[0..1999] OF WORD;, положена по адресу AT%QW6.800.0,
    обращаться к ней как compressors.w[0] - ваш массив
    в этом случае элементы структуры располагаются в памяти в порядке их объявления в структуре (с учетом смещений)?
    А это в codesys 2.3 возможно?

  3. #23
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,105

    По умолчанию

    Цитата Сообщение от Васильев Посмотреть сообщение
    ...
    А это в codesys 2.3 возможно?
    А что в вашем понимании структура?

  4. #24

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    А что в вашем понимании структура?
    TYPE vfdCMD :
    STRUCT


    setCMD:WORD; (* последняя успешная команда*)
    setFreq:WORD; (* установленная частота*)
    setFreqMax:WORD; (* установленная максимальная частота*)
    setFreqMin:WORD; (* установленная максимальная чатота*)

    newCMD:WORD; (* произвольная команда*)
    newWrAddr: WORD; (* адрес для записи*)
    newWrData:WORD; (* данные для записи*)
    newFirstAddr:WORD; (* первый для чтения*)
    newQuantity:WORD; (* количество для чтения*)
    newFreq:WORD; (*частота*)
    newRegAddr:WORD; (* адрес записываемого регистра*)
    newRegValue:WORD; (* сам регистр для записи*)


    ...

  5. #25
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,105

    По умолчанию

    Немного недопоняли.
    Сама структура это не что-то конкретное, а просто описание относительного порядка полей.
    А относительно чего, так это от точки приложения. Главное правильно прикладывать.
    Это к странному вопросу:
    в этом случае элементы структуры располагаются в памяти в порядке их объявления в структуре (с учетом смещений)?

  6. #26
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,105

    По умолчанию

    Цитата Сообщение от Васильев Посмотреть сообщение
    TYPE vfdCMD :
    STRUCT


    setCMD:WORD; (* последняя успешная команда*)
    setFreq:WORD; (* установленная частота*)
    setFreqMax:WORD; (* установленная максимальная частота*)
    setFreqMin:WORD; (* установленная максимальная чатота*)

    newCMD:WORD; (* произвольная команда*)
    newWrAddr: WORD; (* адрес для записи*)
    newWrData:WORD; (* данные для записи*)
    newFirstAddr:WORD; (* первый для чтения*)
    newQuantity:WORD; (* количество для чтения*)
    newFreq:WORD; (*частота*)
    newRegAddr:WORD; (* адрес записываемого регистра*)
    newRegValue:WORD; (* сам регистр для записи*)


    ...
    Код:
    TYPE vfdCMD_set :
    STRUCT
      CMD:WORD; (* последняя успешная команда*)
      Freq:WORD; (* установленная частота*)
      FreqMax:WORD; (* установленная максимальная частота*)
      FreqMin:WORD; (* установленная максимальная чатота*)
    end_struct
    
    TYPE vfdCMD_new :
    STRUCT
      CMD:WORD; (* произвольная команда*)
      WrAddr: WORD; (* адрес для записи*)
      WrData:WORD; (* данные для записи*)
      FirstAddr:WORD; (* первый для чтения*)
      Quantity:WORD; (* количество для чтения*)
      Freq:WORD; (*частота*)
      RegAddr:WORD; (* адрес записываемого регистра*)
      RegValue:WORD; (* сам регистр для записи*)
    end_struct
    
    TYPE vfdCMD :
    STRUCT
      Set: vfdCMD_set;
      New: vfdCMD_new;
    end_struct;
    ))
    .........................

  7. #27

    По умолчанию

    Цитата Сообщение от Васильев Посмотреть сообщение
    в этом случае элементы структуры располагаются в памяти в порядке их объявления в структуре (с учетом смещений)?
    А это в codesys 2.3 возможно?
    По порядку, а смещений у вас нет, так как все регистры WORD.

  8. #28

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    По порядку, а смещений у вас нет, так как все регистры WORD.
    я не всю структуру привёл, у меня там есть и byte и bool - занимают по одному байту в структуре, а в памяти будут адресоваться по четным адресам - так?

  9. #29

    По умолчанию

    vop01_addr AT%QW6.800.0: WORD;
    vop01_power AT%QW6.800.0: WORD;
    vop01_00000 AT%QW6.801.0: WORD;
    vop01_mode1_T1 AT%QW6.802.0: INT;
    vop01_mode1_T1_hist AT%QW6.803.0: INT;
    vop01_mode1_T2 AT%QW6.804.0: INT;
    vop01_room_state AT%QW6.805.0: INT;
    vop01_mode2_T1 AT%QW6.806.0: INT;
    vop01_11111 AT%QW6.807.0: INT;
    vop01_mode1_minColdvalue AT%QW6.808.0: WORD;
    vop01_mode2_minColdvalue AT%QW6.809.0: WORD;
    vop01_Tinput AT%QW6.810.0: INT;
    vop01_Toutput AT%QW6.811.0: INT;
    vop01_t1 AT%QW6.812.0: INT;
    vop01_t2 AT%QW6.813.0: INT;
    vop01_t3 AT%QW6.814.0: INT;
    vop01_temperatura AT%QW6.815.0: INT;
    vop01_tenable AT%QW6.816.0: WORD;
    vop01_klapan_value AT%QW6.817.0: WORD;
    vop01_leds AT%QW6.818.0: WORD;
    vop01_Talarm AT%QW6.819.0: WORD;


    если объявить структуру, можно разместить её в памяти по адресу, для codesys2.3 ?
    Изображения Изображения
    Последний раз редактировалось Васильев; Вчера в 17:39.

  10. #30

    По умолчанию

    Цитата Сообщение от Васильев Посмотреть сообщение
    я не всю структуру привёл, у меня там есть и byte и bool - занимают по одному байту в структуре, а в памяти будут адресоваться по четным адресам - так?
    Лучший вариант это проверить x:=SIZEOF(vfdCMD_set);
    где x: DWORD; - размер структуры в байтах.

    Зачем вы напихали адресов в самой структуре?
    Написал же нужен только начальный адрес структуры при объявлении. Даже ссылку с примером вам давал.
    https://owen.ru/forum/showthread.php?t=10555&page=987
    Последний раз редактировалось kondor3000; Вчера в 17:46.

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

Похожие темы

  1. Обнуление сетевых переменных
    от Антон_Б в разделе Среда программирования OWEN Logic
    Ответов: 7
    Последнее сообщение: 11.04.2025, 15:03
  2. Перезапись сетевых переменных
    от Dimaes в разделе Среда программирования OWEN Logic
    Ответов: 20
    Последнее сообщение: 16.07.2024, 09:56
  3. Ограничение количества пусков насоса
    от K.K. в разделе Среда программирования OWEN Logic
    Ответов: 4
    Последнее сообщение: 27.03.2024, 18:06
  4. ПР-205 максимальное кол-во сетевых переменных?
    от Yura_brest в разделе Среда программирования OWEN Logic
    Ответов: 11
    Последнее сообщение: 01.12.2023, 03:11
  5. Ограничение количества "Личных сообщений"
    от Gans в разделе Трёп (Курилка)
    Ответов: 16
    Последнее сообщение: 27.11.2012, 15:35

Ваши права

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