XScript 手册 · Chapter 14
DRIVER — 项目驱动
DRIVER 是在脚本中访问项目所注册的驱动 DLL 对象的关键字。以 DRIVER["驱动名称"] 形式获取该驱动实例并调用其方法。
旧版本中固定的
MOTION插补对象(多轴直线/圆弧插补)已被移除。设备特有的插补、通信和特殊控制现在以项目驱动 DLL 实现,并通过DRIVER["…"]调用。因此DRIVER提供的方法并不固定,取决于所连接的驱动 DLL 定义的方法。
什么是项目驱动
项目驱动是包含继承 XDriverBase 抽象类的类的 .NET DLL。QMachineStudio 加载已注册的 DLL,查找继承 XDriverBase 的类,创建实例并以 DRIVER["名称"] 公开。该类的成员也会显示在脚本编辑器的自动完成中。
基类 (XDriverBase)
所有项目驱动共有的成员。其余方法由各驱动 DLL 自行定义。
| 成员 | 类型 | 说明 |
|---|---|---|
DriverName | string | 驱动名称(注册的名称) |
IsInitialized | bool | 是否完成初始化 |
Initialize() | bool | 初始化驱动。成功时返回 true |
Close() | void | 关闭驱动并释放资源 |
注册驱动
打开 Solution Explorer 的 Project Driver Editor 节点,用 Add Driver 注册驱动名称和 DLL。此处设置的名称即成为脚本中的 DRIVER["名称"] 键。
在脚本中调用
// 获取已注册的驱动 "MyBoard"
if (DRIVER["MyBoard"].IsInitialized == false)
{
if (DRIVER["MyBoard"].Initialize() == false)
{
return;
}
}
// 调用驱动 DLL 定义的方法(方法名称·签名取决于驱动实现)
DRIVER["MyBoard"].DoSomething(100, true);
// 关闭
DRIVER["MyBoard"].Close();- 方法名称、参数和返回类型遵循驱动 DLL 实现。上面的
DoSomething仅为示例,实际方法因驱动而异。 - 以未注册的名称访问时,会因找不到驱动而发生运行时错误。使用前请确认是否已注册以及
IsInitialized是否为真。
硬件板卡后端
I/O · 电机 · 通信 · 视觉板卡也可以用项目驱动实现后端。此时 MOTOR · Digital I/O · Communication 等标准对象会在内部使用该驱动,因此脚本通常通过标准对象控制硬件,仅在直接调用驱动特有功能时使用 DRIVER。