西门子smart 200 rtu方式通讯四台三菱E700变频器资料 硬件:smart plc.三菱E700变频器,mcgs触摸屏(电脑仿真也可) 功能:指针写法,通过modbus rtu方式,实现对E700变频器通讯控制和监控。 有正反转,停止,频率给定,运行状态,运行频率,电压,电流的监控。 效果:反应快,反馈及时,无迟滞。 易复制,也支持其他支持rtu通讯的设备,并且易修改。 想增加更多台也很方便,程序留有余地,易修改。 包括触摸屏和plc程序,教程,接线和参数设置。
在工业自动化领域,不同品牌设备之间的通讯协同是常见需求。本文将详细介绍如何通过西门子Smart 200 PLC以Modbus RTU方式与四台三菱E700变频器进行通讯,实现对变频器的控制与监控,并利用MCGS触摸屏进行操作与数据展示。
一、硬件准备
本次项目所需硬件包括Smart PLC、三菱E700变频器以及MCGS触摸屏(电脑仿真也可行)。
二、接线
- PLC与变频器接线
- Smart 200 PLC的RS485端口连接到三菱E700变频器的PU端口。具体来说,PLC的485+连接到变频器的RDA,PLC的485 -连接到变频器的SDA。注意,所有设备的接地端都要良好接地,以减少干扰。 - PLC与触摸屏接线
- 如果是实际硬件,可通过USB或以太网将PLC与MCGS触摸屏连接。若使用电脑仿真,只需保证软件环境下通讯参数设置正确即可。
三、参数设置
- 三菱E700变频器参数设置
- Pr.79 = 2 // 设置为外部运行模式
- Pr.117 = 192 // 站号设置(可根据实际情况在1 - 247范围内调整,这里以192为例)
- Pr.118 = 96 // 波特率设置为9600bps
- Pr.119 = 1 // 数据长度8位
- Pr.120 = 1 // 停止位1位
- Pr.121 = 0 // 奇偶校验无
- Pr.122 = 0 // 通讯再试次数0次
- Pr.123 = 9999 // 通讯超时时间设置(这里设置为无超时)
- Pr.160 = 0 // 扩展功能显示选择,显示所有参数
- Smart 200 PLC参数设置
在编程软件中,设置通讯端口为Modbus RTU模式,波特率、数据位、停止位和奇偶校验需与变频器设置一致。
四、PLC程序编写(指针写法)
以下以西门子SCL语言为例展示关键代码及分析:
// 定义Modbus通讯指令块 MBUS_INIT: MBUS_INIT( Mode := 1, Baud := 9600, Parity := 0, Data := 8, Stop := 1, SlaveAddr := 1, MaxIQ := 125, MaxAI := 125, MaxHold := 125, MaxOther := 125, Error => MBUS_INIT_Error ); // 定义Modbus读指令块 MBUS_READ: MBUS_READ( SlaveAddr := P#DB1.DBX0.0, // 使用指针指向站号数据 ReadAddr := 40001, ReadCount := 10, DataPtr := P#DB2.DBX0.0, // 使用指针指向数据存储区 Error => MBUS_READ_Error ); // 定义Modbus写指令块 MBUS_WRITE: MBUS_WRITE( SlaveAddr := P#DB1.DBX0.0, WriteAddr := 40001, WriteCount := 5, DataPtr := P#DB3.DBX0.0, Error => MBUS_WRITE_Error );代码分析
- MBUS_INIT:初始化Modbus RTU通讯,设置波特率为9600bps,无奇偶校验,8位数据位,1位停止位等参数。
Mode := 1表示启用通讯功能。 - MBUS_READ:用于读取变频器的数据,
SlaveAddr通过指针指向存储站号的区域,这样可以方便地切换不同站号的变频器进行数据读取。ReadAddr指定读取的起始地址,ReadCount表示读取的数据数量,DataPtr通过指针指向存储读取数据的区域。 - MBUS_WRITE:用于向变频器写入控制数据,同样通过指针方式灵活设置站号和数据存储区,方便对不同变频器进行控制。
通过这种指针写法,当需要增加更多台变频器时,只需修改指针指向的数据即可,大大提高了程序的可扩展性。
五、MCGS触摸屏程序编写
- 界面设计
- 设计主界面,包含正反转、停止按钮,频率给定输入框,以及运行状态、运行频率、电压、电流的显示区域。 - 脚本编写
- 在按钮按下事件中,编写脚本向PLC发送控制指令。例如,正转按钮按下时:
!SetData(1, "PLC1", "V100") // 假设V100为PLC中控制正转的变量地址- 在数据显示区域,编写脚本从PLC读取数据并显示。例如,显示运行频率:
!GetData("PLC1", "V200", Temp) // 假设V200为PLC中存储运行频率的变量地址 SetData(Temp, "本地窗口", "运行频率")六、效果优化
为了实现反应快、反馈及时、无迟滞的效果:
- 优化通讯参数:选择合适的波特率,在保证通讯稳定的前提下尽量提高波特率以加快数据传输速度。
- 程序逻辑优化:合理安排PLC程序中通讯指令的执行顺序,减少不必要的程序循环,避免影响通讯的实时性。
通过以上步骤,我们实现了西门子Smart 200与四台三菱E700变频器的Modbus RTU通讯控制与监控,整个方案具有易复制、易修改、扩展性强的特点,对于其他支持RTU通讯的设备也有很好的借鉴意义。