这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 工业控制与自动化 » 三菱PLC与变频器的Modubs通讯详解

共6条 1/1 1 跳转至

三菱PLC与变频器的Modubs通讯详解

高工
2014-05-09 18:30:01     打赏
  • 在工业自动化控制系统中最为常见的是PLC和变频器的组合应用,并且产生了多种多样的PLC控制变频器的方法,其中采用RS-485通讯方式实施控制的方案得到广泛的应用。因为它抗干扰能力强、传输速率高、传输距离远且造价低廉等被广大用户所采用。其中工控行业里,基于485的通讯一般分为两种,其一是自由口,二是Modubs。其中Modbus用的最为广泛。本文通过一个本人做的一个真实的小项目来简单讲解一下三菱PLC与变频器的Modbus通讯实例。
关于Modbus
  • Modbus是Modicon公司为其PLC与主机之间的通讯而发明的串行通讯协议。其物理层采用RS232、485等异步串行标准。由于其开放性而被大量的PLC及RTU厂家采用。Modbus通讯方式采用主从方式的查询机制,只有主站发出查询时,从站才能给出响应,从站不能主动发送数据。主站可以向某一个从站发出查询,也可以向所有从站广播信息。从站只响应单独发给它的查询,而不响应广播消息。MODBUS通讯协议有两种传送方式:RTU方式和ASCII方式。本文案例中采用的是RTU方式。RTU与ASCII的区别不是本文讨论范围,可自己去了解


项目背景
  • 公司某客户目前的机械上使用了7台变频器,当前他是每台变频单独控制,用面板延长线把每一台变频器的操作面板外接出来单独操作。现在想进行一下升级提高卖点,于是提出让我们利用触触摸屏+PLC+变频器的方案帮忙设计电气控制方案。


项目实施



系统连接示意图


PLC程序

  • 通讯一直是三菱PLC的致命弱点,用过的人都知道麻烦。三菱PLC的通讯配置如同MCU那样,需要通过对寄存器的操作来完成配置。其通讯配置寄存器为D寄存器,寄存器编号为8120。即我们需要通过对D8120寄存器写入配置参数,方可实现通讯配置。配置表如下图所示 


  • 三菱PLC通讯配置寄存器映像表


        根据这个表格,我们可以做出如下配置


  • 其中M8000为三菱PLC的运行标志位(运行上电),即PLC在运行状态下M8000的值为“1”,停止状态为“0”。图中程序意思为:PLC一旦进去运行状态M8000导通,右边MOV指令与母线导通,即执行MOV指令,完成通讯参数配置。配置内容为:
    • 8位
    • 偶校验
    • 1停止位
    • 9600bps
    • RTU模式
    • 使用Modbus通讯
    • PLC为主机
  • 通讯配置完成后,我们下一步将进行一些需要用到的寄存器的配置(注意,这些寄存器在做普通寄存器使用时是不需要配置的,只有在用作与通讯相关的时候才需要配置,再次证明了三菱PLC在通讯方面的薄弱) 
  • 如图所示,这里配置了7个D寄存器,用来存贮将要变频器的频率值以及7个状态控制寄存器【MOV K1 D500】这个有点像汇编,即把一个十进制的“1”送进D500里面去,在三菱PLC里面表示等下我要写入变频器的数值占用1个D寄存器。
  • 
    	
  • PLC里面该配置的都配置好之后我们就可以开始进入功能实现部分了。在进入功能程序之前,我们先来了解一下我们所使用的变频器的各项功能码。


    从这个表中得知变频器的控制字地址是H3200控制字对应字节定义如下图所示


    根据表格得知,我们需要让电机正转,则向变频器H3200里面写入H1001

    • 运行命令有效
    • 正转

    OK,我们来看一下该如何写入变频器的运行命令让他运行起来。

    此处插入图片

    如图所示,我们通过WR3A命令来进行数据的写入,指令【WR3A K1 H3200 D516】


    WR3A指令对应Modbus的16号功能,写数据到从机设备的各个(4×类型)寄存器;如果只写1个寄存器,WR3A指令对应Modbus的06号功能写1个数据到从机设备的1个(4×类型)寄存器。指令中K1是代表被写从机设备的站号,范围1-247;H3200是代表被写寄存器在从机设备中的首地址编号0000(十六进制数表示);D516里的值是代表被写的寄存器个数,范围1-32,源数据依次保存在D517,D518,D519……里。

    回头看一下我们可以知道,刚才我们在配置的时候已经声明了,在这里我们只写一个寄存器里面的数值到变频器里面去【即上面的 MOV K1 D516】,所以我们把我们需要写入的内容先放进D517里面去,然后【WR3A K1 H3200 D516】这条指令便会将我们需要写入的数值写入到变频器的H3200里面去了。

    但是还有一个问题,我们不能一上电就让电机转吧,这就得给他个条件了,即一个“开关。”如图,这里的M100就是我们PLC里面的软原件了,等于就是一个开关。当M100值为“1”的时候M100这个“开关”就导通了,导通后执行后面的MOV指令。

MOV指令执行完,D517里面已经是刚才我们算出的H1001了。然后上面的WR3A就把D517里面的H1001写入到变频器H3200里面去,此时电机会处于正转状态(若频率为0,电机不转)接下来我们就可以根据实际的电机转速需要,来给定变频器的运行频率了。同样,根据刚才的变频器控制参数表格我们可以看出,我们只需要给变频器H3201号寄存器写入对应数值,即可改变变频的运行频率,达到改变电机转速的目的。 需要注意的是各厂商的变频器频率工程值与实际只的比是不一样的,有些是200比,有些是100比,这些在实际使用过程中稍加注意即可,我们这里使用的是深圳某厂商的一款比值为100的变频器,即【实际值*100=工程值】好了,接下来我们就开始写频率了。

写频率,同样是WR3A指令。对应寄存器见刚才的配置表。如图

刚才已经详细说过WR3A指令的用法了,所以这里应该不难理解。
接下来就让他停机,停机跟运行一模一样。只要把刚才运行里面的H1001改成H1004即可,怎么算的?回头看看刚才那个表就明白了。

全文完……


院士
2014-05-10 20:51:10     打赏
2楼

院士
2014-05-10 22:57:00     打赏
3楼
其实 在PLC中,买一个modbus模块就可以了。但是在MCU里,这个Modbus协议实现起来可就有些难度了。

菜鸟
2015-04-06 20:18:52     打赏
4楼

菜鸟
2015-05-22 13:33:31     打赏
5楼
很详细,学习了,谢谢楼主

菜鸟
2018-04-19 22:15:32     打赏
6楼

小编写的很详细,易懂,感谢


共6条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]