Создайте GE Fanuc разделяемые разделы

Программное обеспечение Simulink® Real-Time™ использует модель в отражающей (разделяемой) памяти, которая включает блоки Simulink для функций драйвера общей памяти. Чтобы задать инициализацию узла и разделы общей памяти, функции драйвера используют структуры MATLAB®. Эта тема описывает поддержку Simulink Real-Time плат общей памяти GE® Fanuc Embedded Systems.

Чтобы использовать GE блоки общей памяти Встраиваемых систем Fanuc, необходимо задать структуры раздела общей памяти. Структура раздела описывает, как вы хотите выделить (раздел) общую память. Программное обеспечение Simulink Real-Time выделяет общую память как сегменты данных, которые упаковываются в области памяти или разделы. Наряду с Пакетом Общей памяти и Общей памятью Распаковывают блоки, GE, блоки общей памяти Встраиваемых систем Fanuc используют структуры раздела общей памяти.

После определения разделов общей памяти можно добавить блоки драйверов общей памяти в модель Simulink. Смотрите GE Fanuc Разделяемая Структура Раздела для полного списка полей в разделе.

Следующее описание относится к completepartitionstruct команда. Ввод

help completepartitionstruct

для получения дополнительной информации.

  • Создайте структуру раздела одним из следующих способов. Используя completepartitionstruct команда в Окне Команды MATLAB, создайте структуру раздела по умолчанию. Например, ввести

    Partition = completepartitionstruct([],'5565')
    
    Partition = 
    
          Address: '0x0'
             Type: 'uint32'
             Size: '1'
        Alignment: '4'
         Internal: [1x1 struct]
    
  • В Окне Команды MATLAB создайте пользовательскую структуру раздела. Частично задайте структуру в файле скрипта, запуск, что скрипт в рабочем пространстве MATLAB, и заполняет получившуюся структуру с completepartitionstruct функция. Например:

    Partition(1).Address='0x5000';
    Partition(1).Type='int8';
    Partition(1).Size='10';
    Partition(2).Type='uint16';
    Partition(2).Size='5';
    Partition(3).Type='uint8';
    Partition(3).Size='1';
    Partition(3).Alignment='8';
    Partition(4).Type='double';
    Partition(4).Size='3';
    

    Этот пример задает раздел с четырьмя сегментами.

    • Address поле является дополнительным. Только задайте это поле для первого сегмента раздела. Элементы раздела заданы как непрерывный блок памяти от первого адреса. Функция экстраполирует адреса сегмента из первого определения сегмента. Если вы имеете или требуете фрагментированной памяти, используйте несколько разделов.

    • Type и Size поля требуются для всех сегментов в структуре раздела.

    • Alignment значение является дополнительным. Это - '4' по умолчанию, который обеспечивает сегменты, которые не имеют спецификаций выравнивания, чтобы запуститься на 4-байтовых контурах (на 32 бита). В предыдущем определении раздела, третий сегмент (Partition(3)) имеет выравнивание '8'.

    • Тип данных, размер и выравнивание предыдущего сегмента define базовые адреса последующих сегментов.

    • Чтобы заполнить структуру раздела, вызовите completepartitionstruct() команда.

      Partition = completepartitionstruct(Partition,'5565');