通信指令启动与多变频器数据返回的分组存方面问题! 点击:188 | 回复:1



强劲型

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 24回
  • 年度积分:0
  • 历史总积分:47
  • 注册:2012年2月14日
发表于:2016-12-13 00:11:02
楼主

QPLC的G.CPRTCL指令用SM400来驱动,与一个设备通信能达到最高效率的通信速度,返回的数据也是直接存到指定的寄存器,当与多个变频器或仪表设备通信,要根据返回的站号来分开存放每个设备的数据,用完成标志的M来启动下面的分存数据,可以用变址寄存器来分,存好后把变址与发送的站号+1再发送下一个设备的通信指令,问题来了,通信完成,数据转存,+1,再发送,可以说是同时一个运算周期内做完,怎样保证不会出错了,个人试了很多方法,都不是很理想,最后就是用10ms的延时来确定每一步的完成才到下一步,例如收到返回站号为1=发送的站号1后,可以认为是通信对了,马上把剩下的数据如返回的电流,电压都可以用MOVP转存了,又来个延时10ms,变址寄存器+1,然后再启动G.CPRTCL指令,整个过程序才能一步一步清清楚楚的分开,但程序效率很低。第二就是当多变频器时,我做的是45台,分了三组通信,一组有15个,如果每次都循环从1-15站号发送,整个周期就会更慢,因为都不是同时开的,有时是开5台,有时是开10台,都是不定的,所以做到不开机的跳过哪个站号,只和有开机的变频器通信,这过程更加要有个清淅的时间分隔,每一步是做什么,这样又要加一个10ms的延时,到了最后,如果15台同时开的话,每台机一般完成一次通信都有150ms,15台时,总刷新速度就2.25秒,这样速度慢到自己都接受不了,但没找到其它可靠高效的办法。有人会分享一下吗?




强劲型

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 24回
  • 年度积分:0
  • 历史总积分:47
  • 注册:2012年2月14日
发表于:2016-12-13 20:02:36
1楼

顶一下不会被骂吧?

因为发现贴都不见了


热门招聘
相关主题

官方公众号

智造工程师