阿尔法变频器与台达PLC通信一、系统简介本系统主要由阿尔法变频器、台达PLCDVP-14ES、威纶通触摸屏MT8050I组成。台达DVP-14ESPLC有两个通信口COM1、COM2,COM1既可以用来下载程序也可以用来进行RS232通信,COM2支持RS485MODBUS通信。威纶通触摸屏MT8050I有一个9针的通信端口,不过此端口既可以做RS232通信,也可以做RS4852W通信,这些都需要在威纶通自带软件EB8000ProjectManager中去配置。阿尔法变频器主要支持MODBUS-RTU的RS485通信。二、接线自制232L+M+_LNAC220V(触摸屏)HMI24V电源DVP-14ESLN开关电源485+-阿尔法变频器485+485-RSTUVWM由于威纶通触摸屏MT8050I由DC24V供电,所以我们需要一个能够将AC220V电压转换成DC24V电压的开关电源。台达PLCDVP-14ES由AC220V电压源直接提供电压。三、通信线制作台达PLCDVP-14ES的COM1口是8针DIN圆形工头,威纶通MT8050I的通信端口是9针D形端口。由于MT8050I的端口定义不标准,所以我们必须自制下载线。MT8050I端口定义如下表所示:从图中可以看出,COM1可以做RS4852W(2线制)通信,也可以做RS4854W(4线制),还可以做RS232通信。在RS232通信中6——TXD,9——RXD,5——GND。台达PLCDVP-14ES的RS232通信引脚定义为:5——TXD,4——RXD,8——GND。8针DIN圆形母头管脚排列如下图所示:81234567通信线的连接如下图所示:台达PLC与MT8050I通信线制作DeltaPLCDVP系列CPURS232端口8针Din圆形端口WinViewMT8050I9针D形端口TXD(5号引脚)GND(8号引脚)RXD(4号引脚)(5号引脚)GND(9号引脚)RXD(6号引脚)TXD四、参数设置1)触摸屏中主要需要设置“设备属性”PLC类型要选成台达DELTADVP;接口类型是:RS-232;通信端口——COM1;波特率——9600;数据位——7位;(必须和台达PLC一致)停止位——1位;PLC预设站号——1;PLC地址整段间隔——1;(必须为1,这样可以分别读得相临的两个地址)2)台达PLC的通信设置保持默认就行了,如下图所示:在这里必须注意:台达PLC默认的为ASCII,数据长度为7,在此不能改成8位或者改成RTU模式,不然就不能将程序下载进PLC了!3)变频器的设置P0.01=1——频率给定设置成键盘数字设定,给0X0100写数据,不需要运行变频器,就可以通过比较P0.00显示的数据是否为通信写入的数据来判断是否通信上。P0.04=4——运行命令控制方式为串行通信2(STOP键有效)。Pb.00=3——波特率为9600Pb.01=1——站号为1Pb.02=0——偶校验其他的设置为默认五、PLC程序编写1)通信程序初始化D1120,M1120,D1129,M1143这四个寄存器是台达PLC的特殊寄存器。D1120——RS-485通信协议,D1120=0X87表示波特率9600,偶校验,1位停止位,8位数据位。M1120——通讯设置保持用。设置后变更D1120无效。D1129——设置超时时间。通信超过此时间,则表示此次通信失败。M1143——ASii/RTU模式选择,OFF时为ASCii模式,ON时为RTU模式。2)通讯程序编写。M1122——发送请求,在发送之前必须先将此位置1。MODRW——MODBUS读写数据指令,格式如下图所示:MODRWK1K6K1D0H0100站号功能码起始地址数据内容数据个数阿尔法变频器支持MODBUS-RTU协议,支持的功能码有03,06,10。03——读一个寄存器指令。06——写一个寄存器指令。10——写两个寄存器指令1,在阿尔法变频器中用来同时写0X0001(运行操作信号)和0x0002(频率给定)这两个地址。3)注意事项台达PLC要用一个跳变沿触发通信。当触摸屏组态地址为M0的按钮按下时,M0变成ON,此时通过定时器定时500MS,当时间到达时会产生一个跳变沿,此时将M1122设置为True,然后再通过MODRW指令来发送命令。台达PLC通过03指令返回的数据内容并不是存在MODRW指令中所指的地址处,以程序为例:MODRWK1K3K1D20H24站号读一个寄存器待读的地址返回数据存放起始地址数据个数台达PLC将读得的数据存放在以D20开头的寄存器中,其格式如下:寄存器Data说明D2001H站号D2103H功能码D2202H读得数据个数D23DataH数据高八位D24DataL数据低八位D25CRCLCRC低八位D26CRCHCRC高八位由此图可以看出,返回的有效数据存放地址为:D23和D24,在此需用公式Data=D23*256+D24,将所得的两个寄存器里的数据合并成一个十进制数。