Skip to content

Profiles

PLC profiles select one embedded device-range catalog. They are useful when you build UI validation, address pickers, or model-specific checks before talking to the PLC. The library accepts only the exact canonical strings in this table.

Supported PLC profiles

Canonical profile Human label Runtime model
keyence:kv-nano KV-NANO KV-N24nn, KV-N40nn, KV-N60nn, KV-NC32T
keyence:kv-nano-xym KV-NANO(XYM) KV-NANO family with XYM aliases.
keyence:kv-3000 KV-3000 KV-3000
keyence:kv-3000-xym KV-3000(XYM) KV-3000 with XYM aliases.
keyence:kv-5000 KV-5000 KV-5000, KV-5500
keyence:kv-5000-xym KV-5000(XYM) KV-5000 family with XYM aliases.
keyence:kv-7000 KV-7000 KV-7000, KV-7300, KV-7500
keyence:kv-7000-xym KV-7000(XYM) KV-7000 family with XYM aliases.
keyence:kv-8000 KV-8000 KV-8000, KV-8000A
keyence:kv-8000-xym KV-8000(XYM) KV-8000 family with XYM aliases.
keyence:kv-x500 KV-X500 KV-X310, KV-X500, KV-X520, KV-X530, KV-X550
keyence:kv-x500-xym KV-X500(XYM) KV-X500 family with XYM aliases.

How to select

use plc_comm_hostlink::device_range_catalog_for_plc_profile;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let catalog = device_range_catalog_for_plc_profile("keyence:kv-7000")?;
    println!("{}", catalog.plc_profile);
    Ok(())
}

Connection setup is separate from catalog selection:

use plc_comm_hostlink::{HostLinkClient, HostLinkConnectionOptions};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut options = HostLinkConnectionOptions::new("192.168.250.100");
    options.port = 8501;
    let client = HostLinkClient::connect(options).await?;

    let dm0 = client.read_typed("DM0", "U").await?;
    println!("{:?}", dm0);

    client.close().await?;
    Ok(())
}

Model-specific cautions

Scope Caution
KV-NANO EM, FM, ZF, and AT are unsupported in the embedded catalog.
KV-3000 AT is readable, but write helpers reject AT because it is not in the Host Link write-device table.
KV-5000 AT is readable, but write helpers reject AT because it is not in the Host Link write-device table.
KV-7000 Timer/counter preset writes are supported by the KV-7000/8000 class only; use care when changing preset values.
KV-8000 Timer/counter preset writes are supported by the KV-7000/8000 class only; use care when changing preset values.
KV-X500 VM, VB, CTH, CTC, and AT are unsupported in the embedded catalog.
Any -xym profile X and Y use decimal bank digits plus one hexadecimal bit digit, such as X10F.