modbus驱动电机.docx

上传人:b****2 文档编号:12910919 上传时间:2023-04-22 格式:DOCX 页数:6 大小:145.86KB
下载 相关 举报
modbus驱动电机.docx_第1页
第1页 / 共6页
modbus驱动电机.docx_第2页
第2页 / 共6页
modbus驱动电机.docx_第3页
第3页 / 共6页
modbus驱动电机.docx_第4页
第4页 / 共6页
modbus驱动电机.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

modbus驱动电机.docx

《modbus驱动电机.docx》由会员分享,可在线阅读,更多相关《modbus驱动电机.docx(6页珍藏版)》请在冰豆网上搜索。

modbus驱动电机.docx

modbus驱动电机

使用MODBUS通讯协议连接电机及简单调试

刚好手头有两个电机,其驱动器支持MODBUS协议,用这个来学习一下。

学习目的:

搭建电机硬件环境/使用上位机发送速度指令控制电机转速。

MODBUS的粗浅理解:

1.Modbus是施耐德的

2.速度几十K没问题,跟芯片也有关系

3.可以挂247个节点

4.只有Master主动发数据,slave才能返回数据,slave不能主动说话

5.这里插一句吐槽,外国人取名太直接了,还有接插件公母也是,叫male,female,用的时候插在一起,真是让人浮想联翩

6.传输模式有RTU和ASCII两种可选,RTU传输速率更高所以更常用

7.传输距离比232远多了...

8.代码系统:

起始位,数据位,校验位,停止位.....

9.另外网上有说反应慢延时的,暂时没碰到,几十K一般也够用了。

各种介绍:

http:

//www.modbus.org/

https:

//en.wikipedia.org/wiki/Modbus

硬件环境搭建:

1.硬件:

驱动器/伺服电机两个/串口服务器(宇泰UT-6601H)/PC/网线若干

2.连线:

∙电机接驱动器;

∙驱动器出来DB9的接头,使用485半双工接线:

RS485_A,RS485_B进串口服务器的T/R+,T/R-;

∙串口服务器另一端用网线接PC。

3. 连接设置:

PC需要和串口服务器设置在同一网段,串口服务器需要设置通讯模式MCP,波特率,连接方式RS485_HALF.

4. 设置虚拟串口:

由于用的是网线进的PC,所以需要设置一下虚拟串口,这里用的是NPortWindowsDriverManager。

这时候PC到电机之间的连接就都完成了

上位机发送指令:

1.调试软件调试:

用驱动器自带的软件调试,使能,运转OK

2.使用串口助手发指令:

根据说明书,速度控制寄存器位置是20000,想让电机以500rpm的速度转,发送指令01064E20FE0CDF4D00,电机运转。

其中01表示控制的节点,06是功能指令表示写数据,4E20表示寄存器位置,FE0C是写入的数据,DF4D是CRC校验,00表示停止位,校验位可以用CRC校验工具计算出来。

CRC校验工具:

3. 使用MODBUS调试助手发送指令:

串口助手毕竟还是不太方便,可以用专门的Modbus调试工具,我用的是Modbus调试精灵。

这里有个坑是,写入的寄存器地址必须是8进制数,之前我写20000死活不转,改成47040就好了;数值是16进制的,所以我写500的时候电机飞转起来。

好处是不用自己算CRC校验之类的。

4.使用程序发送指令:

 Python确实是高级高级语言,有了它确实丧失了学习其他语言的兴趣...

Modbus的库:

Modbus_tk:

完整modbus协议栈的实现,支持modbustcp/RTU{1.提供slave模拟器,即模拟modbusserver:

502),web-basedhmimaster支持}

Pymodbus:

使用twisted实现的modbus完整协议(支持异步通讯)

MinimalModbus:

只支持modbusrtu

我用的是MinimalModbus的库:

安装:

$pipinstallminimalmodbus

说明书:

https:

//minimalmodbus.readthedocs.io/en/master/readme.html

设置及写入速度:

importminimalmodbus

#setthe1stslaveaxis1=minimalmodbus.Instrument('com1',1)axis1.serial.baudrate=9600axis1.serial.timeout=1

#setthe2ndslaveaxis2=minimalmodbus.Instrument('com1',2)axis2.serial.baudrate=9600axis2.serial.timeout=1

#setaxisspeedaxis1.write_register(20000,0x1F)axis2.write_register(20000,0xDF)

电机运转成功

总结:

没有总结。

凡事浅尝辄止,电机能转就行了,学习到此结束。

(注:

可编辑下载,若有不当之处,请指正,谢谢!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1