三菱Q系列PLC,用Modbus通信方式

患白癜风可以要孩子吗 http://m.39.net/pf/a_7707187.html

目标要求:

三菱串行通信模块QJ71C24N跟FX5UPLC进行Modbus通信,读FX5U的输入点,写入FX5U输出点信号,写入数据到FX5U,读FX5U里的数据。

一,硬件配置:

1,主站PLC配置:

基板:Q35B。

电源:Q61P。

CPU:Q06H。

输入:QX40。

输出:QY41P。

串行通信模块:QJ71C24N。

2,从站PLC:FX5U-32M。

3,RS通信接线:

SDA一一一一一一一→SDA

RDARDA

□←终端电阻→□

SDB一一一一一一一→SDB

RDBRDB

SG←一一接屏蔽层一→SG

二,QPLC软件设置:

1,IO设置:

导航→工程→参数→PLC参数→I/O分配设置→模块添加→模块类型:输入模块:QX40→输出模块:QY41P→串行通信/调制解调器接口模块→模块型号QJ71C24N→设置结束。占32点,~F。

2,通信格式设置:

导航→工程→智能功能模块→:QJ71C24N→开关设置:

选择通道2(CH2),从下往上设置,先设置通信协议→再设置波特率bps→设置更改允许→RUN中写入允许→和校验代码无→停止位1→偶数校验→校验位有→数据位8→动作设置独立→确定。

导航→工程→智能功能模块→:QJ71C24N→各种控制指定:

通信控制指定用→CH2,1:字节单位。

通信控制指定用→CH2,1:响应返回禁止(半双工)。

3,建立协议:

工具→通信协议支持功能→串行通信模块:

MODBUS常用功能码:

01,读线圈状态(位)。

02,读输入状态(位)。

03,读一或多个保持寄存器(字)。

04,读一或多个寄存器(字)。

05,强置单线圈(位)。

06,把字写入保持寄存器。

08,回送诊断校验报告从站。

15,强置多线圈。

16,预置多个连续保持寄存器。

分别建立2、3、15、6,四个协议:

新建→协议号添加→类型:通信协议库→制造商:SchneiderElectric→型号:MODBUS→协议名(功能码):02读输入状态→确定。

删除ERR接收:右击协议号→更改为可编辑协议→是→右击ERR数据包名→删除→是。

添加协议:点击添加→类型:通信协议库→制造商:SchneiderElectric→型号:MODBUS→协议名(功能码):03读一或多个保持寄存器(字)→确定。

同样也要删除ERR接收:右击协议号→更改为可编辑协议→是→右击ERR数据包名→删除→是。

添加协议:点击添加→类型:通信协议库→制造商:SchneiderElectric→型号:MODBUS→协议名(功能码):15强置多线圈→确定。

同样也要删除ERR接收:右击协议号→更改为可编辑协议→是→右击ERR数据包名→删除→是。

添加协议:点击添加→类型:通信协议库→制造商:SchneiderElectric→型号:MODBUS→协议名(功能码):06把字写入保持寄存器→确定。

同样也要删除ERR接收:右击协议号→更改为可编辑协议→是→右击ERR数据包名→删除→是。

变量设置:

右击协议号1→软元件批量设置:设置协议号范围指定:1-4→起始软元件号:如D0。→是→确定。

点击工具栏红色箭头图标把协议写入模块。

变量配置元素名解释:

“02RD读数据”的发送包变量:

SlaveAddress:从站地址。D0

FunctionCode:功能代码。02

StartingAddress:开始地址。D1

QuantityofInputs:输入点数量D2

ErrorCheck:错误检查。

“02RD读数据”的接收包变量:

SlaveAddress:从站地址。D3

FunctionCode:功能代码。02

ByteCount:字节长度。

InputStatus:输入状态值。D4,D5~

ErrorCheck:错误检查。

D5.0~D5.F。→返回状态,16个输入点。

“03RD读数据”的发送包变量:

SlaveAddress:从站地址。D

FunctionCode:功能代码。03

StartingAddress:开始地址。D

QuantityofRegisters:寄存器数D

ErrorCheck:错误检查。

“03RD读数据”的接收包变量:

SlaveAddress:从站地址。D

FunctionCode:功能代码。03

ByteCount:字节长度。

RegisterValue:寄存器数值。D,D~←读的数量

ErrorCheck:错误检查。

“15,WR写数据”的发送包变量:

SlaveAddress:从站地址。D

FunctionCode:功能代码。0F

StartingAddress:开始地址。D

QuantityofOutputs:输出点数D

ByteCount:字节长度。1字节单位。

OutputsValue:输出点数值。D长度(字节数),D(数据值如HFFFF)~D

ErrorCheck:错误检查。

“15,WR写数据”的接收包变量:

SlaveAddress:从站地址。D

FunctionCode:功能代码。0F

StartingAddress:开始地址。D

QuantityofOutputs:输出数值。D

ErrorCheck:错误检查。

“06WR写数据”的发送包变量:

SlaveAddress:从站地址。D

FunctionCode:功能代码。06

RegisterAddress:寄存器地址。D

RegisterValue:寄存器数值。D

ErrorCheck:错误检查。

“06WR写数据”的接收包变量:

SlaveAddress:从站地址。D

FunctionCode:功能代码。06

RegisterAddress:寄存器地址。D

RegisterValue:寄存器数值。D

ErrorCheck:错误检查。

FX5UPLC设置:

打开GXWorks3软件,新建FX5UCPC工程。

导航→参数→FX5UCPC→模块参数→串口:

基本设置:

设置项目:

协议格式:MODBUS_RTU通信。

奇偶校验:偶数。

停止位:1bit。

波特率:bps。

固有设置:

设置项目:

本站号:1。

MODBUS软元件分配:

设置项目:

详细设置:

线圈Y0,起始地址0,分配点数。

输入X0,起始地址0,分配点数。

输入寄存器,起始地址0,分配点数0。

保持寄存器D0,起始地址0,分配点数。

起始地址值为0。

程序编写:

指令解释:

G.CPRTCLUnn1n2(S)(D)。

GP.CPRTCLUnn1n2(S)(D)加沿。

Un:模块的起始输入输出信号,如U03。

n1:通道选择1:CH1,2:CH2。

n2:协议的连续执行数(1~8)。

S:存储控制数据的软元件起始编号。

S+0:执行结果,0正常,0以外错误码。

S+1:执行协议数结果,1~8。

S+2~9:执行协议编号指定。

S+10~17:校验一致接收数据包编号。

D:执行完成时置为1的位软元件偏号。

线路跟踪:

点击工具栏“串行通信模块的线路跟踪图标”→选择模块→选择通道→开始跟踪。




转载请注明:http://www.180woai.com/afhzz/1858.html


冀ICP备2021022604号-10

当前时间: