系统配置¶
1.1 本章简介¶
在使用运动控制器进行各种操作之前,需要对运动控制器进行配置,使运动控制器的状态和各种工作模式能够满足用户的要求。这个过程,叫做系统配置。
在调试软件MotionStudio中包括一个系统配置的组件,用户可以利用该组件对运动控制器进行配置,配置完成之后,生成相应的配置文件*.cfg。用户在编程时,调用GTN_LoadConfig指令,将配置信息传递给运动控制器,即可完成整个运动控制器的配置工作。除了配置文件,用户也可以直接调用配置的指令完成运动控制器的配置。
1.2 系统配置基本概念¶
运动控制器内部包含了各种软硬件资源,各种软硬件资源之间相互组合,即可实现运动控制器的各种应用。
1.2.1 硬件资源¶
数字量输出资源(DO):包括伺服使能数字量输出、伺服报警清除数字量输出、通用数字量输出。
数字量输入资源(DI):包括正限位数字量输入、负限位数字量输入、驱动报警数字量输入、原点信号数字量输入、通用数字量输入。
编码器计数资源(encoder):用来对外部编码器的脉冲输出进行计数。
脉冲输出资源(step):脉冲输出通道,可以输出“脉冲+方向”、“CCW/CW”和“正交脉冲”控制脉冲。
电压输出资源(DAC):电压输出通道,输出-10V~+10V的控制电压。
1.2.2 软件资源¶
规划器资源(profile):根据运动模式和运动参数实时计算规划位置和规划速度,生成所需的速度曲线,实时地输出规划位置。
伺服控制器资源(control):根据伺服控制算法、控制参数、跟随误差实时地计算控制量。
轴资源(axis):将软件资源、硬件资源进行组合,作为整体进行操作。其中包括驱动报警信号、正限位信号、负限位信号、平滑停止信号、紧急停止信号的管理;规划器输出的规划位置的当量变换;编码器计数位置的当量变换等功能。
1.2.3 资源组合¶
系统配置就是将上述的硬件资源和软件资源相互组合,并对各个资源的基本属性进行配置的过程。下面的两个例子描述了资源组合的基本概念。
1.开环控制模式(脉冲控制)
使用步进电机,或使用伺服电机的位置控制模式的运动控制系统,其基本配置如图所示。

该实例中,profile输出的规划位置进入axis中,在axis中进行当量变换的处理后,输出到step,由step产生控制脉冲,驱动电机运动。axis需要驱动报警、正向限位信号、负向限位信号、平滑停止信号、紧急停止信号等一些数字量输入信号来对运动进行管理;同时axis需要输出伺服使能信号,让电机使能。
2.闭环控制模式(模拟量控制)
一个闭环伺服电机运动控制系统的常见组成部分如图所示。

该实例中,profile输出的规划位置进入axis中,在axis中进行当量变换的处理后,输出到伺服控制器中,伺服控制器将规划位置与encoder的计数位置进行比较,获得跟随误差,并通过一定的伺服控制算法,得到实时的控制量,将控制量传递给DAC,由DAC转换成控制电压来控制电机的运动。axis需要驱动报警、正向限位信号、负向限位信号、平滑停止信号、紧急停止信号等一些数字量输入信号来对运动进行管理;同时axis需要输出伺服使能信号,让电机使能。
1.3 系统配置工具¶
使用固高科技提供的MotionStudio运动控制器调试软件能够方便地对系统进行配置,启动软件以后显示如图所示界面。

点击左侧导航栏的“功能列表->控制器配置”,打开运动控制器配置面板就可以对系统进行配置,如图所示。

1.3.1 配置axis¶
配置说明:“axis”选项主要用来配置轴控制的相关信息。配置后对控制系统可能产生的影响如图所示。

按照功能,MotionStudio将axis配置功能分为3个大模块,分别为报警功能、停止功能和当量变换功能。
1. 报警功能¶
一般情况下,驱动报警、正负限位信号均保持默认设置状态,即“驱动报警”,“正限位”和“负限位”的“编号”同“轴号”相对应。为了帮助用户提高配置的灵活性,可选用其他配置,如将轴2的限位信号配给轴1使用。用户设置时,一般情况下,该选项保持默认设置,除非出现特殊需求。

(1) 驱动报警信号数字量输入选择:选择驱动报警信号的数字量输入的来源,运动控制器支持将任何数字量输入信号配置为驱动报警信号,增加用户进行硬件接线的自由性。“驱动器报警类型”下拉列表选择数字量输入的类型,默认为选择“轴报警”;“驱动器报警索引”下拉列表选择数字量输入的索引号,在列表中如果选择“none”,则表示该axis的驱动报警信号无效。驱动报警无效可以通过指令GTN_AlarmOff设置,驱动报警有效可以通过指令GTN_AlarmOn设置。
(2) 正限位信号数字量输入选择:选择正限位信号的数字量输入的来源,运动控制卡支持将任何数字量输入信号配置为正限位信号,增加用户进行硬件接线的自由性。“正限位类型”下拉列表选择数字量输入的类型,默认为选择“正限位”;“正限位索引号”下拉列表选择数字量输入的编号,在列表中如果选择“none”,则表示该axis的正限位信号无效。限位开关无效可以通过指令GTN_LmtsOffEx设置,限位开关有效可以通过指令GTN_LmtsOnEx设置。
(3) 负限位信号数字量输入选择:选择负限位信号的数字量输入的来源,运动控制卡支持将任何数字量输入信号配置为负限位信号,增加用户进行硬件接线的自由性。“负限位类型”下拉列表选择数字量输入的类型,默认为选择“负限位”;“负限位索引号”下拉列表选择数字量输入的编号,在下拉列表中如果选择“none”,则表示该axis的负限位信号无效。限位开关无效可以通过指令GTN_LmtsOffEx设置,限位开关有效可以通过指令GTN_LmtsOnEx设置。
提示
驱动报警信号、正负限位信号在控制器复位状态下,都默认各轴对应相应的报警和限位信号,如1轴的驱动报警以及正负限位的编号都是1号。
但若有特殊情况,可以通过设置将不同轴上的限位和报警信号挂接到本轴上,如将1轴的正限位设置为2号。这种情况下,若2号正限位触发了,该信号将传递给1轴。2. 配置停止类型和停止减速度¶

(1) 平滑停止信号数字量输入选择:选择平滑停止信号的数字量输入的来源,运动控制卡支持将任何数字量输入信号配置为平滑停止信号,增加用户进行硬件接线的自由性。“平滑停止类型”下拉列表选择数字量输入的类型,默认为“none”,即没有平滑停止信号;“平滑停止索引”下拉列表选择数字量输入的编号。平滑停止信号数字量输入选择可以通过指令GTN_SetStopIo设置。平滑停止的减速度可以在“平滑停止减速度”一列设置,单位:pulse/ms2。
(2) 紧急停止信号数字量输入选择:选择紧急停止信号的数字量输入的来源,运动控制卡支持将任何数字量输入信号配置为紧急停止信号,增加用户进行硬件接线的自由性。“急停类型”下拉列表选择数字量输入的类型,默认为“none”,即没有紧急停止信号;“急停索引”下拉列表选择数字量输入的编号。紧急停止信号数字量输入选择可以通过指令GTN_SetStopIo设置。急停的减速度可以在“急停减速度”一列设置,单位:pulse/ms2。
3. 配置轴脉冲当量¶

(1) 规划器当量变换参数:如果需要在axis中对规划器输出的规划位置进行当量变换,则可以对该项的参数进行设置,当量变换的关系如下:

系统默认的Alpha和Beta都为1,因此,规划器输出的规划位置在经过axis之后没有经过任何变化。Alpha的取值范围:(-32767, 0)和(0, 32767);Beta的取值范围:(-32767, 0)和(0, 32767)。该项可以通过指令GTN_ProfileScale来设置。
(2) 编码器当量变换参数:如果需要在axis中对编码器计数的位置值进行当量变换,则可以对该项的参数进行设置,当量变换的关系如下:

系统默认的Alpha和Beta都为1,因此,编码器计数的位置值在经过axis之后没有经过任何变化。Alpha的取值范围:(-32767, 0)和(0, 32767);Beta的取值范围:(-32767, 0)和(0, 32767)。该项可以通过指令GTN_EncScale来设置。
4. 规划器配置¶
默认轴和规划器之间是一一对应的关系,[如图](其他/Axis配置界面3.png)中的 “轴索引号”和“规划器”的对应关系。如果用户需要一个轴绑定多个规划器可以通过指令实现。目前支持一个轴同时最多关联3个规划器。具体请参考指令GTN_SetAxisAddition和GTN_GetAxisAddition。
1.3.2 配置step¶

配置说明:“step”选项主要用于配置脉冲控制模式。若采用的脉冲控制,而且是“脉冲+方向”的方式,该选项保持默认设置。如果轴1不使用脉冲控制模式,应当将“脉冲输出状态”下拉列表选择”禁用”。以此类推。
(1)脉冲输出索引号:表示需要进行配置脉冲输出的编号,不可编辑。
(2)脉冲输出模式选择:可以选择脉冲输出通道的脉冲输出模式,可以为“脉冲+方向”或者“CCW/CW”,默认为“脉冲+方向”。设置为“脉冲+方向”模式,可以调用指令GTN_StepDir来实现;设置为“CCW/CW”模式,可以调用指令GTN_StepPulse来实现。设置为正交脉冲模式,可以调用指令GTN_StepOrthogonal实现。
(3)脉冲输出状态:如果该列表对应的状态为”禁用”,则该脉冲输出通道将不可用,不会输出脉冲。默认脉冲输出都是”启用”的。但是如果没有用到某个step,则可以把该”脉冲输出”设置为”禁用”,这样可以节约运动控制器的处理资源。
1.3.3 配置DAC¶

(1)配置说明:“闭环输出”选项主要用于设置DAC的输出状态。DAC的输出在闭环控制时,作为伺服电压输出控制,用户不可控制伺服电压输出大小。但在开环状态下,可作为通用电压输出控制,用户可调用GTN_SetDac设置输出电压的大小。
(2)闭环输出索引:需要进行配置的DAC的编号,不可编辑。注意:当电机采用闭环控制模式时,默认是将轴号和DAC编号相对应。如轴1的电压控制的通道为“DAC:1”。
(3)闭环输出反转:选择是否需要将DAC的输出电压取反,如果为“正常”,则向DAC中写入正值时,DAC输出正电压,向DAC中写入负值时,DAC输出负电压;如果为“取反”,则反之。
(4)闭环输出零漂补偿:如果需要对DAC进行零漂补偿时,在这里设置具体的零漂补偿值。取值范围:[-32768, 32767]。该项可以通过指令 GTN_SetMtrBias来设置。
(5)闭环输出上限:该项设置DAC能够输出的最大电压绝对值。取值范围:(0, 32767]。换算关系如下:已知允许输出的电压范围为-aV~aV,则设置的值为32767*a/10,取整数。例如,如果设置为32767,则允许输出的电压范围为:[-10V, +10V],设置为16384,则允许输出的电压范围为:[-5V, +5V]。如果control输出的控制量绝对值,或者用户使用GTN_SetDac指令设置的电压值的绝对值超过设定值时,将会按照该项设置的参数被限制在指定电压范围之内。该项可以通过指令GTN_SetMtrLmt来设置。
(6)闭环输出状态:如果未勾选“开启”,则该电压输出通道将不可用,不会输出电压值。默认不“开启”的。但是如果没有用到某个DAC,则可以不把该DAC启用,这样可以节约运动控制卡的处理资源。
1.3.4 配置encoder¶

配置说明:“编码器”选项主要配置与编码器有关的参数。配置后对控制系统可能产生的影响如图所示。

当编码器值与规划值方向相反时,可以通过修改“编码器反转”来校正。在闭环控制模式下,若出现“飞车”现象,也可通过修改该选项来校正。脉冲计数源的设置,一般情况下,保持默认设置。若没安装编码器,则可通过设置该选项为“内部脉冲计数器”。对于“Home触发沿”和“Index触发沿”的设置,取决于传感器的安装,若不能触发,可以修改“Home捕获触发沿”和“Index捕获触发沿”。
(1)编码器索引号:需要进行配置的编码器的编号,不可编辑。
(2)编码器:运动控制器可以接收正交编码器信号,该项选项与反馈脉冲方向以及编码器计数方向的关系如图所示,该项可以通过指令GTN_SetSense来修改。

(3)编码器计数源:表示编码器计数来源,默认情况下是外部编码器计数。如果没有外接编码器,则可以将其设置为“内部脉冲计数器”,encoder将会对step输出的脉冲个数进行计数。设置为外部编码器,可以调用指令GTN_EncOn来实现;设置为内部脉冲计数器,可以调用指令GTN_EncOff来实现。设置为外部编码器是指通过外部安装的编码器计数值来计算,而内部脉冲计数器则是指通过控制器内部硬件来计算发出去的脉冲个数。在闭环控制方式下,必须设置成外部编码器计数方式。
(4)Home捕获触发沿:用来设置Home捕获的触发沿,默认为下降沿触发。该项可以通过指令GTN_SetTriggerPrm来修改。
(5)Index捕获触发沿:用来设置Index捕获的触发沿,默认为下降沿触发。该项可以通过指令GTN_SetTriggerPrm来修改。
(6)编码器状态:如果编码器不被激活,则将不会对输入脉冲进行计数。默认编码器都是激活的。但是如果没有用到某个编码器,则可以不把该编码器激活,这样可以节约运动控制器的处理资源。
1.3.5 配置control¶
闭环控制配置界面
当需要将相应轴设置成闭环控制方式时,必须将“闭环控制”配置选项中的“闭环控制状态”设置为”开启”。默认情况下是开环控制(“闭环控制状态”选择”关闭”),即开环(脉冲)控制方式。
(1)闭环控制索引:需要进行配置的闭环控制器(control)的编号,默认和“闭环输出索引”一一对应,即“DAC:1”对应1,不可编辑。
(2)误差极限:表示规划位置和实际位置的误差(跟随误差)的极限。当跟随误差超过设定的极限时,自动关闭axis的驱动器使能信号。默认值为:32767,单位:pulse。该项可以通过指令GTN_SetPosErr来设置。
(3)轴索引号:通过该项设置,可以使闭环控制器(control)与轴(axis)关联。
(4)编码器索引号:通过该项设置,可以使闭环控制器(control)与编码器(encoder)关联。
(5)注意:控制器的“轴索引号”和“编码器索引号”默认为“none”,即开环(脉冲)控制方式。关联之后,运动控制卡会将相应编号的编码器(encoder)、轴(axis)、闭环控制器(control)关联在一起,如图所示,通过之前的“配置DAC”设置,可以将DAC信号与control关联,DAC的值将不能独立设置,如果调用GTN_SetDac指令将会无效。切换开环方式和闭环方式可以通过指令GTN_CtrlMode来实现。
1.3.6 配置通用输入输出¶
通用输入输出配置界面
(1)索引:表示通用输入输出的软件资源序号,不可编辑。
(2)通用输入反转:表示通用输入的输入逻辑取反。默认情况下,0表示输入低电平,1表示输入高电平;输入反转后,0表示输入高电平,1表示输入低电平。该项可以通过指令GTN_SetSense设置。
(3)通用输入滤波:对输入信号进行滤波降低信号干扰,默认为3个中断周期。用户需根据具体情况进行调整。比如,若信号维持时间很短,但又需要获取到,此时需要将滤波时间设置0。
(4)通用输出反转:表示通用输出的逻辑取反。默认值为:正常,0表示输出低电平,1表示输出高电平。输出反转后,0表示输出高电平,1表示输出低电平。该项可以通过指令GTN_SetSense设设置。
(5)通用输出关联轴:表示该通用输出关联到指定轴的驱动器使能。默认情况下,各轴都具有独立的驱动器使能DO作为输出,当调用GTN_AxisOn设指令时,该DO置1。如果驱动器是低电平使能,必须把“输出反转”设置为取反。
提示
DO一旦和轴关联,就不能调用GTN_SetDo或GTN_SetDoBit指令直接设置伺服使能输出电平。如果不需要驱动器使能信号,可以取消和驱动器使能DO的关联。取消关联以后,驱动器使能DO就可以作为普通DO来使用,可以调用GTN_SetDo或GTN_SetDoBit直接设置其输出电平。
1.3.7 配置专用输入¶
专用输入(DI)默认和轴功能绑定,包括正限位、负限位、轴报警、原点和到位等输入信号。专用DI和DO配置界面如图所示。


(1)使能反转:表示通用输出的逻辑取反。默认值为:正常,0表示输出低电平,1表示输出高电平。输出反转后,0表示输出高电平,1表示输出低电平。该项可以通过指令GTN_SetSense设置。
(2)使能关联轴:表示该输出关联到指定轴的驱动器使能。默认情况下,当调用GTN_AxisOn指令时,该DO置1。如果驱动器是低电平使能,必须把“输出反转”设置为取反。如果用户需要将其他通用DO和轴使能绑定,则可参考章节1.3.6。
(3) 报警清除反转:表示报警清除输出的逻辑取反。默认值为:正常,0表示输出低电平,1表示输出高电平。输出反转后,0表示输出高电平,1表示输出低电平。该项可以通过指令GTN_SetSense设置。
(4) 报警清除关联轴:表示该输出关联到指定轴的报警清除信号。由于报警清除和驱动器参数有关系,不同驱动器报警清除操作不一样。默认情况下不和轴绑定。
1.4 配置文件生成和下载¶
按照1.3章节中的描述进行运动控制器配置之后,如图所示,在“控制器配置”界面中的正下方,点击“写入到文件”,即可对配置信息进行保存,生成配置文件(*.cfg)。

用户可以调用GTN_LoadConfig指令将配置文件里的配置信息下载到运动控制卡中,需要注意的是,如果配置文件与可执行文件不在同一目录下,在调用GTN_LoadConfig指令时,参数需要包含配置文件的绝对路径。
重要
- GTN_LoadConfig中的文件名长度不允许超过125个字,否则调用指令将会失败。
- 调用该指令后需再调用GTN_ClrSts才能使该指令生效。
1.5 控制器配置初始状态¶
控制器初始化状态,是指调用指令GTN_OpenCard成功后,调用指令GTN_Reset复位后的状态。 下表所示为复位后,控制器配置选项的默认状态,调用第四列“相关指令”中的指令可以修改对应选项的状态。
| 资源 | 配置选项 | 默认状态 | 相关指令 |
|---|---|---|---|
| axis | 是否激活 | 启用 | / |
| 规划当量 | Alpha和Beta都为1 | GTN_ProfileScale | |
| 编码器当量 | Alpha和Beta都为1 | GTN_EncScale | |
| 平滑停止和急停数字量输入信号 | 不配置 | GTN_SetStopIo | |
| 平滑停止减速度 | 1pulse/ms2 | GTN_SetStopDec | |
| 急停减速度 | 1000pulse/ms2 | GTN_SetStopDec | |
| 正负限位输入 | 有效,序号和轴号对应 | GTN_LmtsOnEx GTN_LmtsOffEx | |
| 驱动报警输出 | 有效,序号和轴号对应 | GTN_SetStopDec | |
| 跟随误差极限 | 禁用 | GTN_SetAxisPosErrLimit GTN_GetAxisPosErrLimit | |
| step | 是否激活 | 启用 | / |
| 脉冲输出方式 | 脉冲+方向 |
GTN_StepDir
GTN_StepPulse GTN_StepOrthogonal |
|
| DAC | 是否激活 | 禁用 | / |
| 输出电压零漂补偿 | 0 | GTN_SetMtrBias | |
| 输出电压反转 | 正常 | / | |
| 输出电压饱和极限 | 32767 | GTN_SetMtrLmt | |
| encoder | 是否激活 | 激活 | / |
| 脉冲计数源 | 外部编码器 | GTN_EncOn
GTN_EncOff |
|
| 输入脉冲反转 | 取反 | GTN_SetSense | |
| 捕获触发沿 | 下降沿 | GTN_SetTriggerPrm | |
| control | 是否激活 | 禁用 | / |
| 跟随误差极限 | 32767 | GTN_SetPosErr | |
| DI | 是否激活 | 激活 | / |
| 限位开关 | 常闭开关,常为低电平,高电平限位触发 | GTN_SetSense | |
| DI输入反转 | 正常 | GTN_SetSense | |
| DI滤波时间 | 3个伺服周期 | / | |
| DI初始状态 | 低电平 | GTN_ReadDigitalInput | |
| DO | 是否激活 | 激活 | / |
| DO输出反转 | 正常,1代表输出高电平,0代表输出低电平 | GTN_SetSense |