| Crates.io | plcopen |
| lib.rs | plcopen |
| version | 0.3.1 |
| created_at | 2025-12-05 12:15:08.387862+00 |
| updated_at | 2025-12-14 16:43:37.470977+00 |
| description | Parser for PLCopen TC6 XML files (IEC 61131-3 standard exchange format) |
| homepage | https://github.com/radevgit/plc |
| repository | https://github.com/radevgit/plc |
| max_upload_size | |
| id | 1968069 |
| size | 155,588 |
Parser for PLCopen TC6 XML files - the IEC 61131-3 standard exchange format for PLC programs.
iec61131cargo add plcopen
Or add to your Cargo.toml:
[dependencies]
plcopen = "0.3"
use plcopen::Project;
// Parse PLCopen XML file
let xml = std::fs::read_to_string("project.xml")?;
let project: Project = plcopen::from_str(&xml)?;
println!("Project: {:?}", project);
use plcopen::st::{extract_all_st_from_xml, parse_st};
let xml = std::fs::read_to_string("project.xml")?;
// Extract all ST code blocks from POUs
for (pou_name, st_code) in extract_all_st_from_xml(&xml) {
// Parse ST code into AST
let statements = parse_st(&st_code)?;
println!("{}: {} statements", pou_name, statements.len());
}
PLCopen TC6 is an XML-based exchange format defined by the PLCopen organization for transferring PLC programs between different development environments.
This parser handles:
iec61131MIT