恭喜,你发布的帖子
发布于 2017-09-04 16:57:43
12楼
组态库代替模式12了,你的应用并没有超出组态的控制能力,做反馈控制,基本不需要知道自己发的脉冲数,如单纯用PLC做横切,追色标等程序基本靠高计+定时中断+I/O口中断来实现,而且你仔细读读组态库可以发现PLS不会比库更灵活,你说的PLS可以完成库程序完成不了的任务的观点应该是没有研究透组态库的灵活用法。
比如用编码器反馈配合库可知道对象的实际位置,可控制PLC侧发脉冲速度,知道PLC侧已发脉冲数和PLC侧发脉冲的实时开环速度而且可以重组参数适应你的加减速要求、组态库里还有包络表有了这些要素绝对可以满足你的控制要求,自己具体组织一下。(我粗略用过欧姆龙,三菱以及单片机发脉冲(这三种都有专用指令或集成库)和运动控制卡的API后觉得运动控制应用最好用成套的集成的方案,API库更是没你需要特别发挥的空间,当然它比SMART的库丰富许多)
我认为不灵活的地方,也是基于我在应用的时候遇到的问题:1,我曾经想让PTO在不同的频率或恒速时的脉冲是可控的,比如,加速段从500HZ升到2000HZ,我希望能在刚好500个脉冲里完成这个加速,然后保持2000HZ走1000个脉冲,最后用500个脉冲减速到1500HZ,最后在1500HZ的时候,走完500个脉冲停止。但我测试了很多次,生成的包络图,在衔接部位,就是不平滑,简单的说,每段不同的频率,它都有自己的一个加速减速,这不是我想要的,我想让400个脉冲处于加速,不想让它还有减速的部分。当然,我只观察了系统生成的运动包络图,并没有去监控伺服电机的运动曲线。所以实际运行是不是有出入,这个不能确定,但至少我观察到的曲线图是不对的。
2,上文我已经讲过,亲自做的测试,运动库指令无法在中断里立刻停止,频率越大,误差越大。我的做法很简单,goto子程序有个位是停止发脉冲的。在主程序里启动脉冲输出后,在计数器中断里,将运动轴的CTRL子程序跟goto子程序,写在计数器中断里,并且把goto的停止位在中断里置1,亲测可以使脉冲停止,并且,在脉冲频率很低(一开始我用100HZ)时,停止很准,比如计数器是5000个脉冲中断,当中断之后,goto的当前值显示也是5000.但是随着频率增加,数值误差越来越大。各位朋友可以自己验证一下。我跟西门子公司的工程师,为了这个响应问题,最后将硬件固件升级了,现在使用PLC指令,没有再用运动库了。
而关于我说的当前发送脉冲数,我的意思是,既然系统生成的运动库程序,可以监控脉冲的数目(也就是不用增加硬件),那证明PLC内部是可以统计脉冲数目的,那为什么就不能开放这个功能,而非要让我们去接到计数器上面去呢?白白浪费一个点,并且,输出是PNP,当输入公共端使用的是24V电时,还要给这个反馈电路做下拉电路。麻不麻烦我请问。
请填写推广理由:
分享
只看
楼主