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

A2伺服modbus通讯难题 点击:8917 | 回复: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 的延迟。 现在真的没办法了,请求大神能指点迷津,小弟不胜感激。  




楼主最近还看过



jia2268121

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

没人吗!!!先自己顶一下吧

hero994

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 14回
  • 年度积分:0
  • 历史总积分:36
  • 注册:2009年2月15日
发表于:2015-12-21 15:09:59
2楼

你好,目测PLC程序编的有问题,写寸动的那几条逻辑关系不正确或PLC指令modbus读写的通讯参数设置不正确。我用通讯给A2伺服驱动器写过JOG,正向、反向的,是用触屏的宏指令做的。希望我的经验能对你有帮助。

hero994

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 14回
  • 年度积分:0
  • 历史总积分:36
  • 注册:2009年2月15日
发表于:2015-12-21 15:15:27
3楼

另外你用通讯控制驱动器DI我也试验过,由于不知道驱动器本身底层程序啥控制思路,导致这种方法不是很可靠,最后换的你第二种方法做的。

jia2268121

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


回复内容:

对: hero994 你好,目测PLC程序编的有问题,写寸动的那几条逻辑关系... 内容的回复!

谢谢您宝贵的回答,您的控制方式是通过触屏直接控制伺服呢,还是通过PLC。JOG 正向 反向能不能再给一些更详细的解答,小弟万分感激 感激!!

jia2268121

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


回复内容:

对: hero994 另外你用通讯控制驱动器DI我也试验过,由于不知道驱动器... 内容的回复!

 因为我在使用ASD-soft这个软件对伺服进行参数设置时,这个软件可以实现点动的功能,我觉得肯定能通过通讯控制,但是就是找不到具体的其他参数,我上述的方法1 和方法2 都不理想,后来我把波特率给设的大了一些,但也没感觉出有明显的变化,还是存在延时,无法实现点动。

hero994

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 14回
  • 年度积分:0
  • 历史总积分:36
  • 注册:2009年2月15日
发表于:2015-12-21 15:38:46
6楼


回复内容:

对: jia2268121 回复内容:对: hero994  你好,目测PLC程序... 内容的回复!

我当时用的都是台达自动化产品,因为同品牌产品间会有些便捷指令,就是说底层都是现成的。用台达触屏和A2伺服建立通讯,然后用触屏的宏指令给伺服驱动器写JOG+和JOG-,根据伺服驱动器按键JOG的控制分析,选择了保持型的按钮(触屏),你可以先用最快捷的方式实现你的控制思路,然后再在控制产品上做选择。我后来在设备上就这么应用了,通过现场调试和客户反馈,思路还是没问题的。希望能帮到你。可以的话加个好友,互相交流学习。

hero994

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 14回
  • 年度积分:0
  • 历史总积分:36
  • 注册:2009年2月15日
发表于:2015-12-21 15:41:34
7楼


回复内容:

对: jia2268121 回复内容:对: hero994  另外你用通讯控制驱动... 内容的回复!

感同身受,当时做设计时没啥现成的方案借鉴,也是偶然自动化参展时得到的启发,ASD软件对伺服调试帮助超级大!

jia2268121

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


回复内容:

对: hero994 回复内容:对: jia2268121  回复内容:对:... 内容的回复!

谢谢您的耐心回答,我现在也是一个人在战斗,摸索的前进吧,人机界面我用的是三菱的,向您说的宏控制,接下来我也试试,等待我的佳音!

jia2268121

  • 精华:1帖
  • 求助:1帖
  • 帖子:1帖 | 85回
  • 年度积分:0
  • 历史总积分:268
  • 注册:2014年8月01日
发表于:2015-12-25 15:05:49
9楼


回复内容:

对: jia2268121 回复内容:对: hero994  回复内容:对: ji... 内容的回复!

之前一直以为是通讯的问题,后来修改PLC的程序 实现了需要的功能,切方法1和方法2都可行。

芳季

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

7台伺服是吧。我9台伺服一共42条读写信息。不知道你总共有多少个通讯任务呢?

也就是说相当于每台伺服读32位输出状态。读一个当前电流。写一个齿轮分子。写一个手动速度。写32位输入点。

就算一条信息花费20毫秒,也就840毫秒,全体轮询,再多的话就1秒,你这1到2秒的延时我都觉得有点不可思议。我总不相信三菱通讯真的差那么多。不过我不是用三菱,使用200smart。不会是你第一个做这事情的。常规运行,肉眼分辨不出迟滞。

到西门子官网论坛溜溜。

芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2015-12-25 23:09:27
11楼

看……“是因为除了我之外应该没人遇到了。”这句话应该是我说的。

你的程序肯定是调度出现问题。

要么是通讯空隙非常多。通常,新手编程一般都是用计时器来做时序的,0.2秒之后再做下一个动作什么的,白白浪费很多时间。明明一个通讯只要那么10几毫秒就完成了,硬要拖到0.2秒,那么中间那180毫秒plc愣着都不知道干嘛好。

要么是不该执行的多余通讯长期占用线路。特别是写参数的指令,小心把驱动器的eeprom写坏了。A2有个参数ram化的功能用到不?手册上不叫ram化,名字我忘了。这个作用可以使改写不写到eep当中,仅而次之,大家都知道写ram的速度比写eep的速度快多少?这个事情可以让通讯更快。更快。

不过,三菱的plc有个硬伤,很多很多指令都要经过end处理,或者要经过一个off周期。定位指令高速指令功能指令。这个硬伤使得你的处理必须等到下一个扫描周期才能开始或者才能结束。无疑多了等待时间。

妖精之歌

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 9回
  • 年度积分:0
  • 历史总积分:14
  • 注册:2015年11月15日
发表于:2016-01-01 15:46:16
12楼


回复内容:

对: hero994 你好,目测PLC程序编的有问题,写寸动的那几条逻辑关系... 内容的回复!


回复内容:

对: hero994 回复内容:对: jia2268121  回复内容:对:... 内容的回复!


回复内容:

对: hero994 回复内容:对: jia2268121  回复内容:对:... 内容的回复!


回复内容:

对: hero994 回复内容:对: jia2268121  回复内容:对:... 内容的回复!

你好?能不能把你宏程序法给我学习下?邮箱582042554@qq.com

jia2268121

  • 精华:1帖
  • 求助:1帖
  • 帖子:1帖 | 85回
  • 年度积分:0
  • 历史总积分:268
  • 注册:2014年8月01日
发表于:2016-01-07 09:58:16
13楼


回复内容:

对: 芳季 7台伺服是吧。我9台伺服一共42条读写信息。不知道你总... 内容的回复!

台达的伺服不需要那么多的通讯任务,使用PR模式的通讯控制,相当于省去了几个IO点而已。

芳季

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

那你数数有多少个任务?

你意思怎样?

jia2268121

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

问题已经解决 是程序编写的有些问题,现在效果良好。

芳季

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

可以说一下有多少个通讯任务和一次轮训需要的时间吗?

很难得遇到用三菱做modbus多任务轮训的人,想在西门子和三菱两方面比较一下通讯速度。

jia2268121

  • 精华:1帖
  • 求助:1帖
  • 帖子:1帖 | 85回
  • 年度积分:0
  • 历史总积分:268
  • 注册:2014年8月01日
发表于:2016-01-13 08:41:51
17楼


回复内容:

对: 芳季 可以说一下有多少个通讯任务和一次轮训需要的时间吗?很难... 内容的回复!

大神提问太专业,小生理解不了题意。

芳季

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

你用通讯控制变频器一些什么?读变频器些什么?写变频器些什么?一共多少个读+写?全部读写都连续执行一次,需要多长时间?

jia2268121

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

控制的伺服 不是变频器,读伺服寄存器内的位置参数、速度参数等等,给伺服发送位置命令,我在做的设备为四个独立的单元,一个PLC在控制,这也就造成了,如果两个或者多个单元需要同时读写数据时,发送错误的情况,这是我目前正在考虑如何的问题。

wenwanshuang

  • 精华:0帖
  • 求助:12帖
  • 帖子:28帖 | 575回
  • 年度积分:12
  • 历史总积分:2497
  • 注册:2011年11月03日
发表于:2016-01-14 12:28:01
20楼

我上次做过一次,考虑到轮训时间长,就没有轮训,最后做成需要读取的时候再读取 ,需要发送的时候再发送。


热门招聘
相关主题

官方公众号

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