Expand description
L5X file parser for PLC programs.
This crate provides functionality for parsing L5X files exported from Rockwell Automation Studio 5000 Logix Designer.
§Parsing Features
- Fast, type-safe parsing using quick-xml and serde
- Generated types from the official L5X XSD schema
- RLL (Relay Ladder Logic) instruction parsing
§Example
ⓘ
use l5x::Project;
// Parse L5X file
let xml = std::fs::read_to_string("project.L5X")?;
let project: Project = l5x::from_str(&xml)?;
println!("Controller: {:?}", project.controller);
// Parse ladder logic rungs
use l5x::rll::parse_rung;
let rung = parse_rung("XIC(Start)OTE(Motor);");
let tags = rung.tag_references();Re-exports§
pub use security::SecurityLimits;pub use security::SecurityError;pub use security::validate_xml;
Modules§
- rll
- RLL (Relay Ladder Logic) text parser for Rockwell L5X files.
- security
- Security limits and protections for L5X parsing
Structs§
- AAttachment
- AAttachmentType element
- ABus
- ABusType element
- AFBD_
Block - AFBD_BlockType element
- AFBD_
Function - AFBD_FunctionType element
- AProgram
- AProgramType element
- ASCII
Driver - ASCIIDriverType element
- ASFC_
Branch Element - ASFC_BranchElementType element
- ASFC_
Lang Elem Wire - ASFC_LangElemWireType element
- ASFC_
LegElement - ASFC_LegElementType element
- ASFC_
Step Element - ASFC_StepElementType element
- ASFC_
Stop Element - ASFC_StopElementType element
- ASFC_
Transition Element - ASFC_TransitionElementType element
- Additional
Help Text - AdditionalHelpTextType element
- Alarm
Analog - AlarmAnalogType element
- Alarm
Config - AlarmConfigType element
- Alarm
Data - AlarmDataType element
- Alarm
Definition Collection Adaptor - AlarmDefinitionCollectionAdaptorType element
- Alarm
Digital - AlarmDigitalType element
- Alarm
Message - AlarmMessageType element
- Alarm
Message Collection - AlarmMessageCollectionType element
- Alarm
Message Text - AlarmMessageTextType element
- AnyElement
- Placeholder for xs:any wildcard elements quick-xml cannot deserialize dynamic element names, so these are skipped Use xmltree-based parsing if you need to preserve xs:any content
- Area
Adaptor - AreaAdaptorType element
- Area
Adaptor Collection - AreaAdaptorCollectionType element
- Axis
- AxisType element
- Axis
Data - AxisDataType element
- BEO
- BEOType element
- BEOData
- BEODataType element
- CST
- CSTType element
- Child
Program - ChildProgramType element
- Child
Program Collection - ChildProgramCollectionType element
- Comm
Port Collection - CommPortCollectionType element
- Comment
Adaptor - CommentAdaptorType element
- Comment
Adaptor Text - CommentAdaptorTextType element
- Comment
Collection - CommentCollectionType element
- Comment
Wide - CommentWideType element
- Communications
- CommunicationsType element
- Config
Data - ConfigDataType element
- Config
Script - ConfigScriptType element
- Config
Tag - ConfigTagType element
- Configured
Alarm Adaptor - ConfiguredAlarmAdaptorType element
- Configured
Alarm Collection Adaptor - ConfiguredAlarmCollectionAdaptorType element
- Consume
TagInfo - ConsumeTagInfoType element
- Controller
- ControllerType element
- Coordinate
System - CoordinateSystemType element
- Coordinate
System Data - CoordinateSystemDataType element
- Custom
Properties Adaptor - CustomPropertiesAdaptorType element
- Custom
Properties Collection - CustomPropertiesCollectionType element
- Custom
Properties Text - CustomPropertiesTextType element
- DF1Driver
- DF1DriverType element
- Data
Array - DataArray element
- Data
Array Element - DataArrayElement element
- DataLog
- DataLogType element
- Data
LogCollection - DataLogCollectionType element
- Data
LogTag - DataLogTagType element
- Data
LogTag Collection - DataLogTagCollectionType element
- Data
Structure - DataStructure element
- Data
Type - DataTypeType element
- Data
Type Collection - DataTypeCollectionType element
- Data
Type Dependency - DataTypeDependencyType element
- Data
Type Dependency Collection - DataTypeDependencyCollectionType element
- Data
Type Member - DataTypeMemberType element
- Data
Value - DataValue element
- Data
Wide - DataWideType element
- Data
Wide Type_ Value_ Inline - DataWideType_Value_InlineType element
- Datatype
Alarm Definition - DatatypeAlarmDefinitionType element
- Decorated
Data - DecoratedDataType element
- Decorated
Default Data - DecoratedDefaultDataType element
- Default
Data Wide - DefaultDataWideType element
- Default
Data Wide Type_ Value_ Inline - DefaultDataWideType_Value_InlineType element
- Dependencies
Wide - DependenciesWideType element
- Dependency
Wide - DependencyWideType element
- Description
- DescriptionType element
- Description
Text - DescriptionTextType element
- Device
Diagnostic Profile - DeviceDiagnosticProfileType element
- Device
Diagnostic Profile Collection - DeviceDiagnosticProfileCollectionType element
- Device
Diagnostic Profile Type_ Profile Definition_ Inline - DeviceDiagnosticProfileType_ProfileDefinition_InlineType element
- Device
Level Ring - DeviceLevelRingType element
- Device
Obj - DeviceObjType element
- Diagnostics
Message Adaptor - DiagnosticsMessageAdaptorType element
- Diagnostics
Message Collection - DiagnosticsMessageCollectionType element
- Display
Text - DisplayTextType element
- EEO
- EEOType element
- EEOData
- EEODataType element
- Embedded
Language Block - EmbeddedLanguageBlockType element
- Encoded
Routine - EncodedRoutineType element
- EncodedUDI
Definition - EncodedUDIDefinitionType element
- Encoded
Wide - EncodedWideType element
- Encrypted
Content - EncryptedContentType element
- Encryption
Info - EncryptionInfoType element
- Encryption
Key - EncryptionKeyType element
- Engineering
Unit - EngineeringUnitType element
- Engineering
Unit Collection - EngineeringUnitCollectionType element
- Engineering
Unit Text - EngineeringUnitTextType element
- Ethernet
Link - EthernetLinkType element
- Ethernet
Link Collection - EthernetLinkCollectionType element
- ExtDevice
Obj - ExtDeviceObjType element
- External
Content - ExternalContentType element
- External
Content Type_ DLL_ Inline - ExternalContentType_DLL_InlineType element
- External
Content Type_ Entry Point_ Inline - ExternalContentType_EntryPoint_InlineType element
- FBDContent
- FBDContentType element
- FBD_
Feedback Wire - FBD_FeedbackWireType element
- FBD_
GsvBlock - FBD_GsvBlockType element
- FBD_
Input Ref - FBD_InputRefType element
- FBD_
Input Wire Connector - FBD_InputWireConnectorType element
- FBD_JSR
- FBD_JSRType element
- FBD_
Output Ref - FBD_OutputRefType element
- FBD_
Output Wire Connector - FBD_OutputWireConnectorType element
- FBD_RET
- FBD_RETType element
- FBD_SBR
- FBD_SBRType element
- FBD_
Special Array - FBD_SpecialArrayType element
- FBD_
SsvBlock - FBD_SsvBlockType element
- FBD_
UDIArgument - FBD_UDIArgumentType element
- FBD_
UDIBlock - FBD_UDIBlockType element
- FBD_
Wire - FBD_WireType element
- Fault
Log - FaultLogType element
- Force
Data Wide - ForceDataWideType element
- Force
Data Wide Type_ Value_ Inline - ForceDataWideType_Value_InlineType element
- HMIBC
- HMIBCType element
- HMIBC
Data - HMIBCDataType element
- Hardware
Status - HardwareStatusType element
- History
Entry - HistoryEntryType element
- InAlias
Tag - InAliasTagType element
- Input
Data - InputDataType element
- Input
Image Init - InputImageInitType element
- Input
Tag - InputTagType element
- Instruction
Adaptor - InstructionAdaptorType element
- Instruction
Adaptor Collection - InstructionAdaptorCollectionType element
- L5KData
- L5KDataType element
- L5KDefault
Data - L5KDefaultDataType element
- L5KForce
Data - L5KForceDataType element
- Label
- LabelType element
- Label
Adaptor - LabelAdaptorType element
- Label
Adaptor Collection - LabelAdaptorCollectionType element
- Label
Collection - LabelCollectionType element
- Label
Text - LabelTextType element
- Label
Wide - LabelWideType element
- Labels
Wide - LabelsWideType element
- Library
Adaptor - LibraryAdaptorType element
- Library
Adaptor Collection - LibraryAdaptorCollectionType element
- Localized
Additional Help Text - LocalizedAdditionalHelpTextType element
- Localized
Comment Wide - LocalizedCommentWideType element
- MapConnection
- MapConnectionType element
- MapConnection
Collection - MapConnectionCollectionType element
- MapDevice
- MapDeviceType element
- MapDevice
Collection - MapDeviceCollectionType element
- MapDevice
Type_ Extended Properties_ Inline - MapDeviceType_ExtendedProperties_InlineType element
- MaxLimit
- MaxLimitType element
- MaxLimit
Collection - MaxLimitCollectionType element
- Member
Alarm Definition - MemberAlarmDefinitionType element
- Message
Data - MessageDataType element
- MinLimit
- MinLimitType element
- MinLimit
Collection - MinLimitCollectionType element
- ModuleE
Key - ModuleEKeyType element
- Motion
Group - MotionGroupType element
- Motion
Group Data - MotionGroupDataType element
- Msg
- MsgType element
- Navigation
Adaptor - NavigationAdaptorType element
- Navigation
Collection - NavigationCollectionType element
- OutAlias
Tag - OutAliasTagType element
- Output
Data - OutputDataType element
- Output
Tag - OutputTagType element
- Parameter
Connection - ParameterConnectionType element
- Parameter
Connection Collection - ParameterConnectionCollectionType element
- Pen
- PenType element
- PenCollection
- PenCollectionType element
- Ping
Method - PingMethodType element
- Port
- PortType element
- Port
Collection - PortCollectionType element
- Primary
Action SetAdaptor - PrimaryActionSetAdaptorType element
- Primary
Action SetCollection - PrimaryActionSetCollectionType element
- Primary
Action SetText - PrimaryActionSetTextType element
- Produce
TagInfo - ProduceTagInfoType element
- Program
Collection - ProgramCollectionType element
- Project
- ProjectType element
- Quick
Watch Adaptor - QuickWatchAdaptorType element
- Quick
Watch Collection Adaptor - QuickWatchCollectionAdaptorType element
- Quick
Watch TagAdaptor - QuickWatchTagAdaptorType element
- Rack
Connection - RackConnectionType element
- RawData
- RawDataType element
- RawDefault
Data - RawDefaultDataType element
- RawForce
Data - RawForceDataType element
- Redundancy
- RedundancyType element
- Redundancy
Info - RedundancyInfoType element
- Revision
Note - RevisionNoteType element
- Revision
Note Text - RevisionNoteTextType element
- Routine
- RoutineType element
- Routine
Collection - RoutineCollectionType element
- Routine
Type_ Encrypted Segments_ Inline - RoutineType_EncryptedSegments_InlineType element
- Rung
- RungType element
- Rung
Collection - RungCollectionType element
- Rung
Comment - RungCommentType element
- Rung
Comment Text - RungCommentTextType element
- SEQContent
- SEQContentType element
- SFCContent
- SFCContentType element
- SFC_
Action Element - SFC_ActionElementType element
- SFC_
SBR_ RET - SFC_SBR_RETType element
- STContent
- STContentType element
- STLine
- STLineType element
- Safety
Controller - SafetyControllerType element
- Safety
Info - SafetyInfoType element
- Safety
Info Type_ Safety TagMap_ Inline - SafetyInfoType_SafetyTagMap_InlineType element
- Safety
Script - SafetyScriptType element
- Scheduled
Program - ScheduledProgramType element
- Scheduled
Program Collection - ScheduledProgramCollectionType element
- Security
Info - SecurityInfoType element
- Serial
Port - SerialPortType element
- Sheet
- SheetType element
- Sibling
Dependencies Collection - SiblingDependenciesCollectionType element
- Sibling
Dependency Adaptor - SiblingDependencyAdaptorType element
- Signature
History - SignatureHistoryType element
- State0
- State0Type element
- State0
Collection - State0CollectionType element
- State0
Text - State0TextType element
- State1
- State1Type element
- State1
Collection - State1CollectionType element
- State1
Text - State1TextType element
- String
Data - StringDataType element
- String
Default Data - StringDefaultDataType element
- TCPIP
- TCPIPType element
- Tag
- TagType element
- TagCollection
- TagCollectionType element
- TagConfiguration
Adaptor - TagConfigurationAdaptorType element
- TagConfigurations
Adaptor - TagConfigurationsAdaptorType element
- Task
- TaskType element
- Task
Collection - TaskCollectionType element
- Task
Event Info - TaskEventInfoType element
- TextBox
- TextBoxType element
- Text
BoxAdaptor - TextBoxAdaptorType element
- Text
BoxAdaptor Text - TextBoxAdaptorTextType element
- Text
Wide - TextWideType element
- Time
Synchronize - TimeSynchronizeType element
- Trend
Group - TrendGroupType element
- Trend
Group Collection - TrendGroupCollectionType element
- Trend
Group Type_ Template_ Inline - TrendGroupType_Template_InlineType element
- Type
Member Collection - TypeMemberCollectionType element
- UDIDefinition
- UDIDefinitionType element
- UDIDefinition
Collection - UDIDefinitionCollectionType element
- UDIDefinition
Type_ EncryptedAOI Content_ Inline - UDIDefinitionType_EncryptedAOIContent_InlineType element
- UDIDependency
- UDIDependencyType element
- UDIDependency
Collection - UDIDependencyCollectionType element
- UDILocal
Tag - UDILocalTagType element
- UDILocal
TagCollection - UDILocalTagCollectionType element
- UDIParameter
- UDIParameterType element
- UDIParameter
Collection - UDIParameterCollectionType element
- URLAdaptor
- URLAdaptorType element
- URLAdaptor
Collection - URLAdaptorCollectionType element
- Wall
Clock Time - WallClockTimeType element
Enums§
- Decorated
Data Elements - DecoratedDataElements choice group
- Secure
Parse Error - Combined error type for secure parsing
Functions§
- from_
str - Parse L5X XML string into a typed structure.
- from_
str_ secure - Parse L5X XML string with security validation.
- to_
string - Serialize a structure to an L5X XML string.