多圈绝对值模块配置案例¶
1.新建项目并附加函数库
(1)在VS2017菜单“文件”→“新建”→ “项目”,启动创建项目向导。

-
选择开发语言为“Visual C++”和程序类型“空项目”。

-
找到厂家提供的SDK库,路径如下(64位release库为例)。


函数库具体路径如下


- 复制【cnc_sdk】到项目目录。

为了保证可以在VS调试器中运行,将相关平台的dll库复制到代码目录(如,项目名称为CncSdkDemo,则放在【{你的工程目录}\CncSdkDemo\CncSdkDemo】目录下),这里以64位平台为例
(将【{你的工程目录}\CncSdkDemo\CncSdkDemo\cnc_sdk\lib\x64】下的“CncApi.dll”和“CncApid.dll”复制到【{你的工程目录}\CncSdkDemo\CncSdkDemo\

(5)进入项目的属性页面。
在【VC++目录】选项中配置【包含目录】、【库目录】
在【链接器】-【输入】中配置【附加依赖项】,需要用到CncApi.lib
【确认】并【应用】
2.编程
(1)【源文件】新建一个main.cpp
(2)查看函数手册,熟悉相关函数接口
连接控制器接口:
| 函数名 | 功能 |
| connect | 连接控制器 |
配置相关接口函数:
| 函数名 | 功能 |
| getAbsConfig | 获取指定/全部的多圈绝对值设置数据 |
| setAbsConfig | 设置单个 /多个多圈绝对值配置的值 |
3.多圈绝对值设置操作¶
- 连接控制器
- 单个多圈绝对值配置方法:
void setAbsConfig() { weconcnc::CProxySys *pSys = weconcnc::CProxySys::getInstance(commApi); weconcnc::ABS_CONFIG_FIELD eField = weconcnc::ABS_SCALE; std::string sParam = ""; weconcnc::WECONCNC_ERROR_E ret = pSys->getAbsConfig(0, eField, sParam); if(weconcnc::WECONCNC_ERROR_SUCCESS != ret) { std::cout << "get abs config failed!" << std::endl; } else { std::cout << "abs config value is " << sParam << std::endl; } sParam = "0.00012"; ret = pSys->setAbsConfig(0,eField,sParam); if (weconcnc::WECONCNC_ERROR_SUCCESS != ret) { std::cout << "set abs config failed!" << std::endl; } else { std::cout << "set abs config success!" << std::endl; } } - 多个多圈绝对值配置:
void setAbsConfigs() { weconcnc::CProxySys *pSys = weconcnc::CProxySys::getInstance(commApi); weconcnc::WECONCNC_ERROR_E ret = pSys->setAbsConfig(0, vecAbsConfig); if(ret != weconcnc::WECONCNC_ERROR_SUCCESS) { std::cout << "set abs config failed!" << std::endl; } else { std::cout << "set abs config success!" << std::endl; } weconcnc::CNC_ABS_CONFIG_T stCfg; ret = pSys->getAbsConfig(0, stCfg); if(ret != weconcnc::WECONCNC_ERROR_SUCCESS) { std::cout << "get abs config failed!" << std::endl; } else { std::cout << "Servo " << stCfg.nServo << " Scale=" << stCfg.dScale << " Lead=" << stCfg.dLead << " RR=" << stCfg.dRRNum << "/" << stCfg.dRRDen << " CW=" << stCfg.bCw << std::endl; } }