Страница 977 из 1047 ПерваяПервая ... 4778779279679759769779789799871027 ... ПоследняяПоследняя
Показано с 9,761 по 9,770 из 10463

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

  1. #9761

    По умолчанию

    Read => Float_32 (IEEE 754) – рез.изм +Word_16 (метка относительного времени, дискретность 10 мс)
    Тут последние два байта это метка относительного времени. Она указывает условное время получения данных? Например для сравнения между каналами в одном ли ответе пришли данные по ним?
    В данном случае чтобы получить правильное число Float регистры нужно переставлять?

  2. #9762

    По умолчанию

    Доброго дня всем!
    На String input поступает ответ с МВ-8АC с 8-ми каналов. 4 регистра на каждый канал - это SRD+Read . Итого 32 регистра или 64 байта.
    Подскажите пожалуйста в каком виде будет очередность элементов в POINTER TO ARRAY [0..31] WORD при адресации на String input?
    Первые 4 элемента WORD это данные по первому каналу? или сначала 8 WORD-ов это SRD по всем каналам, потом 24 WORD-а это данные Read со всех датчиков?

    Пока не имею возможности на практике проверить, вот хочу сначала эмулятор написать поступающих данных, чтоб начать их обработку в коде.
    Последний раз редактировалось senkos; 28.07.2023 в 16:25.

  3. #9763

    По умолчанию

    Цитата Сообщение от senkos Посмотреть сообщение
    Доброго дня всем!
    На String input поступает ответ с МВ-8АC с 8-ми каналов. 4 регистра на каждый канал - это SRD+Read . Итого 32 регистра или 64 байта.
    Подскажите пожалуйста в каком виде будет очередность элементов в POINTER TO ARRAY [0..31] WORD при адресации на String input?
    Первые 4 элемента WORD это данные по первому каналу? или сначала 8 WORD-ов это SRD по всем каналам, потом 24 WORD-а это данные Read со всех датчиков?

    Пока не имею возможности на практике проверить, вот хочу сначала эмулятор написать поступающих данных, чтоб начать их обработку в коде.
    сначала 8 WORD-ов это SRD по всем каналам, потом 24 WORD-а это данные Read со всех датчиков

    Калькулятором переведите адреса и всё встанет на место ( в голове). Если бы вы внимательней читали мои посты, то этих вопросов уже не задавали.
    Последний раз редактировалось kondor3000; 29.07.2023 в 13:52.

  4. #9764

    Thumbs up

    Цитата Сообщение от Валенок Посмотреть сообщение
    Код:
    struct_original_8AC  //РЭ
      SRD : array[1..8] of int;
      Read : array[1..8,1..3] of word;
    end_struct
    
    original_8AC at %... : struct_original_8AC;   //регистр 16#118
    Благодарю вас за готовый код, вы опередили меня и ответили на следующий мой вопрос, который я как раз хотел задать про структуры
    Но новичку в ST понять чужой код сложно, в данном случае для меня было неожиданно видеть двухмерный массив Read : array[1..8,1..3] of word
    Вроде все понятно что три регистра для восьми каналов, но меня интересует теперь подкапотная часть, а в частности каким образом интерпретируется этот массив с original_8AC at %... : struct_original_8AC; //регистр 16#118

    Если бы я написал например:
    Код:
    struct_original_8AC  //РЭ
      SRD : array[1..8] of int;
      Read : array[1..24] of word;
    end_struct
    
    original_8AC at %... : struct_original_8AC;   //регистр 16#118
    по сути все так же работало бы, не учитывая изменения адресации в самом массиве?

  5. #9765

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Калькулятором переведите адреса и всё встанет на место ( в голове). Если бы вы внимательней читали мои посты, то этих вопросов уже не задавали.
    Да действительно, перечитал снова ваши сообщения и в коде есть упоминание заполнения массива данными, сложно все моменты и тонкости уловить, меня смутило то что логически возможен и второй вариант, так как каждый канал как отдельное устройство и например сначала опрашивается 1 канал и записывается в стринг, потом 2, 3 и тд. Просто уточнял, спасибо!

  6. #9766

    По умолчанию

    Цитата Сообщение от senkos Посмотреть сообщение
    Благодарю вас за готовый код, вы опередили меня и ответили на следующий мой вопрос, который я как раз хотел задать про структуры
    Но новичку в ST понять чужой код сложно, в данном случае для меня было неожиданно видеть двухмерный массив Read : array[1..8,1..3] of word
    Вроде все понятно что три регистра для восьми каналов, но меня интересует теперь подкапотная часть, а в частности каким образом интерпретируется этот массив с original_8AC at %... : struct_original_8AC; //регистр 16#118

    Если бы я написал например:
    Код:
    struct_original_8AC  //РЭ
      SRD : array[1..8] of int;
      Read : array[1..24] of word;
    end_struct
    
    original_8AC at %... : struct_original_8AC;   //регистр 16#118
    по сути все так же работало бы, не учитывая изменения адресации в самом массиве?
    Вам придётся вручную, выделять каждый регистр и прописывать в переменную, потом переставлять регистры.
    Код с циклом FOR в примере автоматически разложит переменные по местам и переставит регистры во всех каналах Float.

    Вы забыли, что Статусы все идут по порядку, а переменные REAL вперемежку с циклическим временем, поэтому и взят двумерный массив.
    Последний раз редактировалось kondor3000; 30.07.2023 в 12:52.

  7. #9767

    По умолчанию

    Логику обработки массивов я понимаю.
    Мне не понятна логика привязки полученных регистров на String input (at %…) к созданной нами структуре.
    Получается в struct_original_8AC.SRD будут адреса первых 8 регистров, далее как пойдет распределение?
    Мне тут нужно уяснить принцип чтоб в дальнейшем создавать правильные структуры.

  8. #9768

    По умолчанию

    Цитата Сообщение от senkos Посмотреть сообщение
    Логику обработки массивов я понимаю.
    Мне не понятна логика привязки полученных регистров на String input (at %…) к созданной нами структуре.
    Получается в struct_original_8AC.SRD будут адреса первых 8 регистров, далее как пойдет распределение?
    Мне тут нужно уяснить принцип чтоб в дальнейшем создавать правильные структуры.
    Адрес структуры original_8AC это и есть адрес String input созданного в программе ( вам его надо прописать, посмотрев у себя).
    Регистр [0] String input, это Регистр [0] структуры original_8AC, то есть повторяет все регистры String input.
    Цикл FOR расставит регистры в нужном порядке в массиве ai : ARRAY[1..8] OF struct_ai; взятые из структуры original_8AC
    Последний раз редактировалось kondor3000; 30.07.2023 в 21:44.

  9. #9769

    По умолчанию

    Доброго дня всем! Продолжаю изучение и хотелось бы спросить очередного совета у профессионалов:
    ПЛК110 (slave) + СП307(master)
    ПЛК получает аналоговые данные от 10 устройств МВ110-8АС. Структура данных всех 10-ти устройств одинаковая.
    На скрине я отобразил структуру данных которую запрашивает СП - это блок №1 и №2. Так же СП отправляет данные в ПЛК в виде уставок.
    Верный ли подход такой, что мне нужно будет внести в конфигурацию ПЛК 10 таких блоков?Устройство-1.jpg

    ps: только что заметил что Float начинаются не с правильного регистра СП, в начало добавить наверное нужно 2 байта еще
    Последний раз редактировалось senkos; 31.07.2023 в 11:37.

  10. #9770

    По умолчанию

    Цитата Сообщение от senkos Посмотреть сообщение
    Доброго дня всем! Продолжаю изучение и хотелось бы спросить очередного совета у профессионалов:
    ПЛК110 (slave) + СП307(master)
    ПЛК получает аналоговые данные от 10 устройств МВ110-8АС. Структура данных всех 10-ти устройств одинаковая.
    На скрине я отобразил структуру данных которую запрашивает СП - это блок №1 и №2. Так же СП отправляет данные в ПЛК в виде уставок.
    Верный ли подход такой, что мне нужно будет внести в конфигурацию ПЛК 10 таких блоков?Устройство-1.jpg

    ps: только что заметил что Float начинаются не с правильного регистра СП, в начало добавить наверное нужно 2 байта еще
    Если блоки одинаковые, но с разными переменными, добавляйте 10 блоков, кто мешает. Хотя лучше было сделать все 8Bit, потом все 2 BYTE, потом все Float
    Переменные Float должны быть с чётными адресами, у вас все с нечётными, просто следите за этим, добавьте 2 байта в начале.
    Последний раз редактировалось kondor3000; 31.07.2023 в 15:17.

Страница 977 из 1047 ПерваяПервая ... 4778779279679759769779789799871027 ... ПоследняяПоследняя

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

Ваши права

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