回复:S7-200Smart子程序编程思路之三

已锁定

holdkcsxyz

西门子1847工业学习平台

  • 帖子

    1560
  • 精华

    24
  • 被关注

    162

论坛等级:至圣

注册时间:2015-06-03

钻石 钻石 如何晋级?

发布于 2023-04-02 17:15:18

6楼

官方的开环运动控制块以及多段管道曲线以及新的PLS超驰,新的开环插补联动考虑的严谨,丰富且全面,因此以下分析的普通PLS指令内容错漏难免,仅供参考,带着批判性观点随便看看,不一定对,更不一定有用。

中断定位T形减速速度比例截距校正.zip

下午有时间对针对5楼:

1:优化了位推算速,增加了对速度的缩放即增加了#速度比例和#速度截距(位置推算速度的计算),使得#滞留次数==0(保证每个2ms时间片尽量的把该发的脉冲都发完,无滞留脉冲)如下图所示


2:2ms的中断增加滞留脉冲监控,方便调整系数,2ms中断中判断脉冲滞留情况,通过调整#速度比例和#速度截距来解决#滞留次数当#滞留次数==0时说明脉冲衔接到位,此时再微调减小#速度比例和#速度截距,尽量做到两端脉冲尽可能"无缝衔接",#实时位差均匀的话说明速度相对均匀


3:初始化补全 #毫秒赫兹==1000即1HZ==1000ms;总减速距离==11mm


4:如下25秒的两次测试动图:设定好一定的#速度比例和#速度截距后,当#总减速距离==11mm一定时:每次#减速次数都是同一个数值==73;#滞留次数==0;最终#位置动差和#设定位置无误差,说明给定无脉冲差



5:再有时间则更新一种情况:S定、T定,Vs定(起始速度)、Vy(匀速速度)、Ve定(结尾速度)结尾速度恒定且保持住进入非常理想的纯开环同步区;a+==a-==a;这是一个简单开放的问题;进一步可能会利用上脉冲完成中断、IO中断......


6:闭环的情况要复杂:速度的处理、反馈的计算,转矩的监测,滤波处理,且可能要区分不同的细分时间片:比如插补周期==4ms;伺服周期==1ms、考虑曲线过渡的加减速等......;更本质一点应该是只考虑利用这些素材:编码器反馈+转矩的反馈和转矩给定+平滑计算......

-----------------------------------------------------------------------------------------------------------

更新一个结尾再减速程序:

结尾再减速程序.zip

这只是过渡方案,有时间更新三段减速类似S曲线

如下把减速算法中的每个减速脉冲通过间接寻址抓取出来了,状态图表开始序号33中的开始地址存放的是第一个减速算法中的算出脉冲VD4350依次类推,以下程序针对以上程序优化了以下内容

(一):

《结尾再减速程序》在到达减速距离,减速开始的瞬间是以未缩放前的#原始速度作为V减速始速即程序的V减速始速==V原始速度,而上个程序到达减速距离时是以缩放后的速度作为V减速始速即上个程序的V减速始速==(V原始速度*1.2+26);其中1.2是速度比例即速度斜率;26是速度截距,见初中几何的斜截式直线方程。

如下图01和图02图03三张图说明《结尾再减速程序》以原始速度作为进入减速段的第一速度


图01:程序显示位推算速子程序中明确注释一个原始速度


图02:程序显示定时中断中减速开始的时候以原始速度作为减速始速(开始进入减速段的开始速度)


图03:程序显示初始化优化了子程序位推算速的一个浮点数转整数,即把这个转换在初始化时做了,节省了2ms定时中断中调用子程序位推算速时的一次计算


(二):

未优化前即新增加的变量#超距标志从不置位参与逻辑计算:如下图04和图05所示从不置位#超距标志此时的梯形减速算法总共减速83次(如下图04,减速次数==83.0,综合图04和图05的减速序号115(0pp/2ms)-33+1==83也是等于83次减速的),算法算出减速段的每个2ms中发的脉冲数是:99、98、97、96,95,94......16、15、14、10、0;注意最后一个2ms中要发脉冲串个数是10因为此时发10个脉冲恰好就能刚刚好满足125000,所以它只能发10个,然而2ms中发10个脉冲意味着此时最后的:

停车速度==10pp/2ms==5pp/ms==5000pp/s==(5000pp/s)/(425pp/mm)==11.7647mm/s;这是不太平滑的;因此这个结尾的几个脉冲需要近一步优化,见下面的第(三)点的分析


图04:程序显示从不置位新增加的布尔变量#超距标志,减速次数83.0次,抓取数据的开始序号33


图05:状态图表显示减速结尾的几个脉冲是16、15、14、10、0;抓取数据的结束序号115(0pp/2ms);115-33+1==83


(三):

优化了减速结尾的再次减速处理:即梯形减速算法的结尾的几个脉冲也简单的优化了处理机制,新增加的两个布尔变量#超距标志和#超后选择也参与逻辑运算:

第一种优化:当减速段的脉冲到达要在下个2ms中发10,此时变量#超距标志==1;#超后选择==0;此时子程序减速算法中屏蔽掉原始的梯形减速算法,启动新的结尾减速机制:此时每次都发上次变量的一半即对2向下取整,即将下个2ms中要发10pp/2ms个脉冲变成了5pp/2ms、2pp/2ms、1pp/2ms、1pp/2ms、1pp/2ms、1pp/2ms,0pp/2ms减速次数由83次增加了4次到达87次,而脉冲速率相对平滑了一些,最后四次连续在2ms定时中断中只发一个脉冲,最终的理论停车速度降到了1.1mm/s左右,如果想近一步减小理论停车速度,可以最后阶段变采样时间比如Ts==4ms发一个脉冲,即1pp/4ms.采样时间Ts越小,对速度的控制越精细,比如Ts==1ms时控制的精细度高于2ms的一倍;当Ts==2ms时控制的精细度时Ts==4ms的2倍,但采样时间越短,最低速度越高,所以采样时间根据不同时间点以及速度精细度渐变是需要的,即Ts也应该是个变量,根据程序加减速及匀速逻辑实时改变。

如下图06和图07的程序块部分完整展示减速算法的结尾再减速规则:1:当变量#超距标志==1;#超后选择==0时,此时出减速机制是每次都发上次变量的一半即对2向下取整,将10pp/2ms变成了5pp/2ms、2pp/2ms、1pp/2ms、1pp/2ms、1pp/2ms、1pp/2ms、0pp/2ms;2:当变量#超距标志==1;#超后选择==1时

选择最后所有减速值都是1pp/2ms,14pp/2ms到1pp/2ms只要保证这个减速度突变不大于系统最大减速度即可


图06:程序显示当变量#超距标志==1;#超后选择==0时 减速算法将#算出脉冲对2向下取整,即取其一半;当变量#超距标志==1;#超后选择==1时 减速算法将#算出脉冲都赋值成1pp/2ms



图07:程序显示当变量#超距标志==1;#超后选择==0时 减速算法将#算出脉冲对2向下取整,即取其一半;当变量#超距标志==1;#超后选择==1时 减速算法将#算出脉冲都赋值成1pp/2ms


如下图08、09、10、11四张图完整的展示了当变量#超距标志==1;#超后选择==0时,将10pp/2ms对2向下取整变成5pp/2ms、2pp/2ms、1pp/2ms、1pp/2ms、1pp/2ms,1pp/2ms的完整过程,总体减速87次,这种简单折中由14pp/2ms跳到了5pp/2ms、2pp/2ms、1pp/2ms、1pp/2ms、1pp/2ms、1pp/2ms,0pp/2ms

 

图08:状态图表显示超距次数==3(5、2、1、1、1、1,0超距次数3表示最后的三个连续的1pp/2ms是对2向下取整取成0pp/2ms超距计数的),减速次数==87.0次,抓取的开始序号是33


图09:状态图表显示经典的梯形减速算法的得出的减速也是相对均匀的


图10:状态图表显示经典的梯形减速算法的得出的减速也是相对均匀的


图11:状态图表显示最后结尾的5、2、1、1、1、1,0


如下图12、13、14、15四张图完整的展示了当变量#超距标志==1;#超后选择==1;时,最简单的一种处理方式,将10pp/2ms变成连续11个1pp/2ms、1pp/2ms、1pp/2ms、1pp/2ms、1pp/2ms,1pp/2ms......0pp/2ms即11个1pp/2ms结尾减速的完整过程,总体减速92次,这种减速算法应该不是很可取,由14pp/2ms直接跳到连续多个1pp/2ms


图12:状态图表显示减速次数92.0次==0.184秒和理想的理论的0.187秒很接近


图13:状态图表显示经典的梯形减速算法的得出的减速也是相对均匀的


图14:状态图表显示经典的梯形减速算法的得出的减速也是相对均匀的

 

图15:状态图表显示最后结尾得出的11个1pp/2ms,最后是0pp/2ms


(四)

图16:动图完整展示以上8张动态过程

 


(五)以上的两种最简单、最省事、最省时的处理,都不是特别满意,但都是可用的,因为最后的结尾速度已经很小了(即使5pp/2ms也只是==5mm/s左右),而且减速度突变不至于超过最大减速度限制,但是结尾的速度突变比中间过程还大一点,这也是梯形计算的一个缺点,或者说是本例程策略的缺点,对于10pp/2ms的处理应该还可以提前到更早比如20pp/2ms或者就介入做一定的干预,保证开始突变小点,中间适当突变大点,最后突变小点,这类似开环的S曲线了,这样就可以做到最后的每个2ms都相差1pp/2ms,......


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8941条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。