作者:李强
来源:《中国科技纵横》2016年第08期
【摘 要】针对机电专业学生对三菱PLC的控制的变频器可以Modbust通信协议来控制分析比较困难,我从什么是ModBus通信协议和ModBus通信协议有两种传送方式进行了分析和讲解,对怎样控制变频器还例举了例题,对机电专业学生以后进一步用Modbust协议编写三菱PLC的控制的变频器梯形图有关键的引导作用。
【关键词】ModBus通信协议 两种传送方式 编程分析 举例
Modbust是现在Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。ModBus网络只有一个主机,所有通信都由他发出。网络可支持247个之多的远程从属控制器,但实际所支持的从机数要由所用通信设备决定。采用这个系统,各PC可以和中心主机交换信息而不影响各PC执行本身的控制任务。
三菱PLC的控制的变频器可以Modbust通信协议控制,Modbust是现在应用广泛串行通讯协议,其物理量采用RS232、RS485等异步串行标准,由于开放性而被大量的PLC及RTU厂家采用。
ModBus通信方式采用主从方式的查询一相应机制,只有主站发出查询时,从站才能给出响应,从站不能主动发出发送数据,主站可以向某一个从站发出查询,也可以向所有从站广播消息,从站只响应,单独发给它的查询,而不能响应广播消息。
ModBus通信协议有两种传送方式:ASCII方式和RTU方式。
ASCII模式特点:每个8-bit信息由两个ASCII字符所组成。例如一个字节的“H”,以ASCII码表示分为两个字节,第一个是“6”转化为ASCII码为(36H),第一个是“4” 转化为ASCII码为(34H),占2个数据寄存器。
RTU模式特点,每一个8-bitx信息由两个4-bit十六进制的数组成。例如:H只点一个数据字存器。6转化为ASCII码是(36H),4转化为ASCII码是(34H),ASCII模式采用LRC(Longitudinal Rcdudancey Check)侦误值。LRC)侦误值。LRC侦误值是将ADR1至最后一个资料内容加总和,得到的结果保留低8位(例如得到的结果为16进制位128H,则只取28H,)然后取和的补码(就是取反加一),即为LRC侦误值。例如,从地址为01H的交流电机驱动器0.401H地址中读取一个字 01H+03H+04H001H+00H001H=0AH OAH的补码为F6H RTU模式采用CRC(Cyclical Redundancy Check)侦误值。
生成一个CRC的流程为:(1)预置一个16位寄存器为(FFFFH),全部为“1”,称为CRC寄存器。(2)把数据的第一个字节的8位与CRC寄存器中的低字节进行异或运算,结果存回CRC寄存器。(3)把CRC寄存器向右移一位,最高位填以“0”,最低位异或运算,结果存回CRC寄存器。(4)如果最低位为“0”,重复第三步(下一次移位),如果最位为“1”,将CRC 寄存器与一个预设的固定的(AOO1H)进行异或运算。(5)重复第二步和第四步直到8次移位,这样就处理了一个完整的八位。(6)重复第二步和第五步步骤处理下一个8位直到所有的字节处理结束。(7)最最终CRC寄存器的值就是CRC的值。
例题:三菱PLC通过Modbust通信协议ASCII模式控制台达变频器正转,反转,停止,和调速。分析根据指令信息协议,套用Modbust指令信息的格式表1所示:
STX 是报文开始,转化为ASCII码03H是固定的,ADR1和ADR0是变频器的账号,设定ADR1是“0”,ADR0是“1”。CMD1和CMD0是指令代码,是做什么的操作,由于PLC正转,反转,停止是放在一个寄存器中,调速是放在另一个寄存器中,两个都是数据的写入操作,因此CMD0是指令代码选H06的操作,选重启始资料地址,在资料数中运行,最后得到两个校验码LRC CHK1和 LRC CHK0和有两个结束符号END1和END0,三菱PLC通过Modbust通信协议ASCII模式控制变频器的梯形图就按这用套用编程。代码功能表2所示:
表2 代码功能
表3所示,是台达变频器的参数手册的一部分,它的参数地址正常参数是用00nn来表示,nn代表参数号,如变频器的参数号P100由16进制00H来表示,反过来对启动器的指令00H来表示参数P100,对驱动器的指令是2000H,它有16位,0-1位是控制运行的,01B是停止,10B是启动,2-3位是保留,4-5位是控制运行方向,01B是正转,10B是反转,6-15位是保留不用。控制变频器正转,反转和停止,就是对参数2000H写数字,如对变频器正转启动操作的16进制数位000000000010010转化为ASCII码是0012H,对变频器反转启动操作的16进制数位000000000100010转化为ASCII码是0022H,对变频器停止操作的16进制数位000000000000001转化为ASCII码是0001H,变频器正转启动时在2000H中写入0012H,变频器反转启动时在2000H中写入0022H,变频器停止时在变频器参数2000H中写入0001H,运行后得得到两个校验码LRC CHK1和 LRC CHK0。调速在变频器参数2001H中改变数据,变频器频率就会改变。
表3 变频器通信协定协议的参数地址及定义
参考文献:
[1] 程子华.PLC原理与编程实例分析[M],国防工业出版社,2006-07-15.
[2] 李江全.三菱PLC通信与控制应用编程实例[M].中国电力出版社,2010-10-12.
[3] 李江全.西门子PLC通信与控制应用编程实例[M].中国电力出版社,2012-06-10.下载本文