底层参数配置案例
底层参数配置
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 | 连接控制器 |
setIniConfig¶
定义:WECONCNC_ERROR_E setIniConfig(int32_t nAxis, INI_CONFIG_FIELD eField, std::string &sParam);
WECONCNC_ERROR_E setIniConfig(int32_t nAxis, std::vector\<std::pair\ini_config_field, std::string="" style="box-sizing: inherit;">> &vecIniConfig);
说明:设置单个 /多个ini配置的值。
参数:【IN】int32_t nAxis,轴号
INI_CONFIG_FIELD eField,请参见INI_CONFIG_FIELD定义
std::string sParam,参数的值
std::vector\<std::pair\ini_config_field, std::string="" style="box-sizing: inherit;">> vecIniConfig 多组期望设置的参数与对应的值。
返回值:WECONCNC_ERROR_E,请参见WECONCNC_ERROR_E定义
底层参数设置例程
#include <iostream>
#include <windows.h>
#include "CncApi.h"
using namespace weconcnc;
int main()
{
weconcnc::CCommApi *pComm = new weconcnc::CCommApi();
weconcnc::CProxyEntry *pEntry = new weconcnc::CProxyEntry(pComm);
weconcnc::CProxyMotion *pMotion = pEntry->getProxyMotion();
weconcnc::CProxyIO *pIo = pEntry->getProxyIO();
weconcnc::CProxySys *pSys = pEntry->getProxySys();
weconcnc::WECONCNC_ERROR_E ret = weconcnc::WECONCNC_ERROR_SUCCESS;
std::string sIp = "192.168.54.98";
ret = pComm->connect(sIp, 9995);
if (weconcnc::WECONCNC_ERROR_SUCCESS != ret) {
std::cout << "connect failed!" << std::endl;
return -1;
}
WECONCNC_ERROR_E ret = WECONCNC_ERROR_SUCCESS;
int32_t nAxis = 0;
INI_CONFIG_FIELD eField = INI_MAX_VEL;
std::string sParam = 2000;
ret = pSys->setIniConfig(nAxis, eField, sParam);
if (WECONCNC_ERROR_SUCCESS != ret) {
std::cout << "setting ini config failed!" << std::endl;
return -1;
}
std::vector<std::pair<INI_CONFIG_FIELD, std::string>> vecIniConfig;
INI_CONFIG_FIELD eField = INI_MAX_VEL;
std::string sParam = 4000;
vecIniConfig.push_back(std::make_pair<weconcnc::INI_CONFIG_FIELD, std::string>(eField, sParam));
INI_CONFIG_FIELD eField = INI_MAX_ACC;
std::string sParam = 4000;
vecIniConfig.push_back(std::make_pair<weconcnc::INI_CONFIG_FIELD, std::string>(eField, sParam));
ret = pSys->setIniConfig(nAxis, vecIniConfig);
if (WECONCNC_ERROR_SUCCESS != ret) {
std::cout << "setting multi ini config failed!" << std::endl;
return -1;
}
return 0;
}
