a rust wrapper of libplctag, with rust style APIs and useful extensions.
Add plctag-core
to your Cargo.toml
toml
[dependencies]
plctag-core= "0.3"
```rust use plctagcore::{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&elemcount=1&elem_size=16";// YOUR TAG DEFINITION let tag = RawTag::new(path, timeout).unwrap();
//read tag let status = tag.read(timeout); assert!(status.isok()); let offset = 0; let value:u16 = tag.getvalue(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!"); ```
please take a look at examples
Please refer to How to build to setup build environment.
MIT