首页 上一页 1 2 下一页 尾页

A2伺服modbus通讯难题 点击:8905 | 回复:37



jia2268121

    
  • 精华:1帖
  • 求助:1帖
  • 帖子:1帖 | 85回
  • 年度积分:0
  • 历史总积分:268
  • 注册:2014年8月01日
发表于:2015-12-21 10:32:04
楼主

最近遇到一个比较特别的问题,之所以特别呢,是因为除了我之外应该没人遇到了。

物料: 台达单相200W A2系列伺服一台。

     三菱fx3u PLC 一台+ FX3U-485ADP-MB通讯适配器(modbus协议,有特定的ADPRW指令)

功能:PLC最为控制器,实现对伺服的定位控制,人机上编写正反向点动功能。

问题:由于PLC控制的伺服台数较多(7台)所以使用PLC本身的高脉冲输出控制显然是不够的,有什么可行的办法呢?bingo 伺服的PR模式。因为打算使用通讯控制了,所以就不考虑DI了。果断焊接CN3接头,参数设定,程序编写,吧啦吧啦 一切OK。顺利通讯上。使用MODBUS的 0x06功能,向P4-07内 写入PR#xx 顺利执行,但是怎么实现点动呢?目前我研究出来两种方法 :

NO.1 在DI动能设定里 设定 正向寸动 反向寸动(DI2 DI3),通过参数设定 P3-06 0XFF 以及P4-07 实现了对 DI的通讯控制,从而可以正反向动。

NO.2 对P4-05进行设定,使用通讯,向P4-05内写入 4998时 正转 4999时反转,OK。

但是问题来了:这两种方式都是 正转和反转 但并不能实现 正向点动和反向点动。以为使用通讯时 发一个脉冲 便会把参数 写入到 伺服的寄存器内 然后就一直在寄存器内,除非有新的参数写入,这便造成了我写入正向点动的数据后,必须在写入停止数据 马达才能停下来,否则一直持续旋转,我尝试用PLC对触发条件进行互锁,

即当条件ON时写入点动的数据  条件OFF时写入停止的数据,OK 理论上想法不错,但是试验后发现,延迟很高,当ON时不会立马转动,当OFF是也不会立马停止,都会有 1-2s 的延迟。 现在真的没办法了,请求大神能指点迷津,小弟不胜感激。  




楼主最近还看过



芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2016-01-16 10:03:16
21楼

楼上的做法正确。我也是这样的做法。命令不变的时候不写,读,没事的时候就只读取当前状态一个信息。总不能让线路空闲吧,空闲会报警的。(我设置了50毫秒掉线报警)

楼主的一句话,咱再聊聊。“如果两个或者多个单元需要同时读写数据时”

主观上有同时,程序上不会有同时,这个是必然的。正如楼上,需要读的时候再读,需要写的时候再写。当遇到一起发送,例如正转信号。那么只能排队了。或者广播。有的伺服有端子规划的禁止广播功能。比如说三个伺服一起动,同时动,一个伺服不需要动,那么就先写个信号禁止一个伺服接收广播,然后再对其余三个进行广播。由于广播不会有回信,所以广播之后,最好轮训一次状态,证实运行信号已经接收成功。然后再解除一个伺服的禁止广播。

jia2268121

  • 精华:1帖
  • 求助:1帖
  • 帖子:1帖 | 85回
  • 年度积分:0
  • 历史总积分:268
  • 注册:2014年8月01日
发表于:2016-01-18 10:18:34
22楼


回复内容:

对: 芳季 楼上的做法正确。我也是这样的做法。命令不变的时候不写,... 内容的回复!

我在考虑,多个单元同时需要读写命令时,可能会排队这种情况,但是这只是从微观上讲应该,后来我仔细研究了一下使用MODBUS发送数据串,在9600波特率的情况下,也不过50mm,从宏观上讲,同时读写的概率极低,毕竟指令的触发信号,毫秒级的同步的可能性很小。

芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2016-01-18 10:41:59
23楼

波特率我现在用到38400了。115200也实验过,稍稍比38400快了一点。十几个读功能轮一次才几十毫秒。

我真的很想很想跟三菱的比较一下通讯的速度。

可以吗楼主?

yidunsm

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 2回
  • 年度积分:0
  • 历史总积分:2
  • 注册:2011年10月10日
发表于:2016-01-18 11:41:06
24楼

有需要伊顿穆勒 产品 可以联系我哟

jia2268121

  • 精华:1帖
  • 求助:1帖
  • 帖子:1帖 | 85回
  • 年度积分:0
  • 历史总积分:268
  • 注册:2014年8月01日
发表于:2016-01-18 11:48:04
25楼


回复内容:

对: 芳季 波特率我现在用到38400了。115200也实验过,稍... 内容的回复!

你需要我想你提供什么数据吗 还是别的什么。


芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2016-01-18 12:15:45
26楼

资料不重要,重要的是一个高性能的程序,可以把通讯轮训时间缩短到多少。

modbus通讯,协议内的时间大家都是一样的了。就是协议外的处理时间,程序时间,看看两个plc的处理能力的差异。

数据上说三菱的处理时间比西门子的快,那到底快多少?

我最不清楚的一个事情是,三菱很多指令要经过off一个周期,那么在大量处理面前,老是要off一个周期,会出现什么效果?西门子的通讯指令是不需要off一个周期的,可以在一个中断程序里面马上关闭马上开通。这就导致了虽然执行时间比较长,但是节省下来的off时间是相当可观的。

前提是程序必须高性能高效。

lknzzf

  • 精华:0帖
  • 求助:2帖
  • 帖子:4帖 | 341回
  • 年度积分:0
  • 历史总积分:5335
  • 注册:2020年6月23日
发表于:2016-07-29 15:57:00
27楼


引用 芳季 的回复内容: 看……“是因为除了我之外应该没人遇到了。”这句话应该是...


学习下 

jia2268121

  • 精华:1帖
  • 求助:1帖
  • 帖子:1帖 | 85回
  • 年度积分:0
  • 历史总积分:268
  • 注册:2014年8月01日
发表于:2017-11-24 10:10:53
28楼


回复内容:

对: 芳季 波特率我现在用到38400了。115200也实验过,稍... 内容的回复!

好久不见,我又回来了,呵呵。现在在伺服研发公司任职,回想当初的问题好幼稚啊,哈哈哈!!!!

逍遥自在

  • 精华:1帖
  • 求助:5帖
  • 帖子:35帖 | 294回
  • 年度积分:0
  • 历史总积分:696
  • 注册:2005年4月29日
发表于:2018-01-06 20:11:37
29楼

回复内容:

对:jia2268121 回复内容:对: 芳季 波特率我现在用到38400了。115200也实验过,稍... 内容的回复!好久不见,我又回来了,呵呵。现在在伺服研发公司任职,回想当初的问题好幼稚啊,哈哈哈!!!!     内容的回复:

你好'我现在遇到和你当年一样的问题'能不能说说你是怎么解决的

加楠

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 31回
  • 年度积分:0
  • 历史总积分:115
  • 注册:2018年7月01日
发表于:2018-07-01 07:14:28
30楼

看不有点蒙圈,先顶一下

DD78

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 18回
  • 年度积分:15
  • 历史总积分:268
  • 注册:2004年7月25日
发表于:2018-11-02 11:13:58
31楼

威纶通直接控制台达A2伺服,可是循环这段宏程序让触摸屏反应超慢。


2.png

DD78

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 18回
  • 年度积分:15
  • 历史总积分:268
  • 注册:2004年7月25日
发表于:2018-11-02 11:44:12
32楼

看了威纶通说明书,宏触发方式如果改为PLC控制的上升、下降沿去触发“可能”就会好了。如果威纶通可以访问台达伺服的bit就更好了,这样可以直接用按钮做不写宏。例如修改P3-06就方便了,直接用按钮改P3-06的某个bit为0或为1。

smilefight

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 23回
  • 年度积分:0
  • 历史总积分:228
  • 注册:2012年6月16日
发表于:2019-01-09 08:19:13
33楼

楼主,你会不会没有设置加减速时间?如果用程序控制点动的话,我的想法是可以设计一个按下时上升沿发送一个JOG启动命令,松开时下降沿发送一个JOG停止命令

黎霜茫茫

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 78回
  • 年度积分:0
  • 历史总积分:75
  • 注册:2014年2月01日
发表于:2019-02-14 13:21:06
34楼

学习一下,积分好难啊

海啸点点

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 9回
  • 年度积分:4
  • 历史总积分:457
  • 注册:2018年11月12日
发表于:2019-02-15 17:29:31
35楼

A2伺服内部的PR直接可以搞定,设定一个DI为事件功能EV1(A2可以设置四个事件),然后在事件定义里面设置DI 上升沿事件触发PR51,下降沿事件触发PR52;然后在定义PR51速度控制,给个需要的点动速度,PR52也定义一个速度控制,给个速度为0.这样就实现了寸动控制。 如果要反正,同理再定义一个DI为事件EV2,设置同EV1。

376995537

  • 精华:0帖
  • 求助:6帖
  • 帖子:15帖 | 268回
  • 年度积分:3
  • 历史总积分:365
  • 注册:2013年6月19日
发表于:2019-06-03 20:17:55
36楼

学习学习,谢谢分享!!!!


手起刀不落

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 86回
  • 年度积分:0
  • 历史总积分:113
  • 注册:2012年9月23日
发表于:2020-09-26 17:04:24
37楼

不错


热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页