#plc #modbus #ethernet #automation #hardware #extension #api-bindings

plctag-core

libplctag的Rust封装,提供Rust风格的API和实用扩展

8个版本

0.4.1 2023年2月19日
0.4.0 2023年1月14日
0.3.1 2022年9月27日
0.3.0 2022年2月25日
0.1.0 2021年9月14日

#27#modbus

每月23次下载
3 个crate中使用

MIT 许可协议

2MB
30K SLoC

C 27K SLoC // 0.2% comments Rust 1K SLoC // 0.1% comments C++ 741 SLoC // 0.3% comments Java 464 SLoC // 0.4% comments Python 401 SLoC // 0.4% comments Shell 305 SLoC // 0.1% comments Go 234 SLoC // 0.2% comments Pascal 116 SLoC // 0.7% comments

plctag-core

libplctag的Rust封装,提供Rust风格的API和实用扩展。

crates.io docs build license

使用方法

plctag-core添加到您的Cargo.toml中

[dependencies]
plctag-core= "0.4"

示例

读取/写入标签

use plctag_core::{Encode, Decode, RawTag, ValueExt};
let timeout = 100;//ms
let path="protocol=ab-eip&plc=controllogix&path=1,0&gateway=192.168.1.120&name=MyTag1&elem_count=1&elem_size=16";// YOUR TAG DEFINITION
let tag = RawTag::new(path, timeout).unwrap();

//read tag
let status = tag.read(timeout);
assert!(status.is_ok());
let offset = 0;
let value:u16 = tag.get_value(offset).unwrap();
println!("tag value: {}", value);

let value = value + 10;
tag.set_value(offset, value).unwrap();

//write tag
let status = tag.write(timeout);
assert!(status.is_ok());
println!("write done!");

更多示例

请参阅示例

构建

请参考如何构建以设置构建环境。

许可协议

MIT

依赖

~0–2MB
~41K SLoC