背景:想用200PLC控制6个伺服,还要带一个IO扩展模块,存在以下疑问:
1、从成本上考虑,是选择一个CPU226带4个EM253好还是用两个CPU224XP+2个EM253好呢?一个226能否带得起?如果使用使用两台224,用485点对点通讯,是否会降低运行速度?我要求1秒钟内6个伺服要动作1-2个循环,位移都不大,能否做到?
2、EM253只能使用向导编程吗?能否使用指令编程?如何用呢?网上未查到指令编程的方法。
3、如果只能使用向导编程,那么如何通过触摸屏修改脉冲数呢?具体用到哪几个指令?是不是用LDPOS+CFG呢?
最佳答案
1.我建议你采用双CPU的方式,CPU226带4个EM253+CPU2xx,第二个PLC的主要功能是将非关键的,低速I/O点规划到其上,CPU之间采用网络PPI通讯即可,将第二个PLC的I/O状态取到主PLC中,为什么不采用你的第二种方案呢?6轴联动对于实时性要求很严格,通过网络将主PLC三轴与副PLC三轴联动中间存在通讯的延迟,而且你不能保证通讯100%成功,那么你怎么办呢?所以我将运动六轴控制集中在一台PLC上,第二个PLC做分担I/O点工作,相对要好一点;
2.EM253如果你不想中规中矩的使用向导来做的话就去研究下他的包络表,存在数据块中,通过数据传送指令直接修改就可以灵活的运用了;
3.PTOx与POSx组态时都会生成一个组态的数据块,组态时只组态一个高速单步的包络表就可以,修改其对应的脉冲值,再调用相应的Run指令即可:
PTOx:
//输出 Q0.0 的 PTO 包络表
VB1000 ''PTOA'' //
VW1004 54 //FREQ
VD1006 10240000 //SS_SPEED
VD1010 204800000 //MAX_SPEED
VD1014 16#02000E69 //K_ACC
VD1018 16#82FFF197 //K_DEC
VB1022 1 //NUMPROF
VW1023 25 //OFFS_0
VB1025 4 //包络 0 的 NUM_SEGS VB1026 0 //保留。
VB1027 0 //段 0 的 S_STEP VB1028 16#08 //S_PROP
VD1029 +10240000 //SFREQ VD1033 49950 //加速的脉冲数
VB1037 0 //段 1 的 S_STEP VB1038 16#04 //S_PROP
VD1039 +199707040 //SFREQ
VB1048 16#00 //S_PROP VD1049 -1 //SFREQ
VD1053 49951 //减速的脉冲数
VB1057 0 //段 3 的 S_STEP VB1058 16#10 //S_PROP VD1059 +10240000 //SFREQ
可以看出,一个最简单的包络分为 4 段(VB1025):
段 0:加速段,加速脉冲数在 VD1033
段 1:恒速段,恒速脉冲数在 VD1043
段 2:减速段,减速脉冲数在 VD1063
段 3:最终减速脉冲数,VD1063。
在向导中,只能生成有限的包络,如果目标脉冲数任意的,我们只好修改包络里面的数据了。加速段和减
速段的脉冲数不方便改,因为线性加减速的指令并不清楚,所以修改恒速段的脉冲数即可
POSx:
包络块0
92(+0) STEPS 该运动序列中的步数(1字节) -- --
93(+1) 模式(MODE) 选择该包络块的操作模式(1字节)
在触摸屏连接相应的变量即可修改
提问者对于答案的评价:
谢谢大家的回答。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc304509.html