西门子CPU模块6ES7318-3EL01-0AB0
Modbus是为其PLC与主机之间的通讯而发明的串行通讯协议。其物理层采用RS232、485等异步串行标准。由于其开放性而被大量的PLC及RTU厂家采用。Modbus通讯方式采用主从方式的查询-相应机制,只有主站发出查询时,从站才能给出响应,从站不能主动发送数据。主站可以向某一个从站发出查询,也可以向所有从站广播信息。从站只响应单独发给它的查询,而不响应广播消息。MODBUS通讯协议有两种传送方式:RTU方式和ASCII方式。三菱700系列变频器能够从RS-485端子使用ModbusRTU通讯协议,进行通讯运行和参数设定。
对象:
1. 三菱PLC:FX2N+FX2N-485-BD
2. 三菱变频器:F700系列,A700系列。
两者之间通过网线连接,具体参照下图。
FX2N-485-BD与n台变频器的连接图
三菱变频器的设置
PLC与变频器之间进行通讯时,通讯规格必须在变频器中进行设定,每次参数初始化设定后,需复位变频器或通断变频器电源。
参数号 名称 设定值 说明
Pr331 通讯站号 1 设定变频器站号为1
Pr332 通讯速度 96 设定通讯速度为9600bps
Pr334 奇偶校验停止位长 2 偶校验,停止位长1位
Pr539 通讯校验时间 9999 不进行通讯校验
Pr549 协议选择 1 ModbusRTU协议
Pr551 PU模式操作权选择 2 PU运行模式操作权作为PU接口
进行ModbusRTU协议通讯时,Pr551必须设置为2,Pr340设置为除0以外的值,Pr79设置为0或2或6。通过RS-485端子进行ModbusRTU协议通讯时,必须在NET网络模式下运行。
三菱PLC的设置
对通讯格式D8120进行设置
D8120设置值为0C87,即数据长度为8位,偶校验停止位1位,波特率9600pbs,无标题符和终结符。
修改D8120设置后,确保通断PLC电源一次。
四:程序说明:
1.当X1接通一次后,变频器进入正转状态。
2. 当X2接通一次后,写入变频器运行频率60HZ。
3. 当X3接通一次后,变频器进入停止状态。
当指令中,变频器指令地址为0时,为广播指令,所有从站变频器只接受PLC发出指令,不向主机发送响应信息
一、硬件设备
1.PLC: FC4A-C24R2
2.RS485 通信卡: FC4A-PC3
4.编写发送命令
至此, Modbus RTU 写命令(功能码 06)的发送语句就完成了。如果需要的话还可以编写对应的接收命令。
5.编写接受命令
上个例程(功能码 06)为写一个寄存器,该指令并非必须需要接收其返回报文。但下面的例程(功能码03)为读取多个寄
存器, 该指令必须要接受返回报文才能得到需要读取的数据寄存器的值,为此就需要编写接收命令。
上图为读多个寄存器指令的发送命令, 该指令的内容意为:
第一行“ 01”“ 03”代表了向 MODBUS RTU 从站 01 发送读多个寄存器(功能码 03)命令。
第二行“ 00”“ 01”代表了读取目标寄存器的起始地址为 0000H。
第三行“ 00”“ 01” 代表了连续读取寄存器的数量为 1 个。
第四行“ [BCC M-2 01]”代表了 MODBUS RTU 的 BCC 校验。
上图为读多个寄存器指令的接收命令, 该指令的内容意为:
第一行“ 01”“ 03”代表了向 MODBUS RTU 从站 01 发送读多个寄存器(功能码03)命令。(同发送命令第一行)
第二行“ 02”代表了 MODBUS RTU 从站的回应信息中数据的字节个数为 2 个字节。(字节个数=之前读取多个寄存器发送命令中的读取寄存器数量X2)
第三行“
第四行“ [BCC M-2 01]”代表了 MODBUS RTU 的 BCC 校验。
注: 本文仅为*为简单的 MODBUS RTU 指令的实现,文中的接收命令都为正常的回应信息格式,如有需要还需编写异常的回应信息接收指令,以判断发生了何种错误。