一种适用于运动控制的PLC指令设计方法与流程

专利2024-07-02  63


一种适用于运动控制的plc指令设计方法
技术领域
1.本发明涉及一种适用于运动控制的plc指令设计方法,属于plc软件设计及编程交互的技术领域。


背景技术:

2.plc全称为可编程逻辑控制器,是一种专门用于工业控制的微型计算机。现有普通plc的运动控制指令主要包括高速脉冲输出指令和高速脉冲输入指令,大都是基于解释型的,解释型plc是将中间代码程序在目标机器上直接逐条解释执行,不需要先将其翻译为目标机器代码。但是缺点明显:用户程序的运行过程中每一步都要对其进行解释,使得程序运行效率相对低下,占用资源高,对于工业控制过程的高效性高实时性要求是不利的。
3.所述plc高速脉冲输入指令大多基于中断的基础上,不受plc扫描周期的影响,采集频率较高的输入信号,主要是用来连接外置的编码器,通过采用不同的计数模式对不同种类的脉冲输入信号进行计数,用户可以将高速脉冲的计数值转换为距离、角度、转速等数据。
4.所述plc高速脉冲输出指令一般包括两种,分别是脉宽调制指令pwm和脉冲串输出指令pto,pwm为模拟量控制模式,pto为脉冲控制模式;当设备对转速和力矩有精确要求时选用pwm;当设备对位置有精确控制时选用pto;根据设备的需要选择伺服设备的类型,最后选择用控制方式。例如,三菱plc的pto加减速时间只能一样,最大支持步数限制值偏低,如fnc59的16位指令只能设置9步,32位只能设置17步;且停止脉冲输出时并无减速操作。
5.综上进一步分析可知,所述解释型plc的运动控制指令的执行效率低于编译型plc。现有技术采用编译型plc进行运动控制指令的执行时,存在以下技术困难:

如何根据需求动态参数配置,实时显示运行曲线,编程更直观提高编程效率;

如何快速定制和灵活调用硬件资源;

如何提高运动控制指令的执行效率,最大程度满足运动实时性需求。基于此,本技术领域急需一种适用于运动控制的编译型plc指令设计的来提高plc的运动控制效率。


技术实现要素:

6.针对现有技术的不足,本发明公开一种适用于运动控制的plc指令设计方法。
7.发明概述
8.本发明所述指令设计方法包括高速脉冲输入指令设计方法和高速脉冲输出指令设计方法:
9.所述高速脉冲输入指令为hsc指令,在hsc指令设计中,本发明为运动控制过程中的编码器脉冲输入计数提供了10种高速计数方法,能够满足绝大多数种类的编码器进行高速计数;所述高速脉冲输出指令设计分别是脉宽调制pwm指令和脉冲串输出pto指令,同一高速脉冲输出端口支持pwm模式和pto模式,且pto支持手动、单速连续运行、相对位置三种工作模式,采用精确的参数配置,输出精准的高速脉冲,提供理想的脉冲控制,有效提高编
译型plc的高速脉冲输出效率。
10.本发明采用编译型plc的编程软件实现,相比于传统解释型plc的程序运行效率显著提高,占用资源少,完全满足工业控制过程的高效性和高实时性。
11.本发明详细的技术方案如下:
12.一种适用于运动控制的plc指令设计方法,其特征在于,包括高速脉冲输出指令的设计和高速脉冲输入指令的设计;
13.所述高速脉冲输出指令的设计,包括:编译型ide软件将高速脉冲输出指令配置好的plc硬件资源存储到数据库中,如图1中30-32序号显示所示;所述编译型ide软件是指基于语言转换的编译型plc的集成开发环境;所述基于语言转换的编译型plc的工作原理即是将梯形图转译成c语言程序直接编译执行;所述集成开发环境是由编辑器、管理器、配置器构成的一个可以实现plc编程管理的工具软件;pwm指令与pto指令共用高速输出端口;通过编译型ide软件调用pwm指令和pto指令进行相关的梯形图程序;
14.所述pto指令包括三种高速脉冲输出模式:手动模式、单速连续运行模式和相对位置模式;所述手动模式通过开关按钮手动启停高速脉冲输出;所述单速连续运转模式是指以一个固定的目标速度连续运行;所述相对位置模式是指通过相对计算位置的方法设置一个包络运动曲线的参数,以每步起点为相对零点;所述包络运动曲线是指一个曲线,即从起始速度到加速、匀速、减速至停止速度一个运动过程;所述步是指一个包络运动曲线内的一次开始加/减速到匀速运行结束的过程,特别地最后一步包括减速至停止速度段;
15.通过编译型ide软件调用pwm指令的方法包括:
16.如图2所示,
17.(1-1)初始化pwm指令的相关参数:
18.所述相关参数包括,名称、pwm通道、引脚说明、周期、取值范围、占空比和备注;所述名称为pwm指令功能的别名;所述pwm通道用于选择在数据库中定义的pwm硬件资源;所述引脚说明用于对选择的pwm通道中具体plc位置进行说明,其中引脚说明的数据是通过查询硬件资源配置数据库获取的;所述周期是根据所述取值范围设置的,单位可选;所述占空比是设置的占空比数据,可为小数;所述备注用于添加说明;如图3所示,拖拽pwm指令到编译型ide软件的编辑区,自动弹出的对话框用于设置pwm指令的相关参数;单击确定按钮后,所述初始化pwm指令的相关参数完成;
19.(1-2)初始化pwm数据结构体:
20.所述pwm数据结构体包括,布尔型的单位变量、浮点型的占空比变量、整型的周期变量和pwm引脚变量;
21.编译型ide软件将步骤(1-1)中pwm指令的相关参数,解析到pwm的数据结构中,以初始化pwm数据结构体,所述解析方法如下:将步骤(1-1)中周期、占空比分别直接赋给pwm数据结构体中的整型的周期变量和整型的周期变量;将步骤(1-1)中所述周期选择的单位直接赋给pwm数据结构体中的布尔型的单位变量:当值为true时,则代表微妙;当值为false时,则代表毫秒;将步骤(1-1)中pwm通道配置的引脚数据赋给pwm数据结构体中的pwm引脚变量,例如,用户使用q0.0作为pwm的引脚,则通过查询硬件资源配置数据库,q0.0对应cpu引脚为pa0,则pwm数据结构体中pwm引脚变量即为pa0;
22.(1-3)pwm驱动接口
23.用于实现pwm的脉宽调制功能,而驱动实现过程中需要的用户数据为步骤(1-2)中初始化的pwm数据结构体;所述pwm驱动接口包括:pwm初始化配置接口pwm_config()、pwm周期更新接口pwm_cycle_update()和pwm占空比更新接口pwm_dutyratio_update();
24.通过编译型ide软件调用pto指令的方法包括:
25.如图4所示,
26.(2-1)初始化pto指令的相关参数:
27.所述相关参数包括,基本配置参数和针对各模式再进一步配置参数;
28.所述基本配置参数包括手动、单速连续运行和相对位置三种模式都必须配置的参数,如图5所示,基本信息、设置端口、电机速度、加速设置和减速设置;所述基本信息包括名称和备注;所述名称为pto指令功能的别名;所述备注用于添加说明;所述设置端口用于在数据库中配置的高速脉冲输出端口,与pwm端口共用,但不可兼容,即一个端口要么选择pto模式要么选择pwm模式,设置容错提醒;所述电机速度包括最高速度、启停速度和最低速度,其中最低速度的值与启停速度相同,单位是脉冲/秒;所述加速设置和减速设置包括加速时间t、变化脉冲数量δn和单脉冲周期增量δt;所述加速时间t单位是毫秒;所述变化脉冲数量δn的单位是脉冲;所述单脉冲周期增量δt的单位是微妙/脉冲;其中,终止周期tm、起始周期t0、加速时间t、变化脉冲数量δn和单脉冲周期增量δt这五个变量的关系如公式(i)和(ii)示,所述终止周期tm是对应终止频率的倒数;所述起始周期t0是对应起始频率的倒数;
[0029][0030][0031]
针对各模式再进一步配置的方法,包括:
[0032]
当选择手动模式时,则只做所述基本配置参数即可;
[0033]
在加、减速配置时,在最高速度和启停速度已配置的情况下,单脉冲周期增量、变化脉冲数量、加速/减速时间三个变量根据公式自动计算,只要输入任何一个变量,其他两个变量自动变化,这样可以大大降低编程人员繁琐的计算和单位换算;
[0034]
当选择单速连续运行模式时,如图6所示,配置包括:目标速度、停止距离;所述目标速度的单位是脉冲/秒;所述停止距离单位是脉冲,且只有复选框选中停止信号时才可配置停止距离;所述停止信号是指触发单速连续运行模式下的pto停止输出高速脉冲信号;
[0035]
当选择相对位置模式时,所述相对位置模式是指一整段pto输出包括n个包络,每个包络由m步组成;每个包络中:最后一步中包含一个上升/下降段、一个平行段和一个结束段,其余步均包含一个上升/下降段和一个平行段;如图7所示,配置包括:添加包络、添加步、修改、删除和导出包络;所述添加包络用于自动添加一个包络,并对包络命名;所述添加步用于为当前包络添加一步;所述修改用于选中一步后,对步数据进行修改;所述删除用于选中一步后,删除当前选中的步;所述导出包络用于将当前包络导出封装成一个包络库,以定制和调用标准化曲线;所述包络库即是封装好的一个包络曲线的参数配置,当用户再次使用该包络库时,只需加载该包络库所封装的包络曲线即可,无需重复设置;
[0036]
拖拽pto指令到编译型ide软件的编辑区,自动弹出的对话框用于配置pto指令的
相关参数,包括基本配置和针对各模式再进一步配置;
[0037]
(2-2)初始化pto数据结构体:
[0038]
所述pto数据结构体包括pto引脚变量、整型的最高周期变量、整型的启停周期变量、浮点型的单脉周期增量、整型的工作模式变量、单速连续运行模式结构体、相对位置模式结构体;
[0039]
所述单速连续运行模式结构体包括布尔型的停止标志变量、整型的目标周期变量;所述相对位置模式结构体包括整型的包络总数变量、包络结构体;所述包络结构体包括整型的总步数变量、步结构体;所述步结构体包括整型的起始周期、目标周期、预设脉冲变量;
[0040]
编译型ide软件将步骤(2-1)中pto指令的相关参数,解析到pto数据结构体中,初始化pto数据结构体,所述解析方法如下:将步骤(2-1)中设置端口数据赋给pto数据结构体中的pto引脚变量,例如用户使用q0.1作为pto的引脚,则通过查询硬件资源配置数据库,q0.1对应cpu引脚为pa1,则结构体中pto引脚变量即为pa1;将步骤(2-1)中最高速度按微妙为单位换算成pto数据结构体最高周期变量;将步骤(2-1)中启停速度按微妙为单位换算成pto数据结构体启停周期变量;将步骤(2-1)中单脉冲周期增量直接赋给pto数据结构体中单速脉冲周期增量;将步骤(2-1)中配置模式解析到pto数据结构体中的工作模式变量:值为1代表手动模式;值为2代表单速连续运行模式;值为3代表相对位置模式;将步骤(2-1)中单速模式配置的目标速度以微妙为计算单位转化为周期变量赋给单速连续运行模式结构体中的目标周期变量,复选框选中的停止信号赋给停止标志:值为true代表停止信号选择;值为false代表停止信号未选择;将步骤(2-1)中相对位置模式配置的包络总数统计后赋给相对位置模式结构体中的包络总数变量;将步骤(2-1)中相对位置模式配置的步总数统计后赋给包络结构体中的步总数;将步骤(2-1)中相对位置模式配置的单步目标速度按微妙为单位转化为步结构体中的目标周期变量;将步骤(2-1)中相对位置模式配置的单步目标位置直接赋给步结构体中的预设脉冲变量;将步骤(2-1)中相对位置模式配置的上一步的目标速度按微妙为计算单位转化为步结构体中的起始周期变量;所述第一步的起始周期是基本设置中的启停周期值;
[0041]
(2-3)pto驱动接口
[0042]
用于实现pto的脉冲传输出功能,而驱动实现过程中需要的用户数据为步骤(2-2)中初始化的pto数据结构体;所述pto驱动接口包括pto初始化配置接口pto_config()、pto启动接口startpto()、pto停止接口stoppto()。
[0043]
在所述步骤(2-3)中,为让pto进行加减速时更加平滑,在所述pto启动接口startpto()、pto停止接口stoppto()对应的函数内,添加s曲线算法使得加速度不产生突变。
[0044]
所述s曲线算法包括加加速段、减加速段、加减速段和减减速段,如图8所示,在所述算法下,pto对步进电机的控制稳定,速度变化平滑,大大改善了启动慢、启动失步和启停段冲击大等现象,所述s曲线算法包括公式(ⅲ)、公式(ⅳ)和公式(

);
[0045]
加速度的变化率k固定不变,通过人机交互设计中设置的参数cn、c0和n求得:
[0046][0047]
式(ⅲ)中:k为加速度的变化率,固定不变;cn、c0、n分别为目标频率的对应周期、起始速度的对应周期和变速时的脉冲个数;
[0048]
加速度分为两个变化阶段,一个在前半个变速阶段按照变化率k进行线性变化;一个是在后半个变速阶段进行线性变化;加速度的方向由pto的加减速阶段决定,加速时为正,减速时为负;加速度的大小如公式(ⅳ)所示:
[0049][0050]
式(ⅳ)中:x、a
x
分别为当前脉冲编号和当前脉冲的加速度大小;
[0051]
周期的变化关系为:
[0052]cx
=c
x-1
+a
x
ꢀꢀ
(

)
[0053]
式(

)中:c
x
、c
x-1
分别为当前脉冲的周期和前一个脉冲的周期。
[0054]
根据本发明优选的,所述进一步配置还包括:曲线绘制,所述曲线绘制用于设置每步时自动绘制的曲线示意图,图中包括x坐标、y坐标、预设总脉冲数、曲线最高速度;所述x坐标是指运行的相对位置,单位脉冲;所述y坐标是指运行速度,单位脉冲/s;所述预设总脉冲数是指在一个包络曲线内所有步中设置的位置数据之和,标注在x坐标轴上;所述曲线最高速度是指一个包络曲线内预设的最高目标速度,标注在y坐标轴上。
[0055]
根据本发明优选的,所述添加步如图9所示是添加步的对话框,包括添加位置、目标速度、目标位置、变化脉冲增量和单脉冲周期增量;
[0056]
所述添加位置是指添加到该位置行之后;所述变化脉冲增量和单脉冲周期增量默认分别是基本配置中的变化脉冲增量和单脉冲周期增量,或,对变化脉冲增量和单脉冲周期增量按照公式(i)和(ii)联动计算调整,只要改动其中一个变量,另外一个变量自动更新。
[0057]
根据本发明优选的,所述设计方法还包括pto驱动步骤:如图10所示是pto驱动的工作流程图,
[0058]
(3-1)驱动初始化引脚、开中断;
[0059]
(3-2)不同工作模式的工作如下:
[0060]
在手动模式下,当启动pto时,脉冲从启停速度开始,根据基本配置中加速配置的单脉冲周期增量值,平滑加速到最高速度,到达最高速度后按最高速度继续运行;当停止pto时,pto脉冲从最高速度开始,根据基本配置中减速配置的单脉冲周期增量值,平滑减速到启停速度后停止pto输出,pto驱动步骤关闭中断;
[0061]
在单速连续运行模式下,当启动pto时,脉冲从启停速度开始,根据基本配置中加速配置的单脉冲周期增量值,平滑加速到目标速度,到达目标速度后按目标速度继续运行;当未选择停止信号激活停止,则pto异常停止;当选择停止信号激活停止时,根据配置的停
止距离平滑地停止pto;若停止距离设为0时,则立即停止,pto驱动步骤关闭中断;
[0062]
在相对位置模式下,当启动pto后,pto驱动步骤按照设置的包络数据依次执行,执行过程中实时更新脉冲计数值和实时周期,当脉冲计数值达到预设总脉冲数时,pto停止,同时触发pto计数完成中断,最后pto驱动步骤关闭中断。
[0063]
根据本发明优选的,所述高速脉冲输入指令的设计包括:编译型ide软件将高速脉冲输入指令配置好的plc硬件资源存储到数据库中,如图11所示,用户在编译型ide软件端调用高速计数器模块进行相关的梯形图程序,高速计数器模块包括以下高速脉冲输入计数模式:
[0064]
mode0:内部方向控制无外部复位的单向高速计数器;
[0065]
mode1:内部方向控制有外部复位的单向高速计数器;
[0066]
mode2:外部方向控制无外部复位的单向高速计数器;
[0067]
mode3:外部方向控制有外部复位的单向高速计数器;
[0068]
mode4:两路时钟输入无外部复位的双向高速计数器;
[0069]
mode5:两路时钟输入有外部复位的双向高速计数器;
[0070]
mode6/8:ab正交相无外部复位的双向高速计数器;
[0071]
mode7/9:ab正交相有外部复位的双向高速计数器。
[0072]
根据本发明优选的,所述高速脉冲输入指令的设计还包括:
[0073]
1)编译型ide软件将用户编程定义的高速计数器相关梯形图的配置参数转译为c语言;
[0074]
2)对高速脉冲输入的计数模式mode0-mode9进行初始化,如图12所示;
[0075]
3)配置编译型ide软件定义的高速计数器的数据结构,如图13所示,包括以下参数:
[0076]
计数模式mode、当前计数值cv、目标计数值pv、控制字、状态字、脉冲引脚1、脉冲引脚2、方向引脚和复位引脚;所述控制字包括计数方向、使能和计数速率;所述状态字包括计数方向状态、cv《pv状态、cv=pv状态和cv》pv状态;所述当前计数值cv和目标计数值pv均支持32位的整型数据;
[0077]
4)根据所选计数模式定义高速计数器的引脚,在不同的计数模式下,初始化的引脚不同,如图12所示:
[0078]
选择计数模式mode0~mode9时,则初始化第一个脉冲引脚;
[0079]
选择计数模式mode4~mode9时,则初始化第二个脉冲引脚;
[0080]
选择计数模式mode1、mode3、mode5、mode7、mode9时,则初始化外部复位引脚;
[0081]
选择计数模式mode2和mode3时,则初始化外部方向引脚;
[0082]
依次将上述配置好的脉冲引脚、方向引脚和复位引脚的外部中断接口进行使能操作;
[0083]
选择计数模式mode0~mode9的高速计数器均具备三种中断函数接口:计数完成中断、计数方向改变中断和计数复位中断;高速计数器的中断程序对话框和编辑框在图14和图15中列出,上述三种高速计数器中断程序分别是嵌套在脉冲引脚外部中断接口、方向引脚外部中断接口和复位引脚外部复位接口内部,其中计数完成中断函数是嵌套在脉冲计数引脚中断接口中,计数方向改变中断函数是嵌套在外部方向改变引脚中断接口中,计数复
位中断函数是嵌套在外部复位中断接口中;
[0084]
计数模式mode6、mode7的计数完成中断是嵌套在定时器计数溢出的中断接口内,计数方向改变中断是采用主函数扫描方式实现;
[0085]
计数模式mode8、mode9的计数完成中断和计数方向改变中断是嵌套在定时器输入捕获中断接口内;
[0086]
在上述三种中断程序内部,用户利用ide软件进行相关中断梯形图程序的设计,如图14、15所示。
[0087]
根据本发明优选的,所述计数模式mode 0~mode5的详细计数流程在图16中列出,图中的左侧流程图是高速脉冲输入引脚1的程序处理流程图;中间流程图是高速脉冲输入引脚或方向改变引脚的程序处理流程图,右侧流程图是复位引脚的程序处理流程图;
[0088]
计数模式mode0和mode1属于内部方向控制的高速计数器,计数方向由用户自定义,在计数时,将脉冲引脚1连接至plc设备输入端口,计数最大频率为200khz;
[0089]
计数模式mode2和mode3属于外部方向控制的高速计数器,在计数时需要1路脉冲信号和1路方向信号,以实现向上和向下计数,计数最大频率为200khz;
[0090]
计数模式mode4和mode5属于双时钟的高速计数器,包括两路脉冲信号:一路是加计数信号,另一路是减计数信号,计数最大频率为200khz。
[0091]
根据本发明优选的,所述计数模式mode6~mode9均属于ab正交相高速计数器,输入两路相位差为90度的脉冲信号,关于详细的计数流程在图17和图18中列出,图17表示的是计数模式mode8和9的ab相脉冲计数流程,图18表示的是计数模式mode6和7的ab相脉冲计数流程,关于计数模式mode6~mode9的脉冲计数的方向选择在图19中详细列出,mode6、mode7、mode8、mode9计数方向均满足图19中的计数方向改变状态;
[0092]
计数模式mode6、mode7采用硬件定时器进行计数,支持2倍频和4倍频:允许更高频率的脉冲计数,用户可以准确读取到当前计数值,但不支持对目标计数值所在的脉冲时刻进行中断操作,计数最大频率为光耦隔离开关频率,例如选用6n137的光耦隔离开关,其频率为10mhz;
[0093]
2倍频的计数方式是读取ab相脉冲的中断触发状态,计数最大频率为光耦隔离开关频率,例如选用6n137的光耦隔离开关,其频率为10mhz,只在a相上进行计数;
[0094]
4倍频的计数方式是读取ab相脉冲的中断触发状态,在a相b相上均进行计数,计数最大频率为光耦隔离开关频率,例如选用6n137的光耦隔离开关,其频率为10mhz,上述倍频计数方式在高速计数的情况下支持用户对目标计数值所在的脉冲时刻进行中断操作。
[0095]
根据本发明优选的,所述计数模式mode8、mode9采用中断方式实现计数,支持1倍频、2倍频和4倍频计数:其中1倍频的计数方式是通过读取a相脉冲的上升沿和下降沿和b相所处电平状态来实现向上计数和向下计数,计数最大频率为100khz;
[0096]
2倍频的计数方式是读取ab相脉冲的中断触发状态,计数最大频率为200khz,只在a相上进行计数;
[0097]
4倍频的计数方式是读取ab相脉冲的中断触发状态,在a相b相上均进行计数,计数最大频率为400khz,上述倍频计数方式在高速计数的情况下支持用户对目标计数值所在的脉冲时刻进行中断操作。
[0098]
本发明的技术优势在于:
[0099]
1、本发明将用户配置的硬件资源和运动控制指令数据保存入数据库中,用户更加方便、快捷的调用pwm、pto和hsc指令进行梯形图编程;ide软件端已经将pwm、pto和hsc指令的底层驱动程序和中断函数进行封装,让用户更加方便调用pwm、pto和hsc指令。
[0100]
2、本发明的hsc指令提供了10种高速脉冲的计数模式,最高可以支持200khz的单路高速脉冲、双路高速脉冲和最高频率的ab相超高速脉冲。
[0101]
3、本发明从用户角度出发,为pto指令和pwm指令设计了详细的参数配置交互界面,便于引导编程人员快速使用。
[0102]
4、本发明在交互设计中融入相关计算公式,相关变量自动联动更新,用户可以根据实际参数随意调试,提高参数调试效率。
[0103]
5、本发明针对pto指令又增加了曲线绘制功能设计,根据用户配置的参数数据,自动生成曲线,使曲线调试过程更加直观明了。
[0104]
6、本发明提出的高速脉冲输出功能设计方法,基于语言转换,借用c语言灵活的编程优势,对曲线包络和步的最大限制数量要求不严格,可适用于更复杂的曲线运动控制场合。
[0105]
7、本发明提出的高速脉冲输出功能设计方法,基于实时数据库的优势,更易封装曲线数据,定制曲线,便于用户多工程随意调用。
附图说明
[0106]
图1是本发明实施例1中pwm和pto资源配置变量表;
[0107]
图2是本发明实施例1中通过编译型ide软件调用pwm指令的方法流程图;
[0108]
图3是本发明实施例1中,拖拽pwm指令到编译型ide软件的编辑区时所显示的pwm参数配置对话框;
[0109]
图4是本发明实施例1中通过编译型ide软件调用pto指令的方法流程图;
[0110]
图5是本发明实施例1中pto参数配置中基本配置对话框;
[0111]
图6是本发明实施例1中pto参数配置中单速连续运行模式下额外配置图;
[0112]
图7是本发明实施例1中pto参数配置中相对模式下包络配置对话框;
[0113]
图8是本发明实施例1中s型曲线速度、加速度变化示意图,图中v是曲线速度、a是加速度,t是运行时间。
[0114]
图9是本发明实施例3中pto包络配置中添加步的对话框;
[0115]
图10是本发明实施例4中pto驱动的工作流程图;
[0116]
图11是本发明实施例5中ide端高速计数器参数配置变量表;
[0117]
图12是本发明实施例5和“应用例5”中高速计数器初始化流程图;
[0118]
图13是本发明实施例5和“应用例5”中ide端高速计数器参数定义对话框;
[0119]
图14是本发明实施例5中和“应用例5”ide端高速计数器中断程序对话框;
[0120]
图15是本发明实施例5和“应用例5”中ide端高速计数器中断程序编辑框;
[0121]
图16是本发明实施例5和“应用例5”中高速计数器模式0~5的工作流程图;
[0122]
图17是本发明实施例和“应用例5”5中高速计数器模式6、7的工作流程图;
[0123]
图18是本发明实施例5和“应用例5”中高速计数器模式8、9的工作流程图;
[0124]
图19是本发明实施例5和“应用例5”中高速计数器模式6~9的计数方向与脉冲信
号关系表;
[0125]
图20是“应用例1”pwm梯形图程序图;
[0126]
图21是“应用例1”pwm基础配置运行结果图;
[0127]
图22是“应用例1”pwm更新周期后运行结果图;
[0128]
图23是“应用例1”pwm更新占空比后运行结果图;
[0129]
图24是“应用例2”pto手动模式梯形图程序图;
[0130]
图25是“应用例2”pto手动模式加速段运行结果图;
[0131]
图26是“应用例2”pto手动模式匀速段运行结果图;
[0132]
图27是“应用例2”pto手动模式减速段运行结果图;
[0133]
图28是“应用例3”pto单速连续运行模式加速段运行结果图;
[0134]
图29是“应用例3”pto单速连续运行模式匀速段运行结果图;
[0135]
图30是“应用例3”pto单速连续运行模式减速段运行结果图;
[0136]
图31是“应用例4”pto相对位置模式单包络运行结果图;
[0137]
图32是“应用例4”pto相对位置模式全包络运行结果图。
[0138]
图33是“应用例6”综合验证的实验硬件结构图;
[0139]
图34是“应用例6”综合验证的实验实物环境图;
[0140]
图35是“应用例6”综合验证的hsc配置图;
[0141]
图36、37是“应用例6”综合验证的pto配置图;
[0142]
图38是“应用例6”综合验证的梯形图程序图;
[0143]
图39是“应用例6”综合验证的示波器验证结果运行图;
[0144]
图40是“应用例6”综合验证的编码器验证的计算机接收信号转速统计图。
具体实施方式
[0145]
下面结合实施例和说明书附图对本发明做详细的说明,但不限于此。
[0146]
实施例1、
[0147]
一种适用于运动控制的plc指令设计方法,包括高速脉冲输出指令的设计和高速脉冲输入指令的设计;
[0148]
所述高速脉冲输出指令的设计,包括:包括:编译型ide软件将高速脉冲输出指令配置好的plc硬件资源存储到数据库中,如图1中30-32序号显示所示;所述编译型ide软件是指基于语言转换的编译型plc的集成开发环境;所述基于语言转换的编译型plc的工作原理即是将梯形图转译成c语言程序直接编译执行;所述集成开发环境是由编辑器、管理器、配置器构成的一个可以实现plc编程管理的工具软件;pwm指令与pto指令共用高速输出端口;通过编译型ide软件调用pwm指令和pto指令进行相关的梯形图程序;
[0149]
所述pto指令包括三种高速脉冲输出模式:手动模式、单速连续运行模式和相对位置模式;所述手动模式通过开关按钮手动启停高速脉冲输出;所述单速连续运转模式是指以一个固定的目标速度连续运行;所述相对位置模式是指通过相对计算位置的方法设置一个包络运动曲线的参数,以每步起点为相对零点;所述包络运动曲线是指一个曲线,即从起始速度到加速、匀速、减速至停止速度一个运动过程;所述步是指一个包络运动曲线内的一次开始加/减速到匀速运行结束的过程,特别地最后一步包括减速至停止速度段;
[0150]
通过编译型ide软件调用pwm指令的方法包括:
[0151]
如图2所示,
[0152]
(1-1)初始化pwm指令的相关参数:
[0153]
所述相关参数包括,名称、pwm通道、引脚说明、周期、取值范围、占空比和备注;所述名称为pwm指令功能的别名;所述pwm通道用于选择在数据库中定义的pwm硬件资源;所述引脚说明用于对选择的pwm通道中具体plc位置进行说明,其中引脚说明的数据是通过查询硬件资源配置数据库获取的;所述周期是根据所述取值范围设置的,单位可选;所述占空比是设置的占空比数据,可为小数;所述备注用于添加说明;如图3所示,拖拽pwm指令到编译型ide软件的编辑区,自动弹出的对话框用于设置pwm指令的相关参数;单击确定按钮后,所述初始化pwm指令的相关参数完成;
[0154]
(1-2)初始化pwm数据结构体:
[0155]
所述pwm数据结构体包括,布尔型的单位变量、浮点型的占空比变量、整型的周期变量和pwm引脚变量;
[0156]
编译型ide软件将步骤(1-1)中pwm指令的相关参数,解析到pwm的数据结构中,以初始化pwm数据结构体,所述解析方法如下:将步骤(1-1)中周期、占空比分别直接赋给pwm数据结构体中的整型的周期变量和整型的周期变量;将步骤(1-1)中所述周期选择的单位直接赋给pwm数据结构体中的布尔型的单位变量:当值为true时,则代表微妙;当值为false时,则代表毫秒;将步骤(1-1)中pwm通道配置的引脚数据赋给pwm数据结构体中的pwm引脚变量,例如,用户使用q0.0作为pwm的引脚,则通过查询硬件资源配置数据库,q0.0对应cpu引脚为pa0,则pwm数据结构体中pwm引脚变量即为pa0;
[0157]
(1-3)pwm驱动接口
[0158]
用于实现pwm的脉宽调制功能,而驱动实现过程中需要的用户数据为步骤(1-2)中初始化的pwm数据结构体;所述pwm驱动接口包括:pwm初始化配置接口pwm_config()、pwm周期更新接口pwm_cycle_update()和pwm占空比更新接口pwm_dutyratio_update();
[0159]
通过编译型ide软件调用pto指令的方法包括:
[0160]
如图4所示,
[0161]
(2-1)初始化pto指令的相关参数:
[0162]
所述相关参数包括,基本配置参数和针对各模式再进一步配置参数;
[0163]
所述基本配置参数包括手动、单速连续运行和相对位置三种模式都必须配置的参数,如图5所示,基本信息、设置端口、电机速度、加速设置和减速设置;所述基本信息包括名称和备注;所述名称为pto指令功能的别名;所述备注用于添加说明;所述设置端口用于在数据库中配置的高速脉冲输出端口,与pwm端口共用,但不可兼容,即一个端口要么选择pto模式要么选择pwm模式,设置容错提醒;所述电机速度包括最高速度、启停速度和最低速度,其中最低速度的值与启停速度相同,单位是脉冲/秒;所述加速设置和减速设置包括加速时间t、变化脉冲数量δn和单脉冲周期增量δt;所述加速时间t单位是毫秒;所述变化脉冲数量δn的单位是脉冲;所述单脉冲周期增量δt的单位是微妙/脉冲;其中,终止周期tm、起始周期t0、加速时间t、变化脉冲数量δn和单脉冲周期增量δt这五个变量的关系如公式(i)和(ii)示,所述终止周期tm是对应终止频率的倒数;所述起始周期t0是对应起始频率的倒数;
[0164][0165][0166]
针对各模式再进一步配置的方法,包括:
[0167]
当选择手动模式时,则只做所述基本配置参数即可;
[0168]
在加、减速配置时,在最高速度和启停速度已配置的情况下,单脉冲周期增量、变化脉冲数量、加速/减速时间三个变量根据公式自动计算,只要输入任何一个变量,其他两个变量自动变化,这样可以大大降低编程人员繁琐的计算和单位换算;
[0169]
当选择单速连续运行模式时,如图6所示,配置包括:目标速度、停止距离;所述目标速度的单位是脉冲/秒;所述停止距离单位是脉冲,且只有复选框选中停止信号时才可配置停止距离;所述停止信号是指触发单速连续运行模式下的pto停止输出高速脉冲信号;
[0170]
当选择相对位置模式时,所述相对位置模式是指一整段pto输出包括n个包络,每个包络由m步组成;每个包络中:最后一步中包含一个上升/下降段、一个平行段和一个结束段,其余步均包含一个上升/下降段和一个平行段;如图7所示,配置包括:添加包络、添加步、修改、删除和导出包络;所述添加包络用于自动添加一个包络,并对包络命名;所述添加步用于为当前包络添加一步;所述修改用于选中一步后,对步数据进行修改;所述删除用于选中一步后,删除当前选中的步;所述导出包络用于将当前包络导出封装成一个包络库,以定制和调用标准化曲线;所述包络库即是封装好的一个包络曲线的参数配置,当用户再次使用该包络库时,只需加载该包络库所封装的包络曲线即可,无需重复设置;
[0171]
拖拽pto指令到编译型ide软件的编辑区,自动弹出的对话框用于配置pto指令的相关参数,包括基本配置和针对各模式再进一步配置;
[0172]
(2-2)初始化pto数据结构体:
[0173]
所述pto数据结构体包括pto引脚变量、整型的最高周期变量、整型的启停周期变量、浮点型的单脉周期增量、整型的工作模式变量、单速连续运行模式结构体、相对位置模式结构体;
[0174]
所述单速连续运行模式结构体包括布尔型的停止标志变量、整型的目标周期变量;所述相对位置模式结构体包括整型的包络总数变量、包络结构体;所述包络结构体包括整型的总步数变量、步结构体;所述步结构体包括整型的起始周期、目标周期、预设脉冲变量;
[0175]
编译型ide软件将步骤(2-1)中pto指令的相关参数,解析到pto数据结构体中,初始化pto数据结构体,所述解析方法如下:将步骤(2-1)中设置端口数据赋给pto数据结构体中的pto引脚变量,例如用户使用q0.1作为pto的引脚,则通过查询硬件资源配置数据库,q0.1对应cpu引脚为pa1,则结构体中pto引脚变量即为pa1;将步骤(2-1)中最高速度按微妙为单位换算成pto数据结构体最高周期变量;将步骤(2-1)中启停速度按微妙为单位换算成pto数据结构体启停周期变量;将步骤(2-1)中单脉冲周期增量直接赋给pto数据结构体中单速脉冲周期增量;将步骤(2-1)中配置模式解析到pto数据结构体中的工作模式变量:值为1代表手动模式;值为2代表单速连续运行模式;值为3代表相对位置模式;将步骤(2-1)中单速模式配置的目标速度以微妙为计算单位转化为周期变量赋给单速连续运行模式结构
体中的目标周期变量,复选框选中的停止信号赋给停止标志:值为true代表停止信号选择;值为false代表停止信号未选择;将步骤(2-1)中相对位置模式配置的包络总数统计后赋给相对位置模式结构体中的包络总数变量;将步骤(2-1)中相对位置模式配置的步总数统计后赋给包络结构体中的步总数;将步骤(2-1)中相对位置模式配置的单步目标速度按微妙为单位转化为步结构体中的目标周期变量;将步骤(2-1)中相对位置模式配置的单步目标位置直接赋给步结构体中的预设脉冲变量;将步骤(2-1)中相对位置模式配置的上一步的目标速度按微妙为计算单位转化为步结构体中的起始周期变量;所述第一步的起始周期是基本设置中的启停周期值;
[0176]
(2-3)pto驱动接口
[0177]
用于实现pto的脉冲传输出功能,而驱动实现过程中需要的用户数据为步骤(2-2)中初始化的pto数据结构体;所述pto驱动接口包括pto初始化配置接口pto_config()、pto启动接口startpto()、pto停止接口stoppto()。
[0178]
在所述步骤(2-3)中,为让pto进行加减速时更加平滑,在所述pto启动接口startpto()、pto停止接口stoppto()对应的函数内,添加s曲线算法使得加速度不产生突变。
[0179]
所述s曲线算法包括加加速段、减加速段、加减速段和减减速段,如图8所示,在所述算法下,pto对步进电机的控制稳定,速度变化平滑,大大改善了启动慢、启动失步和启停段冲击大等现象,所述s曲线算法包括公式(ⅲ)、公式(ⅳ)和公式(

);
[0180]
加速度的变化率k固定不变,通过人机交互设计中设置的参数cn、c0和n求得:
[0181][0182]
式(ⅲ)中:k为加速度的变化率,固定不变;cn、c0、n分别为目标频率的对应周期、起始速度的对应周期和变速时的脉冲个数;
[0183]
加速度分为两个变化阶段,一个在前半个变速阶段按照变化率k进行线性变化;一个是在后半个变速阶段进行线性变化;加速度的方向由pto的加减速阶段决定,加速时为正,减速时为负;加速度的大小如公式(ⅳ)所示:
[0184][0185]
式(ⅳ)中:x、a
x
分别为当前脉冲编号和当前脉冲的加速度大小;
[0186]
周期的变化关系为:
[0187]cx
=c
x-1
+a
x
ꢀꢀ
(

)
[0188]
式(

)中:c
x
、c
x-1
分别为当前脉冲的周期和前一个脉冲的周期。。
[0189]
实施例2、
[0190]
如实施例1所述的设计方法,所述进一步配置还包括:曲线绘制,所述曲线绘制用于设置每步时自动绘制的曲线示意图,图中包括x坐标、y坐标、预设总脉冲数、曲线最高速
度;所述x坐标是指运行的相对位置,单位脉冲;所述y坐标是指运行速度,单位脉冲/s;所述预设总脉冲数是指在一个包络曲线内所有步中设置的位置数据之和,标注在x坐标轴上;所述曲线最高速度是指一个包络曲线内预设的最高目标速度,标注在y坐标轴上。
[0191]
实施例3、
[0192]
如实施例1、2所述的设计方法,所述添加步如图9所示是添加步的对话框,包括添加位置、目标速度、目标位置、变化脉冲增量和单脉冲周期增量;
[0193]
所述添加位置是指添加到该位置行之后;所述变化脉冲增量和单脉冲周期增量默认分别是基本配置中的变化脉冲增量和单脉冲周期增量,或,对变化脉冲增量和单脉冲周期增量按照公式(i)和(ii)联动计算调整,只要改动其中一个变量,另外一个变量自动更新。
[0194]
实施例4、
[0195]
如实施例1、2、3所述的设计方法,还包括pto驱动步骤:如图10所示是pto驱动的工作流程图,
[0196]
(3-1)驱动初始化引脚、开中断;
[0197]
(3-2)不同工作模式的工作如下:
[0198]
在手动模式下,当启动pto时,脉冲从启停速度开始,根据基本配置中加速配置的单脉冲周期增量值,平滑加速到最高速度,到达最高速度后按最高速度继续运行;当停止pto时,pto脉冲从最高速度开始,根据基本配置中减速配置的单脉冲周期增量值,平滑减速到启停速度后停止pto输出,pto驱动步骤关闭中断;
[0199]
在单速连续运行模式下,当启动pto时,脉冲从启停速度开始,根据基本配置中加速配置的单脉冲周期增量值,平滑加速到目标速度,到达目标速度后按目标速度继续运行;当未选择停止信号激活停止,则pto异常停止;当选择停止信号激活停止时,根据配置的停止距离平滑地停止pto;若停止距离设为0时,则立即停止,pto驱动步骤关闭中断;
[0200]
在相对位置模式下,当启动pto后,pto驱动步骤按照设置的包络数据依次执行,执行过程中实时更新脉冲计数值和实时周期,当脉冲计数值达到预设总脉冲数时,pto停止,同时触发pto计数完成中断,最后pto驱动步骤关闭中断。
[0201]
实施例5、
[0202]
如实施例1、2、3、4所述的设计方法,所述高速脉冲输入指令的设计包括:编译型ide软件将高速脉冲输入指令配置好的plc硬件资源存储到数据库中,如图11所示,用户在编译型ide软件端调用高速计数器模块进行相关的梯形图程序,高速计数器模块包括以下高速脉冲输入计数模式:
[0203]
mode0:内部方向控制无外部复位的单向高速计数器;
[0204]
mode1:内部方向控制有外部复位的单向高速计数器;
[0205]
mode2:外部方向控制无外部复位的单向高速计数器;
[0206]
mode3:外部方向控制有外部复位的单向高速计数器;
[0207]
mode4:两路时钟输入无外部复位的双向高速计数器;
[0208]
mode5:两路时钟输入有外部复位的双向高速计数器;
[0209]
mode6/8:ab正交相无外部复位的双向高速计数器;
[0210]
mode7/9:ab正交相有外部复位的双向高速计数器。
[0211]
所述高速脉冲输入指令的设计还包括:
[0212]
1)编译型ide软件将用户编程定义的高速计数器相关梯形图的配置参数转译为c语言;
[0213]
2)对高速脉冲输入的计数模式mode0-mode9进行初始化,如图12所示;
[0214]
3)配置编译型ide软件定义的高速计数器的数据结构,如图13所示,包括以下参数:
[0215]
计数模式mode、当前计数值cv、目标计数值pv、控制字、状态字、脉冲引脚1、脉冲引脚2、方向引脚和复位引脚;所述控制字包括计数方向、使能和计数速率;所述状态字包括计数方向状态、cv《pv状态、cv=pv状态和cv》pv状态;所述当前计数值cv和目标计数值pv均支持32位的整型数据;
[0216]
4)根据所选计数模式定义高速计数器的引脚,在不同的计数模式下,初始化的引脚不同,如图12所示:
[0217]
选择计数模式mode0~mode9时,则初始化第一个脉冲引脚;
[0218]
选择计数模式mode4~mode9时,则初始化第二个脉冲引脚;
[0219]
选择计数模式mode1、mode3、mode5、mode7、mode9时,则初始化外部复位引脚;
[0220]
选择计数模式mode2和mode3时,则初始化外部方向引脚;
[0221]
依次将上述配置好的脉冲引脚、方向引脚和复位引脚的外部中断接口进行使能操作;
[0222]
选择计数模式mode0~mode9的高速计数器均具备三种中断函数接口:计数完成中断、计数方向改变中断和计数复位中断;高速计数器的中断程序对话框和编辑框在图14和图15中列出,上述三种高速计数器中断程序分别是嵌套在脉冲引脚外部中断接口、方向引脚外部中断接口和复位引脚外部复位接口内部,其中计数完成中断函数是嵌套在脉冲计数引脚中断接口中,计数方向改变中断函数是嵌套在外部方向改变引脚中断接口中,计数复位中断函数是嵌套在外部复位中断接口中;
[0223]
计数模式mode6、mode7的计数完成中断是嵌套在定时器计数溢出的中断接口内,计数方向改变中断是采用主函数扫描方式实现;
[0224]
计数模式mode8、mode9的计数完成中断和计数方向改变中断是嵌套在定时器输入捕获中断接口内;
[0225]
在上述三种中断程序内部,用户利用ide软件进行相关中断梯形图程序的设计,如图14、15所示。
[0226]
所述计数模式mode 0~mode5的详细计数流程在图16中列出,图中的左侧流程图是高速脉冲输入引脚1的程序处理流程图;中间流程图是高速脉冲输入引脚或方向改变引脚的程序处理流程图,右侧流程图是复位引脚的程序处理流程图;
[0227]
计数模式mode0和mode1属于内部方向控制的高速计数器,计数方向由用户自定义,在计数时,将脉冲引脚1连接至plc设备输入端口,计数最大频率为200khz;
[0228]
计数模式mode2和mode3属于外部方向控制的高速计数器,在计数时需要1路脉冲信号和1路方向信号,以实现向上和向下计数,计数最大频率为200khz;
[0229]
计数模式mode4和mode5属于双时钟的高速计数器,包括两路脉冲信号:一路是加计数信号,另一路是减计数信号,计数最大频率为200khz。
[0230]
所述计数模式mode6~mode9均属于ab正交相高速计数器,输入两路相位差为90度的脉冲信号,关于详细的计数流程在图17和图18中列出,图17表示的是计数模式mode8和9的ab相脉冲计数流程,图18表示的是计数模式mode6和7的ab相脉冲计数流程,关于计数模式mode6~mode9的脉冲计数的方向选择在图19中详细列出,mode6、mode7、mode8、mode9计数方向均满足图19中的计数方向改变状态;
[0231]
计数模式mode6、mode7采用硬件定时器进行计数,支持2倍频和4倍频:允许更高频率的脉冲计数,用户可以准确读取到当前计数值,但不支持对目标计数值所在的脉冲时刻进行中断操作,计数最大频率为光耦隔离开关频率,例如选用6n137的光耦隔离开关,其频率为10mhz;
[0232]
2倍频的计数方式是读取ab相脉冲的中断触发状态,计数最大频率为光耦隔离开关频率,例如选用6n137的光耦隔离开关,其频率为10mhz,只在a相上进行计数;
[0233]
4倍频的计数方式是读取ab相脉冲的中断触发状态,在a相b相上均进行计数,计数最大频率为光耦隔离开关频率,例如选用6n137的光耦隔离开关,其频率为10mhz,上述倍频计数方式在高速计数的情况下支持用户对目标计数值所在的脉冲时刻进行中断操作。
[0234]
所述计数模式mode8、mode9采用中断方式实现计数,支持1倍频、2倍频和4倍频计数:其中1倍频的计数方式是通过读取a相脉冲的上升沿和下降沿和b相所处电平状态来实现向上计数和向下计数,计数最大频率为100khz;
[0235]
2倍频的计数方式是读取ab相脉冲的中断触发状态,计数最大频率为200khz,只在a相上进行计数;
[0236]
4倍频的计数方式是读取ab相脉冲的中断触发状态,在a相b相上均进行计数,计数最大频率为400khz,上述倍频计数方式在高速计数的情况下支持用户对目标计数值所在的脉冲时刻进行中断操作。
[0237]
应用例1、
[0238]
以下应用实现pwm功能测试,梯形图程序如图20所示,测试方案为:首先将基础设置设为周期1000微秒,占空比为50%,如图3所示;然后,当按键0按下时,周期自增1000微秒;当按键1按下时,占空比自减10%;测试步骤如下:
[0239]
s1:基础设置为周期1000us、占空比为50%,运行结果如图21所示;
[0240]
s2:在s1基础上,当用户按一次按键0时,pwm0的周期增加1000us,变为2000us,占空比仍为50%,运行结果如图22所示;
[0241]
s3:在s2基础上,当用户再按一次按键1时,pwm0的占空比自减10%,变为40%,周期仍为2000us,运行结果如图23所示;
[0242]
综上s1-s3的运行结果显示,pwm功能测试数据精确。
[0243]
应用例2、
[0244]
以下应用实现pto手动模式测试,梯形图程序如图24所示,按键0控制pto启动,按键1控制pto停止,测试方案为:选择pto第0路为测试信道,按如图5所示进行基本配置,最高速度10000脉冲/s、启停速度100脉冲/s、加速时间45ms、变化脉冲数量10脉冲、单脉冲周期增量-990us/脉冲、减速时间45ms、变化脉冲数量10脉冲、单脉冲周期增量990us/脉冲;测试步骤如下:
[0245]
s4:当按键0按下时,pto从启停速度100脉冲/s加速到最高速度10000脉冲/s,加速
段运行结果如图25所示;匀速段以最高速度10000脉冲/s运行,运行结果如图26所示;
[0246]
s5:当按键1按下时,pto从最高速度10000脉冲/s减速到启停速度100脉冲/s,减速段运行结果如图27所示;
[0247]
综上s4-s5的运行结果显示,pto手动模式功能测试数据精确。
[0248]
应用例3、
[0249]
以下应用实现pto单速连续运行模式测试,梯形图主程序只需要调用一个pto指令,按键0控制的启动程序,停止信号子程序由按键1控制停止,测试方案为:选择pto第0路为测试信道,按如图6所示进行基本配置和单速连续运行配置,基本配置数据为最高速度10000脉冲/s、启停速度100脉冲/s、加速时间45ms、变化脉冲数量10脉冲、单脉冲周期增量-990us/脉冲、减速时间45ms、变化脉冲数量10脉冲、单脉冲周期增量990us/脉冲;单速连续运行配置数据为目标速度5000冲/s、停止距离10个脉冲;测试步骤如下:
[0250]
s6:当按键0按下时,pto从启停速度100脉冲/s加速到目标速度5000脉冲/s,加速段运行结果如图28所示;匀速段以目标速度5000脉冲/s运行,运行结果如图29所示;
[0251]
s7:当按键1按下时,pto从目标速度5000脉冲/s减速到启停速度100脉冲/s,减速段运行结果如图30所示;
[0252]
综上s6-s7的运行结果显示,pto单速连续运行模式功能测试数据精确。
[0253]
应用例4、
[0254]
以下应用实现pto相对位置模式测试,梯形图主程序只需要调用一个pto指令,按键0控制pto启动,测试方案为:选择pto第0路为测试信道,按如图5所示进行基本配置,图7所示进行包络配置;基本配置数据为最高速度10000脉冲/s、启停速度100脉冲/s、加速时间45ms、变化脉冲数量10脉冲、单脉冲周期增量-990us/脉冲、减速时间45ms、变化脉冲数量10脉冲、单脉冲周期增量990us/脉冲;包络配置数据为pto包括三个曲线,为了便于观察每段曲线参数设置相同,但曲线设置如下:第一步目标速度为1000脉冲/s、目标位置12个脉冲、变化脉冲增量为9个脉冲、单脉冲周期增量为-1000us/脉冲;第二步目标速度为10000脉冲/s、目标位置12个脉冲、变化脉冲增量为9个脉冲、单脉冲周期增量为-100us/脉冲;第三步目标速度为1000脉冲/s、目标位置15个脉冲、变化脉冲增量为3个脉冲、单脉冲周期增量为300us/脉冲;测试步骤如下:
[0255]
s8:当按键0按下时,第一步:pto从启停速度100脉冲/s加速到第一步的目标速度1000脉冲/s,加速段发出9个脉冲,匀速运行3个脉冲;第二步:从第一步的目标速度1000脉冲/s加速到第二步的目标速度10000脉冲/s,加速段发出9个脉冲,匀速运行3个脉冲;第三步:从第二步的目标速度10000脉冲/s减速到第三步的目标速度1000脉冲/s,减速段1发出3个脉冲,匀速运行3个脉冲,最后从匀速段1000脉冲/s减速到启停速度100脉冲/s,减速段2运行9个脉冲;第一个曲线运行结果如图31所示,三个曲线运行结果如图32所示;
[0256]
综上s8的运行结果显示,pto相对位置模式功能测试数据精确。
[0257]
应用例5、
[0258]
在编写完成高速脉冲计数的相关梯形图之后就可以将主程序和中断子程序编译成为二进制文件,下载到plc处理器中,在plc内部程序的执行流程就如图12所示,plc会将ide软件端图13、14配置的参数装载到高速计数器的数据结构中,之后按照高速计数器的计数模式进行配置硬件资源,包括:
[0259]
第一个脉冲引脚的外部中断、第二个脉冲引脚的外部中断、外部复位引脚的外部中断和外部方向引脚的外部中断,最后使能上述配置引脚的中断函数接口;图16、图17和图18的流程图的程序就是嵌套在上述四个引脚的外部中断函数内。
[0260]
图16表示的是计数模式mode0~mode5的程序流程图,其中左侧的流程图是第一个脉冲引脚触发外部中断函数后执行的程序,若当前计数模式处于双输入模式(mode4和mode5),则会改变内部计数方向为向上计数,否则(mode0~mode3)直接进行计数;如果当前计数值cv等于目标计数值pv时,会触发一次如图15中的高速计数完成中断函数。中间的流程图是第二个脉冲引脚或外部方向引脚触发外部中断函数后执行的程序,若当前计数模式处于双输入模式(mode4和mode5),则进行向下计数;如果当前计数值等于预设值时,会触发一次如图15中的高速计数完成中断函数,如果当前计数模式处于外部方向控制模式(mode2和mode3),读取当前引脚的电平状态后更新当前的计数方向,同时进入高速计数方向改变中断函数。右侧的流程图是复位引脚触发外部中断函数后执行的程序,若当前高速计数器处于外部复位模式(mode1或mode3或mode5),则复位当前高速计数器,将当前高速计数器的计数值cv清零。
[0261]
计数模式mode6和mode7的高速计数模式是根据图18右侧的流程图执行程序,计数模式mode6和mode7是支持高达10mhz,即6n137的光耦隔离开关频率的超高速脉冲进行计数的,是利用定时器的外部计数方式实现,还支持2倍频和4倍频计数,更新计数方向的规则在图19的表格中列出,在硬件上采用6n137高速通信光耦隔离,软件端是通过使能定时器的计数溢出中断实现,当目标计数值pv大于0xffff时,采用循环递减的方式给定时器预装值赋值,直到预装值小于0xffff后会触发计数完成中断函数,而计数方向的判断采用图18左侧的流程图执行,在主函数扫描执行,若发生方向改变则进入高速计数方向改变中断函数。
[0262]
计数模式mode8和mode9采用如图17定时器输入捕获方式进行计数,支持最大400khz的高速脉冲进行计数,支持1倍频、2倍频和4倍频计数。当ab相引脚接收到脉冲后,读取当前脉冲引脚的电平状态,之后改变该引脚的输入捕获极性,计数过程和计数方向是根据图19中的表格进行更新。其中1倍频是指只在b相脉冲引脚电平为低时的a相脉冲引脚上计数,2倍频是指在b相脉冲引脚电平为高和低时的a相脉冲引脚上计数,4倍频是指在a相脉冲和b相脉冲上均进行计数,当当前计数值等于目标计数值时进入计数完成中断函数,当判断计数方向发生改变后进入高速计数方向改变中断函数。
[0263]
应用例6、
[0264]
以下应用通过搭建硬件验证平台,综合测试了运动控制相关的pto和hsc,测试步骤分为:软硬件准备、功能验证、示波器验证、编码器验证。
[0265]
步骤一:软硬件准备
[0266]
如图33所示是验证实验硬件结构图,实验实物环境如图34所示。实验过程是:当编码器转动一圈时,plc高数计数器接收4000个脉冲信号,同时脉冲串每段输出4000个高速脉冲信号,驱动步进电机旋转5圈;其中,编码器一圈发出是1000个脉冲,hsc设置成4倍频,那么编码器一圈,plc即可读取4000个脉冲,hsc配置如图35所示;其中,pto配置如图36、37所示;步进电机驱动器设置成一圈800个脉冲。编写梯形图程序如图38所示所示。
[0267]
步骤二:功能验证
[0268]
将梯形图程序经过转译、编译后生成二进制文件,通过j-link下载器下载到
sk2109 plc中。通过外部按键触发plc的i0.0端子闭合,启动pto,此时示波器与驱动器接收到脉冲信号。驱动器接收到脉冲信号后控制步进电机运转,步进电机通过传动装置带动编码器旋转,sk2109 plc通过高速计数器功能将编码器传输的数据进行接收,最终通过rs485将数据传输给计算机中。
[0269]
步骤三:示波器验证
[0270]
示波器从plc端口接收的整段pto波形图如图39所示,其左上方为一段pto输出波形,右上方为pto最大目标速度输出波形,左下方为pto加速输出波形,右下方为pto减速输出波形。经过对比,此图像中的脉冲个数为4000个、最大目标速度周期为50us等,这些参数与pto人机交互中的设置一致。
[0271]
步骤四:编码器验证
[0272]
计算机通过rs485接收编码器传输给plc的信号,在一段pto中计算机接收的信号转速图如图40所示,其中横坐标为脉冲个数,纵坐标为转速,其波形与包络中设置的速度变化曲线图基本一致。在此段pto中plc共接收到20000个编码器发出的信号,根据编码器和高速计数器的设置,此时编码器共转动五圈,所以步进电机带动编码器共转动了五圈,此时推断出步进电机驱动器共接收到了20000个高速脉冲信号,此参数与pto人机交互中的设置一致。

技术特征:
1.一种适用于运动控制的plc指令设计方法,其特征在于,包括高速脉冲输出指令的设计和高速脉冲输入指令的设计;所述高速脉冲输出指令的设计,包括:pwm指令与pto指令共用高速输出端口;所述pto指令包括三种高速脉冲输出模式:手动模式、单速连续运行模式和相对位置模式;所述手动模式通过开关按钮手动启停高速脉冲输出;所述单速连续运转模式是指以一个固定的目标速度连续运行;所述相对位置模式是指通过相对计算位置的方法设置一个包络运动曲线的参数,以每步起点为相对零点;通过编译型ide软件调用pwm指令的方法包括:(1-1)初始化pwm指令的相关参数:所述相关参数包括,名称、pwm通道、引脚说明、周期、取值范围、占空比和备注;所述名称为pwm指令功能的别名;所述pwm通道用于选择在数据库中定义的pwm硬件资源;所述引脚说明用于对选择的pwm通道中具体plc位置进行说明,其中引脚说明的数据是通过查询硬件资源配置数据库获取的;所述周期是根据所述取值范围设置的,单位可选;所述占空比是设置的占空比数据;所述备注用于添加说明;(1-2)初始化pwm数据结构体:所述pwm数据结构体包括,布尔型的单位变量、浮点型的占空比变量、整型的周期变量和pwm引脚变量;编译型ide软件将步骤(1-1)中pwm指令的相关参数,解析到pwm的数据结构中,以初始化pwm数据结构体,所述解析方法如下:将步骤(1-1)中周期、占空比分别直接赋给pwm数据结构体中的整型的周期变量和整型的周期变量;将步骤(1-1)中所述周期选择的单位直接赋给pwm数据结构体中的布尔型的单位变量:当值为true时,则代表微妙;当值为false时,则代表毫秒;将步骤(1-1)中pwm通道配置的引脚数据赋给pwm数据结构体中的pwm引脚变量;(1-3)pwm驱动接口用于实现pwm的脉宽调制功能,而驱动实现过程中需要的用户数据为步骤(1-2)中初始化的pwm数据结构体;所述pwm驱动接口包括:pwm初始化配置接口pwm_config()、pwm周期更新接口pwm_cycle_update()和pwm占空比更新接口pwm_dutyratio_update();通过编译型ide软件调用pto指令的方法包括:(2-1)初始化pto指令的相关参数:所述相关参数包括,基本配置参数和针对各模式再进一步配置参数;所述基本配置参数包括基本信息、设置端口、电机速度、加速设置和减速设置;所述基本信息包括名称和备注;所述名称为pto指令功能的别名;所述备注用于添加说明;所述设置端口用于在数据库中配置的高速脉冲输出端口,与pwm端口共用,但不可兼容,设置容错提醒;所述电机速度包括最高速度、启停速度和最低速度,其中最低速度的值与启停速度相同,单位是脉冲/秒;所述加速设置和减速设置包括加速时间t、变化脉冲数量δn和单脉冲周期增量δt;所述加速时间t单位是毫秒;所述变化脉冲数量δn的单位是脉冲;所述单脉冲周期增量δt的单位是微妙/脉冲;其中,终止周期t
m
、起始周期t0、加速时间t、变化脉冲数量δn和单脉冲周期增量δt这五个变量的关系如公式(i)和(ii)示,所述终止周期t
m
是对应终止频率的倒数;所述起始周期t0是对应起始频率的倒数;
针对各模式再进一步配置的方法,包括:当选择手动模式时,则只做所述基本配置参数即可;在加、减速配置时,在最高速度和启停速度已配置的情况下,单脉冲周期增量、变化脉冲数量、加速/减速时间三个变量根据公式自动计算,只要输入任何一个变量,其他两个变量自动变化,这样可以大大降低编程人员繁琐的计算和单位换算;当选择单速连续运行模式时,配置包括:目标速度、停止距离;所述目标速度的单位是脉冲/秒;所述停止距离单位是脉冲,且只有复选框选中停止信号时才可配置停止距离;所述停止信号是指触发单速连续运行模式下的pto停止输出高速脉冲信号;当选择相对位置模式时,配置包括:添加包络、添加步、修改、删除和导出包络;所述添加包络用于自动添加一个包络,并对包络命名;所述添加步用于为当前包络添加一步;所述修改用于选中一步后,对步数据进行修改;所述删除用于选中一步后,删除当前选中的步;所述导出包络用于将当前包络导出封装成一个包络库,以定制和调用标准化曲线;拖拽pto指令到编译型ide软件的编辑区,自动弹出的对话框用于配置pto指令的相关参数,包括基本配置和针对各模式再进一步配置;(2-2)初始化pto数据结构体:所述pto数据结构体包括pto引脚变量、整型的最高周期变量、整型的启停周期变量、浮点型的单脉周期增量、整型的工作模式变量、单速连续运行模式结构体、相对位置模式结构体;所述单速连续运行模式结构体包括布尔型的停止标志变量、整型的目标周期变量;所述相对位置模式结构体包括整型的包络总数变量、包络结构体;所述包络结构体包括整型的总步数变量、步结构体;所述步结构体包括整型的起始周期、目标周期、预设脉冲变量;编译型ide软件将步骤(2-1)中pto指令的相关参数,解析到pto数据结构体中,初始化pto数据结构体,所述解析方法如下:将步骤(2-1)中设置端口数据赋给pto数据结构体中的pto引脚变量;将步骤(2-1)中最高速度按微妙为单位换算成pto数据结构体最高周期变量;将步骤(2-1)中启停速度按微妙为单位换算成pto数据结构体启停周期变量;将步骤(2-1)中单脉冲周期增量直接赋给pto数据结构体中单速脉冲周期增量;将步骤(2-1)中配置模式解析到pto数据结构体中的工作模式变量:值为1代表手动模式;值为2代表单速连续运行模式;值为3代表相对位置模式;将步骤(2-1)中单速模式配置的目标速度以微妙为计算单位转化为周期变量赋给单速连续运行模式结构体中的目标周期变量,复选框选中的停止信号赋给停止标志:值为true代表停止信号选择;值为false代表停止信号未选择;将步骤(2-1)中相对位置模式配置的包络总数统计后赋给相对位置模式结构体中的包络总数变量;将步骤(2-1)中相对位置模式配置的步总数统计后赋给包络结构体中的步总数;将步骤(2-1)中相对位置模式配置的单步目标速度按微妙为单位转化为步结构体中的目标周期变量;将步骤(2-1)中相对位置模式配置的单步目标位置直接赋给步结构体中的预设脉冲变量;将步骤(2-1)中相对位置模式配置的上一步的目标速度按微妙为计算单位转化为步结构体中的
起始周期变量;所述第一步的起始周期是基本设置中的启停周期值;(2-3)pto驱动接口用于实现pto的脉冲传输出功能,而驱动实现过程中需要的用户数据为步骤(2-2)中初始化的pto数据结构体;所述pto驱动接口包括pto初始化配置接口pto_config()、pto启动接口startpto()、pto停止接口stoppto()。2.根据权利要求1所述的一种适用于运动控制的plc指令设计方法,其特征在于,在所述步骤(2-3)中,为让pto进行加减速时更加平滑,在所述pto启动接口startpto()、pto停止接口stoppto()对应的函数内,添加s曲线算法使得加速度不产生突变。3.根据权利要求2所述的一种适用于运动控制的plc指令设计方法,其特征在于,所述s曲线算法包括加加速段、减加速段、加减速段和减减速段,所述s曲线算法包括公式(ⅲ)、公式(ⅳ)和公式(

);加速度的变化率k固定不变,通过人机交互设计中设置的参数cn、c0和n求得:式(ⅲ)中:k为加速度的变化率,固定不变;cn、c0、n分别为目标频率的对应周期、起始速度的对应周期和变速时的脉冲个数;加速度分为两个变化阶段,一个在前半个变速阶段按照变化率k进行线性变化;一个是在后半个变速阶段进行线性变化;加速度的方向由pto的加减速阶段决定,加速时为正,减速时为负;加速度的大小如公式(ⅳ)所示:式(ⅳ)中:x、a
x
分别为当前脉冲编号和当前脉冲的加速度大小;周期的变化关系为:c
x
=c
x-1
+a
x
ꢀꢀ
(

)式(

)中:c
x
、c
x-1
分别为当前脉冲的周期和前一个脉冲的周期。4.根据权利要求1所述的一种适用于运动控制的plc指令设计方法,其特征在于,所述进一步配置还包括:曲线绘制,所述曲线绘制用于设置每步时自动绘制的曲线示意图,图中包括x坐标、y坐标、预设总脉冲数、曲线最高速度;所述x坐标是指运行的相对位置,单位脉冲;所述y坐标是指运行速度,单位脉冲/s;所述预设总脉冲数是指在一个包络曲线内所有步中设置的位置数据之和,标注在x坐标轴上;所述曲线最高速度是指一个包络曲线内预设的最高目标速度,标注在y坐标轴上。5.根据权利要求1所述的一种适用于运动控制的plc指令设计方法,其特征在于,所述添加步是添加步的对话框,包括添加位置、目标速度、目标位置、变化脉冲增量和单脉冲周期增量;所述添加位置是指添加到该位置行之后;所述变化脉冲增量和单脉冲周期增量默认分
别是基本配置中的变化脉冲增量和单脉冲周期增量,或,对变化脉冲增量和单脉冲周期增量按照公式(i)和(ii)联动计算调整,只要改动其中一个变量,另外一个变量自动更新。6.根据权利要求1所述的一种适用于运动控制的plc指令设计方法,其特征在于,所述设计方法还包括pto驱动步骤:(3-1)驱动初始化引脚、开中断;(3-2)不同工作模式的工作如下:在手动模式下,当启动pto时,脉冲从启停速度开始,根据基本配置中加速配置的单脉冲周期增量值,平滑加速到最高速度,到达最高速度后按最高速度继续运行;当停止pto时,pto脉冲从最高速度开始,根据基本配置中减速配置的单脉冲周期增量值,平滑减速到启停速度后停止pto输出,pto驱动步骤关闭中断;在单速连续运行模式下,当启动pto时,脉冲从启停速度开始,根据基本配置中加速配置的单脉冲周期增量值,平滑加速到目标速度,到达目标速度后按目标速度继续运行;当未选择停止信号激活停止,则pto异常停止;当选择停止信号激活停止时,根据配置的停止距离平滑地停止pto;若停止距离设为0时,则立即停止,pto驱动步骤关闭中断;在相对位置模式下,当启动pto后,pto驱动步骤按照设置的包络数据依次执行,执行过程中实时更新脉冲计数值和实时周期,当脉冲计数值达到预设总脉冲数时,pto停止,同时触发pto计数完成中断,最后pto驱动步骤关闭中断。7.根据权利要求1所述的一种适用于运动控制的plc指令设计方法,其特征在于,所述高速脉冲输入指令的设计包括:编译型ide软件将高速脉冲输入指令配置好的plc硬件资源存储到数据库中,用户在编译型ide软件端调用高速计数器模块进行相关的梯形图程序,高速计数器模块包括以下高速脉冲输入计数模式:mode0:内部方向控制无外部复位的单向高速计数器;mode1:内部方向控制有外部复位的单向高速计数器;mode2:外部方向控制无外部复位的单向高速计数器;mode3:外部方向控制有外部复位的单向高速计数器;mode4:两路时钟输入无外部复位的双向高速计数器;mode5:两路时钟输入有外部复位的双向高速计数器;mode6/8:ab正交相无外部复位的双向高速计数器;mode7/9:ab正交相有外部复位的双向高速计数器。8.根据权利要求7所述的一种适用于运动控制的plc指令设计方法,其特征在于,所述高速脉冲输入指令的设计还包括:1)编译型ide软件将用户编程定义的高速计数器相关梯形图的配置参数转译为c语言;2)对高速脉冲输入的计数模式mode0-mode9进行初始化;3)配置编译型ide软件定义的高速计数器的数据结构,包括以下参数:计数模式mode、当前计数值cv、目标计数值pv、控制字、状态字、脉冲引脚1、脉冲引脚2、方向引脚和复位引脚;所述控制字包括计数方向、使能和计数速率;所述状态字包括计数方向状态、cv<pv状态、cv=pv状态和cv>pv状态;4)根据所选计数模式定义高速计数器的引脚,在不同的计数模式下,初始化的引脚不同:
选择计数模式mode0~mode9时,则初始化第一个脉冲引脚;选择计数模式mode4~mode9时,则初始化第二个脉冲引脚;选择计数模式mode1、mode3、mode5、mode7、mode9时,则初始化外部复位引脚;选择计数模式mode2和mode3时,则初始化外部方向引脚;依次将上述配置好的脉冲引脚、方向引脚和复位引脚的外部中断接口进行使能操作;选择计数模式mode0~mode9的高速计数器均具备三种中断函数接口:计数完成中断、计数方向改变中断和计数复位中断;上述三种高速计数器中断程序分别是嵌套在脉冲引脚外部中断接口、方向引脚外部中断接口和复位引脚外部复位接口内部,其中计数完成中断函数是嵌套在脉冲计数引脚中断接口中,计数方向改变中断函数是嵌套在外部方向改变引脚中断接口中,计数复位中断函数是嵌套在外部复位中断接口中;计数模式mode6、mode7的计数完成中断是嵌套在定时器计数溢出的中断接口内,计数方向改变中断是采用主函数扫描方式实现;计数模式mode8、mode9的计数完成中断和计数方向改变中断是嵌套在定时器输入捕获中断接口内。9.根据权利要求7或8所述的一种适用于运动控制的plc指令设计方法,其特征在于,计数模式mode0和mode1属于内部方向控制的高速计数器,计数方向由用户自定义,在计数时,将脉冲引脚1连接至plc设备输入端口,计数最大频率为200khz;计数模式mode2和mode3属于外部方向控制的高速计数器,在计数时需要1路脉冲信号和1路方向信号,以实现向上和向下计数,计数最大频率为200khz;计数模式mode4和mode5属于双时钟的高速计数器,包括两路脉冲信号:一路是加计数信号,另一路是减计数信号,计数最大频率为200khz。10.根据权利要求7或8所述的一种适用于运动控制的plc指令设计方法,其特征在于,所述计数模式mode6~mode9均属于ab正交相高速计数器,输入两路相位差为90度的脉冲信号;计数模式mode6、mode7采用硬件定时器进行计数,支持2倍频和4倍频:允许更高频率的脉冲计数,计数最大频率为光耦隔离开关频率;2倍频的计数方式是读取ab相脉冲的中断触发状态,计数最大频率为光耦隔离开关频率;4倍频的计数方式是读取ab相脉冲的中断触发状态,在a相b相上均进行计数,计数最大频率为光耦隔离开关频率,上述倍频计数方式在高速计数的情况下支持用户对目标计数值所在的脉冲时刻进行中断操作;所述计数模式mode8、mode9采用中断方式实现计数,支持1倍频、2倍频和4倍频计数:其中1倍频的计数方式是通过读取a相脉冲的上升沿和下降沿和b相所处电平状态来实现向上计数和向下计数,计数最大频率为100khz;2倍频的计数方式是读取ab相脉冲的中断触发状态,计数最大频率为200khz,只在a相上进行计数;4倍频的计数方式是读取ab相脉冲的中断触发状态,在a相b相上均进行计数,计数最大频率为400khz,上述倍频计数方式在高速计数的情况下支持用户对目标计数值所在的脉冲时刻进行中断操作。

技术总结
一种适用于运动控制的PLC指令设计方法,将高速脉冲输入指令配置的硬件资源和三种高速脉冲计数中断源保存入数据库中,用户更加方便、快捷的调用高速计数器模块进行梯形图编程;将高速计数器的底层驱动程序和计数中断函数进行封装,让用户更加方便调用三种高速脉冲计数中断函数。将高速脉冲输出指令配置好的PLC硬件资源存储到数据库中,通过IDE软件端调用PWM指令和PTO指令进行相关的梯形图程序;PTO指令中包括三种高速脉冲输出模式:手动模式、单速连续运行模式和相对位置模式。本发明从用户角度出发,为PTO和PWM指令设计了详细的参数配置交互界面,便于引导编程人员快速使用;还可根据用户配置的参数数据,自动生成曲线,适用于更复杂的曲线运动控制场合。适用于更复杂的曲线运动控制场合。适用于更复杂的曲线运动控制场合。


技术研发人员:孙瑞瑞 张晓捷 许敬尧 孔志刚 程广河 郝慧娟 李成攻 李娟 韩路跃 白金强 尹亚南 韩凌燕
受保护的技术使用者:山东省计算中心(国家超级计算济南中心)
技术研发日:2022.05.09
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-8465.html

最新回复(0)