这里以博派智能的ETH_GAS系列网口运动控制卡为例说明,该运动控制卡有2-16路步进/伺服控制接口,每路接口都有编码器/脉冲/方向/报警/使能等信号,支持自动回零/点位/直线/圆弧插补/PT运动等功能,支持高速硬件捕获、比较输出/飞拍、PSO。高端款PMC系列甚至支持RTCP五轴联动,Delta/Scara/6轴机器人算法。

- 建立工程并添加动态库
- 建立工程

- 添加动态库
在添加库之前我们要在项目属性里知道平台是多少位才可添加对应的动态库,否则会导致生成失败,我们这里看到我的平台是X86 依然是使用32位动态库
然后就可以添加我们提供的对应动态库到工程文件下的bin-Debug文件下
这里可以看到我们已经在外部添加进去
工程里添加动态库,在解决方案资源管理器中添加引用,找到刚才外部添加的路径,这里只需添加MultiCardCS.dll以及MultiCardCLR.dll即可
添加相关代码
- 添加类
打开查看代码,在内部调用下图红框标注的四个类(注:text只是文件名称 实际应用自己的命名)

- 声明对象
在局部类前面声明控制卡对象,多个板卡可声明多个对象

- 设计器页面布局
打开视图设计器-在工具箱中拖动button控件并编辑
将控件拖动到右边的设计器中
找到属性面板的Text可编辑文本内容

三、"打开板卡"代码并测试
1.双击控件"打开板卡"自动跳转到代码设计中,调用Open()以网口类型来打开板卡
代码如下:
private void button1_Click(object sender, EventArgs e)
{
int iRes = 0;
//GA_Open的4个参数依次是卡号、PC端IP地址、PC端口号、板卡IP地址、板卡端口号
//如注释部分,同时打开3个板卡代码如下
//注意板卡端端口号必须和PC端端口号保持一致
iRes = MultiCardCS_1.GA_Open(1, "192.168.0.200",60000,"192.168.0.1",60000);
//iRes = MultiCardCS_2.GA_Open(2, "192.168.0.200", 60001, "192.168.0.2", 60001);
//iRes = MultiCardCS_3.GA_Open(3, "192.168.0.200", 60002, "192.168.0.3", 60002);
if (iRes == 0)
{
MessageBox.Show("打开板卡成功!");
OpenFlag = 1;
}
else
{
MessageBox.Show("打开板卡失败!");
}
}
2.点击调试或者键盘的F5就可以看到设计的窗口弹出

确认电脑与板卡连接后单击"打开板卡",消息框提示打开成功,测试完成

#常见问题
- 提供的例程出现此问题:未能加载文件或程序集"MultiCardCLR.dll"或它的某一个依赖项。找不到指定模块(注:如例程未出现此问题则与补丁无关,需自查一下库的引用)
这是由于版本缺少一个补丁,联系客服或者在我们发给您的文件夹中找到补丁并安装

