菜单

AxisCard-上位机编程手册

概述

下表概述了产品各个所需组件:

产品组件 版本 描述说明
API函数编程库Sg.Laser.Framework.SgmcSDK V1.1 编程使用
MotionSDK_App.compiled-library 1.0.7.13 下位机核心配置库

安装卸载

一、安装要求

1、操作系统

windows 10或 windows 11 操作系统,推荐 64 位操作系统。

2、开发平台

建议Visual Studio 2022

3、内存

4GB及以上

4、磁盘空间

12GB以上

5、防火墙

建议关闭

二、安装过程

1、API函数库安装步骤

(1)打开VSVisual Studio 2022,创建新项目,选择Windows窗体应用(.NET Framework),点击“下一步”进行创建。

(2)右键解决方案中的“引用”,选择“添加引用”,点击浏览,选择API函数库:Sg.Laser.Framework.SgmcSDK.dll,进行添加。

  1. 如此便完成了API函数库的配置。

三、更新安装

API函数库更新,将旧版本的库文件替换为新的,重新配置即可
下位机库更新,下位机库存储重新安装最新库,进行配置即可

四、卸载过程

右键解决方案中的引用,找到API函数库,右键选择“移除”即可。

技术说明

一、快速启动

(一)本例软、硬件配置

硬件:1.工智机2.显示屏(用笔记本需要准备网线)3.键鼠4.伺服 软件:1.Visual Studio 20222. API库文件3.下位机工程

(二)本例实验操作步骤

使用笔记本测试案例:

  1. 按照上述安装说明,配置好API函数库与工智机下位机工程。

  2. 准备一个网线,连接笔记本与工智机的LAN1口。

  1. 打开配置好的下位机工程,连接工智机并登录。

  2. 如准备了伺服,将工智机EtherCat接口与伺服进行连接;如果使用虚轴,可以用下位机工程观察对应虚轴的状态,本案例使用虚轴。

控制实验步骤

(1)打开添加好API函数库的Visual Studio软件

(2)在Form1窗体上添加工具“Button”。

(3)点击属性,将Text 改为:伺服使能,将(Name)改为“btn_AxisPower”。

(4)回到From1界面,鼠标左键双击“伺服使能”按钮,打开程序,进入点击事件编辑。输入API函数代码:SmcEntity.Instance.Smc_Axis_Enable(0);

(5)SmcEntity.Instance.Smc_Axis_Enable(0)中的“0”代表0轴,整个指令代表给0轴进行上使能操作。

(6)回到主界面,按照上述添加“伺服使能”按钮操作,再添加“连接工智机”按钮。

(7)双击按钮,进入点击事件编辑,写入API函数:

SmcEntity.Instance.Smc_Open("192.168.1.200",5000); 此函数作用是通过IP与Port与工智机进行通讯连接。

  1. 点击启动,打开软件,左键单击按钮“连接工智机”,再单击伺服按钮。
  1. 完成后,观察虚轴或伺服实轴状态,可以发现已变为使能状态。

(三)实验注意点

若在使用产品过程中遇到问题,可以参考此处。

1、点击连接,连接不上工智机

解决方法:

检测IP端口号是否设置正确:

工智机上运行软件,IP:192.168.3.1,Port:5000

电脑上运行软件,IP:192.168.1.200,Port:5000

2、IP设置正确仍连不上

解决方法:

(1)检查API下位机核心库文件是否安装

(2)检测工智机是否连接上

(3)下位机工程是否配置完成并登录下载到工智机中

3、点击软件按钮报错

检查API库文件是否引用。

二、示例

此产品的示例代码和配置获取链接:https://help.sinsegye.com.cn/。在这里,您可以选择克隆存储库或下载包含示例的ZlP文件。

存在以下示例:

名称 版本 描述
Sg.Laser.Framework.SgmcSDK.dll V1.0.0.4 API函数库文件
MotionSDK_App.compiled-library 1.0.7.13 下位机核心配置库
下位机模版工程 18.40 编程好的下位机工程案例

功能介绍

一、控制器初始化

在操作运动控制器之前,必须调用函数 Smc_Init 为运动控制器分配资源。 同样,当程序结束对运动控制器的操作时,必须调用函数 Smc_Close 释放运动控 制器所占用的 PC 系统资源,使得所占资源可被其它设备使用。

相关函数:

名称 功能 参考
Smc_Open 控制器连接初始化函数 3.1 节
Smc_Close 控制器关闭函数

注意:连接控制器之前都需要对控制器的初始化,连接方式为网口。

例程 1:假设控制器 IP 为“192.168.3.1 ”端口号为“5000”,使用UDP 通讯 方式连接。

Smc_Open(“192.168.3.1 ”, 5000);

例程 2:断开连接。

Smc_Close();

二、运动功能

1.参数设置

控制器在执行运动控制指令时,需设置轴的速度、加速度、减速度、加加速 度等参数。

相关函数:

名称 功能 参考
Smc_Set_MoveSpeed 设置单轴运动速度 3.2 节
Smc_Get_MoveSpeed 读取单轴运动速度
Smc_Set_JogSpeed 设置单轴 Jog 运动速度
Smc_Get_JogSpeed 读取单轴 Jog 运动速度

例程 1:设置零号轴 Move 运动的速度为 10mm/s,速度为 100mm/s^2,减速度为 100mm/s^2,加加速度为 1000mm/s^3:

Smc_Set_MoveSpeed(0,10,100,100,1000);

例程 2:读取零号轴 Move 运动的速度 vel,加速度 acc,减速度 dec,加加速度 jerk:

Smc_Get_MoveSpeed(0, ref double vel, ref double acc, ref double dec, ref double jerk);

例程 3:设置零号轴 Jog 运动的速度为 10mm/s,速度为 100mm/s^2,减速度为

100mm/s^2,加加速度为 1000mm/s^3:Smc_Set_JogSpeed(0,10,100,100,1000);

例程 4:读取零号轴 Jog 运动的速度 vel,加速度 acc,减速度 dec,加加速度 jerk:

Smc_Get_JogSpeed(0, ref double vel, ref double acc, ref double dec, ref double jerk);

2.点位运动

点位运动包含 Jog 运动和位置运动。

(1) Jog 运动是指:Jog 运动,就是按住按键,电机一直走,弹起按键电机停止。

在 Jog 运动模式下,各轴可以独立设置目标速度、加速度、减速度、加加速 度等运动参数,能够独立运动或停止。

相关函数:

名称 功能 参考
Smc_MoveJog Jog 运动 3.3 节

例程 1:零号轴正向 Jog 运动。

Smc_MoveJog(0, Forward); 例程 2:零号轴负向 Jog 运动:

Smc_MoveJog(0, Backward);

(2) 位置运动包含相对位置运动和绝对位置运动。

相对位置运动:使轴从当前位置开始以设定的速度基础上移动一个相对距离 后准确地停止。

相关函数:

名称 功能 参考
Smc_MoveRelative 相对位置运动 3.3 节

例程:使零号轴以设定的速度移动相对位置距离 10mm:

Smc_MoveRelative(0, 10);

绝对位置运动:使轴从当前位置开始以设定的速度基础上移动绝对位置距离 后准确地停止。

相关函数:

名称 功能 参考
Smc_MoveAbsolute 绝对位置运动 3.3 节

例程:使零号轴以设定的速度移动绝对位置距离 10mm:

Smc_MoveRelative(0, 10);

3.回原点运动

相关函数:

名称 功能 参考
Smc_GetHomingParameter 获取回零参数 3.4 节
Smc_SetHomingParameter 设置回零参数 3.4 节

例程 1:获取零号轴回零参数。

Smc_GetHomingParameter(0, ref Sg_HomingParameter parameter) ; 例程 2:设置零号轴回零参数。

Smc_SetHomingParameter(0, Sg_HomingParameter parameter)

名称 参数 参考
Sg_HomingParameter UsingHoming 是否使用 Homing 回零模式 3.4 节
fHomePosition 原点位置
fVelocitySlow 慢速
fVelocityFast 快速
fAcceleration 加速度
fDeceleration 减速度
fJerk 加加速度
nHomingRefSwitch 原点端口号
nDirection 回零方向
nHomingMode 回零模式

例程:使零号轴回原点运行。

Smc_Home_Move(0);

相关函数:

名称 功能 参考
Smc_Get_Home_Result 获取回原点运动状态 3.4 节

例程:获取零号轴回原点运动状态。

Smc_Get_Home_Result(0,ref state);

三、通用IO功能

1.通用IO控制

用户可以使用控制器上的数字 I/O 口用于检测开关信号、传感器信号等输入 信号,或者控制继电器、电磁阀等输出设备。

控制器支持 I/O 延时翻转功能。该函数执行后, 首先输出一个与当前电平相 反的信号,延时设置的时间后,再自动翻转一次电平。

控制器支持 I/O 强制功能。该函数执行后,将强制输入\输出信号为用户设 置的强制值。通用 IO 控制相关函数:

名称 功能 参考
Smc_IO_WriteDO 设置输出口的电平状态 3.6 节
Smc_IO_WriteDO_Flash 设置输出口的闪烁信号
Smc_IO_ReadDI 读取输入口的电平状态
Smc_IO_SetForceSwitch_DI 设置输入口的强制信号
Smc_IO_SetForceValue_DI 设置输入口的强制值
Smc_IO_SetForceSwitch_DO 设置输出口的强制信号
Smc_IO_SetForceValue_DO 设置输出口的强制值
Smc_IO_GetDigitIOStatus 读取全部数字量 IO 状 态

例程 1:设置第零个输出口的电平状态。 Smc_IO_WriteDO(0, 1);

例程 2:设置第零个输出口的闪烁信号。

Smc_IO_WriteDO_Flash(0, 1);

例程 3:设置第零个输入口的电平状态。 Smc_IO_ReadDI(0, 1);

例程 4:设置第零个输入口的强制开关。 Smc_IO_SetForceSwitch_DI(0, 1);

例程 5:设置第零个设置输入口的强制值。 Smc_IO_SetForceValue_DI(0, 1);

例程 6:设置第零个设置输出口的强制信号。

Smc_IO_SetForceSwitch_DO(0, 1);

例程 7:设置第零个设置输出口的强制值。

Smc_IO_SetForceValue_DO(0, 1);

例程 8:读取全部数字量 IO 状态。

Smc_IO_GetDigitIOStatus(\[MarshalAs(UnmanagedType.LPStr)] StringBuilder info, int size)

四、CNC功能

在数控加工中,同时控制多个运动轴进行插补运动的技术。这种技术使得在 复杂的曲线加工中,可以同时控制多个轴,以更高的效率和更精确的方式完成加 工任务。

CNC 控制相关函数:

名称 功能 参考
Smc_CNC_BeginTransmit 开始下载 3.7 节
Smc_CNC_EndTransmit 结束下载
Smc_CNC_Transmit 下载 GCode
Smc_CNC_ExecuteReadLine 上载 GCode
Smc_CNC_ExecuteInterpolation 运行
Smc_CNC_PausedInterpolation 暂停
Smc_CNC_ContinueInterpolation 继续
Smc_CNC_StopInterpolation 停止
Smc_CNC_Reset 复位
Smc_CNC_GetProcessingTime 获取 CNC 加工时间
Smc_CNC_GetRobotType 获取机器人类型
Smc_CNC_SetRobotType 设置机器人类型
Smc_CNC_GetAxisMapID 获取轴 ID
Sgmc_CNC_SetAxisMapID 设置轴 ID

例程1:通道零开始下载。

Smc_CNC_BeginTransmit(0);

例程2:通道零结束下载。

Smc_CNC_EndTransmit(0);

例程3:通道零下载 GCode。

Smc_CNC_Transmit (0, code); //code 表示 G 代码内容

例程4:通道零上载 GCode。

Smc_CNC_ExecuteReadLine (0, code); //code 表示 G 代码内容

例程5:通道零运行。

Smc_CNC_ExecuteInterpolation(0);

例程6:通道零暂停。

Smc_CNC_PausedInterpolation(0);

例程7:通道零继续。

Smc_CNC_ContinueInterpolation(0);

例程8:通道零停止。

Smc_CNC_StopInterpolation(0);

例程9:通道零复位。

Smc_CNC_Reset(0);

例程10:通道零获取 CNC 加工时间。

Smc_CNC_GetProcessingTime(0,ref int processingTime )

例程11:通道零获取机器人类型。

Smc_CNC_GetRobotType(0, ref int RobotType, ref int M_RobotType)

例程12:通道零设置机器人类型为 XY 型。

Smc_CNC_SetRobotType(0,0) //0:XY 型机器人;1:Scara 型机器人

例程13:通道零获取轴 ID。

Smc_CNC_GetAxisMapID(ushort channel, ref int X, ref int Y, ref int Z, ref int A, ref int M_X, ref int M_Y, ref int M_Z, ref int M_A)

例程14:设置通道零的 X 为 0 轴,Y 为 1 轴,Z 为 2 轴,A 为 3 轴。 Sgmc_CNC_SetAxisMapID(0, 0,1, 2, 3)

函数列表

一、通讯与运动参数

1.通讯连接函数

(1)short Smc_Init(string ipAdress, int ipPort);

功 能:控制器连接初始化函数,分配系统资源

参 数:ipAdress 指定对应与控制器的 IP 地址,默认值 127.0.0.1 ipPort 端口号,默认值 5000

返回值:0:连接成功,非 0:连接失败错误码

适用范围:全系列控制器

例程:网口初始化设置

short iret =Smc_Init(192.168.3.103,5000) //网口初始化

(2)short Smc_Close()

功 能:控制器关闭函数,释放系统资源 参 数:无

返回值:错误代码

适用范围:全系列控制器

(3)Short Smc_GetDllVersion(\[MarshalAs(UnmanagedType.LPStr)] StringBuilder info, int size)

功 能:获取控制器动态库文件版本号 参 数:info 返回库版本号

size 设置大小 返回值:错误代码

适用范围:全系列控制器

2.运动参数设置函数

(1)short Smc_Set_MoveSpeed(ushort axis, double vel, double acc, double dec, double jerk)

功 能:设置 Move 运动的速度参数

参 数:axis 轴号,取值范围:0~控制器最大轴数-1 vel 速度,单位:mm/s

acc 加速度,单位:mm/s^2

dec 减速度,单位:mm/s^2

jerk 加加速度,单位:mm/s^3

返回值:错误代码

适用范围:全系列控制器

(2)short Smc_Get_MoveSpeed(ushort axis, ref double vel, ref double acc, ref double dec, ref double jerk)

功 能:获取 Move 运动的速度参数

参 数:axis 轴号,取值范围:0~控制器最大轴数-1

vel 速度,单位:mm/s

acc 加速度,单位:mm/s^2 dec 减速度,单位:mm/s^2

jerk 加加速度,单位:mm/s^3 返回值:错误代码

适用范围:全系列控制器

(3)short Smc_Set_JogSpeed(ushort axis, double vel, double acc, double dec, double jerk)

功 能:设置 Jog 运动的速度参数

参 数:axis 轴号,取值范围:0~控制器最大轴数-1 vel 速度,单位:mm/s

acc 加速度,单位:mm/s^2

dec 减速度,单位:mm/s^2

jerk 加加速度,单位:mm/s^3 返回值:错误代码

适用范围:全系列控制器

(4)short Smc_Get_JogSpeed(ushort axis, ref double vel, ref double acc, ref double dec, ref double jerk)

功 能:获取 Jog 运动的速度参数

参 数:axis 轴号,取值范围:0~控制器最大轴数-1 vel 速度,单位:mm/s

acc 加速度,单位:mm/s^2

dec 减速度,单位:mm/s^2

jerk 加加速度,单位:mm/s^3

返回值:错误代码

适用范围:全系列控制器

二、运动函数

1.点位运动函数

(1)short Smc_MoveAbsolute( ushort axis, double position )

功 能:绝对位置运动

参 数:axis 轴号,取值范围:0~控制器最大轴数-1 position

位置距离,单位:mm

返回值:错误代码

适用范围:全系列控制器

  1. short Smc_MoveRelative(ushort axis, double distance)

功 能:相对位置运动

参 数:axis 轴号,取值范围:0~控制器最大轴数-1 distance

位置距离,单位:mm

返回值:错误代码

适用范围:全系列控制器

  1. short Smc_MoveJog(ushort axis, string type)

功 能:Jog 运动

参 数:axis 轴号,取值范围:0~控制器最大轴数-1

type Forward:正转,Backward:反转,Stop:停止

返回值:错误代码

适用范围:全系列控制器

  1. short Smc_Check_Done(ushort axis)

功 能:检查指定轴的完成状态

参 数:axis 轴号,取值范围:0~控制器最大轴数-1

返回值:错误代码

适用范围:全系列控制器

  1. short Smc_Stop(ushort axis, ushort stop_mode)

功 能:单轴停止

参 数:axis 轴号,取值范围:0~控制器最大轴数-1 stop_mode

返回值:错误代码

适用范围:全系列控制器

  1. short Smc_Emg_Stop()

功 能:紧急停止所有轴

参数:无

返回值:错误代码

适用范围:全系列控制器

2.回原点运动函数

(1)short Smc_Home_Move(ushort axis)

功 能:回原点运动

参 数:axis 轴号,取值范围:0~控制器最大轴数-1

返回值:错误代码

适用范围:全系列控制器

  1. short Smc_Get_Home_Result(ushort axis, ref ushort state)

功 能:获取回原点运动状态

参 数:axis 轴号,取值范围:0~控制器最大轴数-1

state 返回回原点运动状态,0:末完成,1:完成

返回值:错误代码

适用范围:全系列控制器

  1. Smc_GetHomingParameter(ushort axis, ref Sg_HomingParameter parameter)

功 能:获取回零参数

参 数:axis 轴号,取值范围:0~控制器最大轴数-1 parameter 返回回原点的具体参数,

UsingHoming:是否使用 Homing 回零模式 fHomePosition:原点位置

fVelocitySlow:慢速 fVelocityFast:快速 fAcceleration:加速度 fDeceleration:减速度 fJerk:加加速度

nHomingRefSwitch:原点端口号

nDirection:回零方向 nHomingMode:回零模式

返回值:错误代码

适用范围:全系列控制器

  1. Smc_SetHomingParameter(ushort axis, Sg_HomingParameter parameter)

功 能:设置回零参数

参 数:axis 轴号,取值范围:0~控制器最大轴数-1 parameter 返回回原点的具体参数,

UsingHoming:是否使用 Homing 回零模式 fHomePosition:原点位置

fVelocitySlow:慢速 fVelocityFast:快速 fAcceleration:加速度

fDeceleration:减速度 fJerk:加加速度

nHomingRefSwitch:原点端口号

nDirection:回零方向 nHomingMode:回零模式

返回值:错误代码

适用范围:全系列控制器

3.状态监控函数

(1)short Smc_GetAxisState(\[MarshalAs(UnmanagedType.LPStr)] StringBuilder axisState, int size)

功 能:获取指定轴有关运动信号的状态

参 数:axisState 返回轴有关运动信号的状态 size 设置大小

返回值:错误代码

适用范围:全系列控制器

  1. short Smc_Get_PowerStatus(ushort axis, ref ushort state)

功 能:获取指定轴使能状态

参 数:axis 轴号,取值范围:0~控制器最大轴数-1

state 返回使能状态,0:未使能,1:使能

返回值:错误代码

适用范围:全系列控制器

  1. short Smc_Set_Position(ushort axis, double pos)

功 能:设置指定轴当前位置

参 数:axis 轴号,取值范围:0~控制器最大轴数-1

pos 位置,单位:mm

返回值:错误代码

适用范围:全系列控制器

  1. short Smc_Get_ActPosition(ushort axis, ref double pos)

功 能:获取指定轴实际位置

参 数:axis 轴号,取值范围:0~控制器最大轴数-1 pos 返回实际位置,单位:mm

返回值:错误代码

适用范围:全系列控制器

  1. short Smc_Get_TargetPosition(ushort axis, ref double pos)

功 能:获取指定轴规划位置

参 数:axis 轴号,取值范围:0~控制器最大轴数-1 pos 返回规划位置,单位:mm

返回值:错误代码

适用范围:全系列控制器

  1. short Smc_Get_ActVelocity(ushort axis, ref double speed)

功 能:获取指定轴实际速度

参 数:axis 轴号,取值范围:0~控制器最大轴数-1

speed 返回实际速度,单位:mm/s

返回值:错误代码

适用范围:全系列控制器

  1. short Smc_Get_ActAcceleration(ushort axis, ref double actacc)

功 能:获取指定轴实际加速度

参 数:axis 轴号,取值范围:0~控制器最大轴数-1 actacc 返回实际加速度,单位:mm/s^2

返回值:错误代码

适用范围:全系列控制器

三、IO函数

1.通用IO接口函数

(1)int Smc_IO_ReadDO(ushort bitno, ref ushort on_off);

功 能:读取指定输出端口信号状态

参 数:bitno 输出端口号,取值范围:0~控制器本机输出口数-1

on_off 输出端口信号,0:低电平,1:高电平

返回值:错误代码

适用范围:全系列控制器

  1. short Smc_IO_WriteDO(ushort bitno, ushort on_off)

功 能:设置指定输出端口信号

参 数:bitno 输出端口号,取值范围:0~控制器本机输出口数-1 on_off 输出端口信号,0:低电平,1:高电平

返回值:错误代码

适用范围:全系列控制器

  1. short Smc_IO_WriteDO_Flash(ushort bitno, ushort on_off)

功 能:设置指定输出端口闪烁信号

参 数:bitno 输出端口号,取值范围:0~控制器本机输出口数-1

on_off 输出端口信号

返回值:错误代码

适用范围:全系列控制器

  1. short Smc_IO_ReadDI(ushort bitno, ref ushort on_off)

功 能:获取输入端口信号

参 数:bitno 输入端口号,取值范围:0~控制器本机输出口数-1

on_off 返回输入端口信号

返回值:错误代码

适用范围:全系列控制器

  1. short Smc_IO_SetForceSwitch_DI(ushort bitno, ushort on_off)

功 能:设置输入端口强制信号

参 数:bitno 输入端口号,取值范围:0~控制器本机输出口数-1 on_off 输入端口强制信号

返回值:错误代码

适用范围:全系列控制器

  1. short Smc_IO_SetForceValue_DI(ushort bitno, ushort on_off)

功 能:设置输入端口强制值

参 数:bitno 输入端口号,取值范围:0~控制器本机输出口数-1 on_off 输入端口强制值

返回值:错误代码

适用范围:全系列控制器

  1. short Smc_IO_SetForceSwitch_DO(ushort bitno, ushort on_off)

功 能:设置输出端口强制信号

参 数:bitno 输出端口号,取值范围:0~控制器本机输出口数-1 on_off 输出端口强制信号

返回值:错误代码

适用范围:全系列控制器

  1. short Smc_IO_SetForceValue_DO(ushort bitno, ushort on_off)

功 能:设置输出端口强制信号

参 数:bitno 输出端口号,取值范围:0~控制器本机输出口数-1 on_off 输出端口强制值

返回值:错误代码

适用范围:全系列控制器

  1. short Smc_IO_GetDigitIOStatus(\[MarshalAs(UnmanagedType.LPStr)]StringBuilder info, int size)

功 能:获取数字量 IO 的状态

参 数:info 返回 IO 状态size 设置大小

返回值:错误代码

适用范围:全系列控制器

2.模拟量IO接口函数

(1)int Smc_IO_ReadAO(ushort bitno, ref double value);

功 能:读模拟量输出

参 数:bitno IO 点 Value 模拟量电压值

返回值:错误代码

适用范围:全系列控制器

(2)int Smc_IO_WriteAO (ushort bitno, double value);

功 能:写模拟量输出

参 数:bitno IO 点 Value 模拟量输出电压值

返回值:错误代码

适用范围:全系列控制器

(3)int Smc_IO_SetForceSwitch_AO(ushort bitno, ushort on_off);

功 能:设置模拟量强制输出开关

参 数:bitno 强制 IO 点

on_off 强制允许信号

返回值:错误代码

适用范围:全系列控制器

(4)int Smc_IO_SetForceValue_AO(ushort bitno, double value);

功 能:设置模拟量强制输出值

参 数:bitno 强制 IO 点

Value 强制值

返回值:错误代码

适用范围:全系列控制器

3.特殊IO功能

(1)int MoveAbsoluteAndMemOutIO(int axisID, float position, int percent, int port);

功 能:绝对运动同步输出内存信号

参 数:axisID 轴号

position 目标位置

percent 触发信号的运动路径比例

port 触发内存信号的端口

返回值:错误代码

适用范围:全系列控制器

(2)int Smc_IO_WriteMemIO(ushort bitno, ushort on_off);

功 能:写内存位 IO

参 数:bitno IO 端口号 on_off 开关

注意事项:该信号在运动触发后可以操作

返回值:错误代码

适用范围:全系列控制器

(3)int Smc_IO_ReadMemIO(ushort bitno, ref ushort on_off);

功 能:读内存位 IO

参 数:bitno IO 端口号 on_off 信号状态

注意事项:该信号在运动触发后可以操作

返回值:错误代码

适用范围:全系列控制器

(4)int Smc_IO_WriteDO_PWM(ushort bitno, ushort on_off, int frequency, int dutyfactor);

功 能:写 PWM 信号

参 数:bitno PWM 类型 IO 端口号 on_off 打开或关闭

frequency 脉宽信号周期 dutyfactor 占空比

返回值:错误代码

适用范围:全系列控制器

(5)int Smc_IO_WriteDO_PSO(ushort bitno, ushort on_off, int OutputDelay, float StartPos, float TrigDist, int PSO_AxisNum);

功 能:写 PSO 信号

参 数:bitno PSO 类型 IO 端口号 on_off 打开或关闭

OutputDelay 信号打开后的持续时间 StartPos 触发信号的开始位置

TrigDist 触发距离设置

PSO_AxisNum PSO 信号参与轴数量设置,设置范围 1-3。设置为 1 时,开 始位置与触发距离都只与下位机参数中配置对应的第一个轴相关

返回值:错误代码

适用范围:全系列控制器

四、限位函数与CNC函数

1.软限位

(1)int Smc_SetSoftwareLimits(int axisID, double limitPositive, double limitNegative);

功 能:设置软件限位

参 数:axisID 轴号

limitPositive 正限位 limitNegative 负限位

返回值:错误代码

适用范围:全系列控制器

(2)int Smc_ActivateSoftwareLimits(int axisID, ushort bActivate);

功 能:激活软件限位

参 数:axisID 轴号

bActivate 是否激活

返回值:错误代码

适用范围:全系列控制器

(3)int Smc_GetSoftwareLimits(int axisID, ref ushort bActivate, ref double limitPositive, ref double limitNegative);

功 能:获取软件限位

参 数:axisID 轴号

bActivate 是否激活

limitPositive 正限位 limitNegative 负限位

返回值:错误代码

适用范围:全系列控制器

2.CNC控制相关函数

(1)Smc_CNC_BeginTransmit(ushort channel)

功 能:开始下载 GCode

参 数:channel 通道

返回值:错误代码

适用范围:全系列控制器

(2)Smc_CNC_EndTransmit(ushort channel)

功 能:结束下载 GCode

参 数:channel 通道

返回值:错误代码

适用范围:全系列控制器

(3)Smc_CNC_Transmit(ushort channel, string code)

功 能:下载 GCode

参 数:channel 通道

code G 代码内容

返回值:错误代码

适用范围:全系列控制器

(4)Smc_CNC_ExecuteReadLine(ushort channel, ref string code)

功 能:上载 GCode

参 数:channel 通道 code G 代码内容

返回值:错误代码

适用范围:全系列控制器

(5)Smc_CNC_ExecuteInterpolation(ushort channel)

功 能:运行 GCode

参 数:channel 通道

返回值:错误代码

适用范围:全系列控制器

(6)Smc_CNC_ExecuteInterpolation(ushort channel)

功 能:运行 GCode

参 数:channel 通道

返回值:错误代码

适用范围:全系列控制器

(7)Smc_CNC_PausedInterpolation(ushort channel)

功 能:暂停运行 GCode

参 数:channel 通道

返回值:错误代码

适用范围:全系列控制器

(8)Smc_CNC_ContinueInterpolation(ushort channel)

功 能:继续运行 GCode

参 数:channel 通道

返回值:错误代码

适用范围:全系列控制器

(9)Smc_CNC_StopInterpolation(ushort channel)

功 能:停止运行 GCode

参 数:channel 通道

返回值:错误代码

适用范围:全系列控制器

(9)Smc_CNC_Reset(ushort channel)

功 能:复位

参 数:channel 通道

返回值:错误代码

适用范围:全系列控制器

(10)Smc_GetCardStatus(ref Sg_CardStatus cardStatus, ref Sg_CNC_State cncstatus0, ref Sg_CNC_State cncstatus1)

功 能:获取板卡状态

参 数:cardStatus 板卡状态,cncstatus0 CNC0 状态,cncstatus1 CNC1 状态

返回值:错误代码

适用范围:全系列控制器

(11)Smc_CNC_GetProcessingTime(ushort channel, ref int processingTime)

功 能:获取 CNC 加工时间

参 数:channel 通道,processingTime 加工时间

返回值:错误代码

适用范围:全系列控制器

(12)Smc_CNC_GetRobotType(ushort channel, ref int RobotType, ref int

M_RobotType)

功 能:获取机器人类型

参 数:channel 通道,RobotType,M_RobotType:机器人类型

返回值:错误代码

适用范围:全系列控制器

(13)Smc_CNC_ SetRobotType(ushort channel, int RobotType)

功 能:获取机器人类型

参 数:channel 通道,RobotType:机器人类型

返回值:错误代码

适用范围:全系列控制器

(14)Smc_CNC_GetAxisMapID(ushort channel, ref int, ref int Y, ref int Z, ref int A, ref int M_X, ref int M_Y, ref int M_Z, ref int M_A)

功 能:获取机器人类型

参 数:channel 通道 轴号:X、Y、Z、A、M_X、M_Y、M_Z、M_A

返回值:错误代码

适用范围:全系列控制器

(15)Sgmc_CNC_SetAxisMapID(ushort channel, int X, int Y, int Z, int A)

功 能:获取机器人类型

参 数:channel 通道, 轴号:X,Y,Z,A

返回值:错误代码

适用范围:全系列控制器

3.其他类函数

(1)Smc_GetEncoderIn(ushort channel, ref int outvalue, ref double

realvalue)

功 能:获取外部编码器的值

参 数:channel 通道,

outvalue:实际输出值 ,realvalue:offset 内部输出值

返回值:错误代码

适用范围:全系列控制器

(2)Smc_SetEncoderOffset(ushort channel, int pos)

功 能:设置外部编码器的值

返回值:错误代码

参 数:channel 通道,pos:位置

适用范围:全系列控制器

最近修改: 2025-07-31