#plc #client #tags #db #melsec #mitsubishi #query-tag

bin+lib rs-melsec

用于与三菱PLC通信的Rust MELSEC通信库

1 个不稳定版本

0.1.0 2024年8月3日

#15#plc

Download history 114/week @ 2024-08-01 6/week @ 2024-08-08

每月下载 120 次

MIT 许可证

53KB
1K SLoC

rs-melsec

rs-melsec 是 MELSEC 通信协议的 Rust 实现,允许您与三菱PLC交互。受 pymcprotocolpymelsec 库的启发,rs-melsec 旨在提供更多功能和增强的灵活性,同时利用 Rust 编程语言的安全性和性能优势。

安装

rs-melsec 添加到您的 Cargo.toml

[dependencies]
rs-melsec = "0.1.0"

用法

use rs_melsec::client::Client;
use rs_melsec::db::DataType;
use rs_melsec::tag::QueryTag;
use std::env;

fn main() {
    let args: Vec<String> = env::args().collect();
    let host = args.get(1).expect("failed to get host");
    let default_port = 6000;
    let num_port = args
        .get(2)
        .and_then(|s| s.parse::<u16>().ok())
        .or(Some(default_port))
        .unwrap();

    let mut tags = Vec::new();
    tags.push(QueryTag {
        device: "M8304".to_string(),
        data_type: DataType::BIT,
    });
    let client = Client::new(host.to_string(), num_port, "iQ-R", true);
    let result = client.read(tags).expect("failed to read data");
    for tag in result {
        println!("{}", tag);
    }
}

运行 cargo run --bin host port

依赖关系

~2.3–3.5MB
~56K SLoC