三菱伺服电机

2019-07-14 00:42发布

1、前言

最近使用三菱电机进行一维往复运动平台的驱动和控制,由于客户端太过于臃肿,因此期望写一个简略直接的控制上位机。

2、配置

驱动器是MR-J4-10A
伺服电机HG-KR13J
控制软件是MR configure2

3、控制方式

USB: 配合三菱电机控制软件,不开放接口给用户
RS422:有ASCII码组成的字符协议,可以依照协议进行控制。如果三菱有提供简单的封装代码最好了 PLC脉冲:使用官方PLC编程控制

RS422

三菱有RS422通信协议说明文档,介绍了通信格式,依据格式进行通信即可,不过每条指令都要自己生成较为麻烦。而且各个指令之间的配合和限定关系,有些阐述的不是很明白。 1、JOG(点动)运行,通过推荐的指令可以进行正常运行。
若是模仿MR configure实现的功能,按钮一直按下则一直运行,松开即停止。方法为:启动之前的参数都先配置好,然后重载PreTranslateMessage,识别左键按下消息,并且检查消息MSG结构里的m_hwnd指向的是哪个按钮的,若是正反运行的,则打开定时器,1ms间隔中断持续发送启动指令则一直运行,若是只是发送一起启动指令则只运行一定长度即停止。停止时则关闭定时器,发送停止指令。若要及时停止最好直接往通信口写,通过线程也可,不过对响应速度有一定影响。 2、定位运行
通过指令进行控制,启动之前的指令可以事先配置,不过若是更改状态,需要将所有指令重新配置一遍,不然发送“启动“会按照之前的配置运行。 不过有一个问题,定位运行总是运行很短时间即停止,导致设置的脉冲量没有走完,后续的指令就不起作用了。 翻查资料并未看到有说明此问题的,后来尝试一直发送启动指令无法起作用。
尝试发送GO指令会继续 运行,但是若需要运行的时间更长,怎需要发送多次GO;Go的次数过少会出现运行停止,等到下一个GO会重新启动;为了防止他停止,因此需要一直很快的发送GO指令。实现方法为使用定时器定时发送Go指令,在运行时。停止运行时,停止定时器,发送停止按钮。 此外,发现直接发送CLR指令不能使定位运行停止,而Stop可以停止,但是并没有清除数据。因此需要先发送Stop再发送CLR则实现停止功能。