PLC 与 变频器 RS485通讯
时间很快,都工作一个月了,想想运气不错,刚进公司马上就被分配了一个做关于RS485通讯的工作。
变频器虽然在学校有学过,但资料很少很浅,变频器的RS485通讯更是从零开始,所以从理论的通过到实践的通过期间
遇到很多问题。上网收索可以看到很多人问,但很少有人给以回答。所以想了想就把我整理的资料给喜欢PLC的人分享一
下,我认为对于刚接触RS485的人来说会有很大帮助。(高手见笑了,有不足的地方请指出)
我使用的是汇川H2U plc ,其基本的功能和编程环境和三菱PLC是一样的。变频器使用的是三基变频器。
1.搭建架构,要确定PLC和变频器的完好性,将汇川plc和变频器的RS485接口用双绞线连接起来,在此建议大家再并联
出两根线,再下载一个串口调试软件,用于变频器命令的确定。(稍后再详细说明)
2.双方的参数调整,对着变频器的使用手册,将变频器的调成RS485界面,RS485模式。还有调整它的通讯参数
我调整为 波特率 9600 数据位 8位 停止位 1 无校验。 PLC里的参数是通过D8120这个存储器来调整的,通过调整
D8140内的位能改变参数,(具体见D8140详解)注意PLC和变频器的通讯参数一定要一样,因此将D8120调为81H。在通讯
方面汇川和三菱方面有一点很大的区别是要汇川还要确定 D8126这个参数,作为主站有3种模式,两种是MODBUS协议,还
有一种是自由无协议通讯模式。(这一点一定要注意,这个地方弄了我很久) 我们此次先用自由协议,将D8126调整为
H10.还有就是将M8161置位,这样使用的8位数据处理模式。
3.命令确定,其实RS485其实就是一种串口通信模式,说白话一点就是我发送一串1,0组成的数据,然后这串命令正好
符合你的要求的话,我就能控制你做相应的事情了(我是这样理解的)。我用具体的代码来解释一下三基的通讯模式,
控制变频器停止3A 30 31 30 36 32 30 30 30 30 30 30 31 44 38 0D 0A 。3A是一个握手代码,相当于声明“我要开始
传数据啦” 3031其实就是01H的ASCI码,简单来说就是减去一个30H(三菱里有专门的转换成ASCI码的指令,你也可以直
接加30H)代表变频器的站号,3036为06的ASCI码,代表“写”的意思,32 30 30 30是2000H ASCI码,代表写入得地址
,30 30 30 31 为0001H的ASCI码,是写入得“内容”。44 38 是校验码,是01+06+20+00+00+01加起来然后反补加一(
我想是起一个放错的功能吧),然后0D 0A是结束码相当于声明“我传送完啦”总结起来就是 我要往01号变频器的2000
地址里写入01H这个数,而这个地址的这个数代表的正是前面所说的“停止”。
新手的话可以利用前面并出来的线和串口调试软件,将你需要的命令确定出来,看看你的代码是不是对的,能不能
起作用,然后再编制程序,如果直接编译程序下载调试,如果没有效果的话,你不知道问题出在哪里了。
4.然后是根据编译程序,就三菱来说的话用到RS指令,RS A B C D ,A 代表发送起始地址,B代表从A开始后发送的
数据个数,C是存储起始地址,D代表存储个数。因此你可以把3A 30 31 30 36 32 30 30 30 30 30 30 31 44 38 0D 0A
放到从D100到D116中,然后再 RS D100 K17 D200 0 指令, 再触发M8122(发送命令)。就能把这条代码发出去了,然后就能起到
控制效果。
汇川还有MODBUS标准协议,比自由协议要简单很多,把握手,校验,停止,都做到一条指令里去了,但是知道了自由
协议的话MODBUS就好做了,所以这里就不介绍啦。
理论同的话实践是会碰到许多问题,一定要注意很多细节的调整,我最近要弄一个LG的RS485通讯,又碰到了新的一
些问题,所以理论和实践还是有很大区别的,在此要感谢王工程师和网上认识的李工程师,对我进行了很多指导。