ACS系列(2)QT Demo for ACS 仿真器
  JGshXbSBQZv2 2023年11月12日 35 0
Qt
  1. ACS仿真器

ACS系列(2)QT Demo for ACS 仿真器_QT

  1. Demo程序1
QT = core

CONFIG += c++17 cmdline

# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

SOURCES += \
        main.cpp

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/SDK/ -lACSCL_x64

INCLUDEPATH += $$PWD/SDK
DEPENDPATH += $$PWD/SDK

LIBS +=-L$$PWD/SDK -lACSCL_x64

win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/SDK/ACSCL_x64.lib

#include <conio.h>
#include <stdio.h>
#include "windows.h"


//这里是安装acs套件程序存放acsc.h的路径
//"D:\\Program Files (x86)\\ACS Motion Control\\SPiiPlus ADK Suite v3.13.01\\ACSC\\C_CPP\\acsc.h"
//比如把这个头文件与库文件ACSCL_x64.LIB,ACSCL_x86.LIB都拷贝到本工程的一个新建文件夹SDK下面
#include "SDK\acsc.h"
HANDLE hComm;// communication handle

void ErrorsHandler(const char* ErrorMessage, BOOL fCloseComm)
{
    printf (ErrorMessage);
    printf ("press any key to exit.\n");
    if (fCloseComm) acsc_CloseComm(hComm);
    {
    _getch();
    };
}


int main(int argc, char *argv[])
{
    double FPOS;
    // ACSPL+ program which we download to controller's buffer
    // The program performs a reciprocated motion from position 0 to 4000
    // and then back
    //char* prog = "enable 0\r\nptp 0, 4000 \r\nptp 0, 0 \r\n";
    char* prog = "enable 0\r\nSt: \r\nptp 0, 4000 \r\nptp 0, 0 \r\ngoto St \r\n";

    printf ("ACS Motion Control Copyright (C) 2011. All Rights \
    Reserved.\n");
    printf ("Application executes reciprocated point-to-point motion\n");
    /*****************************************************************/
    // Open communication with simulator
    printf ("Application opens communication with the simulator, \
    downloads\n");
    printf ("program to controller's and executes it using SPiiPlus C Library \
    functions\n\n");
    printf ("Wait for opening of communication with the simulator...\n");
    hComm = acsc_OpenCommSimulator();
    if (hComm == ACSC_INVALID)
    {
    ErrorsHandler("error while opening communication.\n", FALSE);
    return -1;
    }
    printf ("Communication with the simulator was established \
    successfully!\n");
    /*****************************************************************/
    /********************************************************************
    // Example of opening communication with the controller via COM1
    printf ("Application opens communication with the controller via \
    COM1, downloads\n");
    printf ("program to the controller and executes it using SPiiPlus C \
    Library functions\n\n");
    printf ("Wait for opening of communication with the \
    controller...\n");
    hComm = acsc_OpenCommSerial(1, 115200);
    if (hComm == ACSC_INVALID)
    {
    ErrorsHandler("error while opening communication.\n", FALSE);
    return -1;
    }
    printf ("Communication with the controller was established \
    successfully!\n");
    /*****************************************************************/
    /********************************************************************
    // Example of opening communication with the controller via COM1
    printf ("Application opens communication with the controller via \
    COM1, downloads\n");
    printf ("program to the controller and executes it using SPiiPlus C \
    Library functions\n\n");
    printf ("Wait for opening of communication with the \
    controller...\n");
    hComm = acsc_OpenCommSerial(1, 115200);
    if (hComm == ACSC_INVALID)
    {
    ErrorsHandler("error while opening communication.\n", FALSE);
    return -1;
    }
    printf ("Communication with the controller was established \
    successfully!\n");
    /*******************************************************************/
    /********************************************************************
    // Example of opening communication with controller via Ethernet
    printf ("Application opens communication with the controller via \
    Ethernet, downloads\n");
    printf ("program to the controller and executes it using SPiiPlus C \
    Library functions\n\n");
    printf ("Wait for opening of communication with the \
    controller...\n");
    // 10.0.0.100 - default IP address of the controller
    // for the point-to-point connection to the controller
    hComm = acsc_OpenCommEthernet("10.0.0.100", ACSC_SOCKET_DGRAM_PORT);
    // for the connection to the controller via local network or Internet
    //hComm = acsc_OpenCommEthernet("10.0.0.100", ACSC_SOCKET_STREAM_PORT);
    if (hComm == ACSC_INVALID)
    {
    ErrorsHandler("error while opening communication.\n", FALSE);
    return -1;
    }
    printf ("Communication with the controller was established \
    successfully!\n");
    /*******************************************************************/
    /********************************************************************
    // Open communication with the controller via PCI bus
    // (for the SPiiPlus PCI-8 series only)
    printf ("Application opens communication with the controller and\n");
    printf ("sends some commands to the controller using SPiiPlus C Library
    \
    functions\n\n");
    printf ("Wait for opening of communication with the \
    controller...\n");
    hComm = acsc_OpenCommPCI(ACSC_NONE);
    if (hComm == ACSC_INVALID)
    {
    ErrorsHandler("error while opening communication.\n", FALSE);
    return -1;
    }
    printf ("Communication with the controller was established \
    successfully!\n");
    /*****************************************************************/
    printf ("Press any key to run motion.\n");
    printf ("Then press any key to exit.\n");
    _getch();
    // Stop a program in the buffer 0
    if (!acsc_StopBuffer(hComm, 0, NULL))
    {
        ErrorsHandler("stop program error.\n", TRUE);
        return -1;
    }
    // Download the new program to the controller's buffer
    if (!acsc_LoadBuffer(hComm, 0, prog, strlen(prog), NULL))
    {
        ErrorsHandler("downloading program error.\n", TRUE);
        return -1;
    }
    printf ("Program downloaded\n");
    // Execute the program in the buffer 0
    if (!acsc_RunBuffer(hComm, 0, NULL, NULL))
    {
        ErrorsHandler("run program error.\n", TRUE);
        return -1;
    }
    printf ("Motion is in progress...\n");
    printf ("Feedback position:\n");
    while (!_kbhit())
    {
        // read the feedback position of axis 0
        if (acsc_GetFPosition(hComm, ACSC_AXIS_0, &FPOS, NULL))
        {
            printf ("%f\r", FPOS);
        }
        Sleep(500);
    }
    // Stop the program in the buffer 0
    if (!acsc_StopBuffer(hComm, 0, NULL))
    {
        ErrorsHandler("stop program error.\n", TRUE);
        return -1;
    }
    // Close the communication
    acsc_CloseComm(hComm);
    return 0;
}

  1. Demo程序2
QT = core

CONFIG += c++17 cmdline

# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

SOURCES += \
        main.cpp

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/SDK/ -lACSCL_x64

INCLUDEPATH += $$PWD/SDK
DEPENDPATH += $$PWD/SDK

LIBS +=-L$$PWD/SDK -lACSCL_x64

win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/SDK/ACSCL_x64.lib
#include <conio.h>
#include <stdio.h>
#include "windows.h"


//这里是安装acs套件程序存放acsc.h的路径
//"D:\\Program Files (x86)\\ACS Motion Control\\SPiiPlus ADK Suite v3.13.01\\ACSC\\C_CPP\\acsc.h"
//比如把这个头文件与库文件ACSCL_x64.LIB,ACSCL_x86.LIB都拷贝到本工程的一个新建文件夹SDK下面
#include "SDK\acsc.h"
HANDLE hComm;// communication handle

void ErrorsHandler(const char* ErrorMessage, BOOL fCloseComm)
{
    printf (ErrorMessage);
    printf ("press any key to exit.\n");
    if (fCloseComm) acsc_CloseComm(hComm);
    {
    _getch();
    };
}

int main(int argc, char *argv[])
{
    double FPOS;
    int State;
    printf ("ACS Motion Control. Copyright (C) 2011. All Rights \
Reserved.\n");
        printf ("Application executes reciprocated point-to-point motion\n");
    /*****************************************************************/
    // Open communication with the simulator
    printf ("Application opens communication with the simulator and\n");
    printf ("sends some commands to the simulator using SPiiPlus C Library \
functions\n\n");
    printf ("Wait for opening of communication with the simulator...\n");
    hComm = acsc_OpenCommSimulator();
    if (hComm == ACSC_INVALID)
    {
        ErrorsHandler("error while opening communication.\n", FALSE);
        return -1;
    }
    printf ("Communication with the simulator was established \
    successfully!\n");
    /*****************************************************************/
    /******************************************************************
    // Example of opening communication with the controller via COM1
    printf ("Application opens communication with the controller via \
    serial link and\n");
    printf ("sends some commands to the controller using SPiiPlus C Library
    \functions\n\n");
    printf ("Wait for opening of communication with the \
    controller...\n");
    hComm = acsc_OpenCommSerial(1, 115200);
    if (hComm == ACSC_INVALID)
    {
        ErrorsHandler("error while opening communication.\n", FALSE);
        return -1;
    }
    printf ("Communication with the controller was established \
    successfully!\n");
    /*****************************************************************/
    /******************************************************************
    // Example of opening communication with the controller via Ethernet
    printf ("Application opens communication with the controller via \
    ethernet and\n");
    printf ("sends some commands to the controller using SPiiPlus C Library
    \functions\n\n");
    printf ("Wait for opening of communication with the \
    controller...\n");
        // 10.0.0.100 - default IP address of the controller
    // for the point to point connection to the controller
    hComm = acsc_OpenCommEthernet("10.0.0.100", ACSC_SOCKET_DGRAM_PORT);
    // for the connection to the controller via local network or Internet
//	hComm = acsc_OpenCommEthernet("10.0.0.100", ACSC_SOCKET_STREAM_PORT);
    if (hComm == ACSC_INVALID)
    {
        ErrorsHandler("error while opening communication.\n", FALSE);
        return -1;
    }
    printf ("Communication with the controller was established \
    successfully!\n");
    /*******************************************************************/
    /********************************************************************
    // Open communication with the controller via PCI bus
    // (for the SPiiPlus PCI-8 series only)
    printf ("Application opens communication with the controller and\n");
    printf ("sends some commands to the controller using SPiiPlus C Library \
functions\n\n");
    printf ("Wait for opening of communication with the \
    controller...\n");
    hComm = acsc_OpenCommPCI(ACSC_NONE);
    if (hComm == ACSC_INVALID)
    {
        ErrorsHandler("error while opening communication.\n", FALSE);
        return -1;
    }
    printf ("Communication with the controller was established \
    successfully!\n");
    /*****************************************************************/
    printf ("Press any key to run motion.\n");
        printf ("Then press any key to exit.\n");
    _getch();
    // Enable the motor 0
    if (!acsc_Enable(hComm, ACSC_AXIS_0, NULL))
    {
        ErrorsHandler("transaction error.\n", TRUE);
        return -1;
    }
        printf ("Motor enabled\n");
while (!_kbhit())
    {
        // execute point-to-point motion to position 4000
        if (!acsc_ToPoint(hComm, 0, ACSC_AXIS_0, 4000, NULL))
        {
            ErrorsHandler("PTP motion error.\n", TRUE);
            return -1;
        }
            printf ("Moving to the position 4000...\n");
        // execute backward point-to-point motion to position 0
        if (!acsc_ToPoint(hComm, 0, ACSC_AXIS_0, 0, NULL))
        {
            ErrorsHandler("PTP motion error.\n", TRUE);
            return -1;
        }
            printf ("Moving back to the position 0...\n");
        // Check if both of motions finished
        do
        {
            if (acsc_GetFPosition(hComm, ACSC_AXIS_0, &FPOS, NULL))
            {
                printf ("%f\r", FPOS);
            }
            // Read the motor 0 state. Fifth bit shows motion
            // process
            if (!acsc_GetMotorState(hComm, ACSC_AXIS_0, &State,NULL))
            {
            ErrorsHandler("get motor state error.\n", TRUE);
                return -1;
            }
            Sleep(500);
        } while (State & ACSC_MST_MOVE);
    }
    acsc_CloseComm(hComm);
    return 0;
}

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月12日 0

暂无评论

推荐阅读
  lA9hNJ8xYnRP   2023年12月12日   30   0   0 Qt
  lA9hNJ8xYnRP   2023年12月06日   32   0   0 Qt
  nIBmcPWZzwbL   2023年11月13日   32   0   0 Qt
  nIBmcPWZzwbL   2023年11月13日   44   0   0 Qt
  lA9hNJ8xYnRP   2023年12月06日   35   0   0 构造函数Qt
  lA9hNJ8xYnRP   2023年12月07日   32   0   0 Qt
  lA9hNJ8xYnRP   2023年12月11日   28   0   0 Qt
  lA9hNJ8xYnRP   2023年11月25日   38   0   0 Qt数据
  lA9hNJ8xYnRP   2023年11月30日   32   0   0 Qt表视图
  nIBmcPWZzwbL   2023年11月13日   30   0   0 Qt
  nIBmcPWZzwbL   2023年11月13日   35   0   0 Qt
  nIBmcPWZzwbL   2023年11月13日   47   0   0 Qt
JGshXbSBQZv2