Этот пример показывает, как импортировать Лестничную Схему из файла L5X, созданного с помощью Роквелла Automation® IDEs, такого как RSLogix™9 5000 и Studio 5000 в среду Simulink®. Операция импорта выполняется с помощью функции plcimportladder
.
Данные показывают Лестничную Схему с простым таймером. Лестничная Схема состоит из четырех ступенек с контактами (Switch_A
, Light1
, Motor_timer.DN
), обмотки (Light1
, Light2
, EN
, DN
, Motor
), и таймерная функция TON
.
Файл simple_timer.L5X
был создан с помощью RSLogix 5000 IDE. Отрывок файла L5X показывают.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RSLogix5000Content SchemaRevision="1.0" SoftwareRevision="30.00" TargetName="simple_timer" TargetType="Controller" ContainsContext="false" Owner="Arun Mathew Iype, MathWorks" ExportDate="Mon Nov 12 16:35:28 2018" ExportOptions="NoRawData L5KData DecoratedData ForceProtectedEncoding AllProjDocTrans"> <Controller Use="Target" Name="simple_timer" ProcessorType="Emulate 5570" MajorRev="30" MinorRev="11" TimeSlice="20" ShareUnusedTimeSlice="1" ProjectCreationDate="Mon Nov 12 16:33:36 2018" LastModifiedDate="Mon Nov 12 16:33:43 2018" SFCExecutionControl="CurrentActive" SFCRestartPosition="MostRecent" SFCLastScan="DontScan" ProjectSN="16#0000_0000" MatchProjectToController="false" CanUseRPIFromProducer="false" InhibitAutomaticFirmwareUpdate="0" PassThroughConfiguration="EnabledWithAppend" DownloadProjectDocumentationAndExtendedProperties="true" DownloadProjectCustomProperties="true" ReportMinorOverflow="false"> <RedundancyInfo Enabled="false" KeepTestEditsOnSwitchOver="false" IOMemoryPadPercentage="90" DataTablePadPercentage="50"/> <Security Code="0" ChangesToDetect="16#ffff_ffff_ffff_ffff"/> <SafetyInfo/> <DataTypes/> <Modules> <Module Name="Local" CatalogNumber="Emulate 5570" Vendor="1" ProductType="14" ProductCode="53" Major="30" Minor="11" ParentModule="Local" ParentModPortId="1" Inhibited="false" MajorFault="true" > <EKey State="ExactMatch"/> <Ports> <Port Id="1" Address="0" Type="ICP" Upstream="false"> <Bus Size="10"/> </Port> </Ports> </Module> </Modules> <AddOnInstructionDefinitions/> <Tags/> <Programs> <Program Name="MainProgram" TestEdits="false" MainRoutineName="MainRoutine" Disabled="false" UseAsFolder="false"> ... <Tags>
Прежде, чем импортировать файл L5X в Simulink:
Проверьте, что Лестничный файл является допустимым файлом L5X. Файл может быть проверен путем компиляции его в IDE Rockwell Automation.
Если файл допустим, скопируйте файл L5X в директорию с полномочия записи и чтением. Можно также создать отдельную папку, чтобы хранить все импортированные файлы наряду с исходной Лестничной структурой файл L5X.
Используйте функцию plcimportladder
, чтобы импортировать лестничную структуру в Simulink. В данном примере программой, Name
лестничной структуры является MainProgram
и MainRoutineName
, является MainRoutine
.
>> plcimportladder('simple_timer.L5X')
Лестничная Схема импортируется в модель pwd\simple_timer.slx
Simulink. Информация состояния лестничных элементов хранится в памяти хранилища данных и обновленный моделью во время симуляции. Файл plcout\simple_timer_value.m
называется во время этапа предварительной нагрузки модели Simulink. Этот файл устанавливает начальные значения таймера в памяти хранилища данных Motor_timer
.
Модель simple_timer.slx
Simulink состоит из Лестничного Контроллера Схемы как главный модуль.
У этого контроллера есть Main Task
и Controller Tags
. Main Task
состоит из Main Program
.
Main Program
содержит реализацию Simulink Лестничной Схемы simple_timer.L5X
. Лестничная структура, которой звонят, выполняется сверху донизу и слева направо.
Можно использовать блок Signal Builder, чтобы создать тестовые воздействия для Switch_A
и проверить операцию импортированной лестничной структуры. Можно также сгенерировать лестничный код PLC или код С для подсистемы верхнего уровня. Если вы хотите отредактировать импортированную лестничную структуру, блоки Simulink находятся в шаблоне Ladder Diagram Library
. Открыть библиотеку, введите:
plcladderlib
plccleartypes
| plcgeneratecode
| plcgeneraterunnertb
| plcimportladder
| plcladderlib
| plcladderoption
| plcloadtypes