Crate plctag_core

Crate plctag_core 

Source
Expand description

§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

§License

MIT

Modules§

builder
builders for tag path and tag
ffi
reexports ffi Apis

Structs§

RawTag
wrapper of tag model based on libplctag

Enums§

Status
plc tag error code representations

Traits§

Decode
this trait abstracts tag value. you can use the trait to implement your UDT.
Encode
see Decode
ValueExt
generic value getter/setter

Type Aliases§

Result
plctag result