snap7-rs
这是 snap7 C++ 库的 Rust 绑定,通过静态链接到 snap7,无需额外依赖。
警告:本库未经过任何安全审查,使用后果自负。
客户端示例
use S7Client;
use *;
use *;
// 创建 S7 客户端
let client = create;
// 连接到 PLC
if let Err = client.connect_to else
服务端示例
use ;
use *;
use *;
// 创建 S7 服务端
let server = create;
// 创建共享内存区
let mut db_buff = ;
// 添加共享区块
assert!;
// 过滤读和写
assert!;
// 设置事件回调
assert!;
// 启动服务
if let Err = server.start
// 处理逻辑
//loop {
// ......
//}
// 关闭服务
assert!;
被动伙伴示例
use S7Partner;
use *;
use *;
// 创建 S7 被动伙伴
let partner = create;
// 设置接收回调
partner
.set_recv_callback
.unwrap;
// 启动伙伴服务
if let Err = partner.start_to
// 业务逻辑
//loop {
// ...
//}
// 停止服务
partner.stop.unwrap;
主动伙伴示例
use S7Partner;
use *;
use *;
// 创建 S7 主动伙伴
let partner = create;
// 设置发送回调
partner
.set_send_callback
.unwrap;
// 启动伙伴服务
if let Err = partner.start_to
let mut buff = ;
if let Err = partner.b_send else
let mut buff = ;
if let Err = partner.as_b_send else
dbg!;
// 业务逻辑
//loop {
// ...
//}
// 停止服务
partner.stop.unwrap;
License
本项目源码和文档采用木兰宽松许可证 (MulanPSL-2.0)。