跳转至

底层参数配置案例

底层参数配置

1.新建项目并附加函数库

(1)在VS2017菜单“文件”→“新建”→ “项目”,启动创建项目向导。

image1

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

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

    image4

函数库具体路径如下

image5

image6

  1. 复制【cnc_sdk】到项目目录。

image7

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

(将【{你的工程目录}\CncSdkDemo\CncSdkDemo\cnc_sdk\lib\x64】下的“CncApi.dll”和“CncApid.dll”复制到【{你的工程目录}\CncSdkDemo\CncSdkDemo\

image8

(5)进入项目的属性页面。

image9 在【VC++目录】选项中配置【包含目录】、【库目录】
image10 image11 image12 在【链接器】-【输入】中配置【附加依赖项】,需要用到CncApi.lib

image13 【确认】并【应用】
image14 2.编程

(1)【源文件】新建一个main.cpp
image15 image16 (2)查看函数手册,熟悉相关函数接口

image17 链接控制器

函数名 功能
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;
}
3. 编译

image18