相同的路径解析_施耐德PLC常用通讯指令解析

本文详细解读了施耐德Quantum PLC和M340 PLC的通讯指令,包括CREAD_REG、CWRITE_REG、READ_REG、WRITE_REG及MBP_MSTR功能块的使用,以及ModbusPlus、TCP/IP以太网和SY/MAX以太网的配置与数据解析。同时介绍了M340的READ_VAR和WRITE_VAR功能,涉及内部位和字的读写操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

施耐德PLC常用通讯指令解析

一、Quantum PLC通讯指令解析

CREAD_REG、CWRITE_REG、READ_REG、WRITE_REG 和 MBP_MSTR 功能块各使用 1 条数据事务路径,并且需要经过多个循环才能完成一项操作。

可用的事务路径数取决于使用的通讯端口:

·Modbus Plus 嵌入式端口或 NOM 模块同时最多支持 4 个功能块

·TCP/IP 以太网嵌入式端口同时最多支持 4 个功能块

·TCP/IP 以太网 NOE 模块同时最多支持 16 个功能块

可以在同一个通讯端口上对更多的通讯功能块进行编程。但是,对于超过该端口支持的最大数目的通讯功能块,将不再提供服务,直到释放一条事务路径为止。当事务路径资源空闲时,同一个端口上的下一个功能块才会变为活动状态,并开始使用释放的路径。

所有路由信息包含在 ADDRFLD 输入的 WordArr5 数据结构中。功能块为此输入分配的类型由所用的网络定义。

请使用:

·对于功能块 ModbusP_ADDR,使用 Modbus Plus

·对于功能块 TCP_IP_ADDR,使用 TCP/IP 以太网

·对于功能块 SYMAX_IP_ADDR,使用 SY/MAX 以太网

1、CREAD_REG

功能描述:

此功能块连续读取寄存器区域。它借助 Modbus Plus、TCP/IP 以太网或 SY/MAX 以太网从定址节点读取数据。

参数描述 :

SLAVEREG :从站中要读取源数据的区域起始地址。源区域始终驻留在 %MW 寄存器区域内。该参数可作为地址、定位变量、非定位变量或数值输入。

注意: 对于非 Unity Pro PLC 的从站:

源区域始终驻留在 4x 寄存器区域内。SLAVEREG 默认的源参考偏移在 4x 区域之内。必须忽略前导的"4"(例如,59(变量内容或数值)= 40059)。

NO_REG :要从定址从站读取的地址的数目 (1 ... 100)。 该参数可作为地址、定位变量或非定位变量输入。

REG_READ :对于此参数,必须确保 ARRAY 大小与请求的传输大小相等 (≥ NO_REG)。该数组的名称定义为一个参数。如果该数组定义得过小,则仅传输数组中的数据量。

该参数必须定义为定位变量。

STATUS :如果在执行功能时出错,则循环的错误代码仍然保留在此输出中。

功能块配置:

该功能块需和地址功能块一起配置,如下:

755bea5dfd2a524afdc3c29199db09b3.png

TCP_IP_ADDR功能块的MAP_IDX引脚配置为目标设备的MB+站号(本例用Modbus Slave软件仿真从站,站号设为1,因此该引脚配置为1。在昆腾PLC之间通讯,该引脚一般设置为0),SLOT_ID配置为本地通讯模块的槽位号,IP_B1-4配置为IP地址。

通讯解析:

该数据包在Modbus Slave从站抓取,数据如下:

33 AB 00 00 00 06 01 03 00 00 00 05

33 AB 00 00 00 0D 01 03 0A 00 03 00 00 00 37 00 00 00 00

解析如下:

请求

33

AB

00

00

00

06

01

03

00

00

00

05

\

事务号

协议标识

包长度

站号

功能码

起始地址

数据长度

响应

33

AB

00

00

00

0D

01

03

0A

00

03

00

00

00

37

00

00

00

00

事务号

协议标识

包长度

站号

功能码

数据长度

响应数据

2、CWRITE_REG

功能描述:

此功能块连续写入寄存器区域。它借助 Modbus Plus、TCP/IP 以太网或 SY/MAX 以太网将数据从 PLC 传输到定址从站。

参数描述 :

SLAVEREG :定址从站中写入源数据的区域的开始。源区域始终驻留在 %MW 地址区域内。

注意: 对于非 Unity Pro PLC 的从站:

目标区域始终驻留在 4x 寄存器区域内。SLAVEREG 默认的目标地址偏移在 4x 区域之内。必须忽略前导的"4"(例如,59(变量内容或数值)= 40059)。

该参数可作为地址、定位变量非定位变量或数值输入。

NO_REG :要写入从站处理器的寄存器的数目 (1 ... 100)。该参数可作为地址、定位变量、非定位变量或数值输入。

STATUS :如果在执行功能时出错,则循环的错误代码仍然保留在此输出中。

REG_WRIT :对于此参数,必须确保 ARRAY 大小与请求的传输大小相等 (≥ NO_REG)。此数组的名称被定义为一个参数。如果该数组定义得过小,则仅传输数组中存在的数据量。

该参数必须定义为定位变量。

功能块配置:

该功能块需和地址功能块一起配置,如下:

2f9e4fee99d7b6ddb04313d83e84bd25.png

TCP_IP_ADDR功能块和CREAD_REG相同

通讯解析:

该数据包在Modbus Slave从站抓取,数据如下:

7D E3 00 00 00 11 01 10 00 0A 00 05 0A 00 16 00 00 00 00 00 00 00 00

7D E3 00 00 00 06 01 10 00 0A 00 05

解析如下:

请求

7D

E3

00

00

00

11

01

10

00

0A

00

05

0A

00

16

00

00

00

00

00

00

00

00

事务号

协议标识

包长度

站号

功能码

起始地址

数据长度

写数据长度

写数据

响应

7D

E3

00

00

00

06

01

10

00

0A

00

05

\

事务号

协议标识

包长度

站号

功能码

起始地址

数据长度

3、READ_REG

功能描述:

REQ 输入处出现上升沿时,此功能块将通过 Modbus Plus、TCP/IP 以太网或 SY/MAX 以太网从已定址从站读取一个寄存器区域。

参数描述 :

REQ :上升沿会触发读取事务。

该参数可作为直接地址、定位变量、非定位变量或数值输入。

SLAVEREG :已定址从站中读取源数据的区域的开始。源区域始终驻留在 %MW 寄存器区域内。

注意: 对于非 Unity Pro PLC 的从站:

源区域始终驻留在 4x 寄存器区域内。SLAVEREG 默认的源参考偏移在 4x 区域之内。必须忽略前导的"4"(假如变量内容或数值为 59,则 59 = 40059)。

该参数可作为直接地址、定位变量、非定位变量或数值输入。

NO_REG :要从已定址从站读取的地址的数目 (1 ... 100)。

该参数可作为直接地址、定位变量、非定位变量或数值输入。

NDR :一个程序循环的状态转换为有效表示收到了新数据,可以立即处理。

该参数可作为直接地址、定位变量或非定位变量输入。

错误 :一个程序循环的状态转换为有效表示检测到新错误。

该参数可作为直接地址、定位变量或非定位变量输入。

REG_READ :与请求的传输大小相等的 ARRAY 必须和此参数的 ≥ NO_REG 一致。此数组的名称被定义为一个参数。如果数组定义得太小,则仅传输数组中存在的数据量。

该参数必须定义为定位变量。

STATUS :如果在执行功能时出错,则循环的错误代码将留在此输出中。

功能块配置:

该功能块需和地址功能块一起配置,如下:

9aa3a88adc2500f9a4f2f4c15c0d1e57.png

TCP_IP_ADDR功能块和CREAD_REG相同

通讯解析:

该数据包在Modbus Slave从站抓取,数据如下:

81 AA 00 00 00 06 01 03 00 00 00 05

81 AA 00 00 00 0D 01 03 0A 00 03 00 00 00 37 00 00 00 00

解析如下:

请求

81

AA

00

00

00

06

01

03

00

00

00

05

\

事务号

协议标识

包长度

站号

功能码

起始地址

数据长度

响应

81

AA

00

00

00

0D

01

03

0A

00

3

00

00

00

37

00

00

00

00

事务号

协议标识

包长度

站号

功能码

数据长度

响应数据

4、WRITE_REG

功能描述:

REQ 输入处出现上升沿时,此功能块会通过 Modbus Plus、TCP/IP 以太网或 SY/MAX 以太网将一个寄存器区域从 PLC 写入已定址从站。

参数描述 :

REQ :写入事务由上升沿触发。

该参数可作为地址、定位变量、非定位变量或数值输入。

SLAVEREG :已定址从站中写入源数据的区域的开始。源区域始终驻留在 %MW 地址区域内。

注意: 对于非 Unity Pro PLC 的从站:

目标区域始终驻留在 4x 寄存器区域内。SLAVEREG 默认目标地址的偏移在 4x 区域之内。必须忽略前导的"4"(例如,59(变量内容或数值)= 40059)。

该参数可作为地址、定位变量、非定位变量或数值输入。

NO_REG :要写入从站处理器的地址的数目 (1 ... 100)。

该参数可作为地址、定位变量、非定位变量或数值输入。

REG_WRIT :与计划的传输大小相等的 ARRAY 必须与此参数的 (≥ NO_REG) 一致。此数组的名称被定义为一个参数。如果数组定义得太小,则仅传输数组中存在的数据量。

该参数必须定义为定位变量。

完成 :程序扫描的状态转换为有效表示数据已传输。

该参数可作为地址、定位变量或非定位变量输入。

错误 :程序循环的状态转换为有效表示检测到新错误。

该参数可作为地址、定位变量或非定位变量输入。

STATUS :如果在执行功能时出错,则循环的错误代码仍然在此输出中。

功能块配置:

该功能块需和地址功能块一起配置,如下:

f2e518df110a992f9f65c1bf15b993fb.png

TCP_IP_ADDR功能块和CREAD_REG相同

通讯解析:

该数据包在Modbus Slave从站抓取,数据如下:

81 AE 00 00 00 11 01 10 00 0F 00 05 0A 00 01 00 02 00 03 00 04 00 05

81 AE 00 00 00 06 01 10 00 0F 00 05

解析如下:

请求

81

AE

00

00

00

11

01

10

00

0F

00

05

0A

00

01

00

02

00

03

00

04

00

05

事务号

协议标识

包长度

站号

功能码

起始地址

数据长度

写数据长度

写数据

响应

81

AE

00

00

00

06

01

10

00

0F

00

05

\

事务号

协议标识

包长度

站号

功能码

起始地址

数据长度

5、MBP_MATR

功能描述:

通过使用 MBP_MSTR 功能块,可选择 14 种可用的网络通讯操作之一。本例只介绍用MBP_MSTR功能块发送MODBUS请求,操作功能代码为15。

参数描述 :

输入参数

参数

数据类型

说明

启用

BOOL

为 ON 时,启用在 CONTROL 寄存器的第一个元素中指定的操作。

ABORT

BOOL

为 ON 时,中止当前活动的操作。

输出参数

参数

数据类型

说明

ACTIVE

BOOL

当操作为活动状态时为 ON。

ERROR

BOOL

当操作未成功而中止时为 ON。

SUCCESS

BOOL

当操作成功完成时为 ON。

CONTROL

WORD

此字段包含控制功能块。第一个元素 CONTROL[1] 包含要执行的操作的操作代码的编号。序列寄存器的内容由操作确定。

该数据字段必须声明为定位变量。

控制块的结构因所用的网络而异。

DATABUF

WORD

对于提供数据的操作(如写入操作),该数据字段为数据源。对于接收数据的操作(如读取操作),该数据字段是数据目标。

对于以太网 CTE 读取和写入操作,该数据字段保留以太网配置扩展表的内容。在这种情况下,DATABUF 必须定义为至少含有 10 个元素的数组。

该数据字段必须声明为定位变量。

功能块配置:

功能块组态配置如下:

602b956da336791b8cdb998a3a37e43b.png

Control数据配置:

控制数据块的长度为11

描述

CONTROL[1]

15 = 发送 Modbus 请求

CONTROL[2]

指示检测到的错误状态 (不用配置数据)

CONTROL[3]

DATABUF 长度(字)(最大 100)

CONTROL[4]

DATABUF 中响应开头的偏移(字)。

注意: 为避免覆盖请求,响应偏移值乘以 2 后必须大于请求长度 (CONTROL[10])。

CONTROL[5]

路由寄存器:

高字节 = 以太网通讯模块插槽

低字节 = MBP on Ethernet transporter (MET) 映射索引(也称为单元 ID) (MB+站号)

CONTROL[6]

IP 地址的字节 4 (MSB)

例子

192

CONTROL[7]

IP 地址的字节 3

168

CONTROL[8

IP 地址的字节 2

1

CONTROL[9]

IP 地址的字节 1 (LSB)

2

CONTROL[10]

DATABUF 请求数据的长度(字节)

CONTROL[11]

DATABUF 已收到响应的长度(字节)

注意: 这是只读的,在操作完成后由选件模块设置。

Databuf数据配置:

请求数据和响应数据都存储在Databuf数据块中,请求数据的长度在CONTROL[10]中定义,响应数据起始地址在CONTROL[4]中定义。

通讯解析:

读取输入寄存器(%IW区)

控制数据块配置如下:

186d3dddd84440c9834bdeb368156b6c.png

Databuf数据区配置如下:

9c4ef5bb04d587015034eb72ac571b08.png

Databuf请求数据区寄存器定义如下:

Databuf[1]

Databuf[2]

Databuf[3]

Databuf[4]

Databuf[5]

功能码

起始地址高

起始地址低

数据长度高

数据长度低

Databuf响应数据区寄存器定义如下:

Databuf[6]

Databuf[7……100]

读取数据

功能码

读取字节数

该数据包在Modbus Slave从站抓取,数据如下:

CE 59 00 00 00 06 01 04 00 00 00 05

CE 59 00 00 00 0D 01 04 0A 00 37 00 00 00 00 00 00 00 00

解析如下:

MBP_MSTR  读取%IW区

请求

CE

59

00

00

00

06

01

04

00

00

00

05

\

事务号

协议标识

包长度

站号

功能码

起始地址

数据长度

响应

CE

59

00

00

00

0D

01

04

0A

00

37

00

00

00

00

00

00

00

00

事务号

协议标识

包长度

站号

功能码

数据长度

响应数据

MODBUS的其它请求操作和读取%IW区(功能码:04)相同,只需修改功能码即可。

二、M340通讯指令解析

1、READ_VAR

功能描述:

READ_VAR 功能用于读取以下一个或多个语言对象的值:

·内部位

·内部字

读取的对象必须始终是连续的。这些对象可以位于远程 CPU 或连接到通讯通道的设备中。

在 Modicon M340 和 M580 CPU 上,READ_VAR 功能最多可读取远程设备中的 2,000 个连续位。

参数描述 :

参数

类型

注释

ADR

ARRAY [0..5] OF INT(对于 Premium)

ARRAY [0..7] OF INT(对于 Modicon M340 和 M580)

针对不同硬件平台的特定说明:

·Premium:

o消息的接收字符模式通道的地址由 ADDR 功能给出。

o交换的目标实体的地址。

禁止使用下列地址:

• {Network.Station}APP,

• {Network.Station}APP.num。

·Modicon M340:

o消息的接收字符模式通道的地址由 ADDM 功能给出。

o该地址的语法为 ADDM ('r.m.c.node') 类型。

·Modicon M580:

o读取操作的目标实体地址,ADDMX 功能的结果。

OBJ

STRING

要读取的对象类型(对于 Premium PLC):

·’%M’:内部位

·’%MW’:内部字

·’%S’:系统位

·’%SW’:系统字

·’%I’:状态位

·’%IW’:输入字

要读取的对象类型(对于 Modicon M340 和 M580 PLC):

·’%M’:内部位

·’%MW’:内部字

·’%I’:输入位

·’%IW’:输入字

NUM

DINT

要读取的第一个对象的索引。

NB

INT

要读取的对象的数量。

GEST

ARRAY [0..3] OF INT

R交换管理表

在 Modicon M340 和 M580 CPU 上,在交换管理表的序号为 1 的字中有一个取消位。

此取消位位于序号为 1 的包含 2 个字节的字中:

·最高有效字节:交换号

·最低有效字节:活动位(序号 0)和取消位(序号 1)。

通过 CANCEL EF 或通过将管理表的取消位设置为 1 可取消 READ_VAR EF。

RECP

ARRAY [n..m] OF INT

包含所读取对象的值的字表。

注意: 接收到的数据的大小(以字节为单位)由系统自动写入管理表的第四个字。

功能块配置:

通讯解析:

2、WRITE_VAR

功能描述:

WRITE_VAR 功能用于写入同类型的以下一个或多个语言对象:

·内部位

·内部字

要写入的对象必须始终是连续的。这些对象可以位于远程 CPU 或连接到通讯通道的设备中。

参数描述 :

参数

类型

注释

ADR

ARRAY [0..5] OF INT(对于 Premium)

ARRAY [0...7] OF INT(对于 Modicon M340 和 M580)

针对不同硬件平台的特定说明:

·Premium:

o消息的接收字符模式通道的地址由 ADDR 功能给出。

o交换的目标实体的地址。

禁止使用下列地址:

• {Network.Station}APP,

• {Network.Station}APP.num。

• 广播地址(ALL,对于 TSX SCY 11601 模块为 0)。

·Modicon M340:

o消息的接收字符模式通道的地址由 ADDM 功能给出。

o该地址的语法为 ADDM ('r.m.c.node') 类型。

·Modicon M580:

o写入操作的目标实体地址,ADDMX 功能的结果。

OBJ

STRING

要写入的对象类型(对于 Premium PLC):

·’%M’:内部位

·’%MW’:内部字

·’%S’:系统位

·’%SW’:系统字

要写入的对象类型(对于 Modicon M340 和 M580 PLC):

·’%M’:内部位

·’%MW’:内部字

NUM

DINT

要写入目标设备的第一个对象的索引。

NB

INT

要写入的对象的数量。

EMIS

ARRAY [n..m] OF INT

包含要写入的对象值的字表。

GEST

ARRAY [0..3] OF INT

交换管理表

在 Modicon M340 和 M580 PLC 上,在交换管理表的序号为 1 的字中有一个取消位。

此取消位位于序号为 1 的包含 2 个字节的字中:

·最高有效字节:交换号

·最低有效字节:活动位(序号 0)和取消位(序号 1)。

通过 CANCEL EF 或通过将管理表的取消位设置为 1 可取消 WRITE_VAR EF。

功能块配置:

通讯解析:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值