plctag-core

Crates.ioplctag-core
lib.rsplctag-core
version0.4.1
sourcesrc
created_at2021-09-14 07:17:39.600581
updated_at2023-02-19 02:07:14.590461
descriptiona rust wrapper of [libplctag](https://github.com/libplctag/libplctag), with rust style APIs and useful extensions
homepagehttps://github.com/Joylei/plctag-rs
repositoryhttps://github.com/Joylei/plctag-rs.git
max_upload_size
id451076
size55,639
joylei (Joylei)

documentation

https://docs.rs/crate/plctag/

README

plctag-core

a rust wrapper of libplctag, with rust style APIs and useful extensions.

crates.io docs build license

How to use

Add plctag-core to your Cargo.toml

[dependencies]
plctag-core= "0.4"

Examples

read/write tag

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!");

More examples

please take a look at examples

Build

Please refer to How to build to setup build environment.

License

MIT

Commit count: 195

cargo fmt