XScript 手册 · Chapter 14

DRIVER — 项目驱动

DRIVER 是在脚本中访问项目所注册的驱动 DLL 对象的关键字。以 DRIVER["驱动名称"] 形式获取该驱动实例并调用其方法。

旧版本中固定的 MOTION 插补对象(多轴直线/圆弧插补)已被移除。设备特有的插补、通信和特殊控制现在以项目驱动 DLL 实现,并通过 DRIVER["…"] 调用。因此 DRIVER 提供的方法并不固定,取决于所连接的驱动 DLL 定义的方法。

什么是项目驱动

项目驱动是包含继承 XDriverBase 抽象类的类的 .NET DLL。QMachineStudio 加载已注册的 DLL,查找继承 XDriverBase 的类,创建实例并以 DRIVER["名称"] 公开。该类的成员也会显示在脚本编辑器的自动完成中。

基类 (XDriverBase)

所有项目驱动共有的成员。其余方法由各驱动 DLL 自行定义。

成员类型说明
DriverNamestring驱动名称(注册的名称)
IsInitializedbool是否完成初始化
Initialize()bool初始化驱动。成功时返回 true
Close()void关闭驱动并释放资源

注册驱动

打开 Solution ExplorerProject 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

相关条目