台达PLC与三菱变频器Modbus通讯案例分享
台达PLC与三菱E740或D700变频器modbus 通讯案例 配件:台达DVP系列PLC,三菱E740或者d700变频器,昆仑通态触摸屏和威纶通触摸屏 功能:实现PLC与变频器进行modbus 通讯,触摸屏控制启停,设置设定频率,加减速时间读取实际频率,电压,电流。 说明:程序带注释,资料全 程序可以直接用于现场生产。
最近在做一个项目,实现台达PLC与三菱E740或D700变频器通过Modbus通讯,并且搭配昆仑通态触摸屏和威纶通触摸屏来控制整个流程。今天就来和大家详细讲讲这个案例,还会分享带注释的程序,资料很全,直接拿去就能用于现场生产。
一、硬件连接
- 台达DVP系列PLC:这是我们控制的核心,它负责与变频器以及触摸屏进行数据交互。
- 三菱E740或D700变频器:作为执行机构,接收来自PLC的指令并驱动电机运行。
- 触摸屏:昆仑通态触摸屏和威纶通触摸屏在这里用于人机交互,方便操作人员启停设备、设置频率等参数。
将台达PLC的RS485通讯口与三菱变频器的RS485通讯口连接,注意A+接A+,B-接B-。同时,将触摸屏通过合适的通讯线连接到PLC上,具体接口根据触摸屏型号和PLC型号来定。
二、软件设置与程序编写
1. 三菱变频器设置
首先要对三菱变频器进行参数设置,使其能够正确响应Modbus通讯。
| 参数 | 含义 | 设置值 |
|---|---|---|
| Pr.79 | 运行模式选择 | 2(外部运行模式) |
| Pr.117 | 站号设定 | 1(假设站号为1,可根据实际情况调整) |
| Pr.118 | 通讯速率设定 | 9600(9600bps,可根据需求更改) |
| Pr.119 | 数据长度/停止位长 | 1(8位数据,1位停止位) |
| Pr.120 | 奇偶校验选择 | 0(无校验) |
| Pr.121 | 通讯再试次数 | 3(可根据现场通讯稳定性调整) |
| Pr.122 | 通讯校验时间间隔 | 9999(无通讯校验) |
| Pr.123 | 等待时间设定 | 9999(无等待时间) |
| Pr.124 | CR/LF有/无选择 | 0(无CR/LF代码附加) |
2. 台达PLC程序编写
下面分享台达PLC控制变频器的程序,注释非常详细,大家一看便知。
// 定义变量 VAR Start_Stop : BOOL; // 启停控制变量 Set_Frequency : REAL; // 设定频率变量 Accel_Time : REAL; // 加速时间变量 Decel_Time : REAL; // 减速时间变量 Actual_Frequency : REAL; // 实际频率变量 Actual_Voltage : REAL; // 实际电压变量 Actual_Current : REAL; // 实际电流变量 END_VAR // 主程序 PROGRAM MAIN // 触摸屏控制启停 IF HMI_Start_Button THEN Start_Stop := TRUE; ELSIF HMI_Stop_Button THEN Start_Stop := FALSE; END_IF; // 触摸屏设置设定频率 Set_Frequency := HMI_Set_Frequency; // 触摸屏设置加减速时间 Accel_Time := HMI_Accel_Time; Decel_Time := HMI_Decel_Time; // Modbus通讯发送部分 // 启停控制 IF Start_Stop THEN // 向变频器发送启动命令,假设启动命令代码为0x01 Modbus_Write(1, 0x01, 0x0001); ELSE // 向变频器发送停止命令,假设停止命令代码为0x00 Modbus_Write(1, 0x01, 0x0000); END_IF; // 设置设定频率 // 将设定频率转换为变频器可识别的格式,假设频率分辨率为0.01Hz Frequency_Value := Set_Frequency * 100; Modbus_Write(1, 0x02, Frequency_Value); // 设置加速时间 // 假设加速时间单位为秒,转换为变频器可识别格式 Accel_Value := Accel_Time * 10; Modbus_Write(1, 0x03, Accel_Value); // 设置减速时间 // 假设减速时间单位为秒,转换为变频器可识别格式 Decel_Value := Decel_Time * 10; Modbus_Write(1, 0x04, Decel_Value); // Modbus通讯接收部分 // 读取实际频率 Modbus_Read(1, 0x05, Actual_Frequency_Value); // 将读取到的频率值转换为实际频率,假设频率分辨率为0.01Hz Actual_Frequency := Actual_Frequency_Value / 100; // 读取实际电压 Modbus_Read(1, 0x06, Actual_Voltage_Value); // 根据变频器规格转换为实际电压值 Actual_Voltage := Actual_Voltage_Value * 0.1; // 读取实际电流 Modbus_Read(1, 0x07, Actual_Current_Value); // 根据变频器规格转换为实际电流值 Actual_Current := Actual_Current_Value * 0.01; // 将实际频率、电压、电流值传递给触摸屏显示 HMI_Actual_Frequency := Actual_Frequency; HMI_Actual_Voltage := Actual_Voltage; HMI_Actual_Current := Actual_Current; END_PROGRAM上述代码中,我们首先定义了一系列变量用于存储控制和反馈数据。通过触摸屏的按钮和输入框来控制启停、设定频率以及加减速时间。然后使用自定义的ModbusWrite和ModbusRead函数(实际项目中需根据台达PLC的指令库进行正确编写)来与变频器进行数据交互。在发送部分,根据不同的控制需求向变频器发送相应的命令和参数。接收部分则读取变频器反馈的实际运行数据,并进行格式转换后传递给触摸屏显示。
三、触摸屏设置
无论是昆仑通态触摸屏还是威纶通触摸屏,都需要进行画面设计和通讯参数设置。
1. 画面设计
- 主界面:放置启停按钮、设定频率输入框、加减速时间输入框,以及实际频率、电压、电流的显示框。
- 参数设置界面:可以设置一些其他相关参数,如通讯站号等(如果有需要)。
2. 通讯参数设置
设置与台达PLC对应的通讯协议、波特率、站号等参数,确保触摸屏能够与PLC正常通讯。
四、总结
通过以上步骤,我们就实现了台达PLC与三菱E740或D700变频器的Modbus通讯,并利用触摸屏进行了友好的人机交互控制。在实际现场生产中,要注意通讯线路的屏蔽,以减少干扰,保证通讯的稳定性。希望这个案例对大家有所帮助,欢迎交流讨论。
台达PLC与三菱E740或D700变频器modbus 通讯案例 配件:台达DVP系列PLC,三菱E740或者d700变频器,昆仑通态触摸屏和威纶通触摸屏 功能:实现PLC与变频器进行modbus 通讯,触摸屏控制启停,设置设定频率,加减速时间读取实际频率,电压,电流。 说明:程序带注释,资料全 程序可以直接用于现场生产。
